7org/freertr/prt/prtTcp  org/freertr/prt/prtGen()V  fwdCoreLorg/freertr/ip/ipFwd;  org/freertr/ip/ipFwdprotoAddM(Lorg/freertr/ip/ipPrt;Lorg/freertr/ip/ipFwdIface;Lorg/freertr/addr/addrIP;)Zfin  org/freertr/util/bitsbit2str((IILjava/lang/String;)Ljava/lang/String;synrst ack"psh$urg&ece(cwr*ns, -.makeConcatWithConstants(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;0org/freertr/enc/encTlv /2 3(IIIIIIIIIIZ)V 567 89org/freertr/pack/packHoldergetByte(I)I /; <=valTypI /? @=valSiz 5B CDgetSkip(I)V /F GHgetBytes (Lorg/freertr/pack/packHolder;)Z 5J KLdataSize()I N OP getTCPoption7(Lorg/freertr/pack/packHolder;)Lorg/freertr/enc/encTlv; RST UVorg/freertr/util/debugger prtTcpTrafZX -Y(I)Ljava/lang/String; [\] ^_org/freertr/util/loggerdebug(Ljava/lang/String;)V /a bcvalDat[B e fgmsbGetW([BI)I 5i j=TCPmss 5l m=TCPwsc 5o p=TCPsak r sgmsbGetD 5u v=TCPack 5x y=TCPtsV 5{ |=TCPtsE 5~ =TCPaut 5 putByte(II)V 5 DputSkip  msbPutW([BII)V / putThis (Lorg/freertr/pack/packHolder;)V  =org/freertr/cfg/cfgAll tcpSegmentMin = tcpSegmentMax 5 f9 5 =UDPsrc 5 =UDPtrg 5 =TCPflg 5 =UDPsiz   parseTCPports 5 IPsrcLorg/freertr/addr/addrIP;  java/lang/StringvalueOf&(Ljava/lang/Object;)Ljava/lang/String; -&(Ljava/lang/String;)Ljava/lang/String; [ _info V tcpChecksumRx 5 9 pseudoIPsum 5 getIPsum(III)I 5 s9 5 =TCPseq 5 =TCPwin 5 =TCPurg  Y decodeFlags -,(IILjava/lang/String;IIII)Ljava/lang/String;  parseTCPoptions!(Lorg/freertr/pack/packHolder;I)Z 5 D setBytesLeft 5 D unMergeBytes  replaceMSSoption 5 putFill(III)V 5 LheadSize 5 V tcpChecksumTx 5 putIPsum 5 lsbPutW 5  merge2beg  org/freertr/addr/addrIPisIPv4()Zorg/freertr/addr/addrIPv4  toIPv4()Lorg/freertr/addr/addrIPv4;  toBuffer([BI)V org/freertr/addr/addrIPv6   toIPv6()Lorg/freertr/addr/addrIPv6;    org/freertr/cry/cryHashGenericupdate([B)V  hashOneAddress<(Lorg/freertr/cry/cryHashGeneric;Lorg/freertr/addr/addrIP;)V 5 IPtrg  msbPutD!org/freertr/cry/cryHashHmac#org/freertr/cry/cryHashSha1 " & G'()[B  ) *%(Lorg/freertr/cry/cryHashGeneric;[B)V  , -init  / D1TCP-AO    4 5'finish7org/freertr/cry/cryHashMd5 6 6, ; <= hashPseudoHdr@(Lorg/freertr/cry/cryHashGeneric;Lorg/freertr/pack/packHolder;)V 5? @AhashHead%(Lorg/freertr/cry/cryHashGeneric;II)V 5C DAhashData 6 64 H IJbyteCopy ([BI[BII)V 5L M=IPprtO -P>(IILjava/lang/String;IIIILjava/lang/String;)Ljava/lang/String; /R STputBytes$(Lorg/freertr/pack/packHolder;II[B)V 5V  X YZgetTCPpassword6(Lorg/freertr/pack/packHolder;ILjava/lang/String;[B)[B 5\ ]^putCopy([BIII)V 5` a(ZZ)V 5c dclear f ghsetAddr(Lorg/freertr/addr/addrType;)V 5j kVIPdf 5m n=IPfrg 5p q=IPalrt 5s t=IPttl 5v w=IPtos 5y z=IPid | }~createTCPheader5(Lorg/freertr/pack/packHolder;ILjava/lang/String;[B)V   protoPackT(Lorg/freertr/ip/ipFwdIface;Lorg/freertr/addr/addrIP;Lorg/freertr/pack/packHolder;)V  org/freertr/prt/prtGenConnprotoDatLjava/lang/Object;org/freertr/prt/prtTcpConn  lck  =netOut   pipeNetworkLorg/freertr/pipe/pipeSide;  org/freertr/pipe/pipeSidenonDestructiveGet([BII)I  =portLoc  =portRem  =seqLoc  =seqRem  L freeAtServer  = tcpWinScale  =tmstmpTx  =tmstmpRx  getTime()J  ifaceLorg/freertr/ip/ipFwdIface;  org/freertr/ip/ipFwdIfaceaddr  peerAddr  =sendTTL  =sendTOS  VecnTx  VecnRx  VecnRe  =sendDFN  =sendFLW  =keyId  passwdLjava/lang/String;  ctrfKtx  = tcpRangeMin  = tcpRangeMax  random(II)Istart  =sendPRT   =netMax  = tcpTimeSyn  =timeout  = tcpTimeWork  = workInterval  = tcpTimeNow    activWaitJ   V activFrcd  LrandomD  V tcpTimStmp   staTim  VtcpSack  VsackTx  =state  != tcpTimeOpen # $% getTCPkdfRngM(Lorg/freertr/addr/addrIP;Lorg/freertr/addr/addrIP;IIILjava/lang/String;II)[B ' (ctrfKrx * +ctrfKfx - .9 regulateMss 0 1=segSiz 3 4VtcpEcn 6 78 sendResetBack;(Lorg/freertr/pack/packHolder;Lorg/freertr/ip/ipFwdIface;)V:refuse<close > ? pipeClient A BsetClose D ELready2rx G H= tcpTimeClose J KLready2tx 5M NOpipeSend!(Lorg/freertr/pipe/pipeSide;III)I@Rresumed T UsetReady  5Z [^getCopy ] ^_byteComp ([BI[BII)I   d e= tcpTimeLateriaccepted k lm spoofCheck(I)Zr got reset t u setClosing w xdeleteImmediately { |9 nonBlockSkipopenedgot future sequence number  =sackRxgot data with fin  VseenFingot old data again  H send2serverupper don't need dataclosing  = tcpTimeFin   sendMyPacket"(Lorg/freertr/prt/prtGenConn;III)I   error2server\(Lorg/freertr/pack/packHolder;Lorg/freertr/addr/addrIP;Lorg/freertr/util/counter$reasons;I)V  LisClosed  = tcpTimeAlive   flush2net(Lorg/freertr/prt/prtGenConn;)Z    activLast  = tcpTimeMax  V tcpKeepalive  cntrLorg/freertr/util/counter;  org/freertr/util/counterrx  HparseTCPheader   org/freertr/util/counter$reasonsbadHdr"Lorg/freertr/util/counter$reasons;  dropB(Lorg/freertr/pack/packHolder;Lorg/freertr/util/counter$reasons;)V -  connectionSimpleWork;(Lorg/freertr/ip/ipFwdIface;Lorg/freertr/pack/packHolder;)V   reason2string6(Lorg/freertr/util/counter$reasons;)Ljava/lang/String; -:(Ljava/lang/String;IILjava/lang/String;)Ljava/lang/String;  connectionSimpleErrorv(Lorg/freertr/util/counter$reasons;Lorg/freertr/addr/addrIP;Lorg/freertr/ip/ipFwdIface;Lorg/freertr/pack/packHolder;)V  connectionSimpleState=(Lorg/freertr/ip/ipFwdIface;Lorg/freertr/util/state$states;)Vsize ConstantValueprotoNumflagFINflagSYNflagRSTflagPSHflagACKflagURG flagECE@flagCWRflagNS flagSynAck flagFinAck flagRstAck flagPshAck flagSynFinRstflagSynFinRstAck flagSynFin flagSynRst flagFinRst winSizMin winSizMax maxSegMax pshNetOut@(Lorg/freertr/ip/ipFwd;)VCodeLineNumberTable StackMapTableupdateTCPheader%(Lorg/freertr/pack/packHolder;IIIII)Vcjava/lang/Objectjava/lang/ThrowabletoString()Ljava/lang/String; getProtoNumtestPortNumbergetRandomPortNumconnectionStart=(Lorg/freertr/prt/prtGenConn;Lorg/freertr/pack/packHolder;Z)ZconnectionRefuseconnectionClose(Lorg/freertr/prt/prtGenConn;)VconnectionBytes(Lorg/freertr/prt/prtGenConn;)IconnectionSend<(Lorg/freertr/prt/prtGenConn;Lorg/freertr/pack/packHolder;)ZconnectionRcvd<(Lorg/freertr/prt/prtGenConn;Lorg/freertr/pack/packHolder;)VconnectionErrorx(Lorg/freertr/prt/prtGenConn;Lorg/freertr/pack/packHolder;Lorg/freertr/addr/addrIP;Lorg/freertr/util/counter$reasons;I)VconnectionWorkrecvPack alertPack;(Lorg/freertr/ip/ipFwdIface;Lorg/freertr/pack/packHolder;)Z errorPacksetState SourceFile prtTcp.javaBootstrapMethods9        ;option =got too small from ?got truncated from Agot bad checksum from C%rx  ->   seq= data= ack= sack=E+tx  ->   seq= data= ack= sack= pwd=Gtcp on Igot missing authentication K"got invalid authentication state M!got invalid authentication size O!got invalid authentication hash Qgot unwanted authentication Sgot both syn fin Ugot unwanted synack W"bad acknowkedge number in synack Ygot far sequence number [got far acknowledge number ]got rst with other controls _got future acknowledge number anet buffer underflow cgot data with control flags egot data while not open ggot unwanted syn igot fin while not open kgot invalid flags minvalid state o rec  ->  q   ->  s tuv -w$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; InnerClassesreasons{org/freertr/util/state$states}org/freertr/util/statestates%java/lang/invoke/MethodHandles$Lookupjava/lang/invoke/MethodHandlesLookup!================== = =  = ==~=#6**+ +* W !*  Yu M! #@%')+*;L OP ^/Y1L*+*4=-+:+>*A +*E+2 $@EJORZ\/! #*I*MM,Q,:WZ,:N*,`dh?*,`3~k.*n&*,`q*tdn*,`qw*,`qz**Id,>`}b &  ! / l*ML+b+:S"0*A***h+`d+`*h+*+*B ,128=@O[`chk /  .9J;;  c7****** **~ |*Y~ *6 H~*****I*,**I<**Iğ***Ƶ**Ƶt*****A*d<Q,*****Id*t*nZ*I=*d>*dr  !#)$8%:'@(I)X*g+i.r/|023456769:<=>? .c **6@*h***I6*A***d6*td***** ****9*`*I`6*`6**I6*d*`*`*#MN OPQR S$T*U0V8W>XGYQ[U\[]`_d`jaocsdzeghiklmnoprstu QB z/+M+N-,M+ N-,*,* yz {|}~#).  <=V*+*++M,,+I+`M,+I+`,*,. %6;IPU 6 $%   Y"Y$%(:+.0%2*+:    2  2  2..3:  Z #(.9?EJQX_gnv} YZ[:6Y8:9*:*>**IB,%EF- Y"Y$-(:+2*:***}d>.. 2***}d`*}d>**IB3::TT Gj !,5;?ARW_eu{; }~*KQ+*****I*t*n,NZ*h#M:`*h*`Q*wC***M:`*w`*z*`Q*nd***M:*n*`Q5`*n*t``*n*t`*`Q*k-M:`*kT*`Q**,KM:,****`Q*}*`Q*}*`6*******ȶU**tU* *~ x**˶***ζ3**I`6*6**I6*d***,**t**,-W:*d[3**I`6*6**I6*d**6M  14;AN[bhnsy #06;?EIOUZir   $(.2 3"9#@$G%P&U'e)k*x+,-/01& 4&F5/106/1578o+~5Y_N-b-h-k-z-w-n-+-+-+t-+ȵt----+e-+e-i-l-o-r-u-x+~ -Yt`t+~ -Yt`t-{* ,-~: ; =>?@"A'B,C1D9EAFIGQHWI^JcKnLyM~NOPQRSTVWYZ[  5 +:5Y_:Y:bI`:+`d>ì[hk++`tnYd>+ d666|z`w+e+eilo+ĵr+ǵuʙJu uu~u͙Y@ЙY+i+ֵx~YdhkY`ç :  ++{* +RS;^ _`a"b&c1dIeNfShaigjllrmxnopqrstuvxyz|}&28>DMV^fl| qS 5U 1T#M5 55,5% * L mCĤ !L" "# Q Z+Y:+++    `,Q+++++++d"++++++,"&++++++d,ȸ"++++++,d"),w ,h,//2,@~,n,`,~*,+5& #)07@FNT^fjnv|<CIU_yG Q&2k5V5 $@Q 9Z*,+5  %&Y+MQ ;Z+=@W+@W+C,,,+F,, 2   $ 8 = DKSX /'(E+=I==)*D,I>,+=L *+@ lm8P /@+, " +N-Y:-,~ñQ QZ-,t-,ȵ-++++++--"&-++++++--"-,h,/--/---- +SW++.,}$-6,~-+Vñ-[-++++++,-d"&-++++++-d,ȸ"),,tA,,,,t,,++-&W:+Wñ,,}td4`+Xñ:,,}tY\+`ñ,}+añ,t-d6-,d6,I6d6,~6 - -,w-ʙG-Y,~~-Y,u~-,@~ ~+bñ --c+fñ-c+gñ-,`Q hZ,z--2,@~-,n-,h,/---)--- +SW+ñj+nñ ~j+oñ ~9 ~+pñQ qZ-+sW+vWñ ~+C+ ~ -Y`+y-c6d+z6  +}ñ-Y `-Y d---Y-/`-~ -~,n---/-- -5Q Z---- +SW+2Q Z-c-ñ- -tñ, ~Q Z6  ~+ ~-Z-+sW+vWñ+-,-Y`-ñ+sW+vWñññQ Zñ,A+,1Q Z-ñ-- -ñ-Y`- -ñ '-+ñ--)&ñ ~--BQ Z+sW---- -Y`+ñ-*--Y`*+W+sW+vWñ-ñ+ñ+ç :  "%&_`+,45RS^_ r9:;<"=&?,@2B:CBDlEFGHIJKLMOPQRSVW2X^Zg[o\x]^_`acdeghijkmopqt#u.v4w;xDyKzS|Z}s~ 5LW]elty~#/7:?JP\`kv} !(,18>DGNZajrw|      !"#%'&,'1(5*;+C,O-S/[0_2f3k4t5z689:;<=>?ABCDEFGIJLMO PQoD& ._G"4: 5 5 5 5 5R 5& T 5U 5? $%!%%#    2. 5-.3,,A+,-]^_+M+C>, JE+ ,Q Z+,, ,,6, 6, ,c6,d6,,d66,/ ,/66,@6!*+,6 *+,W'bcde&f.g0i6j<lCmKnPoUp\q^sathukwpxxz|{|}~ 0 !  ! /&c+MB,*+ ,!, !,e,,Yi, ,,!, ,)Osv*+,ʙ@,W*+2 W*+W!,ep,h*+W!,eP,H*+,W,,/,!+vW++sW+vW# "#89EQY^c4<ADILX]b #6   0}?*,,Ù*,ƶ̱Q,,,ѺZ*+,ұ"!8>123d3Q!+ѺZ*+,-ݱ )2)4#*+, 567r8r:r<r>r@rBrDrFrHrJrLrNrPrRrTrVrXrZr\r^r`rbrdrfrhrjrlrnrpxy@z|~@