public class org.h2.tools.Recover extends org.h2.util.Tool implements org.h2.store.DataHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.tools.Recover
  super_class: org.h2.util.Tool
{
  private java.lang.String databaseName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private int storageId;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String storageName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private int recordLength;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int valueId;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean trace;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean transactionLog;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.ArrayList<org.h2.engine.MetaRecord> schema;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Lorg/h2/engine/MetaRecord;>;

  private java.util.HashSet<java.lang.Integer> objectIdSet;
    descriptor: Ljava/util/HashSet;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashSet<Ljava/lang/Integer;>;

  private java.util.HashMap<java.lang.Integer, java.lang.String> tableMap;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/Integer;Ljava/lang/String;>;

  private java.util.HashMap<java.lang.String, java.lang.String> columnTypeMap;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;

  private boolean remove;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int pageSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private org.h2.store.FileStore store;
    descriptor: Lorg/h2/store/FileStore;
    flags: (0x0002) ACC_PRIVATE

  private int[] parents;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private org.h2.tools.Recover$Stats stat;
    descriptor: Lorg/h2/tools/Recover$Stats;
    flags: (0x0002) ACC_PRIVATE

  private boolean lobMaps;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Recover this
         0: .line 85
            aload 0 /* this */
            invokespecial org.h2.util.Tool.<init>:()V
            return
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Recover;

  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 158
            new org.h2.tools.Recover
            dup
            invokespecial org.h2.tools.Recover.<init>:()V
            aload 0 /* args */
            invokevirtual org.h2.tools.Recover.runTool:([Ljava/lang/String;)V
         1: .line 159
            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=3, locals=6, args_size=2
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.lang.String[] args
         0: .line 174
            ldc "."
            astore 2 /* dir */
        start local 2 // java.lang.String dir
         1: .line 175
            aconst_null
            astore 3 /* db */
        start local 3 // java.lang.String db
         2: .line 176
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 25
         4: .line 177
      StackMap locals: java.lang.String java.lang.String int
      StackMap stack:
            aload 1 /* args */
            iload 4 /* i */
            aaload
            astore 5 /* arg */
        start local 5 // java.lang.String arg
         5: .line 178
            ldc "-dir"
            aload 5 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 179
            aload 1 /* args */
            iinc 4 /* i */ 1
            iload 4 /* i */
            aaload
            astore 2 /* dir */
         7: .line 180
            goto 24
      StackMap locals: java.lang.String
      StackMap stack:
         8: ldc "-db"
            aload 5 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 181
            aload 1 /* args */
            iinc 4 /* i */ 1
            iload 4 /* i */
            aaload
            astore 3 /* db */
        10: .line 182
            goto 24
      StackMap locals:
      StackMap stack:
        11: ldc "-removePassword"
            aload 5 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 183
            aload 0 /* this */
            iconst_1
            putfield org.h2.tools.Recover.remove:Z
        13: .line 184
            goto 24
      StackMap locals:
      StackMap stack:
        14: ldc "-trace"
            aload 5 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 185
            aload 0 /* this */
            iconst_1
            putfield org.h2.tools.Recover.trace:Z
        16: .line 186
            goto 24
      StackMap locals:
      StackMap stack:
        17: ldc "-transactionLog"
            aload 5 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        18: .line 187
            aload 0 /* this */
            iconst_1
            putfield org.h2.tools.Recover.transactionLog:Z
        19: .line 188
            goto 24
      StackMap locals:
      StackMap stack:
        20: aload 5 /* arg */
            ldc "-help"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
            aload 5 /* arg */
            ldc "-?"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        21: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.tools.Recover.showUsage:()V
        22: .line 190
            return
        23: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* arg */
            invokevirtual org.h2.tools.Recover.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        end local 5 // java.lang.String arg
        24: .line 176
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: aload 1 /* args */
            ifnull 26
            iload 4 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 4
        end local 4 // int i
        26: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* dir */
            aload 3 /* db */
            invokevirtual org.h2.tools.Recover.process:(Ljava/lang/String;Ljava/lang/String;)V
        27: .line 196
            return
        end local 3 // java.lang.String db
        end local 2 // java.lang.String dir
        end local 1 // java.lang.String[] args
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   28     0  this  Lorg/h2/tools/Recover;
            0   28     1  args  [Ljava/lang/String;
            1   28     2   dir  Ljava/lang/String;
            2   28     3    db  Ljava/lang/String;
            3   26     4     i  I
            5   24     5   arg  Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  public static java.io.Reader readClob(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/io/Reader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // java.lang.String fileName
         0: .line 202
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 0 /* fileName */
            invokestatic org.h2.tools.Recover.readBlob:(Ljava/lang/String;)Ljava/io/InputStream;
         1: .line 203
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
         2: .line 202
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            areturn
        end local 0 // java.lang.String fileName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  fileName  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      fileName  

  public static java.io.InputStream readBlob(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String fileName
         0: .line 210
            new java.io.BufferedInputStream
            dup
            aload 0 /* fileName */
            invokestatic org.h2.store.fs.FileUtils.newInputStream:(Ljava/lang/String;)Ljava/io/InputStream;
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            areturn
        end local 0 // java.lang.String fileName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  fileName  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      fileName  

  public static org.h2.value.ValueLobDb readBlobDb(java.sql.Connection, long, long);
    descriptor: (Ljava/sql/Connection;JJ)Lorg/h2/value/ValueLobDb;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // java.sql.Connection conn
        start local 1 // long lobId
        start local 3 // long precision
         0: .line 218
            aload 0 /* conn */
            checkcast org.h2.jdbc.JdbcConnection
            invokevirtual org.h2.jdbc.JdbcConnection.getSession:()Lorg/h2/engine/SessionInterface;
            invokeinterface org.h2.engine.SessionInterface.getDataHandler:()Lorg/h2/store/DataHandler;
            astore 5 /* h */
        start local 5 // org.h2.store.DataHandler h
         1: .line 219
            aload 5 /* h */
            invokestatic org.h2.tools.Recover.verifyPageStore:(Lorg/h2/store/DataHandler;)V
         2: .line 220
            bipush 15
            aload 5 /* h */
            bipush -2
         3: .line 221
            lload 1 /* lobId */
            aconst_null
            lload 3 /* precision */
         4: .line 220
            invokestatic org.h2.value.ValueLobDb.create:(ILorg/h2/store/DataHandler;IJ[BJ)Lorg/h2/value/ValueLobDb;
            astore 6 /* lob */
        start local 6 // org.h2.value.ValueLobDb lob
         5: .line 222
            aload 6 /* lob */
            iconst_1
            invokevirtual org.h2.value.ValueLobDb.setRecoveryReference:(Z)V
         6: .line 223
            aload 6 /* lob */
            areturn
        end local 6 // org.h2.value.ValueLobDb lob
        end local 5 // org.h2.store.DataHandler h
        end local 3 // long precision
        end local 1 // long lobId
        end local 0 // java.sql.Connection conn
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       conn  Ljava/sql/Connection;
            0    7     1      lobId  J
            0    7     3  precision  J
            1    7     5          h  Lorg/h2/store/DataHandler;
            5    7     6        lob  Lorg/h2/value/ValueLobDb;
    MethodParameters:
           Name  Flags
      conn       
      lobId      
      precision  

  private static void verifyPageStore(org.h2.store.DataHandler);
    descriptor: (Lorg/h2/store/DataHandler;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.store.DataHandler h
         0: .line 227
            aload 0 /* h */
            invokeinterface org.h2.store.DataHandler.getLobStorage:()Lorg/h2/store/LobStorageInterface;
            instanceof org.h2.store.LobStorageMap
            ifeq 4
         1: .line 228
            ldc 50100
         2: .line 229
            ldc "Restore page store recovery SQL script can only be restored to a PageStore file"
         3: .line 228
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
         4: .line 232
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.store.DataHandler h
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     h  Lorg/h2/store/DataHandler;
    MethodParameters:
      Name  Flags
      h     

  public static org.h2.value.ValueLobDb readClobDb(java.sql.Connection, long, long);
    descriptor: (Ljava/sql/Connection;JJ)Lorg/h2/value/ValueLobDb;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // java.sql.Connection conn
        start local 1 // long lobId
        start local 3 // long precision
         0: .line 239
            aload 0 /* conn */
            checkcast org.h2.jdbc.JdbcConnection
            invokevirtual org.h2.jdbc.JdbcConnection.getSession:()Lorg/h2/engine/SessionInterface;
            invokeinterface org.h2.engine.SessionInterface.getDataHandler:()Lorg/h2/store/DataHandler;
            astore 5 /* h */
        start local 5 // org.h2.store.DataHandler h
         1: .line 240
            aload 5 /* h */
            invokestatic org.h2.tools.Recover.verifyPageStore:(Lorg/h2/store/DataHandler;)V
         2: .line 241
            bipush 16
            aload 5 /* h */
            bipush -2
         3: .line 242
            lload 1 /* lobId */
            aconst_null
            lload 3 /* precision */
         4: .line 241
            invokestatic org.h2.value.ValueLobDb.create:(ILorg/h2/store/DataHandler;IJ[BJ)Lorg/h2/value/ValueLobDb;
            astore 6 /* lob */
        start local 6 // org.h2.value.ValueLobDb lob
         5: .line 243
            aload 6 /* lob */
            iconst_1
            invokevirtual org.h2.value.ValueLobDb.setRecoveryReference:(Z)V
         6: .line 244
            aload 6 /* lob */
            areturn
        end local 6 // org.h2.value.ValueLobDb lob
        end local 5 // org.h2.store.DataHandler h
        end local 3 // long precision
        end local 1 // long lobId
        end local 0 // java.sql.Connection conn
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       conn  Ljava/sql/Connection;
            0    7     1      lobId  J
            0    7     3  precision  J
            1    7     5          h  Lorg/h2/store/DataHandler;
            5    7     6        lob  Lorg/h2/value/ValueLobDb;
    MethodParameters:
           Name  Flags
      conn       
      lobId      
      precision  

  public static java.io.InputStream readBlobMap(java.sql.Connection, long, long);
    descriptor: (Ljava/sql/Connection;JJ)Ljava/io/InputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.sql.Connection conn
        start local 1 // long lobId
        start local 3 // long precision
         0: .line 252
            aload 0 /* conn */
         1: .line 253
            ldc "SELECT DATA FROM INFORMATION_SCHEMA.LOB_BLOCKS WHERE LOB_ID = ? AND SEQ = ? AND ? > 0"
         2: .line 252
            invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            astore 5 /* prep */
        start local 5 // java.sql.PreparedStatement prep
         3: .line 255
            aload 5 /* prep */
            iconst_1
            lload 1 /* lobId */
            invokeinterface java.sql.PreparedStatement.setLong:(IJ)V
         4: .line 258
            aload 5 /* prep */
            iconst_3
            lload 3 /* precision */
            invokeinterface java.sql.PreparedStatement.setLong:(IJ)V
         5: .line 259
            new java.io.SequenceInputStream
            dup
         6: .line 260
            new org.h2.tools.Recover$1
            dup
            aload 5 /* prep */
            invokespecial org.h2.tools.Recover$1.<init>:(Ljava/sql/PreparedStatement;)V
         7: .line 259
            invokespecial java.io.SequenceInputStream.<init>:(Ljava/util/Enumeration;)V
            areturn
        end local 5 // java.sql.PreparedStatement prep
        end local 3 // long precision
        end local 1 // long lobId
        end local 0 // java.sql.Connection conn
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       conn  Ljava/sql/Connection;
            0    8     1      lobId  J
            0    8     3  precision  J
            3    8     5       prep  Ljava/sql/PreparedStatement;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
           Name  Flags
      conn       
      lobId      
      precision  

  public static java.io.Reader readClobMap(java.sql.Connection, long, long);
    descriptor: (Ljava/sql/Connection;JJ)Ljava/io/Reader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // java.sql.Connection conn
        start local 1 // long lobId
        start local 3 // long precision
         0: .line 298
            aload 0 /* conn */
            lload 1 /* lobId */
            lload 3 /* precision */
            invokestatic org.h2.tools.Recover.readBlobMap:(Ljava/sql/Connection;JJ)Ljava/io/InputStream;
            astore 5 /* in */
        start local 5 // java.io.InputStream in
         1: .line 299
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 5 /* in */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            areturn
        end local 5 // java.io.InputStream in
        end local 3 // long precision
        end local 1 // long lobId
        end local 0 // java.sql.Connection conn
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       conn  Ljava/sql/Connection;
            0    2     1      lobId  J
            0    2     3  precision  J
            1    2     5         in  Ljava/io/InputStream;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
           Name  Flags
      conn       
      lobId      
      precision  

  private void trace(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.lang.String message
         0: .line 303
            aload 0 /* this */
            getfield org.h2.tools.Recover.trace:Z
            ifeq 2
         1: .line 304
            aload 0 /* this */
            getfield org.h2.tools.Recover.out:Ljava/io/PrintStream;
            aload 1 /* message */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 306
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String message
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/h2/tools/Recover;
            0    3     1  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  

  private void traceError(java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.lang.String message
        start local 2 // java.lang.Throwable t
         0: .line 309
            aload 0 /* this */
            getfield org.h2.tools.Recover.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            aload 1 /* message */
            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 /* t */
            invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 310
            aload 0 /* this */
            getfield org.h2.tools.Recover.trace:Z
            ifeq 3
         2: .line 311
            aload 2 /* t */
            aload 0 /* this */
            getfield org.h2.tools.Recover.out:Ljava/io/PrintStream;
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintStream;)V
         3: .line 313
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.String message
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/h2/tools/Recover;
            0    4     1  message  Ljava/lang/String;
            0    4     2        t  Ljava/lang/Throwable;
    MethodParameters:
         Name  Flags
      message  
      t        

  public static void execute(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String dir
        start local 1 // java.lang.String db
         0: .line 323
            new org.h2.tools.Recover
            dup
            invokespecial org.h2.tools.Recover.<init>:()V
            aload 0 /* dir */
            aload 1 /* db */
            invokevirtual org.h2.tools.Recover.process:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 324
            goto 4
      StackMap locals:
      StackMap stack: org.h2.message.DbException
         2: astore 2 /* e */
        start local 2 // org.h2.message.DbException e
         3: .line 325
            aload 2 /* e */
            invokestatic org.h2.message.DbException.toSQLException:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 2 // org.h2.message.DbException e
         4: .line 327
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String db
        end local 0 // java.lang.String dir
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   dir  Ljava/lang/String;
            0    5     1    db  Ljava/lang/String;
            3    4     2     e  Lorg/h2/message/DbException;
      Exception table:
        from    to  target  type
           0     1       2  Class org.h2.message.DbException
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      dir   
      db    

  private void process(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.lang.String dir
        start local 2 // java.lang.String db
         0: .line 330
            aload 1 /* dir */
            aload 2 /* db */
            iconst_1
            invokestatic org.h2.store.FileLister.getDatabaseFiles:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/ArrayList;
            astore 3 /* list */
        start local 3 // java.util.ArrayList list
         1: .line 331
            aload 3 /* list */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 3
         2: .line 332
            aload 0 /* this */
            aload 1 /* dir */
            aload 2 /* db */
            invokevirtual org.h2.tools.Recover.printNoDatabaseFilesFound:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 334
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 3 /* list */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 34
      StackMap locals: org.h2.tools.Recover java.lang.String java.lang.String java.util.ArrayList top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* fileName */
        start local 4 // java.lang.String fileName
         5: .line 335
            aload 4 /* fileName */
            ldc ".h2.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 8
         6: .line 336
            aload 0 /* this */
            aload 4 /* fileName */
            invokevirtual org.h2.tools.Recover.dumpPageStore:(Ljava/lang/String;)V
         7: .line 337
            goto 34
      StackMap locals: org.h2.tools.Recover java.lang.String java.lang.String java.util.ArrayList java.lang.String java.util.Iterator
      StackMap stack:
         8: aload 4 /* fileName */
            ldc ".lob.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 11
         9: .line 338
            aload 0 /* this */
            aload 4 /* fileName */
            iconst_0
            invokevirtual org.h2.tools.Recover.dumpLob:(Ljava/lang/String;Z)V
        10: .line 339
            goto 34
      StackMap locals:
      StackMap stack:
        11: aload 4 /* fileName */
            ldc ".mv.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 34
        12: .line 340
            aload 4 /* fileName */
            iconst_0
            aload 4 /* fileName */
            invokevirtual java.lang.String.length:()I
        13: .line 341
            ldc ".h2.db"
            invokevirtual java.lang.String.length:()I
            isub
        14: .line 340
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* f */
        start local 6 // java.lang.String f
        15: .line 342
            aconst_null
            astore 7
            aconst_null
            astore 8
        16: aload 0 /* this */
            aload 4 /* fileName */
            ldc ".txt"
            invokevirtual org.h2.tools.Recover.getWriter:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/PrintWriter;
            astore 9 /* writer */
        start local 9 // java.io.PrintWriter writer
        17: .line 343
            aload 4 /* fileName */
            aload 9 /* writer */
            iconst_1
            invokestatic org.h2.mvstore.MVStoreTool.dump:(Ljava/lang/String;Ljava/io/Writer;Z)V
        18: .line 344
            aload 4 /* fileName */
            aload 9 /* writer */
            invokestatic org.h2.mvstore.MVStoreTool.info:(Ljava/lang/String;Ljava/io/Writer;)Ljava/lang/String;
            pop
        19: .line 345
            aload 9 /* writer */
            ifnull 25
            aload 9 /* writer */
            invokevirtual java.io.PrintWriter.close:()V
            goto 25
      StackMap locals: org.h2.tools.Recover java.lang.String java.lang.String java.util.ArrayList java.lang.String java.util.Iterator java.lang.String java.lang.Throwable java.lang.Throwable java.io.PrintWriter
      StackMap stack: java.lang.Throwable
        20: astore 7
            aload 9 /* writer */
            ifnull 21
            aload 9 /* writer */
            invokevirtual java.io.PrintWriter.close:()V
        end local 9 // java.io.PrintWriter writer
      StackMap locals:
      StackMap stack:
        21: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 8
            aload 7
            ifnonnull 23
            aload 8
            astore 7
            goto 24
      StackMap locals:
      StackMap stack:
        23: aload 7
            aload 8
            if_acmpeq 24
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        24: aload 7
            athrow
        25: .line 346
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7
            aconst_null
            astore 8
        26: aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 6 /* f */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".h2.db"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc ".sql"
            invokevirtual org.h2.tools.Recover.getWriter:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/PrintWriter;
            astore 9 /* writer */
        start local 9 // java.io.PrintWriter writer
        27: .line 347
            aload 0 /* this */
            aload 9 /* writer */
            aload 4 /* fileName */
            invokevirtual org.h2.tools.Recover.dumpMVStoreFile:(Ljava/io/PrintWriter;Ljava/lang/String;)V
        28: .line 348
            aload 9 /* writer */
            ifnull 34
            aload 9 /* writer */
            invokevirtual java.io.PrintWriter.close:()V
            goto 34
      StackMap locals: org.h2.tools.Recover java.lang.String java.lang.String java.util.ArrayList java.lang.String java.util.Iterator java.lang.String java.lang.Throwable java.lang.Throwable java.io.PrintWriter
      StackMap stack: java.lang.Throwable
        29: astore 7
            aload 9 /* writer */
            ifnull 30
            aload 9 /* writer */
            invokevirtual java.io.PrintWriter.close:()V
        end local 9 // java.io.PrintWriter writer
      StackMap locals:
      StackMap stack:
        30: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: astore 8
            aload 7
            ifnonnull 32
            aload 8
            astore 7
            goto 33
      StackMap locals:
      StackMap stack:
        32: aload 7
            aload 8
            if_acmpeq 33
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        33: aload 7
            athrow
        end local 6 // java.lang.String f
        end local 4 // java.lang.String fileName
        34: .line 334
      StackMap locals: org.h2.tools.Recover java.lang.String java.lang.String java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        35: .line 351
            return
        end local 3 // java.util.ArrayList list
        end local 2 // java.lang.String db
        end local 1 // java.lang.String dir
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   36     0      this  Lorg/h2/tools/Recover;
            0   36     1       dir  Ljava/lang/String;
            0   36     2        db  Ljava/lang/String;
            1   36     3      list  Ljava/util/ArrayList<Ljava/lang/String;>;
            5   34     4  fileName  Ljava/lang/String;
           15   34     6         f  Ljava/lang/String;
           17   21     9    writer  Ljava/io/PrintWriter;
           27   30     9    writer  Ljava/io/PrintWriter;
      Exception table:
        from    to  target  type
          17    19      20  any
          16    22      22  any
          27    28      29  any
          26    31      31  any
    MethodParameters:
      Name  Flags
      dir   
      db    

  private java.io.PrintWriter getWriter(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/io/PrintWriter;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.lang.String fileName
        start local 2 // java.lang.String suffix
         0: .line 354
            aload 1 /* fileName */
            iconst_0
            aload 1 /* fileName */
            invokevirtual java.lang.String.length:()I
            iconst_3
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* fileName */
         1: .line 355
            new java.lang.StringBuilder
            dup
            aload 1 /* fileName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* outputFile */
        start local 3 // java.lang.String outputFile
         2: .line 356
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Created file: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* outputFile */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.tools.Recover.trace:(Ljava/lang/String;)V
         3: .line 358
            new java.io.PrintWriter
            dup
         4: .line 359
            aload 3 /* outputFile */
            iconst_0
            invokestatic org.h2.store.fs.FileUtils.newOutputStream:(Ljava/lang/String;Z)Ljava/io/OutputStream;
         5: .line 358
            invokestatic org.h2.util.IOUtils.getBufferedWriter:(Ljava/io/OutputStream;)Ljava/io/Writer;
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
         6: areturn
         7: .line 360
      StackMap locals: org.h2.tools.Recover java.lang.String java.lang.String java.lang.String
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
         8: .line 361
            aload 4 /* e */
            aconst_null
            invokestatic org.h2.message.DbException.convertIOException:(Ljava/io/IOException;Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 4 // java.io.IOException e
        end local 3 // java.lang.String outputFile
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String fileName
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/h2/tools/Recover;
            0    9     1    fileName  Ljava/lang/String;
            0    9     2      suffix  Ljava/lang/String;
            2    9     3  outputFile  Ljava/lang/String;
            8    9     4           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     6       7  Class java.io.IOException
    MethodParameters:
          Name  Flags
      fileName  
      suffix    

  private void writeDataError(java.io.PrintWriter, java.lang.String, byte[]);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/String;[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // java.lang.String error
        start local 3 // byte[] data
         0: .line 366
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- ERROR: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* error */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " storageId: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 367
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " recordLength: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.recordLength:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " valueId: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.valueId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         2: .line 366
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         3: .line 368
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* sb */
        start local 4 // java.lang.StringBuilder sb
         4: .line 369
            aload 3 /* data */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 12
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter java.lang.String byte[] java.lang.StringBuilder top int int byte[]
      StackMap stack:
         5: aload 8
            iload 6
            baload
            istore 5 /* aData1 */
        start local 5 // byte aData1
         6: .line 370
            iload 5 /* aData1 */
            sipush 255
            iand
            istore 9 /* x */
        start local 9 // int x
         7: .line 371
            iload 9 /* x */
            bipush 32
            if_icmplt 10
            iload 9 /* x */
            sipush 128
            if_icmpge 10
         8: .line 372
            aload 4 /* sb */
            iload 9 /* x */
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         9: .line 373
            goto 11
        10: .line 374
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter java.lang.String byte[] java.lang.StringBuilder int int int byte[] int
      StackMap stack:
            aload 4 /* sb */
            bipush 63
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 9 // int x
        end local 5 // byte aData1
        11: .line 369
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter java.lang.String byte[] java.lang.StringBuilder top int int byte[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        12: iload 6
            iload 7
            if_icmplt 5
        13: .line 377
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- dump: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        14: .line 378
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* sb */
        15: .line 379
            aload 3 /* data */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 23
      StackMap locals:
      StackMap stack:
        16: aload 8
            iload 6
            baload
            istore 5 /* aData */
        start local 5 // byte aData
        17: .line 380
            iload 5 /* aData */
            sipush 255
            iand
            istore 9 /* x */
        start local 9 // int x
        18: .line 381
            aload 4 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        19: .line 382
            iload 9 /* x */
            bipush 16
            if_icmpge 21
        20: .line 383
            aload 4 /* sb */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        21: .line 385
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter java.lang.String byte[] java.lang.StringBuilder int int int byte[] int
      StackMap stack:
            aload 4 /* sb */
            iload 9 /* x */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 9 // int x
        end local 5 // byte aData
        22: .line 379
            iinc 6 1
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter java.lang.String byte[] java.lang.StringBuilder top int int byte[]
      StackMap stack:
        23: iload 6
            iload 7
            if_icmplt 16
        24: .line 387
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- dump: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        25: .line 388
            return
        end local 4 // java.lang.StringBuilder sb
        end local 3 // byte[] data
        end local 2 // java.lang.String error
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   26     0    this  Lorg/h2/tools/Recover;
            0   26     1  writer  Ljava/io/PrintWriter;
            0   26     2   error  Ljava/lang/String;
            0   26     3    data  [B
            4   26     4      sb  Ljava/lang/StringBuilder;
            6   11     5  aData1  B
            7   11     9       x  I
           17   22     5   aData  B
           18   22     9       x  I
    MethodParameters:
        Name  Flags
      writer  
      error   
      data    

  private void dumpLob(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.lang.String fileName
        start local 2 // boolean lobCompression
         0: .line 391
            aconst_null
            astore 3 /* fileOut */
        start local 3 // java.io.OutputStream fileOut
         1: .line 392
            aconst_null
            astore 4 /* fileStore */
        start local 4 // org.h2.store.FileStore fileStore
         2: .line 393
            lconst_0
            lstore 5 /* size */
        start local 5 // long size
         3: .line 394
            new java.lang.StringBuilder
            dup
            aload 1 /* fileName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* lobCompression */
            ifeq 4
            ldc ".comp"
            goto 5
      StackMap locals: org.h2.tools.Recover java.lang.String int java.io.OutputStream org.h2.store.FileStore long
      StackMap stack: java.lang.StringBuilder
         4: ldc ""
      StackMap locals: org.h2.tools.Recover java.lang.String int java.io.OutputStream org.h2.store.FileStore long
      StackMap stack: java.lang.StringBuilder java.lang.String
         5: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".txt"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* n */
        start local 7 // java.lang.String n
         6: .line 395
            aconst_null
            astore 8 /* in */
        start local 8 // java.io.InputStream in
         7: .line 397
            aload 7 /* n */
            iconst_0
            invokestatic org.h2.store.fs.FileUtils.newOutputStream:(Ljava/lang/String;Z)Ljava/io/OutputStream;
            astore 3 /* fileOut */
         8: .line 398
            aconst_null
            aload 1 /* fileName */
            ldc "r"
            invokestatic org.h2.store.FileStore.open:(Lorg/h2/store/DataHandler;Ljava/lang/String;Ljava/lang/String;)Lorg/h2/store/FileStore;
            astore 4 /* fileStore */
         9: .line 399
            aload 4 /* fileStore */
            invokevirtual org.h2.store.FileStore.init:()V
        10: .line 400
            new org.h2.store.FileStoreInputStream
            dup
            aload 4 /* fileStore */
            aload 0 /* this */
            iload 2 /* lobCompression */
            iconst_0
            invokespecial org.h2.store.FileStoreInputStream.<init>:(Lorg/h2/store/FileStore;Lorg/h2/store/DataHandler;ZZ)V
            astore 8 /* in */
        11: .line 401
            aload 8 /* in */
            aload 3 /* fileOut */
            invokestatic org.h2.util.IOUtils.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)J
            lstore 5 /* size */
        12: .line 402
            goto 22
      StackMap locals: org.h2.tools.Recover java.lang.String int java.io.OutputStream org.h2.store.FileStore long java.lang.String java.io.InputStream
      StackMap stack: java.lang.Throwable
        13: pop
        14: .line 406
            aload 3 /* fileOut */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
        15: .line 407
            aload 8 /* in */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
        16: .line 408
            aload 4 /* fileStore */
            invokestatic org.h2.tools.Recover.closeSilently:(Lorg/h2/store/FileStore;)V
            goto 25
        17: .line 405
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        18: .line 406
            aload 3 /* fileOut */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
        19: .line 407
            aload 8 /* in */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
        20: .line 408
            aload 4 /* fileStore */
            invokestatic org.h2.tools.Recover.closeSilently:(Lorg/h2/store/FileStore;)V
        21: .line 409
            aload 9
            athrow
        22: .line 406
      StackMap locals:
      StackMap stack:
            aload 3 /* fileOut */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
        23: .line 407
            aload 8 /* in */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
        24: .line 408
            aload 4 /* fileStore */
            invokestatic org.h2.tools.Recover.closeSilently:(Lorg/h2/store/FileStore;)V
        25: .line 410
      StackMap locals:
      StackMap stack:
            lload 5 /* size */
            lconst_0
            lcmp
            ifne 30
        26: .line 412
            aload 7 /* n */
            invokestatic org.h2.store.fs.FileUtils.delete:(Ljava/lang/String;)V
        27: .line 413
            goto 30
      StackMap locals:
      StackMap stack: java.lang.Exception
        28: astore 9 /* e */
        start local 9 // java.lang.Exception e
        29: .line 414
            aload 0 /* this */
            aload 7 /* n */
            aload 9 /* e */
            invokevirtual org.h2.tools.Recover.traceError:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 9 // java.lang.Exception e
        30: .line 417
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.io.InputStream in
        end local 7 // java.lang.String n
        end local 5 // long size
        end local 4 // org.h2.store.FileStore fileStore
        end local 3 // java.io.OutputStream fileOut
        end local 2 // boolean lobCompression
        end local 1 // java.lang.String fileName
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   31     0            this  Lorg/h2/tools/Recover;
            0   31     1        fileName  Ljava/lang/String;
            0   31     2  lobCompression  Z
            1   31     3         fileOut  Ljava/io/OutputStream;
            2   31     4       fileStore  Lorg/h2/store/FileStore;
            3   31     5            size  J
            6   31     7               n  Ljava/lang/String;
            7   31     8              in  Ljava/io/InputStream;
           29   30     9               e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           7    12      13  Class java.lang.Throwable
           7    14      17  any
          26    27      28  Class java.lang.Exception
    MethodParameters:
                Name  Flags
      fileName        
      lobCompression  

  private void getSQL(java.lang.StringBuilder, java.lang.String, org.h2.value.Value);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;Lorg/h2/value/Value;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=12, args_size=4
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.lang.StringBuilder builder
        start local 2 // java.lang.String column
        start local 3 // org.h2.value.Value v
         0: .line 420
            aload 3 /* v */
            instanceof org.h2.value.ValueLob
            ifeq 13
         1: .line 421
            aload 3 /* v */
            checkcast org.h2.value.ValueLob
            astore 4 /* lob */
        start local 4 // org.h2.value.ValueLob lob
         2: .line 422
            aload 4 /* lob */
            invokevirtual org.h2.value.ValueLob.getSmall:()[B
            astore 5 /* small */
        start local 5 // byte[] small
         3: .line 423
            aload 5 /* small */
            ifnonnull 33
         4: .line 424
            aload 4 /* lob */
            invokevirtual org.h2.value.ValueLob.getFileName:()Ljava/lang/String;
            astore 6 /* file */
        start local 6 // java.lang.String file
         5: .line 425
            aload 4 /* lob */
            invokevirtual org.h2.value.ValueLob.getValueType:()I
            bipush 15
            if_icmpne 6
            ldc "BLOB"
            goto 7
      StackMap locals: org.h2.value.ValueLob byte[] java.lang.String
      StackMap stack:
         6: ldc "CLOB"
      StackMap locals:
      StackMap stack: java.lang.String
         7: astore 7 /* type */
        start local 7 // java.lang.String type
         8: .line 426
            aload 4 /* lob */
            invokevirtual org.h2.value.ValueLob.isCompressed:()Z
            ifeq 11
         9: .line 427
            aload 0 /* this */
            aload 6 /* file */
            iconst_1
            invokevirtual org.h2.tools.Recover.dumpLob:(Ljava/lang/String;Z)V
        10: .line 428
            new java.lang.StringBuilder
            dup
            aload 6 /* file */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".comp"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* file */
        11: .line 430
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* builder */
            ldc "READ_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "('"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".txt')"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 431
            return
        end local 7 // java.lang.String type
        end local 6 // java.lang.String file
        end local 5 // byte[] small
        end local 4 // org.h2.value.ValueLob lob
        13: .line 433
      StackMap locals: org.h2.tools.Recover java.lang.StringBuilder java.lang.String org.h2.value.Value
      StackMap stack:
            aload 3 /* v */
            instanceof org.h2.value.ValueLobDb
            ifeq 33
        14: .line 434
            aload 3 /* v */
            checkcast org.h2.value.ValueLobDb
            astore 4 /* lob */
        start local 4 // org.h2.value.ValueLobDb lob
        15: .line 435
            aload 4 /* lob */
            invokevirtual org.h2.value.ValueLobDb.getSmall:()[B
            astore 5 /* small */
        start local 5 // byte[] small
        16: .line 436
            aload 5 /* small */
            ifnonnull 33
        17: .line 437
            aload 4 /* lob */
            invokevirtual org.h2.value.ValueLobDb.getValueType:()I
            istore 6 /* type */
        start local 6 // int type
        18: .line 438
            aload 4 /* lob */
            invokevirtual org.h2.value.ValueLobDb.getLobId:()J
            lstore 7 /* id */
        start local 7 // long id
        19: .line 439
            aload 4 /* lob */
            invokevirtual org.h2.value.ValueLobDb.getType:()Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getPrecision:()J
            lstore 9 /* precision */
        start local 9 // long precision
        20: .line 441
            iload 6 /* type */
            bipush 15
            if_icmpne 24
        21: .line 442
            ldc "BLOB"
            astore 11 /* columnType */
        start local 11 // java.lang.String columnType
        22: .line 443
            aload 1 /* builder */
            ldc "READ_BLOB"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 444
            goto 26
        end local 11 // java.lang.String columnType
        24: .line 445
      StackMap locals: org.h2.tools.Recover java.lang.StringBuilder java.lang.String org.h2.value.Value org.h2.value.ValueLobDb byte[] int long long
      StackMap stack:
            ldc "CLOB"
            astore 11 /* columnType */
        start local 11 // java.lang.String columnType
        25: .line 446
            aload 1 /* builder */
            ldc "READ_CLOB"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        26: .line 448
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.lobMaps:Z
            ifeq 29
        27: .line 449
            aload 1 /* builder */
            ldc "_MAP"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 450
            goto 30
        29: .line 451
      StackMap locals:
      StackMap stack:
            aload 1 /* builder */
            ldc "_DB"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        30: .line 453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.columnTypeMap:Ljava/util/HashMap;
            aload 2 /* column */
            aload 11 /* columnType */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 454
            aload 1 /* builder */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            lload 7 /* id */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 9 /* precision */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        32: .line 455
            return
        end local 11 // java.lang.String columnType
        end local 9 // long precision
        end local 7 // long id
        end local 6 // int type
        end local 5 // byte[] small
        end local 4 // org.h2.value.ValueLobDb lob
        33: .line 458
      StackMap locals: org.h2.tools.Recover java.lang.StringBuilder java.lang.String org.h2.value.Value
      StackMap stack:
            aload 3 /* v */
            aload 1 /* builder */
            invokevirtual org.h2.value.Value.getSQL:(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
            pop
        34: .line 459
            return
        end local 3 // org.h2.value.Value v
        end local 2 // java.lang.String column
        end local 1 // java.lang.StringBuilder builder
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   35     0        this  Lorg/h2/tools/Recover;
            0   35     1     builder  Ljava/lang/StringBuilder;
            0   35     2      column  Ljava/lang/String;
            0   35     3           v  Lorg/h2/value/Value;
            2   13     4         lob  Lorg/h2/value/ValueLob;
            3   13     5       small  [B
            5   13     6        file  Ljava/lang/String;
            8   13     7        type  Ljava/lang/String;
           15   33     4         lob  Lorg/h2/value/ValueLobDb;
           16   33     5       small  [B
           18   33     6        type  I
           19   33     7          id  J
           20   33     9   precision  J
           22   24    11  columnType  Ljava/lang/String;
           25   33    11  columnType  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      builder  
      column   
      v        

  private void setDatabaseName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.lang.String name
         0: .line 462
            aload 0 /* this */
            aload 1 /* name */
            putfield org.h2.tools.Recover.databaseName:Ljava/lang/String;
         1: .line 463
            return
        end local 1 // java.lang.String name
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/tools/Recover;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private void dumpPageStore(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=24, args_size=2
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.lang.String fileName
         0: .line 466
            aload 0 /* this */
            aload 1 /* fileName */
            iconst_0
            aload 1 /* fileName */
            invokevirtual java.lang.String.length:()I
         1: .line 467
            ldc ".h2.db"
            invokevirtual java.lang.String.length:()I
            isub
         2: .line 466
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual org.h2.tools.Recover.setDatabaseName:(Ljava/lang/String;)V
         3: .line 468
            aconst_null
            astore 2 /* writer */
        start local 2 // java.io.PrintWriter writer
         4: .line 469
            aload 0 /* this */
            new org.h2.tools.Recover$Stats
            dup
            invokespecial org.h2.tools.Recover$Stats.<init>:()V
            putfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
         5: .line 471
            aload 0 /* this */
            aload 1 /* fileName */
            ldc ".sql"
            invokevirtual org.h2.tools.Recover.getWriter:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/PrintWriter;
            astore 2 /* writer */
         6: .line 472
            aload 2 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "CREATE ALIAS IF NOT EXISTS READ_BLOB FOR \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 473
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".readBlob\";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 472
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         9: .line 474
            aload 2 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "CREATE ALIAS IF NOT EXISTS READ_CLOB FOR \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 475
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".readClob\";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 474
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        12: .line 476
            aload 2 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "CREATE ALIAS IF NOT EXISTS READ_BLOB_DB FOR \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 477
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".readBlobDb\";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 476
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        15: .line 478
            aload 2 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "CREATE ALIAS IF NOT EXISTS READ_CLOB_DB FOR \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        16: .line 479
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".readClobDb\";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 478
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        18: .line 480
            aload 0 /* this */
            invokevirtual org.h2.tools.Recover.resetSchema:()V
        19: .line 481
            aload 0 /* this */
            aconst_null
            aload 1 /* fileName */
            aload 0 /* this */
            getfield org.h2.tools.Recover.remove:Z
            ifeq 20
            ldc "rw"
            goto 21
      StackMap locals: org.h2.tools.Recover java.lang.String java.io.PrintWriter
      StackMap stack: org.h2.tools.Recover null java.lang.String
        20: ldc "r"
      StackMap locals: org.h2.tools.Recover java.lang.String java.io.PrintWriter
      StackMap stack: org.h2.tools.Recover null java.lang.String java.lang.String
        21: invokestatic org.h2.store.FileStore.open:(Lorg/h2/store/DataHandler;Ljava/lang/String;Ljava/lang/String;)Lorg/h2/store/FileStore;
            putfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
        22: .line 482
            aload 0 /* this */
            getfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
            invokevirtual org.h2.store.FileStore.length:()J
            lstore 3 /* length */
        start local 3 // long length
        23: .line 484
            aload 0 /* this */
            getfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
            invokevirtual org.h2.store.FileStore.init:()V
        24: .line 485
            goto 27
      StackMap locals: org.h2.tools.Recover java.lang.String java.io.PrintWriter long
      StackMap stack: java.lang.Exception
        25: astore 5 /* e */
        start local 5 // java.lang.Exception e
        26: .line 486
            aload 0 /* this */
            aload 2 /* writer */
            aload 5 /* e */
            invokevirtual org.h2.tools.Recover.writeError:(Ljava/io/PrintWriter;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Exception e
        27: .line 488
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            sipush 128
            iconst_0
            invokestatic org.h2.store.Data.create:(Lorg/h2/store/DataHandler;IZ)Lorg/h2/store/Data;
            astore 5 /* s */
        start local 5 // org.h2.store.Data s
        28: .line 489
            aload 0 /* this */
            lconst_0
            invokevirtual org.h2.tools.Recover.seek:(J)V
        29: .line 490
            aload 0 /* this */
            getfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
            aload 5 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iconst_0
            sipush 128
            invokevirtual org.h2.store.FileStore.readFully:([BII)V
        30: .line 491
            aload 5 /* s */
            bipush 48
            invokevirtual org.h2.store.Data.setPos:(I)V
        31: .line 492
            aload 0 /* this */
            aload 5 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            putfield org.h2.tools.Recover.pageSize:I
        32: .line 493
            aload 5 /* s */
            invokevirtual org.h2.store.Data.readByte:()B
            istore 6 /* writeVersion */
        start local 6 // int writeVersion
        33: .line 494
            aload 5 /* s */
            invokevirtual org.h2.store.Data.readByte:()B
            istore 7 /* readVersion */
        start local 7 // int readVersion
        34: .line 495
            aload 2 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- pageSize: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        35: .line 496
            ldc " writeVersion: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* writeVersion */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        36: .line 497
            ldc " readVersion: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* readVersion */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        37: .line 495
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        38: .line 498
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            bipush 64
            if_icmplt 40
        39: .line 499
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            ldc 32768
            if_icmple 42
        40: .line 500
      StackMap locals: org.h2.store.Data int int
      StackMap stack:
            aload 0 /* this */
            sipush 4096
            putfield org.h2.tools.Recover.pageSize:I
        41: .line 501
            aload 2 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- ERROR: page size; using "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        42: .line 503
      StackMap locals:
      StackMap stack:
            lload 3 /* length */
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            i2l
            ldiv
            lstore 8 /* pageCount */
        start local 8 // long pageCount
        43: .line 504
            aload 0 /* this */
            lload 8 /* pageCount */
            l2i
            newarray 10
            putfield org.h2.tools.Recover.parents:[I
        44: .line 505
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            iconst_0
            invokestatic org.h2.store.Data.create:(Lorg/h2/store/DataHandler;IZ)Lorg/h2/store/Data;
            astore 5 /* s */
        45: .line 506
            ldc 3
            lstore 10 /* i */
        start local 10 // long i
        46: goto 54
        47: .line 507
      StackMap locals: long long
      StackMap stack:
            aload 5 /* s */
            invokevirtual org.h2.store.Data.reset:()V
        48: .line 508
            aload 0 /* this */
            lload 10 /* i */
            invokevirtual org.h2.tools.Recover.seek:(J)V
        49: .line 509
            aload 0 /* this */
            getfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
            aload 5 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iconst_0
            bipush 32
            invokevirtual org.h2.store.FileStore.readFully:([BII)V
        50: .line 510
            aload 5 /* s */
            invokevirtual org.h2.store.Data.readByte:()B
            pop
        51: .line 511
            aload 5 /* s */
            invokevirtual org.h2.store.Data.readShortInt:()S
            pop
        52: .line 512
            aload 0 /* this */
            getfield org.h2.tools.Recover.parents:[I
            lload 10 /* i */
            l2i
            aload 5 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            iastore
        53: .line 506
            lload 10 /* i */
            lconst_1
            ladd
            lstore 10 /* i */
      StackMap locals:
      StackMap stack:
        54: lload 10 /* i */
            lload 8 /* pageCount */
            lcmp
            iflt 47
        end local 10 // long i
        55: .line 514
            iconst_0
            istore 10 /* logKey */
        start local 10 // int logKey
        56: iconst_0
            istore 11 /* logFirstTrunkPage */
        start local 11 // int logFirstTrunkPage
        57: iconst_0
            istore 12 /* logFirstDataPage */
        start local 12 // int logFirstDataPage
        58: .line 515
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            iconst_0
            invokestatic org.h2.store.Data.create:(Lorg/h2/store/DataHandler;IZ)Lorg/h2/store/Data;
            astore 5 /* s */
        59: .line 516
            lconst_1
            lstore 13 /* i */
        start local 13 // long i
        60: .line 517
      StackMap locals: org.h2.tools.Recover java.lang.String java.io.PrintWriter long org.h2.store.Data int int long int int int long
      StackMap stack:
            lload 13 /* i */
            ldc 3
            lcmp
            ifne 62
        61: .line 518
            goto 86
        62: .line 520
      StackMap locals:
      StackMap stack:
            aload 5 /* s */
            invokevirtual org.h2.store.Data.reset:()V
        63: .line 521
            aload 0 /* this */
            lload 13 /* i */
            invokevirtual org.h2.tools.Recover.seek:(J)V
        64: .line 522
            aload 0 /* this */
            getfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
            aload 5 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iconst_0
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            invokevirtual org.h2.store.FileStore.readFully:([BII)V
        65: .line 523
            new java.util.zip.CRC32
            dup
            invokespecial java.util.zip.CRC32.<init>:()V
            astore 15 /* crc */
        start local 15 // java.util.zip.CRC32 crc
        66: .line 524
            aload 15 /* crc */
            aload 5 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iconst_4
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            iconst_4
            isub
            invokevirtual java.util.zip.CRC32.update:([BII)V
        67: .line 525
            aload 15 /* crc */
            invokevirtual java.util.zip.CRC32.getValue:()J
            l2i
            istore 16 /* expected */
        start local 16 // int expected
        68: .line 526
            aload 5 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            istore 17 /* got */
        start local 17 // int got
        69: .line 527
            aload 5 /* s */
            invokevirtual org.h2.store.Data.readLong:()J
            lstore 18 /* writeCounter */
        start local 18 // long writeCounter
        70: .line 528
            aload 5 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            istore 20 /* key */
        start local 20 // int key
        71: .line 529
            aload 5 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            istore 21 /* firstTrunkPage */
        start local 21 // int firstTrunkPage
        72: .line 530
            aload 5 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            istore 22 /* firstDataPage */
        start local 22 // int firstDataPage
        73: .line 531
            iload 16 /* expected */
            iload 17 /* got */
            if_icmpne 77
        74: .line 532
            iload 20 /* key */
            istore 10 /* logKey */
        75: .line 533
            iload 21 /* firstTrunkPage */
            istore 11 /* logFirstTrunkPage */
        76: .line 534
            iload 22 /* firstDataPage */
            istore 12 /* logFirstDataPage */
        77: .line 536
      StackMap locals: org.h2.tools.Recover java.lang.String java.io.PrintWriter long org.h2.store.Data int int long int int int long java.util.zip.CRC32 int int long int int int
      StackMap stack:
            aload 2 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- head "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 13 /* i */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        78: .line 537
            ldc ": writeCounter: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 18 /* writeCounter */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        79: .line 538
            ldc " log "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 20 /* key */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 21 /* firstTrunkPage */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 22 /* firstDataPage */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        80: .line 539
            ldc " crc "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 17 /* got */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 16 /* expected */
            iload 17 /* got */
            if_icmpne 82
        81: .line 540
            ldc "ok"
            goto 83
      StackMap locals: org.h2.tools.Recover java.lang.String java.io.PrintWriter long org.h2.store.Data int int long int int int long java.util.zip.CRC32 int int long int int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder
        82: new java.lang.StringBuilder
            dup
            ldc "expected: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 16 /* expected */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals: org.h2.tools.Recover java.lang.String java.io.PrintWriter long org.h2.store.Data int int long int int int long java.util.zip.CRC32 int int long int int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder java.lang.String
        83: 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;
        84: .line 536
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 22 // int firstDataPage
        end local 21 // int firstTrunkPage
        end local 20 // int key
        end local 18 // long writeCounter
        end local 17 // int got
        end local 16 // int expected
        end local 15 // java.util.zip.CRC32 crc
        85: .line 516
            lload 13 /* i */
            lconst_1
            ladd
            lstore 13 /* i */
            goto 60
        end local 13 // long i
        86: .line 542
      StackMap locals: org.h2.tools.Recover java.lang.String java.io.PrintWriter long org.h2.store.Data int int long int int int
      StackMap stack:
            aload 2 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- log "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* logKey */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 11 /* logFirstTrunkPage */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        87: .line 543
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 12 /* logFirstDataPage */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        88: .line 542
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        89: .line 545
            new java.io.PrintWriter
            dup
            new org.h2.tools.Recover$2
            dup
            aload 0 /* this */
            invokespecial org.h2.tools.Recover$2.<init>:(Lorg/h2/tools/Recover;)V
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
            astore 13 /* devNull */
        start local 13 // java.io.PrintWriter devNull
        90: .line 551
            aload 0 /* this */
            aload 13 /* devNull */
            lload 8 /* pageCount */
            invokevirtual org.h2.tools.Recover.dumpPageStore:(Ljava/io/PrintWriter;J)V
        91: .line 552
            aload 0 /* this */
            new org.h2.tools.Recover$Stats
            dup
            invokespecial org.h2.tools.Recover$Stats.<init>:()V
            putfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
        92: .line 553
            aload 0 /* this */
            getfield org.h2.tools.Recover.schema:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
        93: .line 554
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.h2.tools.Recover.objectIdSet:Ljava/util/HashSet;
        94: .line 555
            aload 0 /* this */
            aload 2 /* writer */
            lload 8 /* pageCount */
            invokevirtual org.h2.tools.Recover.dumpPageStore:(Ljava/io/PrintWriter;J)V
        95: .line 556
            aload 0 /* this */
            aload 2 /* writer */
            invokevirtual org.h2.tools.Recover.writeSchemaSET:(Ljava/io/PrintWriter;)V
        96: .line 557
            aload 0 /* this */
            aload 2 /* writer */
            invokevirtual org.h2.tools.Recover.writeSchema:(Ljava/io/PrintWriter;)V
        97: .line 559
            aload 0 /* this */
            aload 2 /* writer */
            iload 10 /* logKey */
            iload 11 /* logFirstTrunkPage */
        98: .line 560
            iload 12 /* logFirstDataPage */
            lload 8 /* pageCount */
        99: .line 559
            invokevirtual org.h2.tools.Recover.dumpPageLogStream:(Ljava/io/PrintWriter;IIIJ)V
       100: .line 561
            goto 102
      StackMap locals: org.h2.tools.Recover java.lang.String java.io.PrintWriter long org.h2.store.Data int int long int int int java.io.PrintWriter
      StackMap stack: java.io.IOException
       101: pop
       102: .line 564
      StackMap locals:
      StackMap stack:
            aload 2 /* writer */
            ldc "---- Statistics ----"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
       103: .line 565
            aload 2 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- page count: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 8 /* pageCount */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", free: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.free:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
       104: .line 566
            lconst_1
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageDataRows:J
       105: .line 567
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageDataEmpty:J
            ladd
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageDataHead:J
            ladd
       106: .line 566
            invokestatic java.lang.Math.max:(JJ)J
            lstore 14 /* total */
        start local 14 // long total
       107: .line 568
            aload 2 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- page data bytes: head "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageDataHead:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
       108: .line 569
            ldc ", empty "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageDataEmpty:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
       109: .line 570
            ldc ", rows "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageDataRows:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
       110: .line 571
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc 100
            ldc 100
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageDataEmpty:J
            lmul
            lload 14 /* total */
            ldiv
            lsub
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "% full)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       111: .line 568
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
       112: .line 572
            iconst_0
            istore 16 /* i */
        start local 16 // int i
       113: goto 120
       114: .line 573
      StackMap locals: long int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageTypeCount:[I
            iload 16 /* i */
            iaload
            istore 17 /* count */
        start local 17 // int count
       115: .line 574
            iload 17 /* count */
            ifle 119
       116: .line 575
            aload 2 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 16 /* i */
            invokestatic org.h2.tools.Recover.getPageType:(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;
       117: .line 576
            bipush 100
            iload 17 /* count */
            imul
            i2l
            lload 8 /* pageCount */
            ldiv
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "%, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 17 /* count */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " page(s)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       118: .line 575
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 17 // int count
       119: .line 572
      StackMap locals:
      StackMap stack:
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
       120: iload 16 /* i */
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageTypeCount:[I
            arraylength
            if_icmplt 114
        end local 16 // int i
       121: .line 579
            aload 2 /* writer */
            invokevirtual java.io.PrintWriter.close:()V
        end local 14 // long total
        end local 13 // java.io.PrintWriter devNull
        end local 12 // int logFirstDataPage
        end local 11 // int logFirstTrunkPage
        end local 10 // int logKey
        end local 8 // long pageCount
        end local 7 // int readVersion
        end local 6 // int writeVersion
        end local 5 // org.h2.store.Data s
        end local 3 // long length
       122: .line 580
            goto 131
      StackMap locals: org.h2.tools.Recover java.lang.String java.io.PrintWriter
      StackMap stack: java.lang.Throwable
       123: astore 3 /* e */
        start local 3 // java.lang.Throwable e
       124: .line 581
            aload 0 /* this */
            aload 2 /* writer */
            aload 3 /* e */
            invokevirtual org.h2.tools.Recover.writeError:(Ljava/io/PrintWriter;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable e
       125: .line 583
            aload 2 /* writer */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
       126: .line 584
            aload 0 /* this */
            getfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
            invokestatic org.h2.tools.Recover.closeSilently:(Lorg/h2/store/FileStore;)V
            goto 133
       127: .line 582
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 23
       128: .line 583
            aload 2 /* writer */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
       129: .line 584
            aload 0 /* this */
            getfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
            invokestatic org.h2.tools.Recover.closeSilently:(Lorg/h2/store/FileStore;)V
       130: .line 585
            aload 23
            athrow
       131: .line 583
      StackMap locals:
      StackMap stack:
            aload 2 /* writer */
            invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
       132: .line 584
            aload 0 /* this */
            getfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
            invokestatic org.h2.tools.Recover.closeSilently:(Lorg/h2/store/FileStore;)V
       133: .line 586
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.PrintWriter writer
        end local 1 // java.lang.String fileName
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0  134     0               this  Lorg/h2/tools/Recover;
            0  134     1           fileName  Ljava/lang/String;
            4  134     2             writer  Ljava/io/PrintWriter;
           23  122     3             length  J
           26   27     5                  e  Ljava/lang/Exception;
           28  122     5                  s  Lorg/h2/store/Data;
           33  122     6       writeVersion  I
           34  122     7        readVersion  I
           43  122     8          pageCount  J
           46   55    10                  i  J
           56  122    10             logKey  I
           57  122    11  logFirstTrunkPage  I
           58  122    12   logFirstDataPage  I
           60   86    13                  i  J
           66   85    15                crc  Ljava/util/zip/CRC32;
           68   85    16           expected  I
           69   85    17                got  I
           70   85    18       writeCounter  J
           71   85    20                key  I
           72   85    21     firstTrunkPage  I
           73   85    22      firstDataPage  I
           90  122    13            devNull  Ljava/io/PrintWriter;
          107  122    14              total  J
          113  121    16                  i  I
          115  119    17              count  I
          124  125     3                  e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          23    24      25  Class java.lang.Exception
          97   100     101  Class java.io.IOException
           5   122     123  Class java.lang.Throwable
           5   125     127  any
    MethodParameters:
          Name  Flags
      fileName  

  private void dumpMVStoreFile(java.io.PrintWriter, java.lang.String);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=18, args_size=3
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // java.lang.String fileName
         0: .line 589
            aload 1 /* writer */
            ldc "-- MVStore"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 590
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "CREATE ALIAS IF NOT EXISTS READ_BLOB FOR \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 591
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".readBlob\";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 590
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         4: .line 592
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "CREATE ALIAS IF NOT EXISTS READ_CLOB FOR \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 593
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".readClob\";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 592
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         7: .line 594
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "CREATE ALIAS IF NOT EXISTS READ_BLOB_DB FOR \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 595
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".readBlobDb\";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 594
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        10: .line 596
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "CREATE ALIAS IF NOT EXISTS READ_CLOB_DB FOR \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 597
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".readClobDb\";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 596
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        13: .line 598
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "CREATE ALIAS IF NOT EXISTS READ_BLOB_MAP FOR \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 599
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".readBlobMap\";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 598
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        16: .line 600
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "CREATE ALIAS IF NOT EXISTS READ_CLOB_MAP FOR \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        17: .line 601
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".readClobMap\";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 600
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        19: .line 602
            aload 0 /* this */
            invokevirtual org.h2.tools.Recover.resetSchema:()V
        20: .line 603
            aload 0 /* this */
            aload 2 /* fileName */
            iconst_0
            aload 2 /* fileName */
            invokevirtual java.lang.String.length:()I
        21: .line 604
            ldc ".mv.db"
            invokevirtual java.lang.String.length:()I
            isub
        22: .line 603
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual org.h2.tools.Recover.setDatabaseName:(Ljava/lang/String;)V
        23: .line 605
            new org.h2.mvstore.MVStore$Builder
            dup
            invokespecial org.h2.mvstore.MVStore$Builder.<init>:()V
        24: .line 606
            aload 2 /* fileName */
            invokevirtual org.h2.mvstore.MVStore$Builder.fileName:(Ljava/lang/String;)Lorg/h2/mvstore/MVStore$Builder;
            invokevirtual org.h2.mvstore.MVStore$Builder.readOnly:()Lorg/h2/mvstore/MVStore$Builder;
            invokevirtual org.h2.mvstore.MVStore$Builder.open:()Lorg/h2/mvstore/MVStore;
        25: .line 605
            astore 3 /* mv */
        start local 3 // org.h2.mvstore.MVStore mv
        26: .line 607
            aload 0 /* this */
            aload 1 /* writer */
            aload 3 /* mv */
            invokevirtual org.h2.tools.Recover.dumpLobMaps:(Ljava/io/PrintWriter;Lorg/h2/mvstore/MVStore;)V
        27: .line 608
            aload 1 /* writer */
            ldc "-- Meta"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        28: .line 609
            aload 1 /* writer */
            aload 3 /* mv */
            invokestatic org.h2.tools.Recover.dumpMeta:(Ljava/io/PrintWriter;Lorg/h2/mvstore/MVStore;)V
        29: .line 610
            aload 1 /* writer */
            ldc "-- Tables"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        30: .line 611
            new org.h2.mvstore.tx.TransactionStore
            dup
            aload 3 /* mv */
            invokespecial org.h2.mvstore.tx.TransactionStore.<init>:(Lorg/h2/mvstore/MVStore;)V
            astore 4 /* store */
        start local 4 // org.h2.mvstore.tx.TransactionStore store
        31: .line 613
            aload 4 /* store */
            invokevirtual org.h2.mvstore.tx.TransactionStore.init:()V
        32: .line 614
            goto 35
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter java.lang.String org.h2.mvstore.MVStore org.h2.mvstore.tx.TransactionStore
      StackMap stack: java.lang.Throwable
        33: astore 5 /* e */
        start local 5 // java.lang.Throwable e
        34: .line 615
            aload 0 /* this */
            aload 1 /* writer */
            aload 5 /* e */
            invokevirtual org.h2.tools.Recover.writeError:(Ljava/io/PrintWriter;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Throwable e
        35: .line 619
      StackMap locals:
      StackMap stack:
            new org.h2.mvstore.db.ValueDataType
            dup
            invokespecial org.h2.mvstore.db.ValueDataType.<init>:()V
            astore 5 /* type */
        start local 5 // org.h2.mvstore.db.ValueDataType type
        36: .line 620
            aload 3 /* mv */
            invokevirtual org.h2.mvstore.MVStore.getMapNames:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 60
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter java.lang.String org.h2.mvstore.MVStore org.h2.mvstore.tx.TransactionStore org.h2.mvstore.db.ValueDataType top java.util.Iterator
      StackMap stack:
        37: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* mapName */
        start local 6 // java.lang.String mapName
        38: .line 621
            aload 6 /* mapName */
            ldc "table."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 40
        39: .line 622
            goto 60
        40: .line 624
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter java.lang.String org.h2.mvstore.MVStore org.h2.mvstore.tx.TransactionStore org.h2.mvstore.db.ValueDataType java.lang.String java.util.Iterator
      StackMap stack:
            aload 6 /* mapName */
            ldc "table."
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* tableId */
        start local 8 // java.lang.String tableId
        41: .line 625
            aload 8 /* tableId */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            ifne 60
        42: .line 626
            aload 4 /* store */
            invokevirtual org.h2.mvstore.tx.TransactionStore.begin:()Lorg/h2/mvstore/tx/Transaction;
            aload 6 /* mapName */
            aload 5 /* type */
            aload 5 /* type */
            invokevirtual org.h2.mvstore.tx.Transaction.openMap:(Ljava/lang/String;Lorg/h2/mvstore/type/DataType;Lorg/h2/mvstore/type/DataType;)Lorg/h2/mvstore/tx/TransactionMap;
            astore 9 /* dataMap */
        start local 9 // org.h2.mvstore.tx.TransactionMap dataMap
        43: .line 627
            aload 9 /* dataMap */
            aconst_null
            invokevirtual org.h2.mvstore.tx.TransactionMap.keyIterator:(Ljava/lang/Object;)Ljava/util/Iterator;
            astore 10 /* dataIt */
        start local 10 // java.util.Iterator dataIt
        44: .line 628
            goto 59
        45: .line 629
      StackMap locals: java.lang.String org.h2.mvstore.tx.TransactionMap java.util.Iterator
      StackMap stack:
            aload 10 /* dataIt */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 11 /* rowId */
        start local 11 // org.h2.value.Value rowId
        46: .line 630
            aload 9 /* dataMap */
            aload 11 /* rowId */
            invokevirtual org.h2.mvstore.tx.TransactionMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.value.ValueArray
        47: .line 631
            invokevirtual org.h2.value.ValueArray.getList:()[Lorg/h2/value/Value;
        48: .line 630
            astore 12 /* values */
        start local 12 // org.h2.value.Value[] values
        49: .line 633
            new org.h2.result.SimpleRow
            dup
            aload 12 /* values */
            invokespecial org.h2.result.SimpleRow.<init>:([Lorg/h2/value/Value;)V
            astore 13 /* r */
        start local 13 // org.h2.result.SimpleRow r
        50: .line 634
            new org.h2.engine.MetaRecord
            dup
            aload 13 /* r */
            invokespecial org.h2.engine.MetaRecord.<init>:(Lorg/h2/result/SearchRow;)V
            astore 14 /* meta */
        start local 14 // org.h2.engine.MetaRecord meta
        51: .line 635
            aload 0 /* this */
            getfield org.h2.tools.Recover.schema:Ljava/util/ArrayList;
            aload 14 /* meta */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        52: .line 636
            aload 14 /* meta */
            invokevirtual org.h2.engine.MetaRecord.getObjectType:()I
            ifne 59
        53: .line 637
            aload 12 /* values */
            iconst_3
            aaload
            invokevirtual org.h2.value.Value.getString:()Ljava/lang/String;
            astore 15 /* sql */
        start local 15 // java.lang.String sql
        54: .line 638
            aload 15 /* sql */
            invokestatic org.h2.tools.Recover.extractTableOrViewName:(Ljava/lang/String;)Ljava/lang/String;
            astore 16 /* name */
        start local 16 // java.lang.String name
        55: .line 639
            aload 0 /* this */
            getfield org.h2.tools.Recover.tableMap:Ljava/util/HashMap;
            aload 14 /* meta */
            invokevirtual org.h2.engine.MetaRecord.getId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 16 /* name */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 16 // java.lang.String name
        end local 15 // java.lang.String sql
        end local 14 // org.h2.engine.MetaRecord meta
        end local 13 // org.h2.result.SimpleRow r
        56: .line 641
            goto 59
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter java.lang.String org.h2.mvstore.MVStore org.h2.mvstore.tx.TransactionStore org.h2.mvstore.db.ValueDataType java.lang.String java.util.Iterator java.lang.String org.h2.mvstore.tx.TransactionMap java.util.Iterator org.h2.value.Value org.h2.value.Value[]
      StackMap stack: java.lang.Throwable
        57: astore 13 /* t */
        start local 13 // java.lang.Throwable t
        58: .line 642
            aload 0 /* this */
            aload 1 /* writer */
            aload 13 /* t */
            invokevirtual org.h2.tools.Recover.writeError:(Ljava/io/PrintWriter;Ljava/lang/Throwable;)V
        end local 13 // java.lang.Throwable t
        end local 12 // org.h2.value.Value[] values
        end local 11 // org.h2.value.Value rowId
        59: .line 628
      StackMap locals:
      StackMap stack:
            aload 10 /* dataIt */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 45
        end local 10 // java.util.Iterator dataIt
        end local 9 // org.h2.mvstore.tx.TransactionMap dataMap
        end local 8 // java.lang.String tableId
        end local 6 // java.lang.String mapName
        60: .line 620
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter java.lang.String org.h2.mvstore.MVStore org.h2.mvstore.tx.TransactionStore org.h2.mvstore.db.ValueDataType top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 37
        61: .line 649
            aload 0 /* this */
            aload 1 /* writer */
            invokevirtual org.h2.tools.Recover.writeSchemaSET:(Ljava/io/PrintWriter;)V
        62: .line 650
            aload 1 /* writer */
            ldc "---- Table Data ----"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        63: .line 651
            aload 3 /* mv */
            invokevirtual org.h2.mvstore.MVStore.getMapNames:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 101
      StackMap locals:
      StackMap stack:
        64: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* mapName */
        start local 6 // java.lang.String mapName
        65: .line 652
            aload 6 /* mapName */
            ldc "table."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 67
        66: .line 653
            goto 101
        67: .line 655
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter java.lang.String org.h2.mvstore.MVStore org.h2.mvstore.tx.TransactionStore org.h2.mvstore.db.ValueDataType java.lang.String java.util.Iterator
      StackMap stack:
            aload 6 /* mapName */
            ldc "table."
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* tableId */
        start local 8 // java.lang.String tableId
        68: .line 656
            aload 8 /* tableId */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            ifne 70
        69: .line 657
            goto 101
        70: .line 659
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* store */
            invokevirtual org.h2.mvstore.tx.TransactionStore.begin:()Lorg/h2/mvstore/tx/Transaction;
            aload 6 /* mapName */
            aload 5 /* type */
            aload 5 /* type */
            invokevirtual org.h2.mvstore.tx.Transaction.openMap:(Ljava/lang/String;Lorg/h2/mvstore/type/DataType;Lorg/h2/mvstore/type/DataType;)Lorg/h2/mvstore/tx/TransactionMap;
            astore 9 /* dataMap */
        start local 9 // org.h2.mvstore.tx.TransactionMap dataMap
        71: .line 660
            aload 9 /* dataMap */
            aconst_null
            invokevirtual org.h2.mvstore.tx.TransactionMap.keyIterator:(Ljava/lang/Object;)Ljava/util/Iterator;
            astore 10 /* dataIt */
        start local 10 // java.util.Iterator dataIt
        72: .line 661
            iconst_0
            istore 11 /* init */
        start local 11 // boolean init
        73: .line 662
            goto 100
        74: .line 663
      StackMap locals: org.h2.mvstore.tx.TransactionMap java.util.Iterator int
      StackMap stack:
            aload 10 /* dataIt */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 12 /* rowId */
        start local 12 // org.h2.value.Value rowId
        75: .line 664
            aload 9 /* dataMap */
            aload 12 /* rowId */
            invokevirtual org.h2.mvstore.tx.TransactionMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.value.ValueArray
            invokevirtual org.h2.value.ValueArray.getList:()[Lorg/h2/value/Value;
            astore 13 /* values */
        start local 13 // org.h2.value.Value[] values
        76: .line 665
            aload 0 /* this */
            aload 13 /* values */
            arraylength
            putfield org.h2.tools.Recover.recordLength:I
        77: .line 666
            iload 11 /* init */
            ifne 88
        78: .line 667
            aload 0 /* this */
            aload 8 /* tableId */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokevirtual org.h2.tools.Recover.setStorage:(I)Ljava/lang/String;
            pop
        79: .line 669
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 14 /* builder */
        start local 14 // java.lang.StringBuilder builder
        80: .line 670
            aload 0 /* this */
            iconst_0
            putfield org.h2.tools.Recover.valueId:I
            goto 85
        81: .line 671
      StackMap locals: org.h2.value.Value org.h2.value.Value[] java.lang.StringBuilder
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageName: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 0 /* this */
            getfield org.h2.tools.Recover.valueId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 15 /* columnName */
        start local 15 // java.lang.String columnName
        82: .line 672
            aload 14 /* builder */
            iconst_0
            invokevirtual java.lang.StringBuilder.setLength:(I)V
        83: .line 673
            aload 0 /* this */
            aload 14 /* builder */
            aload 15 /* columnName */
            aload 13 /* values */
            aload 0 /* this */
            getfield org.h2.tools.Recover.valueId:I
            aaload
            invokevirtual org.h2.tools.Recover.getSQL:(Ljava/lang/StringBuilder;Ljava/lang/String;Lorg/h2/value/Value;)V
        end local 15 // java.lang.String columnName
        84: .line 670
            aload 0 /* this */
            dup
            getfield org.h2.tools.Recover.valueId:I
            iconst_1
            iadd
            putfield org.h2.tools.Recover.valueId:I
      StackMap locals:
      StackMap stack:
        85: aload 0 /* this */
            getfield org.h2.tools.Recover.valueId:I
            aload 0 /* this */
            getfield org.h2.tools.Recover.recordLength:I
            if_icmplt 81
        86: .line 675
            aload 0 /* this */
            aload 1 /* writer */
            invokevirtual org.h2.tools.Recover.createTemporaryTable:(Ljava/io/PrintWriter;)V
        87: .line 676
            iconst_1
            istore 11 /* init */
        end local 14 // java.lang.StringBuilder builder
        88: .line 678
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 14 /* buff */
        start local 14 // java.lang.StringBuilder buff
        89: .line 679
            aload 14 /* buff */
            ldc "INSERT INTO O_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* tableId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        90: .line 680
            ldc " VALUES("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        91: .line 681
            aload 0 /* this */
            iconst_0
            putfield org.h2.tools.Recover.valueId:I
            goto 97
        92: .line 682
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.valueId:I
            ifle 94
        93: .line 683
            aload 14 /* buff */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        94: .line 685
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageName: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 0 /* this */
            getfield org.h2.tools.Recover.valueId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 15 /* columnName */
        start local 15 // java.lang.String columnName
        95: .line 686
            aload 0 /* this */
            aload 14 /* buff */
            aload 15 /* columnName */
            aload 13 /* values */
            aload 0 /* this */
            getfield org.h2.tools.Recover.valueId:I
            aaload
            invokevirtual org.h2.tools.Recover.getSQL:(Ljava/lang/StringBuilder;Ljava/lang/String;Lorg/h2/value/Value;)V
        end local 15 // java.lang.String columnName
        96: .line 681
            aload 0 /* this */
            dup
            getfield org.h2.tools.Recover.valueId:I
            iconst_1
            iadd
            putfield org.h2.tools.Recover.valueId:I
      StackMap locals:
      StackMap stack:
        97: aload 0 /* this */
            getfield org.h2.tools.Recover.valueId:I
            aload 0 /* this */
            getfield org.h2.tools.Recover.recordLength:I
            if_icmplt 92
        98: .line 688
            aload 14 /* buff */
            ldc ");"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        99: .line 689
            aload 1 /* writer */
            aload 14 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 14 // java.lang.StringBuilder buff
        end local 13 // org.h2.value.Value[] values
        end local 12 // org.h2.value.Value rowId
       100: .line 662
      StackMap locals:
      StackMap stack:
            aload 10 /* dataIt */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 74
        end local 11 // boolean init
        end local 10 // java.util.Iterator dataIt
        end local 9 // org.h2.mvstore.tx.TransactionMap dataMap
        end local 8 // java.lang.String tableId
        end local 6 // java.lang.String mapName
       101: .line 651
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter java.lang.String org.h2.mvstore.MVStore org.h2.mvstore.tx.TransactionStore org.h2.mvstore.db.ValueDataType top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 64
       102: .line 692
            aload 0 /* this */
            aload 1 /* writer */
            invokevirtual org.h2.tools.Recover.writeSchema:(Ljava/io/PrintWriter;)V
       103: .line 693
            aload 1 /* writer */
            ldc "DROP ALIAS READ_BLOB_MAP;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
       104: .line 694
            aload 1 /* writer */
            ldc "DROP ALIAS READ_CLOB_MAP;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
       105: .line 695
            aload 1 /* writer */
            ldc "DROP TABLE IF EXISTS INFORMATION_SCHEMA.LOB_BLOCKS;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 5 // org.h2.mvstore.db.ValueDataType type
       106: .line 696
            goto 113
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter java.lang.String org.h2.mvstore.MVStore org.h2.mvstore.tx.TransactionStore
      StackMap stack: java.lang.Throwable
       107: astore 5 /* e */
        start local 5 // java.lang.Throwable e
       108: .line 697
            aload 0 /* this */
            aload 1 /* writer */
            aload 5 /* e */
            invokevirtual org.h2.tools.Recover.writeError:(Ljava/io/PrintWriter;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Throwable e
       109: .line 699
            aload 3 /* mv */
            invokevirtual org.h2.mvstore.MVStore.close:()V
            goto 114
       110: .line 698
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 17
       111: .line 699
            aload 3 /* mv */
            invokevirtual org.h2.mvstore.MVStore.close:()V
       112: .line 700
            aload 17
            athrow
       113: .line 699
      StackMap locals:
      StackMap stack:
            aload 3 /* mv */
            invokevirtual org.h2.mvstore.MVStore.close:()V
       114: .line 701
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.h2.mvstore.tx.TransactionStore store
        end local 3 // org.h2.mvstore.MVStore mv
        end local 2 // java.lang.String fileName
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0  115     0        this  Lorg/h2/tools/Recover;
            0  115     1      writer  Ljava/io/PrintWriter;
            0  115     2    fileName  Ljava/lang/String;
           26  115     3          mv  Lorg/h2/mvstore/MVStore;
           31  115     4       store  Lorg/h2/mvstore/tx/TransactionStore;
           34   35     5           e  Ljava/lang/Throwable;
           36  106     5        type  Lorg/h2/mvstore/db/ValueDataType;
           38   60     6     mapName  Ljava/lang/String;
           41   60     8     tableId  Ljava/lang/String;
           43   60     9     dataMap  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
           44   60    10      dataIt  Ljava/util/Iterator<Lorg/h2/value/Value;>;
           46   59    11       rowId  Lorg/h2/value/Value;
           49   59    12      values  [Lorg/h2/value/Value;
           50   56    13           r  Lorg/h2/result/SimpleRow;
           51   56    14        meta  Lorg/h2/engine/MetaRecord;
           54   56    15         sql  Ljava/lang/String;
           55   56    16        name  Ljava/lang/String;
           58   59    13           t  Ljava/lang/Throwable;
           65  101     6     mapName  Ljava/lang/String;
           68  101     8     tableId  Ljava/lang/String;
           71  101     9     dataMap  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
           72  101    10      dataIt  Ljava/util/Iterator<Lorg/h2/value/Value;>;
           73  101    11        init  Z
           75  100    12       rowId  Lorg/h2/value/Value;
           76  100    13      values  [Lorg/h2/value/Value;
           80   88    14     builder  Ljava/lang/StringBuilder;
           82   84    15  columnName  Ljava/lang/String;
           89  100    14        buff  Ljava/lang/StringBuilder;
           95   96    15  columnName  Ljava/lang/String;
          108  109     5           e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          31    32      33  Class java.lang.Throwable
          49    56      57  Class java.lang.Throwable
          35   106     107  Class java.lang.Throwable
          35   109     110  any
    MethodParameters:
          Name  Flags
      writer    
      fileName  

  private static void dumpMeta(java.io.PrintWriter, org.h2.mvstore.MVStore);
    descriptor: (Ljava/io/PrintWriter;Lorg/h2/mvstore/MVStore;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.io.PrintWriter writer
        start local 1 // org.h2.mvstore.MVStore mv
         0: .line 704
            aload 1 /* mv */
            invokevirtual org.h2.mvstore.MVStore.getMetaMap:()Lorg/h2/mvstore/MVMap;
            astore 2 /* meta */
        start local 2 // org.h2.mvstore.MVMap meta
         1: .line 705
            aload 2 /* meta */
            invokevirtual org.h2.mvstore.MVMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: java.io.PrintWriter org.h2.mvstore.MVStore org.h2.mvstore.MVMap top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* e */
        start local 3 // java.util.Map$Entry e
         3: .line 706
            aload 0 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.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;
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 3 // java.util.Map$Entry e
         4: .line 705
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 708
            return
        end local 2 // org.h2.mvstore.MVMap meta
        end local 1 // org.h2.mvstore.MVStore mv
        end local 0 // java.io.PrintWriter writer
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  writer  Ljava/io/PrintWriter;
            0    6     1      mv  Lorg/h2/mvstore/MVStore;
            1    6     2    meta  Lorg/h2/mvstore/MVMap<Ljava/lang/String;Ljava/lang/String;>;
            3    4     3       e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
    MethodParameters:
        Name  Flags
      writer  
      mv      

  private void dumpLobMaps(java.io.PrintWriter, org.h2.mvstore.MVStore);
    descriptor: (Ljava/io/PrintWriter;Lorg/h2/mvstore/MVStore;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=18, args_size=3
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // org.h2.mvstore.MVStore mv
         0: .line 711
            aload 0 /* this */
            aload 2 /* mv */
            ldc "lobData"
            invokevirtual org.h2.mvstore.MVStore.hasMap:(Ljava/lang/String;)Z
            putfield org.h2.tools.Recover.lobMaps:Z
         1: .line 712
            aload 0 /* this */
            getfield org.h2.tools.Recover.lobMaps:Z
            ifne 3
         2: .line 713
            return
         3: .line 715
      StackMap locals:
      StackMap stack:
            aload 2 /* mv */
            ldc "lobData"
            invokevirtual org.h2.mvstore.MVStore.openMap:(Ljava/lang/String;)Lorg/h2/mvstore/MVMap;
            astore 3 /* lobData */
        start local 3 // org.h2.mvstore.MVMap lobData
         4: .line 716
            new org.h2.mvstore.StreamStore
            dup
            aload 3 /* lobData */
            invokespecial org.h2.mvstore.StreamStore.<init>:(Ljava/util/Map;)V
            astore 4 /* streamStore */
        start local 4 // org.h2.mvstore.StreamStore streamStore
         5: .line 717
            aload 2 /* mv */
            ldc "lobMap"
            invokevirtual org.h2.mvstore.MVStore.openMap:(Ljava/lang/String;)Lorg/h2/mvstore/MVMap;
            astore 5 /* lobMap */
        start local 5 // org.h2.mvstore.MVMap lobMap
         6: .line 718
            aload 1 /* writer */
            ldc "-- LOB"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         7: .line 719
            aload 1 /* writer */
            ldc "CREATE TABLE IF NOT EXISTS INFORMATION_SCHEMA.LOB_BLOCKS(LOB_ID BIGINT, SEQ INT, DATA BINARY, PRIMARY KEY(LOB_ID, SEQ));"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         8: .line 723
            iconst_0
            istore 6 /* hasErrors */
        start local 6 // boolean hasErrors
         9: .line 724
            aload 5 /* lobMap */
            invokevirtual org.h2.mvstore.MVMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 31
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.mvstore.MVStore org.h2.mvstore.MVMap org.h2.mvstore.StreamStore org.h2.mvstore.MVMap int top java.util.Iterator
      StackMap stack:
        10: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 7 /* e */
        start local 7 // java.util.Map$Entry e
        11: .line 725
            aload 7 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lstore 9 /* lobId */
        start local 9 // long lobId
        12: .line 726
            aload 7 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 11 /* value */
        start local 11 // java.lang.Object[] value
        13: .line 727
            aload 11 /* value */
            iconst_0
            aaload
            checkcast byte[]
            astore 12 /* streamStoreId */
        start local 12 // byte[] streamStoreId
        14: .line 728
            aload 4 /* streamStore */
            aload 12 /* streamStoreId */
            invokevirtual org.h2.mvstore.StreamStore.get:([B)Ljava/io/InputStream;
            astore 13 /* in */
        start local 13 // java.io.InputStream in
        15: .line 729
            sipush 8192
            istore 14 /* len */
        start local 14 // int len
        16: .line 730
            iload 14 /* len */
            newarray 8
            astore 15 /* block */
        start local 15 // byte[] block
        17: .line 732
            iconst_0
            istore 16 /* seq */
        start local 16 // int seq
        18: .line 733
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.mvstore.MVStore org.h2.mvstore.MVMap org.h2.mvstore.StreamStore org.h2.mvstore.MVMap int java.util.Map$Entry java.util.Iterator long java.lang.Object[] byte[] java.io.InputStream int byte[] int
      StackMap stack:
            aload 13 /* in */
            aload 15 /* block */
            aload 15 /* block */
            arraylength
            invokestatic org.h2.util.IOUtils.readFully:(Ljava/io/InputStream;[BI)I
            istore 17 /* l */
        start local 17 // int l
        19: .line 734
            iload 17 /* l */
            ifle 25
        20: .line 735
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "INSERT INTO INFORMATION_SCHEMA.LOB_BLOCKS VALUES("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        21: .line 736
            lload 9 /* lobId */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 16 /* seq */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 735
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        23: .line 737
            aload 1 /* writer */
            aload 15 /* block */
            iload 17 /* l */
            invokestatic org.h2.util.StringUtils.convertBytesToHex:([BI)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        24: .line 738
            aload 1 /* writer */
            ldc "');"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        25: .line 740
      StackMap locals: int
      StackMap stack:
            iload 17 /* l */
            iload 14 /* len */
            if_icmpeq 27
        26: .line 741
            goto 31
        end local 17 // int l
        27: .line 732
      StackMap locals:
      StackMap stack:
            iinc 16 /* seq */ 1
            goto 18
        end local 16 // int seq
        28: .line 744
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.mvstore.MVStore org.h2.mvstore.MVMap org.h2.mvstore.StreamStore org.h2.mvstore.MVMap int java.util.Map$Entry java.util.Iterator long java.lang.Object[] byte[] java.io.InputStream int byte[]
      StackMap stack: java.io.IOException
            astore 16 /* ex */
        start local 16 // java.io.IOException ex
        29: .line 745
            aload 0 /* this */
            aload 1 /* writer */
            aload 16 /* ex */
            invokevirtual org.h2.tools.Recover.writeError:(Ljava/io/PrintWriter;Ljava/lang/Throwable;)V
        30: .line 746
            iconst_1
            istore 6 /* hasErrors */
        end local 16 // java.io.IOException ex
        end local 15 // byte[] block
        end local 14 // int len
        end local 13 // java.io.InputStream in
        end local 12 // byte[] streamStoreId
        end local 11 // java.lang.Object[] value
        end local 9 // long lobId
        end local 7 // java.util.Map$Entry e
        31: .line 724
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.mvstore.MVStore org.h2.mvstore.MVMap org.h2.mvstore.StreamStore org.h2.mvstore.MVMap int top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        32: .line 749
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- lobMap.size: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* lobMap */
            invokevirtual org.h2.mvstore.MVMap.sizeAsLong:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        33: .line 750
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- lobData.size: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* lobData */
            invokevirtual org.h2.mvstore.MVMap.sizeAsLong:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        34: .line 752
            iload 6 /* hasErrors */
            ifeq 47
        35: .line 753
            aload 1 /* writer */
            ldc "-- lobMap"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        36: .line 754
            aload 5 /* lobMap */
            invokevirtual org.h2.mvstore.MVMap.keyList:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 41
      StackMap locals:
      StackMap stack:
        37: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Long
            astore 7 /* k */
        start local 7 // java.lang.Long k
        38: .line 755
            aload 5 /* lobMap */
            aload 7 /* k */
            invokevirtual org.h2.mvstore.MVMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 9 /* value */
        start local 9 // java.lang.Object[] value
        39: .line 756
            aload 9 /* value */
            iconst_0
            aaload
            checkcast byte[]
            astore 10 /* streamStoreId */
        start local 10 // byte[] streamStoreId
        40: .line 757
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "--     "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* k */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* streamStoreId */
            invokestatic org.h2.mvstore.StreamStore.toString:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 10 // byte[] streamStoreId
        end local 9 // java.lang.Object[] value
        end local 7 // java.lang.Long k
        41: .line 754
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 37
        42: .line 759
            aload 1 /* writer */
            ldc "-- lobData"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        43: .line 760
            aload 3 /* lobData */
            invokevirtual org.h2.mvstore.MVMap.keyList:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 46
      StackMap locals:
      StackMap stack:
        44: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Long
            astore 7 /* k */
        start local 7 // java.lang.Long k
        45: .line 761
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "--     "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* k */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " len "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* lobData */
            aload 7 /* k */
            invokevirtual org.h2.mvstore.MVMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 7 // java.lang.Long k
        46: .line 760
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 44
        47: .line 764
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.mvstore.MVStore org.h2.mvstore.MVMap org.h2.mvstore.StreamStore org.h2.mvstore.MVMap int
      StackMap stack:
            return
        end local 6 // boolean hasErrors
        end local 5 // org.h2.mvstore.MVMap lobMap
        end local 4 // org.h2.mvstore.StreamStore streamStore
        end local 3 // org.h2.mvstore.MVMap lobData
        end local 2 // org.h2.mvstore.MVStore mv
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   48     0           this  Lorg/h2/tools/Recover;
            0   48     1         writer  Ljava/io/PrintWriter;
            0   48     2             mv  Lorg/h2/mvstore/MVStore;
            4   48     3        lobData  Lorg/h2/mvstore/MVMap<Ljava/lang/Long;[B>;
            5   48     4    streamStore  Lorg/h2/mvstore/StreamStore;
            6   48     5         lobMap  Lorg/h2/mvstore/MVMap<Ljava/lang/Long;[Ljava/lang/Object;>;
            9   48     6      hasErrors  Z
           11   31     7              e  Ljava/util/Map$Entry<Ljava/lang/Long;[Ljava/lang/Object;>;
           12   31     9          lobId  J
           13   31    11          value  [Ljava/lang/Object;
           14   31    12  streamStoreId  [B
           15   31    13             in  Ljava/io/InputStream;
           16   31    14            len  I
           17   31    15          block  [B
           18   28    16            seq  I
           19   27    17              l  I
           29   31    16             ex  Ljava/io/IOException;
           38   41     7              k  Ljava/lang/Long;
           39   41     9          value  [Ljava/lang/Object;
           40   41    10  streamStoreId  [B
           45   46     7              k  Ljava/lang/Long;
      Exception table:
        from    to  target  type
          17    28      28  Class java.io.IOException
    MethodParameters:
        Name  Flags
      writer  
      mv      

  private static java.lang.String getPageType(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int type
         0: .line 767
            iload 0 /* type */
            tableswitch { // 0 - 8
                    0: 1
                    1: 2
                    2: 3
                    3: 4
                    4: 5
                    5: 6
                    6: 7
                    7: 8
                    8: 9
              default: 10
          }
         1: .line 769
      StackMap locals:
      StackMap stack:
            ldc "free"
            areturn
         2: .line 771
      StackMap locals:
      StackMap stack:
            ldc "data leaf"
            areturn
         3: .line 773
      StackMap locals:
      StackMap stack:
            ldc "data node"
            areturn
         4: .line 775
      StackMap locals:
      StackMap stack:
            ldc "data overflow"
            areturn
         5: .line 777
      StackMap locals:
      StackMap stack:
            ldc "btree leaf"
            areturn
         6: .line 779
      StackMap locals:
      StackMap stack:
            ldc "btree node"
            areturn
         7: .line 781
      StackMap locals:
      StackMap stack:
            ldc "free list"
            areturn
         8: .line 783
      StackMap locals:
      StackMap stack:
            ldc "stream trunk"
            areturn
         9: .line 785
      StackMap locals:
      StackMap stack:
            ldc "stream data"
            areturn
        10: .line 787
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)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 // int type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  type  I
    MethodParameters:
      Name  Flags
      type  

  private void dumpPageStore(java.io.PrintWriter, long);
    descriptor: (Ljava/io/PrintWriter;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // long pageCount
         0: .line 791
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            iconst_0
            invokestatic org.h2.store.Data.create:(Lorg/h2/store/DataHandler;IZ)Lorg/h2/store/Data;
            astore 4 /* s */
        start local 4 // org.h2.store.Data s
         1: .line 792
            ldc 3
            lstore 5 /* page */
        start local 5 // long page
         2: goto 8
         3: .line 793
      StackMap locals: org.h2.store.Data long
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            iconst_0
            invokestatic org.h2.store.Data.create:(Lorg/h2/store/DataHandler;IZ)Lorg/h2/store/Data;
            astore 4 /* s */
         4: .line 794
            aload 0 /* this */
            lload 5 /* page */
            invokevirtual org.h2.tools.Recover.seek:(J)V
         5: .line 795
            aload 0 /* this */
            getfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
            aload 4 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iconst_0
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            invokevirtual org.h2.store.FileStore.readFully:([BII)V
         6: .line 796
            aload 0 /* this */
            aload 1 /* writer */
            aload 4 /* s */
            lload 5 /* page */
            lload 2 /* pageCount */
            invokevirtual org.h2.tools.Recover.dumpPage:(Ljava/io/PrintWriter;Lorg/h2/store/Data;JJ)V
         7: .line 792
            lload 5 /* page */
            lconst_1
            ladd
            lstore 5 /* page */
      StackMap locals:
      StackMap stack:
         8: lload 5 /* page */
            lload 2 /* pageCount */
            lcmp
            iflt 3
        end local 5 // long page
         9: .line 798
            return
        end local 4 // org.h2.store.Data s
        end local 2 // long pageCount
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/h2/tools/Recover;
            0   10     1     writer  Ljava/io/PrintWriter;
            0   10     2  pageCount  J
            1   10     4          s  Lorg/h2/store/Data;
            2    9     5       page  J
    MethodParameters:
           Name  Flags
      writer     
      pageCount  

  private void dumpPage(java.io.PrintWriter, org.h2.store.Data, long, long);
    descriptor: (Ljava/io/PrintWriter;Lorg/h2/store/Data;JJ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=12, args_size=5
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // org.h2.store.Data s
        start local 3 // long page
        start local 5 // long pageCount
         0: .line 802
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readByte:()B
            istore 7 /* type */
        start local 7 // int type
         1: .line 803
            iload 7 /* type */
            tableswitch { // 0 - 0
                    0: 2
              default: 4
          }
         2: .line 805
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageTypeCount:[I
            iload 7 /* type */
            dup2
            iaload
            iconst_1
            iadd
            iastore
         3: .line 806
            return
         4: .line 808
      StackMap locals:
      StackMap stack:
            iload 7 /* type */
            bipush 16
            iand
            ifeq 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 8 /* last */
        start local 8 // boolean last
         7: .line 809
            iload 7 /* type */
            bipush -17
            iand
            istore 7 /* type */
         8: .line 810
            aload 2 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            lload 3 /* page */
            l2i
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            invokestatic org.h2.store.PageStore.checksumTest:([BII)Z
            ifne 10
         9: .line 811
            aload 0 /* this */
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "checksum mismatch type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            invokevirtual org.h2.tools.Recover.writeDataError:(Ljava/io/PrintWriter;Ljava/lang/String;[B)V
        10: .line 813
      StackMap locals: int
      StackMap stack:
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readShortInt:()S
            pop
        11: .line 814
            iload 7 /* type */
            tableswitch { // 1 - 8
                    1: 12
                    2: 26
                    3: 40
                    4: 47
                    5: 62
                    6: 75
                    7: 81
                    8: 84
              default: 87
          }
        12: .line 817
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageTypeCount:[I
            iload 7 /* type */
            dup2
            iaload
            iconst_1
            iadd
            iastore
        13: .line 818
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            istore 9 /* parentPageId */
        start local 9 // int parentPageId
        14: .line 819
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readVarInt:()I
            invokevirtual org.h2.tools.Recover.setStorage:(I)Ljava/lang/String;
            pop
        15: .line 820
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readVarInt:()I
            istore 10 /* columnCount */
        start local 10 // int columnCount
        16: .line 821
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readShortInt:()S
            istore 11 /* entries */
        start local 11 // int entries
        17: .line 822
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- page "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* page */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ": data leaf "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 823
            iload 8 /* last */
            ifeq 19
            ldc "(last) "
            goto 20
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int int int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder
        19: ldc ""
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int int int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder java.lang.String
        20: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "parent: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* parentPageId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        21: .line 824
            ldc " table: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " entries: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 11 /* entries */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        22: .line 825
            ldc " columns: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 10 /* columnCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 822
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        24: .line 826
            aload 0 /* this */
            aload 1 /* writer */
            aload 2 /* s */
            iload 8 /* last */
            lload 3 /* page */
            iload 10 /* columnCount */
            iload 11 /* entries */
            invokevirtual org.h2.tools.Recover.dumpPageDataLeaf:(Ljava/io/PrintWriter;Lorg/h2/store/Data;ZJII)V
        25: .line 827
            goto 91
        end local 11 // int entries
        end local 10 // int columnCount
        end local 9 // int parentPageId
        26: .line 831
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageTypeCount:[I
            iload 7 /* type */
            dup2
            iaload
            iconst_1
            iadd
            iastore
        27: .line 832
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            istore 9 /* parentPageId */
        start local 9 // int parentPageId
        28: .line 833
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readVarInt:()I
            invokevirtual org.h2.tools.Recover.setStorage:(I)Ljava/lang/String;
            pop
        29: .line 834
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            istore 10 /* rowCount */
        start local 10 // int rowCount
        30: .line 835
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readShortInt:()S
            istore 11 /* entries */
        start local 11 // int entries
        31: .line 836
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- page "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* page */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ": data node "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        32: .line 837
            iload 8 /* last */
            ifeq 33
            ldc "(last) "
            goto 34
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int int int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder
        33: ldc ""
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int int int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder java.lang.String
        34: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "parent: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* parentPageId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        35: .line 838
            ldc " table: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " entries: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 11 /* entries */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        36: .line 839
            ldc " rowCount: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 10 /* rowCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        37: .line 836
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        38: .line 840
            aload 0 /* this */
            aload 1 /* writer */
            aload 2 /* s */
            lload 3 /* page */
            iload 11 /* entries */
            invokevirtual org.h2.tools.Recover.dumpPageDataNode:(Ljava/io/PrintWriter;Lorg/h2/store/Data;JI)V
        39: .line 841
            goto 91
        end local 11 // int entries
        end local 10 // int rowCount
        end local 9 // int parentPageId
        40: .line 845
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageTypeCount:[I
            iload 7 /* type */
            dup2
            iaload
            iconst_1
            iadd
            iastore
        41: .line 846
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- page "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* page */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ": data overflow "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        42: .line 847
            iload 8 /* last */
            ifeq 43
            ldc "(last) "
            goto 44
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder
        43: ldc ""
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder java.lang.String
        44: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        45: .line 846
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        46: .line 848
            goto 91
        47: .line 851
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageTypeCount:[I
            iload 7 /* type */
            dup2
            iaload
            iconst_1
            iadd
            iastore
        48: .line 852
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            istore 9 /* parentPageId */
        start local 9 // int parentPageId
        49: .line 853
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readVarInt:()I
            invokevirtual org.h2.tools.Recover.setStorage:(I)Ljava/lang/String;
            pop
        50: .line 854
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readShortInt:()S
            istore 10 /* entries */
        start local 10 // int entries
        51: .line 855
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- page "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* page */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ": b-tree leaf "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        52: .line 856
            iload 8 /* last */
            ifeq 53
            ldc "(last) "
            goto 54
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder
        53: ldc ""
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder java.lang.String
        54: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "parent: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* parentPageId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        55: .line 857
            ldc " index: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " entries: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 10 /* entries */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        56: .line 855
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        57: .line 858
            aload 0 /* this */
            getfield org.h2.tools.Recover.trace:Z
            ifeq 91
        58: .line 859
            aload 0 /* this */
            aload 1 /* writer */
            aload 2 /* s */
            iload 10 /* entries */
            iload 8 /* last */
            ifeq 59
            iconst_0
            goto 60
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int int int
      StackMap stack: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data int
        59: iconst_1
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int int int
      StackMap stack: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data int int
        60: invokevirtual org.h2.tools.Recover.dumpPageBtreeLeaf:(Ljava/io/PrintWriter;Lorg/h2/store/Data;IZ)V
        61: .line 861
            goto 91
        end local 10 // int entries
        end local 9 // int parentPageId
        62: .line 865
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageTypeCount:[I
            iload 7 /* type */
            dup2
            iaload
            iconst_1
            iadd
            iastore
        63: .line 866
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            istore 9 /* parentPageId */
        start local 9 // int parentPageId
        64: .line 867
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readVarInt:()I
            invokevirtual org.h2.tools.Recover.setStorage:(I)Ljava/lang/String;
            pop
        65: .line 868
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- page "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* page */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ": b-tree node "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        66: .line 869
            iload 8 /* last */
            ifeq 67
            ldc "(last) "
            goto 68
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder
        67: ldc ""
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder java.lang.String
        68: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "parent: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* parentPageId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        69: .line 870
            ldc " index: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        70: .line 868
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        71: .line 871
            aload 0 /* this */
            aload 1 /* writer */
            aload 2 /* s */
            lload 3 /* page */
            iload 8 /* last */
            ifeq 72
            iconst_0
            goto 73
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int int
      StackMap stack: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long
        72: iconst_1
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int int
      StackMap stack: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long int
        73: invokevirtual org.h2.tools.Recover.dumpPageBtreeNode:(Ljava/io/PrintWriter;Lorg/h2/store/Data;JZ)V
        74: .line 872
            goto 91
        end local 9 // int parentPageId
        75: .line 875
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageTypeCount:[I
            iload 7 /* type */
            dup2
            iaload
            iconst_1
            iadd
            iastore
        76: .line 876
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- page "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* page */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ": free list "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 8 /* last */
            ifeq 77
            ldc "(last)"
            goto 78
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder
        77: ldc ""
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int
      StackMap stack: java.io.PrintWriter java.lang.StringBuilder java.lang.String
        78: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        79: .line 877
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            dup
            getfield org.h2.tools.Recover$Stats.free:I
            aload 0 /* this */
            aload 1 /* writer */
            aload 2 /* s */
            lload 3 /* page */
            lload 5 /* pageCount */
            invokevirtual org.h2.tools.Recover.dumpPageFreeList:(Ljava/io/PrintWriter;Lorg/h2/store/Data;JJ)I
            iadd
            putfield org.h2.tools.Recover$Stats.free:I
        80: .line 878
            goto 91
        81: .line 881
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageTypeCount:[I
            iload 7 /* type */
            dup2
            iaload
            iconst_1
            iadd
            iastore
        82: .line 882
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- page "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* page */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ": log trunk"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        83: .line 883
            goto 91
        84: .line 886
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            getfield org.h2.tools.Recover$Stats.pageTypeCount:[I
            iload 7 /* type */
            dup2
            iaload
            iconst_1
            iadd
            iastore
        85: .line 887
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- page "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* page */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ": log data"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        86: .line 888
            goto 91
        87: .line 890
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- ERROR page "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* page */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " unknown type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 8 // boolean last
        end local 7 // int type
        88: .line 893
            goto 91
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long
      StackMap stack: java.lang.Exception
        89: astore 7 /* e */
        start local 7 // java.lang.Exception e
        90: .line 894
            aload 0 /* this */
            aload 1 /* writer */
            aload 7 /* e */
            invokevirtual org.h2.tools.Recover.writeError:(Ljava/io/PrintWriter;Ljava/lang/Throwable;)V
        end local 7 // java.lang.Exception e
        91: .line 896
      StackMap locals:
      StackMap stack:
            return
        end local 5 // long pageCount
        end local 3 // long page
        end local 2 // org.h2.store.Data s
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   92     0          this  Lorg/h2/tools/Recover;
            0   92     1        writer  Ljava/io/PrintWriter;
            0   92     2             s  Lorg/h2/store/Data;
            0   92     3          page  J
            0   92     5     pageCount  J
            1   88     7          type  I
            7   88     8          last  Z
           14   26     9  parentPageId  I
           16   26    10   columnCount  I
           17   26    11       entries  I
           28   40     9  parentPageId  I
           30   40    10      rowCount  I
           31   40    11       entries  I
           49   62     9  parentPageId  I
           51   62    10       entries  I
           64   75     9  parentPageId  I
           90   91     7             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3      89  Class java.lang.Exception
           4    88      89  Class java.lang.Exception
    MethodParameters:
           Name  Flags
      writer     
      s          
      page       
      pageCount  

  private void dumpPageLogStream(java.io.PrintWriter, int, int, int, long);
    descriptor: (Ljava/io/PrintWriter;IIIJ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=18, args_size=6
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // int logKey
        start local 3 // int logFirstTrunkPage
        start local 4 // int logFirstDataPage
        start local 5 // long pageCount
         0: .line 901
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            iconst_0
            invokestatic org.h2.store.Data.create:(Lorg/h2/store/DataHandler;IZ)Lorg/h2/store/Data;
            astore 7 /* s */
        start local 7 // org.h2.store.Data s
         1: .line 902
            new org.h2.store.DataReader
            dup
         2: .line 903
            new org.h2.tools.Recover$PageInputStream
            dup
            aload 1 /* writer */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
            iload 2 /* logKey */
         3: .line 904
            iload 3 /* logFirstTrunkPage */
            i2l
            iload 4 /* logFirstDataPage */
            i2l
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
         4: .line 903
            invokespecial org.h2.tools.Recover$PageInputStream.<init>:(Ljava/io/PrintWriter;Lorg/h2/store/DataHandler;Lorg/h2/store/FileStore;IJJI)V
         5: .line 902
            invokespecial org.h2.store.DataReader.<init>:(Ljava/io/InputStream;)V
            astore 8 /* in */
        start local 8 // org.h2.store.DataReader in
         6: .line 906
            aload 1 /* writer */
            ldc "---- Transaction log ----"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         7: .line 907
            new org.h2.compress.CompressLZF
            dup
            invokespecial org.h2.compress.CompressLZF.<init>:()V
            astore 9 /* compress */
        start local 9 // org.h2.compress.CompressLZF compress
         8: .line 909
      StackMap locals: org.h2.store.Data org.h2.store.DataReader org.h2.compress.CompressLZF
      StackMap stack:
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readByte:()B
            istore 10 /* x */
        start local 10 // int x
         9: .line 910
            iload 10 /* x */
            ifge 11
        10: .line 911
            goto 161
        11: .line 913
      StackMap locals: int
      StackMap stack:
            iload 10 /* x */
            ifeq 8
        12: .line 915
            iload 10 /* x */
            iconst_1
            if_icmpne 69
        13: .line 916
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 11 /* pageId */
        start local 11 // int pageId
        14: .line 917
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 12 /* size */
        start local 12 // int size
        15: .line 918
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            newarray 8
            astore 13 /* data */
        start local 13 // byte[] data
        16: .line 919
            iload 12 /* size */
            ifne 19
        17: .line 920
            aload 8 /* in */
            aload 13 /* data */
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            invokevirtual org.h2.store.DataReader.readFully:([BI)V
        18: .line 921
            goto 26
      StackMap locals: int int byte[]
      StackMap stack:
        19: iload 12 /* size */
            iconst_1
            if_icmpeq 26
        20: .line 924
            iload 12 /* size */
            newarray 8
            astore 14 /* compressBuffer */
        start local 14 // byte[] compressBuffer
        21: .line 925
            aload 8 /* in */
            aload 14 /* compressBuffer */
            iload 12 /* size */
            invokevirtual org.h2.store.DataReader.readFully:([BI)V
        22: .line 927
            aload 9 /* compress */
            aload 14 /* compressBuffer */
            iconst_0
            iload 12 /* size */
            aload 13 /* data */
            iconst_0
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            invokevirtual org.h2.compress.CompressLZF.expand:([BII[BII)V
        23: .line 928
            goto 26
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int int int long org.h2.store.Data org.h2.store.DataReader org.h2.compress.CompressLZF int int int byte[] byte[]
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
        24: astore 15 /* e */
        start local 15 // java.lang.ArrayIndexOutOfBoundsException e
        25: .line 929
            aload 15 /* e */
            invokestatic org.h2.message.DbException.convertToIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 15 // java.lang.ArrayIndexOutOfBoundsException e
        end local 14 // byte[] compressBuffer
        26: .line 932
      StackMap locals:
      StackMap stack:
            ldc ""
            astore 14 /* typeName */
        start local 14 // java.lang.String typeName
        27: .line 933
            aload 13 /* data */
            iconst_0
            baload
            istore 15 /* type */
        start local 15 // int type
        28: .line 934
            iload 15 /* type */
            bipush 16
            iand
            ifeq 29
            iconst_1
            goto 30
      StackMap locals: java.lang.String int
      StackMap stack:
        29: iconst_0
      StackMap locals:
      StackMap stack: int
        30: istore 16 /* last */
        start local 16 // boolean last
        31: .line 935
            iload 15 /* type */
            bipush -17
            iand
            istore 15 /* type */
        32: .line 936
            iload 15 /* type */
            tableswitch { // 0 - 8
                    0: 33
                    1: 35
                    2: 39
                    3: 43
                    4: 47
                    5: 51
                    6: 55
                    7: 59
                    8: 61
              default: 63
          }
        33: .line 938
      StackMap locals: int
      StackMap stack:
            ldc "empty"
            astore 14 /* typeName */
        34: .line 939
            goto 64
        35: .line 941
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "data leaf "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 16 /* last */
            ifeq 36
            ldc "(last)"
            goto 37
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        36: ldc ""
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int int int long org.h2.store.Data org.h2.store.DataReader org.h2.compress.CompressLZF int int int byte[] java.lang.String int int
      StackMap stack: java.lang.StringBuilder java.lang.String
        37: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 14 /* typeName */
        38: .line 942
            goto 64
        39: .line 944
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "data node "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 16 /* last */
            ifeq 40
            ldc "(last)"
            goto 41
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        40: ldc ""
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int int int long org.h2.store.Data org.h2.store.DataReader org.h2.compress.CompressLZF int int int byte[] java.lang.String int int
      StackMap stack: java.lang.StringBuilder java.lang.String
        41: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 14 /* typeName */
        42: .line 945
            goto 64
        43: .line 947
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "data overflow "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 16 /* last */
            ifeq 44
            ldc "(last)"
            goto 45
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        44: ldc ""
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int int int long org.h2.store.Data org.h2.store.DataReader org.h2.compress.CompressLZF int int int byte[] java.lang.String int int
      StackMap stack: java.lang.StringBuilder java.lang.String
        45: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 14 /* typeName */
        46: .line 948
            goto 64
        47: .line 950
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "b-tree leaf "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 16 /* last */
            ifeq 48
            ldc "(last)"
            goto 49
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        48: ldc ""
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int int int long org.h2.store.Data org.h2.store.DataReader org.h2.compress.CompressLZF int int int byte[] java.lang.String int int
      StackMap stack: java.lang.StringBuilder java.lang.String
        49: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 14 /* typeName */
        50: .line 951
            goto 64
        51: .line 953
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "b-tree node "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 16 /* last */
            ifeq 52
            ldc "(last)"
            goto 53
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        52: ldc ""
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int int int long org.h2.store.Data org.h2.store.DataReader org.h2.compress.CompressLZF int int int byte[] java.lang.String int int
      StackMap stack: java.lang.StringBuilder java.lang.String
        53: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 14 /* typeName */
        54: .line 954
            goto 64
        55: .line 956
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "free list "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 16 /* last */
            ifeq 56
            ldc "(last)"
            goto 57
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        56: ldc ""
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int int int long org.h2.store.Data org.h2.store.DataReader org.h2.compress.CompressLZF int int int byte[] java.lang.String int int
      StackMap stack: java.lang.StringBuilder java.lang.String
        57: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 14 /* typeName */
        58: .line 957
            goto 64
        59: .line 959
      StackMap locals:
      StackMap stack:
            ldc "log trunk"
            astore 14 /* typeName */
        60: .line 960
            goto 64
        61: .line 962
      StackMap locals:
      StackMap stack:
            ldc "log data"
            astore 14 /* typeName */
        62: .line 963
            goto 64
        63: .line 965
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "ERROR: unknown type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 15 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 14 /* typeName */
        64: .line 968
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- undo page "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* pageId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 14 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        65: .line 969
            aload 0 /* this */
            getfield org.h2.tools.Recover.trace:Z
            ifeq 8
        66: .line 970
            aconst_null
            aload 13 /* data */
            iconst_0
            invokestatic org.h2.store.Data.create:(Lorg/h2/store/DataHandler;[BZ)Lorg/h2/store/Data;
            astore 17 /* d */
        start local 17 // org.h2.store.Data d
        67: .line 971
            aload 0 /* this */
            aload 1 /* writer */
            aload 17 /* d */
            iload 11 /* pageId */
            i2l
            lload 5 /* pageCount */
            invokevirtual org.h2.tools.Recover.dumpPage:(Ljava/io/PrintWriter;Lorg/h2/store/Data;JJ)V
        end local 17 // org.h2.store.Data d
        end local 16 // boolean last
        end local 15 // int type
        end local 14 // java.lang.String typeName
        end local 13 // byte[] data
        end local 12 // int size
        end local 11 // int pageId
        68: .line 973
            goto 8
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int int int long org.h2.store.Data org.h2.store.DataReader org.h2.compress.CompressLZF int
      StackMap stack:
        69: iload 10 /* x */
            iconst_5
            if_icmpne 101
        70: .line 974
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 11 /* sessionId */
        start local 11 // int sessionId
        71: .line 975
            aload 0 /* this */
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            invokevirtual org.h2.tools.Recover.setStorage:(I)Ljava/lang/String;
            pop
        72: .line 976
            getstatic org.h2.result.RowFactory.DEFAULT:Lorg/h2/result/RowFactory;
            aload 8 /* in */
            aload 7 /* s */
            invokestatic org.h2.store.PageLog.readRow:(Lorg/h2/result/RowFactory;Lorg/h2/store/DataReader;Lorg/h2/store/Data;)Lorg/h2/result/Row;
            astore 12 /* row */
        start local 12 // org.h2.result.Row row
        73: .line 977
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- session "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        74: .line 978
            ldc " table "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        75: .line 979
            ldc " + "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 12 /* row */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        76: .line 977
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        77: .line 980
            aload 0 /* this */
            getfield org.h2.tools.Recover.transactionLog:Z
            ifeq 8
        78: .line 981
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            ifne 86
            aload 12 /* row */
            invokeinterface org.h2.result.Row.getColumnCount:()I
            iconst_4
            if_icmplt 86
        79: .line 982
            aload 12 /* row */
            invokeinterface org.h2.result.Row.getKey:()J
            l2i
            istore 13 /* tableId */
        start local 13 // int tableId
        80: .line 983
            aload 12 /* row */
            iconst_3
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getString:()Ljava/lang/String;
            astore 14 /* sql */
        start local 14 // java.lang.String sql
        81: .line 984
            aload 14 /* sql */
            invokestatic org.h2.tools.Recover.extractTableOrViewName:(Ljava/lang/String;)Ljava/lang/String;
            astore 15 /* name */
        start local 15 // java.lang.String name
        82: .line 985
            aload 12 /* row */
            iconst_2
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getInt:()I
            ifne 84
        83: .line 986
            aload 0 /* this */
            getfield org.h2.tools.Recover.tableMap:Ljava/util/HashMap;
            iload 13 /* tableId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 15 /* name */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        84: .line 988
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int int int long org.h2.store.Data org.h2.store.DataReader org.h2.compress.CompressLZF int int org.h2.result.Row int java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            aload 14 /* sql */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 15 // java.lang.String name
        end local 14 // java.lang.String sql
        end local 13 // int tableId
        85: .line 989
            goto 8
        86: .line 990
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.tableMap:Ljava/util/HashMap;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 13 /* tableName */
        start local 13 // java.lang.String tableName
        87: .line 991
            aload 13 /* tableName */
            ifnull 8
        88: .line 992
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 14 /* builder */
        start local 14 // java.lang.StringBuilder builder
        89: .line 993
            aload 14 /* builder */
            ldc "INSERT INTO "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 13 /* tableName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        90: .line 994
            ldc " VALUES("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        91: .line 995
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        92: goto 97
        93: .line 996
      StackMap locals: java.lang.String java.lang.StringBuilder int
      StackMap stack:
            iload 15 /* i */
            ifle 95
        94: .line 997
            aload 14 /* builder */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        95: .line 999
      StackMap locals:
      StackMap stack:
            aload 12 /* row */
            iload 15 /* i */
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            aload 14 /* builder */
            invokevirtual org.h2.value.Value.getSQL:(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
            pop
        96: .line 995
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        97: iload 15 /* i */
            aload 12 /* row */
            invokeinterface org.h2.result.Row.getColumnCount:()I
            if_icmplt 93
        end local 15 // int i
        98: .line 1001
            aload 14 /* builder */
            ldc ");"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        99: .line 1002
            aload 1 /* writer */
            aload 14 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 14 // java.lang.StringBuilder builder
        end local 13 // java.lang.String tableName
        end local 12 // org.h2.result.Row row
        end local 11 // int sessionId
       100: .line 1006
            goto 8
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int int int long org.h2.store.Data org.h2.store.DataReader org.h2.compress.CompressLZF int
      StackMap stack:
       101: iload 10 /* x */
            bipush 6
            if_icmpne 123
       102: .line 1007
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 11 /* sessionId */
        start local 11 // int sessionId
       103: .line 1008
            aload 0 /* this */
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            invokevirtual org.h2.tools.Recover.setStorage:(I)Ljava/lang/String;
            pop
       104: .line 1009
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarLong:()J
            lstore 12 /* key */
        start local 12 // long key
       105: .line 1010
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- session "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
       106: .line 1011
            ldc " table "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
       107: .line 1012
            ldc " - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 12 /* key */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       108: .line 1010
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
       109: .line 1013
            aload 0 /* this */
            getfield org.h2.tools.Recover.transactionLog:Z
            ifeq 8
       110: .line 1014
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            ifne 116
       111: .line 1015
            lload 12 /* key */
            l2i
            istore 14 /* tableId */
        start local 14 // int tableId
       112: .line 1016
            aload 0 /* this */
            getfield org.h2.tools.Recover.tableMap:Ljava/util/HashMap;
            iload 14 /* tableId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 15 /* tableName */
        start local 15 // java.lang.String tableName
       113: .line 1017
            aload 15 /* tableName */
            ifnull 8
       114: .line 1018
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "DROP TABLE IF EXISTS "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 15 /* tableName */
            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;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 15 // java.lang.String tableName
        end local 14 // int tableId
       115: .line 1020
            goto 8
       116: .line 1021
      StackMap locals: int long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.tableMap:Ljava/util/HashMap;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 14 /* tableName */
        start local 14 // java.lang.String tableName
       117: .line 1022
            aload 14 /* tableName */
            ifnull 8
       118: .line 1023
            new java.lang.StringBuilder
            dup
            ldc "DELETE FROM "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* tableName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       119: .line 1024
            ldc " WHERE _ROWID_ = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 12 /* key */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       120: .line 1023
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 15 /* sql */
        start local 15 // java.lang.String sql
       121: .line 1025
            aload 1 /* writer */
            aload 15 /* sql */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 15 // java.lang.String sql
        end local 14 // java.lang.String tableName
        end local 12 // long key
        end local 11 // int sessionId
       122: .line 1029
            goto 8
      StackMap locals:
      StackMap stack:
       123: iload 10 /* x */
            bipush 7
            if_icmpne 133
       124: .line 1030
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 11 /* sessionId */
        start local 11 // int sessionId
       125: .line 1031
            aload 0 /* this */
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            invokevirtual org.h2.tools.Recover.setStorage:(I)Ljava/lang/String;
            pop
       126: .line 1032
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- session "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
       127: .line 1033
            ldc " table "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
       128: .line 1034
            ldc " truncate"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       129: .line 1032
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
       130: .line 1035
            aload 0 /* this */
            getfield org.h2.tools.Recover.transactionLog:Z
            ifeq 8
       131: .line 1036
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "TRUNCATE TABLE "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 11 // int sessionId
       132: .line 1038
            goto 8
      StackMap locals:
      StackMap stack:
       133: iload 10 /* x */
            iconst_2
            if_icmpne 137
       134: .line 1039
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 11 /* sessionId */
        start local 11 // int sessionId
       135: .line 1040
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- commit "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 11 // int sessionId
       136: .line 1041
            goto 8
      StackMap locals:
      StackMap stack:
       137: iload 10 /* x */
            iconst_4
            if_icmpne 141
       138: .line 1042
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 11 /* sessionId */
        start local 11 // int sessionId
       139: .line 1043
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- rollback "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 11 // int sessionId
       140: .line 1044
            goto 8
      StackMap locals:
      StackMap stack:
       141: iload 10 /* x */
            iconst_3
            if_icmpne 146
       142: .line 1045
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 11 /* sessionId */
        start local 11 // int sessionId
       143: .line 1046
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readString:()Ljava/lang/String;
            astore 12 /* transaction */
        start local 12 // java.lang.String transaction
       144: .line 1047
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- prepare commit "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 12 /* transaction */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 12 // java.lang.String transaction
        end local 11 // int sessionId
       145: .line 1048
            goto 8
      StackMap locals:
      StackMap stack:
       146: iload 10 /* x */
            ifeq 8
       147: .line 1050
            iload 10 /* x */
            bipush 8
            if_icmpne 150
       148: .line 1051
            aload 1 /* writer */
            ldc "-- checkpoint"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
       149: .line 1052
            goto 8
      StackMap locals:
      StackMap stack:
       150: iload 10 /* x */
            bipush 9
            if_icmpne 160
       151: .line 1053
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 11 /* size */
        start local 11 // int size
       152: .line 1054
            new java.lang.StringBuilder
            dup
            ldc "-- free"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 12 /* buff */
        start local 12 // java.lang.StringBuilder buff
       153: .line 1055
            iconst_0
            istore 13 /* i */
        start local 13 // int i
       154: goto 157
       155: .line 1056
      StackMap locals: int java.lang.StringBuilder int
      StackMap stack:
            aload 12 /* buff */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 8 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
       156: .line 1055
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
       157: iload 13 /* i */
            iload 11 /* size */
            if_icmplt 155
        end local 13 // int i
       158: .line 1058
            aload 1 /* writer */
            aload 12 /* buff */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/Object;)V
        end local 12 // java.lang.StringBuilder buff
        end local 11 // int size
       159: .line 1059
            goto 8
       160: .line 1060
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- ERROR: unknown operation "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* x */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 10 // int x
       161: .line 1064
      StackMap locals:
      StackMap stack:
            return
        end local 9 // org.h2.compress.CompressLZF compress
        end local 8 // org.h2.store.DataReader in
        end local 7 // org.h2.store.Data s
        end local 5 // long pageCount
        end local 4 // int logFirstDataPage
        end local 3 // int logFirstTrunkPage
        end local 2 // int logKey
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0  162     0               this  Lorg/h2/tools/Recover;
            0  162     1             writer  Ljava/io/PrintWriter;
            0  162     2             logKey  I
            0  162     3  logFirstTrunkPage  I
            0  162     4   logFirstDataPage  I
            0  162     5          pageCount  J
            1  162     7                  s  Lorg/h2/store/Data;
            6  162     8                 in  Lorg/h2/store/DataReader;
            8  162     9           compress  Lorg/h2/compress/CompressLZF;
            9  161    10                  x  I
           14   68    11             pageId  I
           15   68    12               size  I
           16   68    13               data  [B
           21   26    14     compressBuffer  [B
           25   26    15                  e  Ljava/lang/ArrayIndexOutOfBoundsException;
           27   68    14           typeName  Ljava/lang/String;
           28   68    15               type  I
           31   68    16               last  Z
           67   68    17                  d  Lorg/h2/store/Data;
           71  100    11          sessionId  I
           73  100    12                row  Lorg/h2/result/Row;
           80   85    13            tableId  I
           81   85    14                sql  Ljava/lang/String;
           82   85    15               name  Ljava/lang/String;
           87  100    13          tableName  Ljava/lang/String;
           89  100    14            builder  Ljava/lang/StringBuilder;
           92   98    15                  i  I
          103  122    11          sessionId  I
          105  122    12                key  J
          112  115    14            tableId  I
          113  115    15          tableName  Ljava/lang/String;
          117  122    14          tableName  Ljava/lang/String;
          121  122    15                sql  Ljava/lang/String;
          125  132    11          sessionId  I
          135  136    11          sessionId  I
          139  140    11          sessionId  I
          143  145    11          sessionId  I
          144  145    12        transaction  Ljava/lang/String;
          152  159    11               size  I
          153  159    12               buff  Ljava/lang/StringBuilder;
          154  158    13                  i  I
      Exception table:
        from    to  target  type
          22    23      24  Class java.lang.ArrayIndexOutOfBoundsException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      writer             
      logKey             
      logFirstTrunkPage  
      logFirstDataPage   
      pageCount          

  private java.lang.String setStorage(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.h2.tools.Recover this
        start local 1 // int storageId
         0: .line 1067
            aload 0 /* this */
            iload 1 /* storageId */
            putfield org.h2.tools.Recover.storageId:I
         1: .line 1068
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "O_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* storageId */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            bipush 45
            bipush 77
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield org.h2.tools.Recover.storageName:Ljava/lang/String;
         2: .line 1069
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageName:Ljava/lang/String;
            areturn
        end local 1 // int storageId
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/h2/tools/Recover;
            0    3     1  storageId  I
    MethodParameters:
           Name  Flags
      storageId  

  private void dumpPageBtreeNode(java.io.PrintWriter, org.h2.store.Data, long, boolean);
    descriptor: (Ljava/io/PrintWriter;Lorg/h2/store/Data;JZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=17, args_size=5
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // org.h2.store.Data s
        start local 3 // long pageId
        start local 5 // boolean positionOnly
         0: .line 1228
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            istore 6 /* rowCount */
        start local 6 // int rowCount
         1: .line 1229
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readShortInt:()S
            istore 7 /* entryCount */
        start local 7 // int entryCount
         2: .line 1230
            iload 7 /* entryCount */
            iconst_1
            iadd
            newarray 10
            astore 8 /* children */
        start local 8 // int[] children
         3: .line 1231
            iload 7 /* entryCount */
            newarray 10
            astore 9 /* offsets */
        start local 9 // int[] offsets
         4: .line 1232
            aload 8 /* children */
            iload 7 /* entryCount */
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            iastore
         5: .line 1233
            aload 0 /* this */
            aload 1 /* writer */
            lload 3 /* pageId */
            aload 8 /* children */
            iload 7 /* entryCount */
            invokevirtual org.h2.tools.Recover.checkParent:(Ljava/io/PrintWriter;J[II)V
         6: .line 1234
            ldc 2147483647
            istore 10 /* empty */
        start local 10 // int empty
         7: .line 1235
            iconst_0
            istore 11 /* i */
        start local 11 // int i
         8: goto 15
         9: .line 1236
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long int int int int[] int[] int int
      StackMap stack:
            aload 8 /* children */
            iload 11 /* i */
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            iastore
        10: .line 1237
            aload 0 /* this */
            aload 1 /* writer */
            lload 3 /* pageId */
            aload 8 /* children */
            iload 11 /* i */
            invokevirtual org.h2.tools.Recover.checkParent:(Ljava/io/PrintWriter;J[II)V
        11: .line 1238
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readShortInt:()S
            istore 12 /* off */
        start local 12 // int off
        12: .line 1239
            iload 12 /* off */
            iload 10 /* empty */
            invokestatic java.lang.Math.min:(II)I
            istore 10 /* empty */
        13: .line 1240
            aload 9 /* offsets */
            iload 11 /* i */
            iload 12 /* off */
            iastore
        end local 12 // int off
        14: .line 1235
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 11 /* i */
            iload 7 /* entryCount */
            if_icmplt 9
        end local 11 // int i
        16: .line 1242
            iload 10 /* empty */
            aload 2 /* s */
            invokevirtual org.h2.store.Data.length:()I
            isub
            istore 10 /* empty */
        17: .line 1243
            aload 0 /* this */
            getfield org.h2.tools.Recover.trace:Z
            ifne 19
        18: .line 1244
            return
        19: .line 1246
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "--   empty: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* empty */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        20: .line 1247
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        21: goto 37
        22: .line 1248
      StackMap locals: int
      StackMap stack:
            aload 9 /* offsets */
            iload 11 /* i */
            iaload
            istore 12 /* off */
        start local 12 // int off
        23: .line 1249
            aload 2 /* s */
            iload 12 /* off */
            invokevirtual org.h2.store.Data.setPos:(I)V
        24: .line 1250
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readVarLong:()J
            lstore 13 /* key */
        start local 13 // long key
        25: .line 1252
            iload 5 /* positionOnly */
            ifeq 28
        26: .line 1253
            lload 13 /* key */
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            astore 15 /* data */
        start local 15 // org.h2.value.Value data
        27: .line 1254
            goto 33
        end local 15 // org.h2.value.Value data
        28: .line 1256
      StackMap locals: int long
      StackMap stack:
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readValue:()Lorg/h2/value/Value;
            astore 15 /* data */
        start local 15 // org.h2.value.Value data
        29: .line 1257
            goto 33
        end local 15 // org.h2.value.Value data
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: astore 16 /* e */
        start local 16 // java.lang.Throwable e
        31: .line 1258
            aload 0 /* this */
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "exception "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 16 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            invokevirtual org.h2.tools.Recover.writeDataError:(Ljava/io/PrintWriter;Ljava/lang/String;[B)V
        32: .line 1259
            goto 36
        end local 16 // java.lang.Throwable e
        start local 15 // org.h2.value.Value data
        33: .line 1262
      StackMap locals: org.h2.value.Value
      StackMap stack:
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] child: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* children */
            iload 11 /* i */
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        34: .line 1263
            ldc " key: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 13 /* key */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " data: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 15 /* data */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        35: .line 1262
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 15 // org.h2.value.Value data
        end local 13 // long key
        end local 12 // int off
        36: .line 1247
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        37: iload 11 /* i */
            iload 7 /* entryCount */
            if_icmplt 22
        end local 11 // int i
        38: .line 1265
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* entryCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] child: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        39: .line 1266
            aload 8 /* children */
            iload 7 /* entryCount */
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " rowCount: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* rowCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        40: .line 1265
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        41: .line 1267
            return
        end local 10 // int empty
        end local 9 // int[] offsets
        end local 8 // int[] children
        end local 7 // int entryCount
        end local 6 // int rowCount
        end local 5 // boolean positionOnly
        end local 3 // long pageId
        end local 2 // org.h2.store.Data s
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   42     0          this  Lorg/h2/tools/Recover;
            0   42     1        writer  Ljava/io/PrintWriter;
            0   42     2             s  Lorg/h2/store/Data;
            0   42     3        pageId  J
            0   42     5  positionOnly  Z
            1   42     6      rowCount  I
            2   42     7    entryCount  I
            3   42     8      children  [I
            4   42     9       offsets  [I
            7   42    10         empty  I
            8   16    11             i  I
           12   14    12           off  I
           21   38    11             i  I
           23   36    12           off  I
           25   36    13           key  J
           27   28    15          data  Lorg/h2/value/Value;
           29   30    15          data  Lorg/h2/value/Value;
           33   36    15          data  Lorg/h2/value/Value;
           31   33    16             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          28    29      30  Class java.lang.Throwable
    MethodParameters:
              Name  Flags
      writer        
      s             
      pageId        
      positionOnly  

  private int dumpPageFreeList(java.io.PrintWriter, org.h2.store.Data, long, long);
    descriptor: (Ljava/io/PrintWriter;Lorg/h2/store/Data;JJ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=16, args_size=5
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // org.h2.store.Data s
        start local 3 // long pageId
        start local 5 // long pageCount
         0: .line 1271
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            invokestatic org.h2.store.PageFreeList.getPagesAddressed:(I)I
            istore 7 /* pagesAddressed */
        start local 7 // int pagesAddressed
         1: .line 1272
            iload 7 /* pagesAddressed */
            iconst_3
            ishr
            istore 8 /* len */
        start local 8 // int len
         2: .line 1273
            iload 8 /* len */
            newarray 8
            astore 9 /* b */
        start local 9 // byte[] b
         3: .line 1274
            aload 2 /* s */
            aload 9 /* b */
            iconst_0
            iload 8 /* len */
            invokevirtual org.h2.store.Data.read:([BII)V
         4: .line 1275
            aload 9 /* b */
            invokestatic java.util.BitSet.valueOf:([B)Ljava/util/BitSet;
            astore 10 /* used */
        start local 10 // java.util.BitSet used
         5: .line 1276
            iconst_0
            istore 11 /* free */
        start local 11 // int free
         6: .line 1277
            lconst_0
            lstore 12 /* i */
        start local 12 // long i
         7: lload 3 /* pageId */
            lstore 14 /* j */
        start local 14 // long j
         8: goto 25
         9: .line 1278
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int byte[] java.util.BitSet int long long
      StackMap stack:
            lload 12 /* i */
            lconst_0
            lcmp
            ifeq 10
            lload 14 /* j */
            ldc 100
            lrem
            lconst_0
            lcmp
            ifne 14
        10: .line 1279
      StackMap locals:
      StackMap stack:
            lload 12 /* i */
            lconst_0
            lcmp
            ifle 12
        11: .line 1280
            aload 1 /* writer */
            invokevirtual java.io.PrintWriter.println:()V
        12: .line 1282
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 14 /* j */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        13: .line 1283
            goto 19
      StackMap locals:
      StackMap stack:
        14: lload 14 /* j */
            ldc 20
            lrem
            lconst_0
            lcmp
            ifne 17
        15: .line 1284
            aload 1 /* writer */
            ldc " - "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        16: .line 1285
            goto 19
      StackMap locals:
      StackMap stack:
        17: lload 14 /* j */
            ldc 10
            lrem
            lconst_0
            lcmp
            ifne 19
        18: .line 1286
            aload 1 /* writer */
            bipush 32
            invokevirtual java.io.PrintWriter.print:(C)V
        19: .line 1288
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            aload 10 /* used */
            lload 12 /* i */
            l2i
            invokevirtual java.util.BitSet.get:(I)Z
            ifeq 20
            bipush 49
            goto 21
      StackMap locals:
      StackMap stack: java.io.PrintWriter
        20: bipush 48
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data long long int int byte[] java.util.BitSet int long long
      StackMap stack: java.io.PrintWriter int
        21: invokevirtual java.io.PrintWriter.print:(C)V
        22: .line 1289
            aload 10 /* used */
            lload 12 /* i */
            l2i
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 24
        23: .line 1290
            iinc 11 /* free */ 1
        24: .line 1277
      StackMap locals:
      StackMap stack:
            lload 12 /* i */
            lconst_1
            ladd
            lstore 12 /* i */
            lload 14 /* j */
            lconst_1
            ladd
            lstore 14 /* j */
      StackMap locals:
      StackMap stack:
        25: lload 12 /* i */
            iload 7 /* pagesAddressed */
            i2l
            lcmp
            ifge 26
            lload 14 /* j */
            lload 5 /* pageCount */
            lcmp
            iflt 9
        end local 14 // long j
        end local 12 // long i
        26: .line 1293
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            invokevirtual java.io.PrintWriter.println:()V
        27: .line 1294
            iload 11 /* free */
            ireturn
        end local 11 // int free
        end local 10 // java.util.BitSet used
        end local 9 // byte[] b
        end local 8 // int len
        end local 7 // int pagesAddressed
        end local 5 // long pageCount
        end local 3 // long pageId
        end local 2 // org.h2.store.Data s
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   28     0            this  Lorg/h2/tools/Recover;
            0   28     1          writer  Ljava/io/PrintWriter;
            0   28     2               s  Lorg/h2/store/Data;
            0   28     3          pageId  J
            0   28     5       pageCount  J
            1   28     7  pagesAddressed  I
            2   28     8             len  I
            3   28     9               b  [B
            5   28    10            used  Ljava/util/BitSet;
            6   28    11            free  I
            7   26    12               i  J
            8   26    14               j  J
    MethodParameters:
           Name  Flags
      writer     
      s          
      pageId     
      pageCount  

  private void dumpPageBtreeLeaf(java.io.PrintWriter, org.h2.store.Data, int, boolean);
    descriptor: (Ljava/io/PrintWriter;Lorg/h2/store/Data;IZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=5
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // org.h2.store.Data s
        start local 3 // int entryCount
        start local 4 // boolean positionOnly
         0: .line 1299
            iload 3 /* entryCount */
            newarray 10
            astore 5 /* offsets */
        start local 5 // int[] offsets
         1: .line 1300
            ldc 2147483647
            istore 6 /* empty */
        start local 6 // int empty
         2: .line 1301
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 8
         4: .line 1302
      StackMap locals: int[] int int
      StackMap stack:
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readShortInt:()S
            istore 8 /* off */
        start local 8 // int off
         5: .line 1303
            iload 8 /* off */
            iload 6 /* empty */
            invokestatic java.lang.Math.min:(II)I
            istore 6 /* empty */
         6: .line 1304
            aload 5 /* offsets */
            iload 7 /* i */
            iload 8 /* off */
            iastore
        end local 8 // int off
         7: .line 1301
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 7 /* i */
            iload 3 /* entryCount */
            if_icmplt 4
        end local 7 // int i
         9: .line 1306
            iload 6 /* empty */
            aload 2 /* s */
            invokevirtual org.h2.store.Data.length:()I
            isub
            istore 6 /* empty */
        10: .line 1307
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "--   empty: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* empty */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        11: .line 1308
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        12: goto 26
        13: .line 1309
      StackMap locals:
      StackMap stack:
            aload 5 /* offsets */
            iload 7 /* i */
            iaload
            istore 8 /* off */
        start local 8 // int off
        14: .line 1310
            aload 2 /* s */
            iload 8 /* off */
            invokevirtual org.h2.store.Data.setPos:(I)V
        15: .line 1311
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readVarLong:()J
            lstore 9 /* key */
        start local 9 // long key
        16: .line 1313
            iload 4 /* positionOnly */
            ifeq 19
        17: .line 1314
            lload 9 /* key */
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            astore 11 /* data */
        start local 11 // org.h2.value.Value data
        18: .line 1315
            goto 24
        end local 11 // org.h2.value.Value data
        19: .line 1317
      StackMap locals: int long
      StackMap stack:
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readValue:()Lorg/h2/value/Value;
            astore 11 /* data */
        start local 11 // org.h2.value.Value data
        20: .line 1318
            goto 24
        end local 11 // org.h2.value.Value data
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 12 /* e */
        start local 12 // java.lang.Throwable e
        22: .line 1319
            aload 0 /* this */
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "exception "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 12 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            invokevirtual org.h2.tools.Recover.writeDataError:(Ljava/io/PrintWriter;Ljava/lang/String;[B)V
        23: .line 1320
            goto 25
        end local 12 // java.lang.Throwable e
        start local 11 // org.h2.value.Value data
        24: .line 1323
      StackMap locals: org.h2.value.Value
      StackMap stack:
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] key: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 9 /* key */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " data: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 11 /* data */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 11 // org.h2.value.Value data
        end local 9 // long key
        end local 8 // int off
        25: .line 1308
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 7 /* i */
            iload 3 /* entryCount */
            if_icmplt 13
        end local 7 // int i
        27: .line 1325
            return
        end local 6 // int empty
        end local 5 // int[] offsets
        end local 4 // boolean positionOnly
        end local 3 // int entryCount
        end local 2 // org.h2.store.Data s
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0          this  Lorg/h2/tools/Recover;
            0   28     1        writer  Ljava/io/PrintWriter;
            0   28     2             s  Lorg/h2/store/Data;
            0   28     3    entryCount  I
            0   28     4  positionOnly  Z
            1   28     5       offsets  [I
            2   28     6         empty  I
            3    9     7             i  I
            5    7     8           off  I
           12   27     7             i  I
           14   25     8           off  I
           16   25     9           key  J
           18   19    11          data  Lorg/h2/value/Value;
           20   21    11          data  Lorg/h2/value/Value;
           24   25    11          data  Lorg/h2/value/Value;
           22   24    12             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          19    20      21  Class java.lang.Throwable
    MethodParameters:
              Name  Flags
      writer        
      s             
      entryCount    
      positionOnly  

  private void checkParent(java.io.PrintWriter, long, int[], int);
    descriptor: (Ljava/io/PrintWriter;J[II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // long pageId
        start local 4 // int[] children
        start local 5 // int index
         0: .line 1329
            aload 4 /* children */
            iload 5 /* index */
            iaload
            istore 6 /* child */
        start local 6 // int child
         1: .line 1330
            iload 6 /* child */
            iflt 2
            iload 6 /* child */
            aload 0 /* this */
            getfield org.h2.tools.Recover.parents:[I
            arraylength
            if_icmplt 6
         2: .line 1331
      StackMap locals: int
      StackMap stack:
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- ERROR ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 2 /* pageId */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "] child["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1332
            iload 5 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* child */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " >= page count: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.parents:[I
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 1331
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         5: .line 1333
            goto 10
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
            getfield org.h2.tools.Recover.parents:[I
            iload 6 /* child */
            iaload
            i2l
            lload 2 /* pageId */
            lcmp
            ifeq 10
         7: .line 1334
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- ERROR ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 2 /* pageId */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "] child["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 1335
            iload 5 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* child */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " parent: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.parents:[I
            iload 6 /* child */
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 1334
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        10: .line 1337
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int child
        end local 5 // int index
        end local 4 // int[] children
        end local 2 // long pageId
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/h2/tools/Recover;
            0   11     1    writer  Ljava/io/PrintWriter;
            0   11     2    pageId  J
            0   11     4  children  [I
            0   11     5     index  I
            1   11     6     child  I
    MethodParameters:
          Name  Flags
      writer    
      pageId    
      children  
      index     

  private void dumpPageDataNode(java.io.PrintWriter, org.h2.store.Data, long, int);
    descriptor: (Ljava/io/PrintWriter;Lorg/h2/store/Data;JI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=5
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // org.h2.store.Data s
        start local 3 // long pageId
        start local 5 // int entryCount
         0: .line 1341
            iload 5 /* entryCount */
            iconst_1
            iadd
            newarray 10
            astore 6 /* children */
        start local 6 // int[] children
         1: .line 1342
            iload 5 /* entryCount */
            newarray 11
            astore 7 /* keys */
        start local 7 // long[] keys
         2: .line 1343
            aload 6 /* children */
            iload 5 /* entryCount */
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            iastore
         3: .line 1344
            aload 0 /* this */
            aload 1 /* writer */
            lload 3 /* pageId */
            aload 6 /* children */
            iload 5 /* entryCount */
            invokevirtual org.h2.tools.Recover.checkParent:(Ljava/io/PrintWriter;J[II)V
         4: .line 1345
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         5: goto 10
         6: .line 1346
      StackMap locals: int[] long[] int
      StackMap stack:
            aload 6 /* children */
            iload 8 /* i */
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            iastore
         7: .line 1347
            aload 0 /* this */
            aload 1 /* writer */
            lload 3 /* pageId */
            aload 6 /* children */
            iload 8 /* i */
            invokevirtual org.h2.tools.Recover.checkParent:(Ljava/io/PrintWriter;J[II)V
         8: .line 1348
            aload 7 /* keys */
            iload 8 /* i */
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readVarLong:()J
            lastore
         9: .line 1345
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 8 /* i */
            iload 5 /* entryCount */
            if_icmplt 6
        end local 8 // int i
        11: .line 1350
            aload 0 /* this */
            getfield org.h2.tools.Recover.trace:Z
            ifne 13
        12: .line 1351
            return
        13: .line 1353
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        14: goto 17
        15: .line 1354
      StackMap locals: int
      StackMap stack:
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 8 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] child: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* children */
            iload 8 /* i */
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " key: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* keys */
            iload 8 /* i */
            laload
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        16: .line 1353
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 8 /* i */
            iload 5 /* entryCount */
            if_icmplt 15
        end local 8 // int i
        18: .line 1356
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* entryCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] child: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* children */
            iload 5 /* entryCount */
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        19: .line 1357
            return
        end local 7 // long[] keys
        end local 6 // int[] children
        end local 5 // int entryCount
        end local 3 // long pageId
        end local 2 // org.h2.store.Data s
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lorg/h2/tools/Recover;
            0   20     1      writer  Ljava/io/PrintWriter;
            0   20     2           s  Lorg/h2/store/Data;
            0   20     3      pageId  J
            0   20     5  entryCount  I
            1   20     6    children  [I
            2   20     7        keys  [J
            5   11     8           i  I
           14   18     8           i  I
    MethodParameters:
            Name  Flags
      writer      
      s           
      pageId      
      entryCount  

  private void dumpPageDataLeaf(java.io.PrintWriter, org.h2.store.Data, boolean, long, int, int);
    descriptor: (Ljava/io/PrintWriter;Lorg/h2/store/Data;ZJII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=26, args_size=7
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // org.h2.store.Data s
        start local 3 // boolean last
        start local 4 // long pageId
        start local 6 // int columnCount
        start local 7 // int entryCount
         0: .line 1361
            iload 7 /* entryCount */
            newarray 11
            astore 8 /* keys */
        start local 8 // long[] keys
         1: .line 1362
            iload 7 /* entryCount */
            newarray 10
            astore 9 /* offsets */
        start local 9 // int[] offsets
         2: .line 1363
            lconst_0
            lstore 10 /* next */
        start local 10 // long next
         3: .line 1364
            iload 3 /* last */
            ifne 6
         4: .line 1365
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readInt:()I
            i2l
            lstore 10 /* next */
         5: .line 1366
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "--   next: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 10 /* next */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         6: .line 1368
      StackMap locals: long[] int[] long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            istore 12 /* empty */
        start local 12 // int empty
         7: .line 1369
            iconst_0
            istore 13 /* i */
        start local 13 // int i
         8: goto 14
         9: .line 1370
      StackMap locals: int int
      StackMap stack:
            aload 8 /* keys */
            iload 13 /* i */
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readVarLong:()J
            lastore
        10: .line 1371
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readShortInt:()S
            istore 14 /* off */
        start local 14 // int off
        11: .line 1372
            iload 14 /* off */
            iload 12 /* empty */
            invokestatic java.lang.Math.min:(II)I
            istore 12 /* empty */
        12: .line 1373
            aload 9 /* offsets */
            iload 13 /* i */
            iload 14 /* off */
            iastore
        end local 14 // int off
        13: .line 1369
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 13 /* i */
            iload 7 /* entryCount */
            if_icmplt 9
        end local 13 // int i
        15: .line 1375
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            dup
            getfield org.h2.tools.Recover$Stats.pageDataRows:J
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            iload 12 /* empty */
            isub
            i2l
            ladd
            putfield org.h2.tools.Recover$Stats.pageDataRows:J
        16: .line 1376
            iload 12 /* empty */
            aload 2 /* s */
            invokevirtual org.h2.store.Data.length:()I
            isub
            istore 12 /* empty */
        17: .line 1377
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            dup
            getfield org.h2.tools.Recover$Stats.pageDataHead:J
            aload 2 /* s */
            invokevirtual org.h2.store.Data.length:()I
            i2l
            ladd
            putfield org.h2.tools.Recover$Stats.pageDataHead:J
        18: .line 1378
            aload 0 /* this */
            getfield org.h2.tools.Recover.stat:Lorg/h2/tools/Recover$Stats;
            dup
            getfield org.h2.tools.Recover$Stats.pageDataEmpty:J
            iload 12 /* empty */
            i2l
            ladd
            putfield org.h2.tools.Recover$Stats.pageDataEmpty:J
        19: .line 1379
            aload 0 /* this */
            getfield org.h2.tools.Recover.trace:Z
            ifeq 21
        20: .line 1380
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "--   empty: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 12 /* empty */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        21: .line 1382
      StackMap locals:
      StackMap stack:
            iload 3 /* last */
            ifne 54
        22: .line 1383
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            iconst_0
            invokestatic org.h2.store.Data.create:(Lorg/h2/store/DataHandler;IZ)Lorg/h2/store/Data;
            astore 13 /* s2 */
        start local 13 // org.h2.store.Data s2
        23: .line 1384
            aload 2 /* s */
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            invokevirtual org.h2.store.Data.setPos:(I)V
        24: .line 1385
            lload 4 /* pageId */
            lstore 14 /* parent */
        start local 14 // long parent
        25: .line 1387
      StackMap locals: org.h2.store.Data long
      StackMap stack:
            aload 0 /* this */
            aload 1 /* writer */
            lload 14 /* parent */
            iconst_1
            newarray 10
            dup
            iconst_0
            lload 10 /* next */
            l2i
            iastore
            iconst_0
            invokevirtual org.h2.tools.Recover.checkParent:(Ljava/io/PrintWriter;J[II)V
        26: .line 1388
            lload 10 /* next */
            lstore 14 /* parent */
        27: .line 1389
            aload 0 /* this */
            lload 10 /* next */
            invokevirtual org.h2.tools.Recover.seek:(J)V
        28: .line 1390
            aload 0 /* this */
            getfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iconst_0
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            invokevirtual org.h2.store.FileStore.readFully:([BII)V
        29: .line 1391
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.reset:()V
        30: .line 1392
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.readByte:()B
            istore 16 /* type */
        start local 16 // int type
        31: .line 1393
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.readShortInt:()S
            pop
        32: .line 1394
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.readInt:()I
            pop
        33: .line 1395
            iload 16 /* type */
            bipush 19
            if_icmpne 41
        34: .line 1396
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.readShortInt:()S
            istore 17 /* size */
        start local 17 // int size
        35: .line 1397
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- chain: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 10 /* next */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        36: .line 1398
            ldc " type: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 16 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " size: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 17 /* size */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        37: .line 1397
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        38: .line 1399
            aload 2 /* s */
            iload 17 /* size */
            invokevirtual org.h2.store.Data.checkCapacity:(I)V
        39: .line 1400
            aload 2 /* s */
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.getBytes:()[B
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.length:()I
            iload 17 /* size */
            invokevirtual org.h2.store.Data.write:([BII)V
        40: .line 1401
            goto 54
        end local 17 // int size
        41: .line 1402
      StackMap locals: int
      StackMap stack:
            iload 16 /* type */
            iconst_3
            if_icmpne 53
        42: .line 1403
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.readInt:()I
            i2l
            lstore 10 /* next */
        43: .line 1404
            lload 10 /* next */
            lconst_0
            lcmp
            ifne 46
        44: .line 1405
            aload 0 /* this */
            aload 1 /* writer */
            ldc "next:0"
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.getBytes:()[B
            invokevirtual org.h2.tools.Recover.writeDataError:(Ljava/io/PrintWriter;Ljava/lang/String;[B)V
        45: .line 1406
            goto 54
        46: .line 1408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.length:()I
            isub
            istore 17 /* size */
        start local 17 // int size
        47: .line 1409
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- chain: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 10 /* next */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " type: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 16 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        48: .line 1410
            ldc " size: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 17 /* size */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " next: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 10 /* next */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        49: .line 1409
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        50: .line 1411
            aload 2 /* s */
            iload 17 /* size */
            invokevirtual org.h2.store.Data.checkCapacity:(I)V
        51: .line 1412
            aload 2 /* s */
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.getBytes:()[B
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.length:()I
            iload 17 /* size */
            invokevirtual org.h2.store.Data.write:([BII)V
        end local 17 // int size
        52: .line 1413
            goto 25
        53: .line 1414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 16 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 13 /* s2 */
            invokevirtual org.h2.store.Data.getBytes:()[B
            invokevirtual org.h2.tools.Recover.writeDataError:(Ljava/io/PrintWriter;Ljava/lang/String;[B)V
        end local 16 // int type
        end local 14 // long parent
        end local 13 // org.h2.store.Data s2
        54: .line 1419
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        55: goto 101
        56: .line 1420
      StackMap locals: int
      StackMap stack:
            aload 8 /* keys */
            iload 13 /* i */
            laload
            lstore 14 /* key */
        start local 14 // long key
        57: .line 1421
            aload 9 /* offsets */
            iload 13 /* i */
            iaload
            istore 16 /* off */
        start local 16 // int off
        58: .line 1422
            aload 0 /* this */
            getfield org.h2.tools.Recover.trace:Z
            ifeq 62
        59: .line 1423
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "-- ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 13 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] storage: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        60: .line 1424
            ldc " key: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 14 /* key */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " off: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 16 /* off */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        61: .line 1423
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        62: .line 1426
      StackMap locals: long int
      StackMap stack:
            aload 2 /* s */
            iload 16 /* off */
            invokevirtual org.h2.store.Data.setPos:(I)V
        63: .line 1427
            aload 0 /* this */
            aload 1 /* writer */
            aload 2 /* s */
            iload 6 /* columnCount */
            invokevirtual org.h2.tools.Recover.createRecord:(Ljava/io/PrintWriter;Lorg/h2/store/Data;I)[Lorg/h2/value/Value;
            astore 17 /* data */
        start local 17 // org.h2.value.Value[] data
        64: .line 1428
            aload 17 /* data */
            ifnull 100
        65: .line 1429
            aload 0 /* this */
            aload 1 /* writer */
            invokevirtual org.h2.tools.Recover.createTemporaryTable:(Ljava/io/PrintWriter;)V
        66: .line 1430
            aload 0 /* this */
            aload 1 /* writer */
            aload 2 /* s */
            aload 17 /* data */
            invokevirtual org.h2.tools.Recover.writeRow:(Ljava/io/PrintWriter;Lorg/h2/store/Data;[Lorg/h2/value/Value;)V
        67: .line 1431
            aload 0 /* this */
            getfield org.h2.tools.Recover.remove:Z
            ifeq 100
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            ifne 100
        68: .line 1432
            aload 17 /* data */
            iconst_3
            aaload
            invokevirtual org.h2.value.Value.getString:()Ljava/lang/String;
            astore 18 /* sql */
        start local 18 // java.lang.String sql
        69: .line 1433
            aload 18 /* sql */
            ldc "CREATE USER "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 100
        70: .line 1434
            aload 2 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            ldc "SALT "
            invokevirtual java.lang.String.getBytes:()[B
            iload 16 /* off */
            invokestatic org.h2.util.Utils.indexOf:([B[BI)I
            istore 19 /* saltIndex */
        start local 19 // int saltIndex
        71: .line 1435
            iload 19 /* saltIndex */
            iflt 100
        72: .line 1436
            aload 18 /* sql */
            ldc "CREATE USER "
            invokevirtual java.lang.String.length:()I
        73: .line 1437
            aload 18 /* sql */
            ldc "SALT "
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_1
            isub
        74: .line 1436
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 20 /* userName */
        start local 20 // java.lang.String userName
        75: .line 1438
            aload 20 /* userName */
            ldc "IF NOT EXISTS "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 77
        76: .line 1439
            aload 20 /* userName */
            ldc "IF NOT EXISTS "
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 20 /* userName */
        77: .line 1441
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data int long int int long[] int[] long int int long int org.h2.value.Value[] java.lang.String int java.lang.String
      StackMap stack:
            aload 20 /* userName */
            ldc "\""
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 79
        78: .line 1444
            aload 20 /* userName */
            iconst_1
            aload 20 /* userName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 20 /* userName */
        79: .line 1447
      StackMap locals:
      StackMap stack:
            aload 20 /* userName */
            ldc ""
            invokevirtual java.lang.String.toCharArray:()[C
        80: .line 1446
            invokestatic org.h2.security.SHA256.getKeyPasswordHash:(Ljava/lang/String;[C)[B
            astore 21 /* userPasswordHash */
        start local 21 // byte[] userPasswordHash
        81: .line 1448
            bipush 8
            invokestatic org.h2.util.MathUtils.secureRandomBytes:(I)[B
            astore 22 /* salt */
        start local 22 // byte[] salt
        82: .line 1450
            aload 21 /* userPasswordHash */
            aload 22 /* salt */
        83: .line 1449
            invokestatic org.h2.security.SHA256.getHashWithSalt:([B[B)[B
            astore 23 /* passwordHash */
        start local 23 // byte[] passwordHash
        84: .line 1451
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
        85: .line 1452
            ldc "SALT '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        86: .line 1451
            astore 24 /* buff */
        start local 24 // java.lang.StringBuilder buff
        87: .line 1453
            aload 24 /* buff */
            aload 22 /* salt */
            invokestatic org.h2.util.StringUtils.convertBytesToHex:(Ljava/lang/StringBuilder;[B)Ljava/lang/StringBuilder;
        88: .line 1454
            ldc "' HASH '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        89: .line 1455
            aload 24 /* buff */
            aload 23 /* passwordHash */
            invokestatic org.h2.util.StringUtils.convertBytesToHex:(Ljava/lang/StringBuilder;[B)Ljava/lang/StringBuilder;
        90: .line 1456
            bipush 39
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        91: .line 1457
            aload 24 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            astore 25 /* replacement */
        start local 25 // byte[] replacement
        92: .line 1458
            aload 25 /* replacement */
            iconst_0
            aload 2 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
        93: .line 1459
            iload 19 /* saltIndex */
            aload 25 /* replacement */
            arraylength
        94: .line 1458
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        95: .line 1460
            aload 0 /* this */
            lload 4 /* pageId */
            invokevirtual org.h2.tools.Recover.seek:(J)V
        96: .line 1461
            aload 0 /* this */
            getfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
            aload 2 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iconst_0
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            invokevirtual org.h2.store.FileStore.write:([BII)V
        97: .line 1462
            aload 0 /* this */
            getfield org.h2.tools.Recover.trace:Z
            ifeq 99
        98: .line 1463
            aload 0 /* this */
            getfield org.h2.tools.Recover.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "User: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 20 /* userName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        99: .line 1465
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data int long int int long[] int[] long int int long int org.h2.value.Value[] java.lang.String int java.lang.String byte[] byte[] byte[] java.lang.StringBuilder byte[]
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.h2.tools.Recover.remove:Z
        end local 25 // byte[] replacement
        end local 24 // java.lang.StringBuilder buff
        end local 23 // byte[] passwordHash
        end local 22 // byte[] salt
        end local 21 // byte[] userPasswordHash
        end local 20 // java.lang.String userName
        end local 19 // int saltIndex
        end local 18 // java.lang.String sql
        end local 17 // org.h2.value.Value[] data
        end local 16 // int off
        end local 14 // long key
       100: .line 1419
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data int long int int long[] int[] long int int
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
       101: iload 13 /* i */
            iload 7 /* entryCount */
            if_icmplt 56
        end local 13 // int i
       102: .line 1471
            return
        end local 12 // int empty
        end local 10 // long next
        end local 9 // int[] offsets
        end local 8 // long[] keys
        end local 7 // int entryCount
        end local 6 // int columnCount
        end local 4 // long pageId
        end local 3 // boolean last
        end local 2 // org.h2.store.Data s
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0  103     0              this  Lorg/h2/tools/Recover;
            0  103     1            writer  Ljava/io/PrintWriter;
            0  103     2                 s  Lorg/h2/store/Data;
            0  103     3              last  Z
            0  103     4            pageId  J
            0  103     6       columnCount  I
            0  103     7        entryCount  I
            1  103     8              keys  [J
            2  103     9           offsets  [I
            3  103    10              next  J
            7  103    12             empty  I
            8   15    13                 i  I
           11   13    14               off  I
           23   54    13                s2  Lorg/h2/store/Data;
           25   54    14            parent  J
           31   54    16              type  I
           35   41    17              size  I
           47   52    17              size  I
           55  102    13                 i  I
           57  100    14               key  J
           58  100    16               off  I
           64  100    17              data  [Lorg/h2/value/Value;
           69  100    18               sql  Ljava/lang/String;
           71  100    19         saltIndex  I
           75  100    20          userName  Ljava/lang/String;
           81  100    21  userPasswordHash  [B
           82  100    22              salt  [B
           84  100    23      passwordHash  [B
           87  100    24              buff  Ljava/lang/StringBuilder;
           92  100    25       replacement  [B
    MethodParameters:
             Name  Flags
      writer       
      s            
      last         
      pageId       
      columnCount  
      entryCount   

  private void seek(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.h2.tools.Recover this
        start local 1 // long page
         0: .line 1475
            aload 0 /* this */
            getfield org.h2.tools.Recover.store:Lorg/h2/store/FileStore;
            lload 1 /* page */
            aload 0 /* this */
            getfield org.h2.tools.Recover.pageSize:I
            i2l
            lmul
            invokevirtual org.h2.store.FileStore.seek:(J)V
         1: .line 1476
            return
        end local 1 // long page
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/tools/Recover;
            0    2     1  page  J
    MethodParameters:
      Name  Flags
      page  

  private org.h2.value.Value[] createRecord(java.io.PrintWriter, org.h2.store.Data, int);
    descriptor: (Ljava/io/PrintWriter;Lorg/h2/store/Data;I)[Lorg/h2/value/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // org.h2.store.Data s
        start local 3 // int columnCount
         0: .line 1479
            aload 0 /* this */
            iload 3 /* columnCount */
            putfield org.h2.tools.Recover.recordLength:I
         1: .line 1480
            iload 3 /* columnCount */
            ifgt 4
         2: .line 1481
            aload 0 /* this */
            aload 1 /* writer */
            ldc "columnCount<0"
            aload 2 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            invokevirtual org.h2.tools.Recover.writeDataError:(Ljava/io/PrintWriter;Ljava/lang/String;[B)V
         3: .line 1482
            aconst_null
            areturn
         4: .line 1486
      StackMap locals:
      StackMap stack:
            iload 3 /* columnCount */
            anewarray org.h2.value.Value
            astore 4 /* data */
        start local 4 // org.h2.value.Value[] data
         5: .line 1487
            goto 9
        end local 4 // org.h2.value.Value[] data
      StackMap locals:
      StackMap stack: java.lang.OutOfMemoryError
         6: pop
         7: .line 1488
            aload 0 /* this */
            aload 1 /* writer */
            ldc "out of memory"
            aload 2 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            invokevirtual org.h2.tools.Recover.writeDataError:(Ljava/io/PrintWriter;Ljava/lang/String;[B)V
         8: .line 1489
            aconst_null
            areturn
        start local 4 // org.h2.value.Value[] data
         9: .line 1491
      StackMap locals: org.h2.value.Value[]
      StackMap stack:
            aload 4 /* data */
            areturn
        end local 4 // org.h2.value.Value[] data
        end local 3 // int columnCount
        end local 2 // org.h2.store.Data s
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/h2/tools/Recover;
            0   10     1       writer  Ljava/io/PrintWriter;
            0   10     2            s  Lorg/h2/store/Data;
            0   10     3  columnCount  I
            5    6     4         data  [Lorg/h2/value/Value;
            9   10     4         data  [Lorg/h2/value/Value;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.OutOfMemoryError
    MethodParameters:
             Name  Flags
      writer       
      s            
      columnCount  

  private void writeRow(java.io.PrintWriter, org.h2.store.Data, org.h2.value.Value[]);
    descriptor: (Ljava/io/PrintWriter;Lorg/h2/store/Data;[Lorg/h2/value/Value;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // org.h2.store.Data s
        start local 3 // org.h2.value.Value[] data
         0: .line 1495
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* sb */
        start local 4 // java.lang.StringBuilder sb
         1: .line 1496
            aload 4 /* sb */
            ldc "INSERT INTO "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " VALUES("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 1497
            aload 0 /* this */
            iconst_0
            putfield org.h2.tools.Recover.valueId:I
            goto 16
         3: .line 1499
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 2 /* s */
            invokevirtual org.h2.store.Data.readValue:()Lorg/h2/value/Value;
            astore 5 /* v */
        start local 5 // org.h2.value.Value v
         4: .line 1500
            aload 3 /* data */
            aload 0 /* this */
            getfield org.h2.tools.Recover.valueId:I
            aload 5 /* v */
            aastore
         5: .line 1501
            aload 0 /* this */
            getfield org.h2.tools.Recover.valueId:I
            ifle 7
         6: .line 1502
            aload 4 /* sb */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 1504
      StackMap locals: org.h2.value.Value
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageName: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 0 /* this */
            getfield org.h2.tools.Recover.valueId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* columnName */
        start local 6 // java.lang.String columnName
         8: .line 1505
            aload 0 /* this */
            aload 4 /* sb */
            aload 6 /* columnName */
            aload 5 /* v */
            invokevirtual org.h2.tools.Recover.getSQL:(Ljava/lang/StringBuilder;Ljava/lang/String;Lorg/h2/value/Value;)V
        end local 6 // java.lang.String columnName
        end local 5 // org.h2.value.Value v
         9: .line 1506
            goto 15
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter org.h2.store.Data org.h2.value.Value[] java.lang.StringBuilder
      StackMap stack: java.lang.Exception
        10: astore 5 /* e */
        start local 5 // java.lang.Exception e
        11: .line 1507
            aload 0 /* this */
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "exception "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            invokevirtual org.h2.tools.Recover.writeDataError:(Ljava/io/PrintWriter;Ljava/lang/String;[B)V
        end local 5 // java.lang.Exception e
        12: goto 15
        13: .line 1508
      StackMap locals:
      StackMap stack: java.lang.OutOfMemoryError
            pop
        14: .line 1509
            aload 0 /* this */
            aload 1 /* writer */
            ldc "out of memory"
            aload 2 /* s */
            invokevirtual org.h2.store.Data.getBytes:()[B
            invokevirtual org.h2.tools.Recover.writeDataError:(Ljava/io/PrintWriter;Ljava/lang/String;[B)V
        15: .line 1497
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.h2.tools.Recover.valueId:I
            iconst_1
            iadd
            putfield org.h2.tools.Recover.valueId:I
      StackMap locals:
      StackMap stack:
        16: aload 0 /* this */
            getfield org.h2.tools.Recover.valueId:I
            aload 0 /* this */
            getfield org.h2.tools.Recover.recordLength:I
            if_icmplt 3
        17: .line 1512
            aload 4 /* sb */
            ldc ");"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 1513
            aload 1 /* writer */
            aload 4 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        19: .line 1514
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            ifne 30
        20: .line 1516
            new org.h2.result.SimpleRow
            dup
            aload 3 /* data */
            invokespecial org.h2.result.SimpleRow.<init>:([Lorg/h2/value/Value;)V
            astore 5 /* r */
        start local 5 // org.h2.result.SimpleRow r
        21: .line 1517
            new org.h2.engine.MetaRecord
            dup
            aload 5 /* r */
            invokespecial org.h2.engine.MetaRecord.<init>:(Lorg/h2/result/SearchRow;)V
            astore 6 /* meta */
        start local 6 // org.h2.engine.MetaRecord meta
        22: .line 1518
            aload 0 /* this */
            getfield org.h2.tools.Recover.schema:Ljava/util/ArrayList;
            aload 6 /* meta */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        23: .line 1519
            aload 6 /* meta */
            invokevirtual org.h2.engine.MetaRecord.getObjectType:()I
            ifne 30
        24: .line 1520
            aload 3 /* data */
            iconst_3
            aaload
            invokevirtual org.h2.value.Value.getString:()Ljava/lang/String;
            astore 7 /* sql */
        start local 7 // java.lang.String sql
        25: .line 1521
            aload 7 /* sql */
            invokestatic org.h2.tools.Recover.extractTableOrViewName:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* name */
        start local 8 // java.lang.String name
        26: .line 1522
            aload 0 /* this */
            getfield org.h2.tools.Recover.tableMap:Ljava/util/HashMap;
            aload 6 /* meta */
            invokevirtual org.h2.engine.MetaRecord.getId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 8 /* name */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.lang.String name
        end local 7 // java.lang.String sql
        end local 6 // org.h2.engine.MetaRecord meta
        end local 5 // org.h2.result.SimpleRow r
        27: .line 1524
            goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 5 /* t */
        start local 5 // java.lang.Throwable t
        29: .line 1525
            aload 0 /* this */
            aload 1 /* writer */
            aload 5 /* t */
            invokevirtual org.h2.tools.Recover.writeError:(Ljava/io/PrintWriter;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Throwable t
        30: .line 1528
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.StringBuilder sb
        end local 3 // org.h2.value.Value[] data
        end local 2 // org.h2.store.Data s
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   31     0        this  Lorg/h2/tools/Recover;
            0   31     1      writer  Ljava/io/PrintWriter;
            0   31     2           s  Lorg/h2/store/Data;
            0   31     3        data  [Lorg/h2/value/Value;
            1   31     4          sb  Ljava/lang/StringBuilder;
            4    9     5           v  Lorg/h2/value/Value;
            8    9     6  columnName  Ljava/lang/String;
           11   12     5           e  Ljava/lang/Exception;
           21   27     5           r  Lorg/h2/result/SimpleRow;
           22   27     6        meta  Lorg/h2/engine/MetaRecord;
           25   27     7         sql  Ljava/lang/String;
           26   27     8        name  Ljava/lang/String;
           29   30     5           t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     9      10  Class java.lang.Exception
           3     9      13  Class java.lang.OutOfMemoryError
          20    27      28  Class java.lang.Throwable
    MethodParameters:
        Name  Flags
      writer  
      s       
      data    

  private void resetSchema();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.tools.Recover this
         0: .line 1531
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.h2.tools.Recover.schema:Ljava/util/ArrayList;
         1: .line 1532
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.h2.tools.Recover.objectIdSet:Ljava/util/HashSet;
         2: .line 1533
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.h2.tools.Recover.tableMap:Ljava/util/HashMap;
         3: .line 1534
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.h2.tools.Recover.columnTypeMap:Ljava/util/HashMap;
         4: .line 1535
            return
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/tools/Recover;

  private void writeSchemaSET(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
         0: .line 1538
            aload 1 /* writer */
            ldc "---- Schema SET ----"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1539
            aload 0 /* this */
            getfield org.h2.tools.Recover.schema:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.engine.MetaRecord
            astore 2 /* m */
        start local 2 // org.h2.engine.MetaRecord m
         3: .line 1540
            aload 2 /* m */
            invokevirtual org.h2.engine.MetaRecord.getObjectType:()I
            bipush 6
            if_icmpne 6
         4: .line 1541
            aload 2 /* m */
            invokevirtual org.h2.engine.MetaRecord.getSQL:()Ljava/lang/String;
            astore 4 /* sql */
        start local 4 // java.lang.String sql
         5: .line 1542
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            aload 4 /* sql */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 4 // java.lang.String sql
        end local 2 // org.h2.engine.MetaRecord m
         6: .line 1539
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 1545
            return
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/h2/tools/Recover;
            0    8     1  writer  Ljava/io/PrintWriter;
            3    6     2       m  Lorg/h2/engine/MetaRecord;
            5    6     4     sql  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      writer  

  private void writeSchema(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
         0: .line 1548
            aload 1 /* writer */
            ldc "---- Schema ----"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1549
            aload 0 /* this */
            getfield org.h2.tools.Recover.schema:Ljava/util/ArrayList;
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
         2: .line 1550
            aload 0 /* this */
            getfield org.h2.tools.Recover.schema:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.engine.MetaRecord
            astore 2 /* m */
        start local 2 // org.h2.engine.MetaRecord m
         4: .line 1551
            aload 2 /* m */
            invokevirtual org.h2.engine.MetaRecord.getObjectType:()I
            bipush 6
            if_icmpeq 8
         5: .line 1552
            aload 2 /* m */
            invokestatic org.h2.tools.Recover.isSchemaObjectTypeDelayed:(Lorg/h2/engine/MetaRecord;)Z
            ifne 8
         6: .line 1555
            aload 2 /* m */
            invokevirtual org.h2.engine.MetaRecord.getSQL:()Ljava/lang/String;
            astore 4 /* sql */
        start local 4 // java.lang.String sql
         7: .line 1556
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            aload 4 /* sql */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 4 // java.lang.String sql
        end local 2 // org.h2.engine.MetaRecord m
         8: .line 1550
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 1562
            iconst_0
            istore 2 /* deleteLobs */
        start local 2 // boolean deleteLobs
        10: .line 1563
            aload 0 /* this */
            getfield org.h2.tools.Recover.tableMap:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 25
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int top java.util.Iterator
      StackMap stack:
        11: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
        12: .line 1564
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 5 /* objectId */
        start local 5 // java.lang.Integer objectId
        13: .line 1565
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* name */
        start local 6 // java.lang.String name
        14: .line 1566
            aload 0 /* this */
            getfield org.h2.tools.Recover.objectIdSet:Ljava/util/HashSet;
            aload 5 /* objectId */
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifeq 25
        15: .line 1567
            aload 6 /* name */
            invokestatic org.h2.tools.Recover.isLobTable:(Ljava/lang/String;)Z
            ifeq 25
        16: .line 1568
            aload 0 /* this */
            aload 5 /* objectId */
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual org.h2.tools.Recover.setStorage:(I)Ljava/lang/String;
            pop
        17: .line 1569
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "DELETE FROM "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* name */
            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;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        18: .line 1570
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "INSERT INTO "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " SELECT * FROM "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageName: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;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        19: .line 1571
            aload 6 /* name */
            ldc "INFORMATION_SCHEMA.LOBS"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
        20: .line 1572
            aload 6 /* name */
            ldc "\"INFORMATION_SCHEMA\".\"LOBS\""
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 25
        21: .line 1573
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int java.util.Map$Entry java.util.Iterator java.lang.Integer java.lang.String
      StackMap stack:
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "UPDATE "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " SET `TABLE` = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        22: .line 1574
            bipush -2
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 1573
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        24: .line 1575
            iconst_1
            istore 2 /* deleteLobs */
        end local 6 // java.lang.String name
        end local 5 // java.lang.Integer objectId
        end local 3 // java.util.Map$Entry entry
        25: .line 1563
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        26: .line 1580
            aload 0 /* this */
            getfield org.h2.tools.Recover.tableMap:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 35
      StackMap locals:
      StackMap stack:
        27: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
        28: .line 1581
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 5 /* objectId */
        start local 5 // java.lang.Integer objectId
        29: .line 1582
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* name */
        start local 6 // java.lang.String name
        30: .line 1583
            aload 0 /* this */
            getfield org.h2.tools.Recover.objectIdSet:Ljava/util/HashSet;
            aload 5 /* objectId */
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifeq 35
        31: .line 1584
            aload 0 /* this */
            aload 5 /* objectId */
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual org.h2.tools.Recover.setStorage:(I)Ljava/lang/String;
            pop
        32: .line 1585
            aload 6 /* name */
            invokestatic org.h2.tools.Recover.isLobTable:(Ljava/lang/String;)Z
            ifeq 34
        33: .line 1586
            goto 35
        34: .line 1588
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int java.util.Map$Entry java.util.Iterator java.lang.Integer java.lang.String
      StackMap stack:
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "INSERT INTO "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " SELECT * FROM "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageName: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;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 6 // java.lang.String name
        end local 5 // java.lang.Integer objectId
        end local 3 // java.util.Map$Entry entry
        35: .line 1580
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        36: .line 1591
            aload 0 /* this */
            getfield org.h2.tools.Recover.objectIdSet:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
            astore 4
            goto 40
      StackMap locals:
      StackMap stack:
        37: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 3 /* objectId */
        start local 3 // java.lang.Integer objectId
        38: .line 1592
            aload 0 /* this */
            aload 3 /* objectId */
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual org.h2.tools.Recover.setStorage:(I)Ljava/lang/String;
            pop
        39: .line 1593
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "DROP TABLE "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageName: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;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 3 // java.lang.Integer objectId
        40: .line 1591
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 37
        41: .line 1595
            aload 1 /* writer */
            ldc "DROP ALIAS READ_BLOB;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        42: .line 1596
            aload 1 /* writer */
            ldc "DROP ALIAS READ_CLOB;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        43: .line 1597
            aload 1 /* writer */
            ldc "DROP ALIAS READ_BLOB_DB;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        44: .line 1598
            aload 1 /* writer */
            ldc "DROP ALIAS READ_CLOB_DB;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        45: .line 1599
            iload 2 /* deleteLobs */
            ifeq 47
        46: .line 1600
            aload 1 /* writer */
            ldc "DELETE FROM INFORMATION_SCHEMA.LOBS WHERE `TABLE` = -2;"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        47: .line 1603
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Recover.schema:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 52
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int top java.util.Iterator
      StackMap stack:
        48: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.engine.MetaRecord
            astore 3 /* m */
        start local 3 // org.h2.engine.MetaRecord m
        49: .line 1604
            aload 3 /* m */
            invokestatic org.h2.tools.Recover.isSchemaObjectTypeDelayed:(Lorg/h2/engine/MetaRecord;)Z
            ifeq 52
        50: .line 1605
            aload 3 /* m */
            invokevirtual org.h2.engine.MetaRecord.getSQL:()Ljava/lang/String;
            astore 5 /* sql */
        start local 5 // java.lang.String sql
        51: .line 1606
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            aload 5 /* sql */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 5 // java.lang.String sql
        end local 3 // org.h2.engine.MetaRecord m
        52: .line 1603
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 48
        53: .line 1609
            return
        end local 2 // boolean deleteLobs
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   54     0        this  Lorg/h2/tools/Recover;
            0   54     1      writer  Ljava/io/PrintWriter;
            4    8     2           m  Lorg/h2/engine/MetaRecord;
            7    8     4         sql  Ljava/lang/String;
           10   54     2  deleteLobs  Z
           12   25     3       entry  Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/lang/String;>;
           13   25     5    objectId  Ljava/lang/Integer;
           14   25     6        name  Ljava/lang/String;
           28   35     3       entry  Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/lang/String;>;
           29   35     5    objectId  Ljava/lang/Integer;
           30   35     6        name  Ljava/lang/String;
           38   40     3    objectId  Ljava/lang/Integer;
           49   52     3           m  Lorg/h2/engine/MetaRecord;
           51   52     5         sql  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      writer  

  private static boolean isLobTable(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 1612
            aload 0 /* name */
            ldc "INFORMATION_SCHEMA.LOB"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
            aload 0 /* name */
            ldc "\"INFORMATION_SCHEMA\".\"LOB"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         1: .line 1613
            aload 0 /* name */
            ldc "\"information_schema\".\"lob"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 1612
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private static boolean isSchemaObjectTypeDelayed(org.h2.engine.MetaRecord);
    descriptor: (Lorg/h2/engine/MetaRecord;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.MetaRecord m
         0: .line 1617
            aload 0 /* m */
            invokevirtual org.h2.engine.MetaRecord.getObjectType:()I
            tableswitch { // 1 - 5
                    1: 1
                    2: 2
                    3: 2
                    4: 1
                    5: 1
              default: 2
          }
         1: .line 1621
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 1623
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.h2.engine.MetaRecord m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     m  Lorg/h2/engine/MetaRecord;
    MethodParameters:
      Name  Flags
      m     

  private void createTemporaryTable(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
         0: .line 1627
            aload 0 /* this */
            getfield org.h2.tools.Recover.objectIdSet:Ljava/util/HashSet;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifne 20
         1: .line 1628
            aload 0 /* this */
            getfield org.h2.tools.Recover.objectIdSet:Ljava/util/HashSet;
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageId:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         2: .line 1629
            aload 1 /* writer */
            ldc "CREATE TABLE "
            invokevirtual java.io.PrintWriter.write:(Ljava/lang/String;)V
         3: .line 1630
            aload 1 /* writer */
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageName:Ljava/lang/String;
            invokevirtual java.io.PrintWriter.write:(Ljava/lang/String;)V
         4: .line 1631
            aload 1 /* writer */
            bipush 40
            invokevirtual java.io.PrintWriter.write:(I)V
         5: .line 1632
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         6: goto 17
         7: .line 1633
      StackMap locals: int
      StackMap stack:
            iload 2 /* i */
            ifle 9
         8: .line 1634
            aload 1 /* writer */
            ldc ", "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         9: .line 1636
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            bipush 67
            invokevirtual java.io.PrintWriter.write:(I)V
        10: .line 1637
            aload 1 /* writer */
            iload 2 /* i */
            invokevirtual java.io.PrintWriter.print:(I)V
        11: .line 1638
            aload 1 /* writer */
            bipush 32
            invokevirtual java.io.PrintWriter.write:(I)V
        12: .line 1639
            aload 0 /* this */
            getfield org.h2.tools.Recover.columnTypeMap:Ljava/util/HashMap;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.h2.tools.Recover.storageName: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;
            iload 2 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* columnType */
        start local 3 // java.lang.String columnType
        13: .line 1640
            aload 1 /* writer */
            aload 3 /* columnType */
            ifnonnull 14
            ldc "VARCHAR"
            goto 15
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int java.lang.String
      StackMap stack: java.io.PrintWriter
        14: aload 3 /* columnType */
      StackMap locals: org.h2.tools.Recover java.io.PrintWriter int java.lang.String
      StackMap stack: java.io.PrintWriter java.lang.String
        15: invokevirtual java.io.PrintWriter.write:(Ljava/lang/String;)V
        end local 3 // java.lang.String columnType
        16: .line 1632
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 2 /* i */
            aload 0 /* this */
            getfield org.h2.tools.Recover.recordLength:I
            if_icmplt 7
        end local 2 // int i
        18: .line 1642
            aload 1 /* writer */
            ldc ");"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        19: .line 1643
            aload 1 /* writer */
            invokevirtual java.io.PrintWriter.flush:()V
        20: .line 1645
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Lorg/h2/tools/Recover;
            0   21     1      writer  Ljava/io/PrintWriter;
            6   18     2           i  I
           13   16     3  columnType  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      writer  

  private static java.lang.String extractTableOrViewName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // java.lang.String sql
         0: .line 1648
            aload 0 /* sql */
            ldc " TABLE "
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 1 /* indexTable */
        start local 1 // int indexTable
         1: .line 1649
            aload 0 /* sql */
            ldc " VIEW "
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 2 /* indexView */
        start local 2 // int indexView
         2: .line 1650
            iload 1 /* indexTable */
            ifle 7
            iload 2 /* indexView */
            ifle 7
         3: .line 1651
            iload 1 /* indexTable */
            iload 2 /* indexView */
            if_icmpge 6
         4: .line 1652
            iconst_m1
            istore 2 /* indexView */
         5: .line 1653
            goto 7
         6: .line 1654
      StackMap locals: int int
      StackMap stack:
            iconst_m1
            istore 1 /* indexTable */
         7: .line 1657
      StackMap locals:
      StackMap stack:
            iload 2 /* indexView */
            ifle 10
         8: .line 1658
            aload 0 /* sql */
            iload 2 /* indexView */
            ldc " VIEW "
            invokevirtual java.lang.String.length:()I
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 0 /* sql */
         9: .line 1659
            goto 14
      StackMap locals:
      StackMap stack:
        10: iload 1 /* indexTable */
            ifle 13
        11: .line 1660
            aload 0 /* sql */
            iload 1 /* indexTable */
            ldc " TABLE "
            invokevirtual java.lang.String.length:()I
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 0 /* sql */
        12: .line 1661
            goto 14
        13: .line 1662
      StackMap locals:
      StackMap stack:
            ldc "UNKNOWN"
            areturn
        14: .line 1664
      StackMap locals:
      StackMap stack:
            aload 0 /* sql */
            ldc "IF NOT EXISTS "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 16
        15: .line 1665
            aload 0 /* sql */
            ldc "IF NOT EXISTS "
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 0 /* sql */
        16: .line 1667
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* ignore */
        start local 3 // boolean ignore
        17: .line 1669
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        18: goto 29
        19: .line 1670
      StackMap locals: int int
      StackMap stack:
            aload 0 /* sql */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* ch */
        start local 5 // char ch
        20: .line 1671
            iload 5 /* ch */
            bipush 34
            if_icmpne 25
        21: .line 1672
            iload 3 /* ignore */
            ifeq 22
            iconst_0
            goto 23
      StackMap locals: int
      StackMap stack:
        22: iconst_1
      StackMap locals:
      StackMap stack: int
        23: istore 3 /* ignore */
        24: .line 1673
            goto 28
      StackMap locals:
      StackMap stack:
        25: iload 3 /* ignore */
            ifne 28
            iload 5 /* ch */
            bipush 32
            if_icmple 26
            iload 5 /* ch */
            bipush 40
            if_icmpne 28
        26: .line 1674
      StackMap locals:
      StackMap stack:
            aload 0 /* sql */
            iconst_0
            iload 4 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* sql */
        27: .line 1675
            aload 0 /* sql */
            areturn
        end local 5 // char ch
        28: .line 1669
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 4 /* i */
            aload 0 /* sql */
            invokevirtual java.lang.String.length:()I
            if_icmplt 19
        end local 4 // int i
        30: .line 1678
            ldc "UNKNOWN"
            areturn
        end local 3 // boolean ignore
        end local 2 // int indexView
        end local 1 // int indexTable
        end local 0 // java.lang.String sql
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   31     0         sql  Ljava/lang/String;
            1   31     1  indexTable  I
            2   31     2   indexView  I
           17   31     3      ignore  Z
           18   30     4           i  I
           20   28     5          ch  C
    MethodParameters:
      Name  Flags
      sql   

  private static void closeSilently(org.h2.store.FileStore);
    descriptor: (Lorg/h2/store/FileStore;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.store.FileStore fileStore
         0: .line 1683
            aload 0 /* fileStore */
            ifnull 2
         1: .line 1684
            aload 0 /* fileStore */
            invokevirtual org.h2.store.FileStore.closeSilently:()V
         2: .line 1686
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.store.FileStore fileStore
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  fileStore  Lorg/h2/store/FileStore;
    MethodParameters:
           Name  Flags
      fileStore  

  private void writeError(java.io.PrintWriter, java.lang.Throwable);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.io.PrintWriter writer
        start local 2 // java.lang.Throwable e
         0: .line 1689
            aload 1 /* writer */
            ifnull 2
         1: .line 1690
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "// error: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         2: .line 1692
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "Error"
            aload 2 /* e */
            invokevirtual org.h2.tools.Recover.traceError:(Ljava/lang/String;Ljava/lang/Throwable;)V
         3: .line 1693
            return
        end local 2 // java.lang.Throwable e
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/h2/tools/Recover;
            0    4     1  writer  Ljava/io/PrintWriter;
            0    4     2       e  Ljava/lang/Throwable;
    MethodParameters:
        Name  Flags
      writer  
      e       

  public java.lang.String getDatabasePath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Recover this
         0: .line 1700
            aload 0 /* this */
            getfield org.h2.tools.Recover.databaseName:Ljava/lang/String;
            areturn
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Recover;

  public org.h2.store.FileStore openFile(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Lorg/h2/store/FileStore;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.h2.tools.Recover this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String mode
        start local 3 // boolean mustExist
         0: .line 1708
            aload 0 /* this */
            aload 1 /* name */
            ldc "rw"
            invokestatic org.h2.store.FileStore.open:(Lorg/h2/store/DataHandler;Ljava/lang/String;Ljava/lang/String;)Lorg/h2/store/FileStore;
            areturn
        end local 3 // boolean mustExist
        end local 2 // java.lang.String mode
        end local 1 // java.lang.String name
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/h2/tools/Recover;
            0    1     1       name  Ljava/lang/String;
            0    1     2       mode  Ljava/lang/String;
            0    1     3  mustExist  Z
    MethodParameters:
           Name  Flags
      name       
      mode       
      mustExist  

  public void checkPowerOff();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.h2.tools.Recover this
         0: .line 1717
            return
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Recover;

  public void checkWritingAllowed();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.h2.tools.Recover this
         0: .line 1725
            return
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Recover;

  public int getMaxLengthInplaceLob();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Recover this
         0: .line 1732
            invokestatic org.h2.message.DbException.throwInternalError:()Ljava/lang/RuntimeException;
            athrow
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Recover;

  public java.lang.String getLobCompressionAlgorithm(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.h2.tools.Recover this
        start local 1 // int type
         0: .line 1740
            aconst_null
            areturn
        end local 1 // int type
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Recover;
            0    1     1  type  I
    MethodParameters:
      Name  Flags
      type  

  public java.lang.Object getLobSyncObject();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Recover this
         0: .line 1748
            aload 0 /* this */
            areturn
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Recover;

  public org.h2.util.SmallLRUCache<java.lang.String, java.lang.String[]> getLobFileListCache();
    descriptor: ()Lorg/h2/util/SmallLRUCache;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Recover this
         0: .line 1756
            aconst_null
            areturn
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Recover;
    Signature: ()Lorg/h2/util/SmallLRUCache<Ljava/lang/String;[Ljava/lang/String;>;

  public org.h2.util.TempFileDeleter getTempFileDeleter();
    descriptor: ()Lorg/h2/util/TempFileDeleter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Recover this
         0: .line 1764
            invokestatic org.h2.util.TempFileDeleter.getInstance:()Lorg/h2/util/TempFileDeleter;
            areturn
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Recover;

  public org.h2.store.LobStorageBackend getLobStorage();
    descriptor: ()Lorg/h2/store/LobStorageBackend;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Recover this
         0: .line 1772
            aconst_null
            areturn
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Recover;

  public int readLob(long, byte[], long, byte[], int, int);
    descriptor: (J[BJ[BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=9, args_size=7
        start local 0 // org.h2.tools.Recover this
        start local 1 // long lobId
        start local 3 // byte[] hmac
        start local 4 // long offset
        start local 6 // byte[] buff
        start local 7 // int off
        start local 8 // int length
         0: .line 1781
            invokestatic org.h2.message.DbException.throwInternalError:()Ljava/lang/RuntimeException;
            athrow
        end local 8 // int length
        end local 7 // int off
        end local 6 // byte[] buff
        end local 4 // long offset
        end local 3 // byte[] hmac
        end local 1 // long lobId
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/h2/tools/Recover;
            0    1     1   lobId  J
            0    1     3    hmac  [B
            0    1     4  offset  J
            0    1     6    buff  [B
            0    1     7     off  I
            0    1     8  length  I
    MethodParameters:
        Name  Flags
      lobId   
      hmac    
      offset  
      buff    
      off     
      length  

  public org.h2.api.JavaObjectSerializer getJavaObjectSerializer();
    descriptor: ()Lorg/h2/api/JavaObjectSerializer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Recover this
         0: .line 1786
            aconst_null
            areturn
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Recover;

  public org.h2.value.CompareMode getCompareMode();
    descriptor: ()Lorg/h2/value/CompareMode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.tools.Recover this
         0: .line 1791
            aconst_null
            iconst_0
            invokestatic org.h2.value.CompareMode.getInstance:(Ljava/lang/String;I)Lorg/h2/value/CompareMode;
            areturn
        end local 0 // org.h2.tools.Recover this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Recover;

  public org.h2.store.LobStorageInterface getLobStorage();
    descriptor: ()Lorg/h2/store/LobStorageInterface;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.h2.tools.Recover.getLobStorage:()Lorg/h2/store/LobStorageBackend;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "Recover.java"
NestMembers:
  org.h2.tools.Recover$1  org.h2.tools.Recover$2  org.h2.tools.Recover$PageInputStream  org.h2.tools.Recover$Stats
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final Builder = org.h2.mvstore.MVStore$Builder of org.h2.mvstore.MVStore
  org.h2.tools.Recover$1
  org.h2.tools.Recover$2
  PageInputStream = org.h2.tools.Recover$PageInputStream of org.h2.tools.Recover
  Stats = org.h2.tools.Recover$Stats of org.h2.tools.Recover