A9  java/lang/Object()V   org/freertr/user/userUpgradeforcesI  cmdLorg/freertr/util/cmds;org/freertr/pipe/pipeProgress  org/freertr/util/cmdspipeLorg/freertr/pipe/pipeSide;  (Lorg/freertr/pipe/pipeSide;)V  consLorg/freertr/pipe/pipeProgress;! java/io/File # $(Ljava/lang/String;)V&org/freertr/cry/cryHashSha2512 % )*+ ,org/freertr/cry/cryHashGenericinit ./0 12org/freertr/cry/cryUtilshashFile1(Lorg/freertr/cry/cryHashGeneric;Ljava/io/File;)Z .4 56hash2hex4(Lorg/freertr/cry/cryHashGeneric;)Ljava/lang/String;8org/freertr/cry/cryHashSha3512 7 ; <=length()J? @AmakeConcatWithConstants9(JLjava/lang/String;Ljava/lang/String;)Ljava/lang/String; CDE FG org/freertr/pipe/pipeSide$modTypmodeLF"Lorg/freertr/pipe/pipeSide$modTyp; .I JKhashTextU(Lorg/freertr/cry/cryHashGeneric;Ljava/util/List;Lorg/freertr/pipe/pipeSide$modTyp;)ZM @N8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; PQR STorg/freertr/cfg/cfgInit myPathName()Ljava/lang/String; V WXverExtLjava/lang/String;M P[ \T getFileName ^ _TgetName a bTworddcurrent f gh readUpKeyE(Ljava/lang/String;Ljava/lang/String;)Lorg/freertr/cry/cryKeyGeneric;jfailed to get current key! l m$erroro org/freertr/user/userUpgradeBlob n nr sputSelf uvw <xjava/lang/String()I z{| }~org/freertr/util/bitsstr2num(Ljava/lang/String;)I   calcFileHash&(Ljava/lang/String;)Ljava/lang/String; @ n filesLjava/util/List; org/freertr/user/userUpgradeNtry ((Ljava/lang/String;ILjava/lang/String;)V  java/util/Listadd(Ljava/lang/Object;)Z n doSign"(Lorg/freertr/cry/cryKeyGeneric;)V n getText(I)Ljava/util/List;  T myVerFile z buf2txt&(ZLjava/util/List;Ljava/lang/String;)Z @(I)Ljava/lang/String;org/freertr/cry/cryKeyMLDSA   org/freertr/cry/cryKeyGeneric keyMakeSize(I)Zorg/freertr/cry/cryKeyRSA  xkeySize  keyVerify()Z @(IZ)Ljava/lang/String;  pemWriteStr(Z)Ljava/lang/String;  $org/freertr/pipe/pipeSidelinePutoldfailed to get old key! z =getTime  Xorg/freertr/cfg/cfgAll timeZoneName z time2num(Ljava/lang/String;JI)I  org/freertr/util/version.java z txt2buf$(Ljava/lang/String;)Ljava/util/List;(org/freertr/util/version.java not found! xsize get(I)Ljava/lang/Object;# public final static int year = u  startsWith(Ljava/lang/String;)Z set'(ILjava/lang/Object;)Ljava/lang/Object;$ public final static int month =  " public final static int day =  ) public final static String pubKeyC = ) public final static String pubKeyO =   X upgradeServererror reading version info! n   fromText%(Ljava/util/List;Z)Ljava/lang/String; n Xhead n  getFilelist n T n =getSize @(J)Ljava/lang/String; n !Xkeyed n$ %getSum n( )Xjars + ,- verifyFile'(Ljava/lang/String;Ljava/lang/String;)I P/ 0T getRWpath 2 3Xname 5 6Xchk8some tests failed!:system verification failed! <l=org/freertr/util/logger?all tests passed! A Bexists E F$strPutH is missing! uJ K~ compareToM is corrupted!O is ok! R S doUpgrade U VXbakExt XYZ [\org/freertr/user/userFlashrename)(Ljava/lang/String;Ljava/lang/String;ZZ)Z^unable to revert to backup X` abcopy((Ljava/lang/String;Ljava/lang/String;Z)Z d edoneFail g h$ debugStatj"org/freertr/user/userUpgradeRevert i im nstart p qrneedColdZtcoldvwarm x yz inProgressLorg/freertr/util/syncInt; |}~ xorg/freertr/util/syncIntno upgrade in progessupgrade in progessauto-revert cancelled | (I)I P  stopRouter(ZILjava/lang/String;)V < $info z xrandomD  XtmpExt @9(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;  T myFileName  org/freertr/enc/encUrlparseOne,(Ljava/lang/String;)Lorg/freertr/enc/encUrl;  XfilExt X delete  org/freertr/pipe/pipeDiscardneedAny8(Lorg/freertr/pipe/pipeSide;)Lorg/freertr/pipe/pipeSide; X  doReceiveD(Lorg/freertr/pipe/pipeSide;Lorg/freertr/enc/encUrl;Ljava/io/File;)Z&auto-revert was unable to reach server  doRevertauto-revert finishedoverlapping upgrades eliminated  $ upgraderDoerjava/lang/Exception <  traceback(Ljava/lang/Throwable;)Vdownloading version info failed to download version info!  $debugRes  needStop n timeJ z timeDump! @J(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" @(JJJ)Ljava/lang/String;#$ n  copyBytes$()Lorg/freertr/user/userUpgradeBlob; n delFiles(Ljava/util/List;)V%&no downgrade allowed!   doMissing%(Lorg/freertr/user/userUpgradeBlob;)Ino upgrade needed!  r upgradeConfigsaving configurationorg/freertr/user/userReader  9(Lorg/freertr/pipe/pipeSide;Lorg/freertr/user/userLine;)Vorg/freertr/pipe/pipeSetting  java/lang/IntegervalueOf(I)Ljava/lang/Integer;    settingsPut(ILjava/lang/Object;)V org/freertr/user/userExec   ;(Lorg/freertr/pipe/pipeSide;Lorg/freertr/user/userReader;)V   r privilegedwrite    repairCommand   executeCommand6(Ljava/lang/String;)Lorg/freertr/user/userExec$cmdRes;'   upgradeFilesJ(Lorg/freertr/user/userUpgradeBlob;Ljava/lang/String;Ljava/lang/String;I)Z ! "# upgradeFileK(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I % &' upgradeScriptLorg/freertr/cfg/cfgScrpt;)running upgrade script +,- .org/freertr/cfg/cfgScrptdoRound0!successfully finished, rebooting!2upgrade finished() 6 7r upgradeBackup 9 :doVerify<failed to write version info!>successfully finished!@upgrade finished! B C flagEnothing done in this roundGjava/util/ArrayList F J KLaddAll(Ljava/util/Collection;)ZNno script for this roundPorg/freertr/pipe/pipeLine OS T(IZ)V OV WXgetSide()Lorg/freertr/pipe/pipeSide; [ \]setTime(I)V C_ `GmodeCRLF b cGlineTx Ce fG modeCRorLF h iGlineRxkorg/freertr/user/userScriptm jo p0(Lorg/freertr/pipe/pipeSide;Ljava/lang/String;)V jr sr allowExec ju vr allowConfig* jy z$addLine j| }addLines j TcmdAll O setClose P httpGet+,   pemReadStr(Ljava/lang/String;Z)Z-./doit u equals01234checksum mismatch, aborting!failed to rename!checksum mismatch after rename!.ver.bak.tmp | ]justSimu ConstantValue(Lorg/freertr/util/cmds;)VCodeLineNumberTable StackMapTable calcTextHash$(Ljava/util/List;)Ljava/lang/String; Signature8(Ljava/util/List;)Ljava/lang/String; doRelease doMakeKey doVerCore doSimulatedoBackup startRevertertoggleBootMode stopReverter doAutoRevert SourceFileuserUpgrade.javaBootstrapMethods---  not found  written!generating  bits keyresulted in  bits, error= sequence 10 puts "" sequence 20 puts "";"";$ public final static int year = % public final static int month = # public final static int day = * public final static String pubKeyC = * public final static String pubKeyO = .org/freertr/util/version.java patched  times! server:  archive:  version: version info parser:  release: files: time: size:  sign:  keyhash:   is missing!unknown upgrade status revupgold release: new release: !old time: , new time: , diff: !old size: , new size: , diff:  old files: new files:  extra files: excess files:upgrading to should remove  removing  set path ""got empty  key!got too small  key!error reading public  key!error reading private  key!(error verifying private to public  key! skipping  since up to date!"!skipping  since just simulating!$ backing up & downloading ( upgrading * +,- @.$java/lang/invoke/StringConcatFactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; InnerClassesmodTyp2 org/freertr/user/userExec$cmdRescmdRes5%java/lang/invoke/MethodHandles$Lookup7java/lang/invoke/MethodHandlesLookup! WX VX Xyz qr P I!***+ *Y* F? GH I I Y*"L%Y'M,(,+-,3N7Y9M,(,+-+:-,3>. R STUVX$Y,Z0[8\:^ )u B%Y'L+(+*BH+3M7Y9L+(+*BH,+3L* hi jkmn&o*p5q7s)u T$ OUY| T& YZ"]** `ceL+ * iknYpM,q* `N-t@* `y6-:* -k,Y-W,+,W* kN$(08;GMR_ux} nu#u* `y<* k>YM,>YM,>* ,,k* ,* ,±: !)2:@DEYm2 ** `ceL+ * ik** `ȶeM, * ʶkB!dp:!Ժ:!Ժ:+:,: ڸ:  * k6 6     u:    W    W f   W E   W $    W  > ڸ*  k.*.78<N]lx'8;>HY\_epqF a uuuuu:u  :>=* k* Zk* k+>N- * knYpL+- :*  k* +k* +k* +k* +k* +"k* +#&k*Z+'*`=>+1+:*.1Y4*`=* 7k9; * >kv /3 : > H PX]kn~ )!2#<%H%q: Y=>+I+: Y.1Y"@* 1Ck& /01 2:3=5N6Q0W88,-I* +D+N-* G-,I* L* N* < =>?!@#B+C8D:FGG #u, *P*QOP Q V ZK*TY*W ];YZ[\^u=ZL*++TY_cfefg ' iYkl m n TLooosuvwxz @ T_<w{=@!(K+K$KwW*< K<***J $(+/26>EGJQSWY]$u k.KYL+U*W+ Y*"=*WN-- B%*;@DHLSTZ`aj Tu S^w{L+*+fwW*<* `M** `yP*,N-*wWCHKB  "'/CHKLPU]0u2*~ @$ +tL*Ķf.M+YN-U,W* - Y,"W,:,W*ǶɱnYp:nYp: W :* *̙***em׺*e**:*:*є**̙є ***̙W*ɻY* : *  Y*   :   :   W*+, *@̙*'Z+Y, 6  D$*(ɲ$* :  */6 o6  1 *̙*+,*̙:6   : . 1Y:*P̙*3f@*4fW5#TY:*4fW v*8 *̙*P̙ *;*=?d %29>RX]blmv/AHRdku    ' /<HQRjpv !"$%'(),-.1234 56#7184:B;H<N=Q?]@kAq3wCDEHIKLNOP` `uDnnun*Y"7 uunnun I  66+u+:A~Q*4.1Y,1Y- 6A~6*̙*DFYH:6+Y+:A~5A~'.1Y:    IW*M*P̙*(ɻOYQR:UWU:YZ^adgjYln:  q t .wx { ~W0STU$V/W2YVZ\[m\p^u_~`Tdefhijklnoqrsuiwxy{(|*~4AGNV^ftz7+7@ +   gh/+N-* ,k-* ,kY:-u.Y:-u* ,k-u* ,k* ,kR "/1:MVivxF!"#,::+*,f*P̙*,f5*,f,,TY_W*,f-:W*  Y"W*,f+** ̙ W,W*+,**̙z &(2?AGTcpv|u!b J"UT|Ywo&+ 057@5)))))))))))))))))))))))))))))))))))))) ) ) ))))))))))!)#)%)'/C0@1 3@468