Aorg/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)I  =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=segSiz 2 3VtcpEcn 5 67 sendResetBack;(Lorg/freertr/pack/packHolder;Lorg/freertr/ip/ipFwdIface;)V9refuse < = pipeClient ? @setClose B CLready2rx E F= tcpTimeClose H ILready2tx 5K LMpipeSend!(Lorg/freertr/pipe/pipeSide;III)I@ Q R ackedLast T UsetReady   5Z [^getCopy ] ^_byteComp ([BI[BII)I d e= tcpTimeLater j kl spoofCheck(I)Z r s setClosing u vdeleteImmediately y z9 nonBlockSkip  =sackRx  VseenFin  H send2server !"  = tcpTimeFin   sendMyPacket"(Lorg/freertr/prt/prtGenConn;III)I#$   error2server\(Lorg/freertr/pack/packHolder;Lorg/freertr/addr/addrIP;Lorg/freertr/util/counter$reasons;I)V  = tcpTimeStuck  = tcpTimeAlive  LisClosed   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.javaBootstrapMethods0        2option 4got too small from 6got truncated from 8got bad checksum from :%rx  ->   seq= data= ack= sack=<+tx  ->   seq= data= ack= sack= pwd=>tcp on @start Bclose D resumed Fgot missing authentication H"got invalid authentication state J!got invalid authentication size L!got invalid authentication hash Ngot unwanted authentication Pgot both syn fin Rgot unwanted synack T"bad acknowkedge number in synack V accepted Xgot far sequence number Zgot far acknowledge number \got rst with other controls ^ got reset `got future acknowledge number bnet buffer underflow dopened fgot future sequence number hgot data with fin jgot data with control flags lgot data while not open ngot old data again pupper don't need data rgot unwanted syn t closing vgot fin while not open xgot invalid flags zinvalid state | rec  ->  ~   ->    -$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; InnerClassesreasonsorg/freertr/util/state$statesorg/freertr/util/statestates%java/lang/invoke/MethodHandles$Lookupjava/lang/invoke/MethodHandlesLookup!=======================|="  6**+ +* W   !*  Y u 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  /  -9 J;;     c7****** **~ |*Y~  *6 H ~*****I*,**I<**Iğ***Ƶ**Ƶt*****A*d<Q,*****Id*t*nZ*I=*d>*d r  !#)$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 G j !,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/1567 o+~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  l CĤ   L "    Q+Z+Y:+++    `,Q+++++++d!++++++,!%++++++d,ȸ!++++++,d!(,w ,h+..1,@~,n,`,~*,+4 &!)/6=FLTZdlpt|BIO[e G Q&2k5V5  @Q 8Z*,+4     _+MQ+:Z+;>W+>W+A,,,+D,,  2  " * > C JQY^ / E+;G==   ! D,I>,+;J *+ @ kl 8N  / @"# t+N-Y:-,~ñQ+OZ-,t-,ȵ-++++++--!%-++++++--!-,h+.--.---- --P+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--1,@~-,n-,h+.---(--- --P+SW+ñi+mñ ~i+nñ ~? ~+oñQ+pZ-+qW+tWñ ~+A1 ~ -Y`Q+wZ-c6k+x6  +{ñ-Y `-Y d---Y-.`-| -|-P,n---.-- -CQ+}Z---- --P+SW+8Q+~Z-c-ñ- -tñ2 ~Q+Z6  ~+ ~-Z-+qW+tWñ+-,-Y`-ñ+qW+tWññ"ñQ+Zñ,A+,7Q+Z-ñ-- -ñ-Y`- -ñ '-+ñ--(%ñ ~--HQ+Z+qW---- -Y`+ñ-*--Y`*+W+qW+tWñ-ñ+ñ+ç :  "%k& k kk k %k&kkkkkkkk k^k_nkokkk k k.k/YkZpkqkkk k<k=HkIXkYhkkpk 9:;<"=&?,@8B@CHDrEFGHIJKLMNPQRST WX@Yl[u\}]^_`abdefhijkl npq"r&u1v<wBxIyRzY{a}h~$+0I`kqy  (4;EKW_bgrx !).5:@LT[_dkot{     +/5= C!O#V$Z&b'g(m)q+|,-.01235689:;<>?@ABCD EGHI%J/K4L9M=OEPIRUSYUeVsW sF&._G"4: 5 5 5 5 5R 5& T 5U 5G$ %!-%#   &2. 5$% 3,,A+,- cde&  +MB,++A6,!P@!,Pe6, (",+6 ,c9Q+Z+,, ,,!,!, 6, 6,d6,,d6   6,. ,.66,@6!*+,6 6*+,W, !,e,,Yi, ,,!, ,+Qux*+,ʙ@,W*+1 W*+W!,ep,h*+W!,eP,H*+,W,,.,!+tW++qW+tW Gmn opq$r)tFuSv[wryz{|}  "%(+0=RS_ksx}#19PX]`ehty~ O&)@&# " 8   ' }?*,,*,ñQ,,,ѺZ*+,ɱ "!8> ()  * d3Q!+ѺZ*+,-Ա  )2 )+ #*+,ر ,-.(/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}@@