0 U R R R R R  0 R 0             $  )  ) R  0 0 0 H G G   R R hdlDBFileLjava/io/File;naDBFile hdlBackupFile naBackupFiletxnFileI(Ljava/io/File;Ljava/io/File;Ljava/io/File;Ljava/io/File;Ljava/io/File;)VCodeLineNumberTableLocalVariableTablethis"Lnet/handle/apps/tools/RecoverJDB; Exceptions doRecovery()VcopyBuf[BhdlDBLnet/handle/jdb/DBHash;naDBtxnInputLjava/io/InputStream;txnLnet/handle/server/DBTxn;copyFile(Ljava/io/File;Ljava/io/File;)VsourcedestbufrIfinLjava/io/FileInputStream;foutLjava/io/FileOutputStream; printUsagemain([Ljava/lang/String;)Vargv[Ljava/lang/String;hsDir haveHDLBackupZ haveNABackupinLjava/io/BufferedReader;lineLjava/lang/String; recoverer SourceFileRecoverJDB.java \f YW VW ZW XW [W Restoring backup databases... f pq Opening databases...net/handle/jdb/DBHash \Restoring from transactions...java/io/BufferedInputStreamjava/io/FileInputStream \ \ java/lang/StringBuffer Restore txn: fjava/lang/Exception*Error: Unknown action in transaction log:  \ fjava/io/FileOutputStream  ?usage: java net.handle.apps.tools.RecoverJDB {f  java/io/File directory:  Server directory doesn't exist! handles.bak \  backup file:  handles.jdb DB file: Warning: Handle backup file (handles.bak) doesn't exist; assuming all changes are in the dbtxns.log file and that we can safely delete the current database.nas.baknas.jdbWarning: NA backup file (nas.bak) doesn't exist; assuming all changes are in the dbtxns.log file and that we can safely delete the current database. dbtxns.log7Error: Transaction log file (dbtxns.log) doesn't exist!5Welcome to the Handle Server database recovery tool. 4This tool should only be used if the handle databasehas somehow been corrupted. >WARNING: This program will attempt to restore the handles.jdb9and nas.jdb files. If you would like to keep the current/contents of these files then BACK THEM UP NOW! 3Type the word "continue" and hit ENTER to continue java/io/BufferedReaderjava/io/InputStreamReader m \    CONTINUE  Exiting... net/handle/apps/tools/RecoverJDB \] efjava/lang/Objectjava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vflushexists()Zdelete(Ljava/io/File;II)V(Ljava/io/File;)V(Ljava/io/InputStream;)Vnet/handle/server/DBTxnreadTxn0(Ljava/io/InputStream;)Lnet/handle/server/DBTxn;errappend,(Ljava/lang/String;)Ljava/lang/StringBuffer;,(Ljava/lang/Object;)Ljava/lang/StringBuffer;toString()Ljava/lang/String; getAction()BgetKey()[BgetValuesetValue([B[B)V deleteValue([B)ZdeleteAllRecords(I)Ljava/lang/StringBuffer;closeread([B)Iwrite([BII)Vexit(I)V isDirectory#(Ljava/io/File;Ljava/lang/String;)V(Ljava/io/Reader;)VreadLinejava/lang/Stringtrim toUpperCaseequals(Ljava/lang/Object;)Z RUVWXWYWZW[W\]^ **+*,*-**_  !"`> ab YW VW ZW XW [Wcdef^Kg  'L* ** * W* ** * W  Y*MY*N  YY*::Y:Y j#4AR_, !,"W- !-"Wz,#-#o$YY%&',(-(_#()*,-,/41>2L4T7\8b9t:<=>?@ABDE GHJ$K'M1N4P8Q<R?T^WbXfY`>gabSghtijkjlmnoc$pq^1'MY*:)Y+*:,+Y>,,_^`ab%c0d`>1rW1sW+th"uv!wxyzcd{f^% - _ gh |}^ * ./0Y*21LY2+ + +34 /0Y+56MY7, 0Y+86NY9- , 6 : 0Y+;6:0Y+<6: 6 = 0Y+>6: ? /@ A B C D E F  GYHYIJK:  L:   MNOPQ  RY,-S:  T_,mn o ptu2v@wHxLyM}X~q| %-3FMbjpq`z ~oWX0YW| VWZWXW[WFB M; b c$