7  java/lang/Object()Vorg/freertr/tab/tabRoute lrn   (Ljava/lang/String;)V  org/freertr/rtr/rtrPvrpNeighlearnedLorg/freertr/tab/tabRoute;adv  advertedorg/freertr/tab/tabAverage  (II)V  !echoCalcLorg/freertr/tab/tabAverage;#org/freertr/util/notifier " & '(notifLorg/freertr/util/notifier; * +,lowerLorg/freertr/rtr/rtrPvrp; . /0ifaceLorg/freertr/rtr/rtrPvrpIface; 234 56org/freertr/addr/addrIPv4 copyBytes()Lorg/freertr/addr/addrIPv4; 8 9:rtrIdLorg/freertr/addr/addrIPv4; <=> 5?org/freertr/addr/addrIP()Lorg/freertr/addr/addrIP; A BCpeerLorg/freertr/addr/addrIP; EFG HIorg/freertr/util/bitsgetTime()J K LM lastHeardJ O PQsentMetI S TUsentMedZ W XQ sentSegrou Z [QsentBier ] ^Q gotMetric ` aU gotMeasure <c de compareTo(Lorg/freertr/addr/addrType;)I ghi jkjava/lang/StringvalueOf&(Ljava/lang/Object;)Ljava/lang/String;m nomakeConcatWithConstants&(Ljava/lang/String;)Ljava/lang/String; q rstopWork tuv wUorg/freertr/util/debugger rtrPvrpEvnty nz8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; |}~  org/freertr/util/loggerdebug  Uneed2run  MupTimejava/lang/Thread (Ljava/lang/Runnable;)V starty  connLorg/freertr/pipe/pipeSide;  org/freertr/pipe/pipeSidesetClose()Z  clear  org/freertr/rtr/rtrPvrpIfaceneighsLorg/freertr/tab/tabGen;  org/freertr/tab/tabGendel.(Ljava/lang/Comparable;)Ljava/lang/Comparable; &org/freertr/rtr/rtrPvrp " wakeup /Lorg/freertr/ip/ipFwdIface;  org/freertr/ip/ipFwdIfacebfdDel8(Lorg/freertr/addr/addrIP;Lorg/freertr/rtr/rtrBfdClnt;)Z  doRunjava/lang/Exception |  traceback(Ljava/lang/Throwable;)V QmetricIn U acceptMetric Q dynamicMetric   getResult(I)I  QseqRx isClosed()I lineGet(I)Ljava/lang/String; g trim()Ljava/lang/String; t U rtrPvrpTrafy dumpFileLorg/freertr/util/logFil; |  getTimestamp nJ(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;  org/freertr/util/logFiladdorg/freertr/util/cmdsrx '(Ljava/lang/String;Ljava/lang/String;)V  signRxLjava/lang/String; wordsigned g equals(Ljava/lang/Object;)Z missingSign   sendErr java/util/ArrayList     java/util/List n   getRemaining  org/freertr/user/userUpgrade calcTextHash$(Ljava/util/List;)Ljava/lang/String;badSign  QseqTx  !signTxyy & ' linePut y |* + info m . / sendLn y m3org/freertr/rtr/rtrBgpUtil 567 89org/freertr/tab/tabListingmatches"(IILorg/freertr/addr/addrPrefix;)Z E; <=random(II)I E? @Asleep(I)V C DCaddr mGorg/freertr/prt/prtAccept I JKtcpCoreLorg/freertr/prt/prtTcp;Morg/freertr/pipe/pipeLine LP Q(IZ)VSpvrp U VQ sendingTtl X YQ sendingTos F[ \(Lorg/freertr/prt/prtGen;Lorg/freertr/pipe/pipeLine;Lorg/freertr/ip/ipFwdIface;ILorg/freertr/addr/addrIP;ILjava/lang/String;ILjava/lang/String;II)V F^ _A wait4conn Fa bcgetConn(Z)Lorg/freertr/pipe/pipeSide;m fgh ijorg/freertr/prt/prtTcp streamConnect(Lorg/freertr/pipe/pipeLine;Lorg/freertr/ip/ipFwdIface;ILorg/freertr/addr/addrIP;ILjava/lang/String;ILjava/lang/String;II)Lorg/freertr/pipe/pipeSide; l mQ deadTimer o pAsetTime rst uv org/freertr/pipe/pipeSide$modTyp modeCRtryLF"Lorg/freertr/pipe/pipeSide$modTyp; x yvlineRx r{ |vmodeCRLF ~ vlineTx   wait4ready(I)Z   ipInfoCfgLorg/freertr/sec/secInfoCfg;org/freertr/sec/secInfoCls  fwdCoreLorg/freertr/ip/ipFwd;  (Lorg/freertr/pipe/pipeSide;Lorg/freertr/prt/prtGenConn;Lorg/freertr/ip/ipPrt;Lorg/freertr/ip/ipFwd;Lorg/freertr/addr/addrIP;ILorg/freertr/addr/addrIP;)Vorg/freertr/sec/secInfoWrk  ;(Lorg/freertr/sec/secInfoCfg;Lorg/freertr/sec/secInfoCls;)V   ipInfoResLorg/freertr/sec/secInfoWrk;  doWork(Z)Z   need2drop notPingable notNeeded  QencryptionMethod  org/freertr/serv/servGeneric proto2stringm  recvLn()Lorg/freertr/util/cmds; startEncryptstartEncryptRequiredm  org/freertr/sec/secClientopenSec_(Lorg/freertr/pipe/pipeSide;I[BLjava/lang/String;Ljava/lang/String;)Lorg/freertr/pipe/pipeSide;morg/freertr/auth/authConstant  (Z)V  keyRsaLorg/freertr/cfg/cfgKey;  org/freertr/cfg/cfgKeykeyLorg/freertr/cry/cryKeyGeneric;org/freertr/cry/cryKeyRSA  keyDsaorg/freertr/cry/cryKeyDSA  keyEcDsaorg/freertr/cry/cryKeyECDSA  certRsaLorg/freertr/cfg/cfgCert;  org/freertr/cfg/cfgCertcert Lorg/freertr/cry/cryCertificate;  certDsa   certEcDsa  org/freertr/sec/secServer%(Lorg/freertr/pipe/pipeSide;ILorg/freertr/pipe/pipeLine;Lorg/freertr/auth/authGeneric;Lorg/freertr/cry/cryKeyRSA;Lorg/freertr/cry/cryKeyDSA;Lorg/freertr/cry/cryKeyECDSA;Lorg/freertr/cry/cryCertificate;Lorg/freertr/cry/cryCertificate;Lorg/freertr/cry/cryCertificate;)Lorg/freertr/pipe/pipeSide;  U authenDisable  authentication E randomB  org/freertr/enc/encBase64 encodeBytes([B)Ljava/lang/String;mpassword-requestpassReqRequired g length passTooSmallm password-reply passRepRequired badPassword  :routerID  Qmtu  Q bfdTrigger  org/freertr/cfg/cfgAllhostName n!L(Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;#open% openRequired'? ) *name , -inam/rtrid g1 23 startsWith(Ljava/lang/String;)Z/ g6 78 substring(II)Ljava/lang/String;* E< =>str2num(Ljava/lang/String;)I@bfdmm D EFbfdAddJ(Lorg/freertr/addr/addrIP;Lorg/freertr/rtr/rtrBfdClnt;Ljava/lang/String;)Z H IJbfdWait(Lorg/freertr/addr/addrIP;I)ZLbfdFaily |O P warnR org/freertr/rtr/rtrPvrpNeighRcvr QT U!(Lorg/freertr/rtr/rtrPvrpNeigh;)V QW X startWork Z [Q helloTimer "] ^misleep ` aMechoTime c dQ echoTimer f g! echoParam i jk updateFrom(Lorg/freertr/tab/tabAverage;)V Em nrandomD p qQechoDatatorg/freertr/clnt/clntPing s sw x!meas sz {fwd s} ~src s Ctrg s org/freertr/clnt/clntEcho  w  udpCoreLorg/freertr/prt/prtUdp;  udp }  org/freertr/clnt/clntTwamp  w  }    ready2tx  doAdverty |  error   getMetric  U dynamicForbid n(Z)Ljava/lang/String;   segrouLab [Lorg/freertr/tab/tabLabelEntry;  Qorg/freertr/tab/tabLabelEntrylabel  Q segrouMax n8  bierLab  QbierLen  QbierMax n(III)Ljava/lang/String;  size  get"(I)Lorg/freertr/tab/tabRouteEntry;  need2adv  find@(Lorg/freertr/tab/tabRouteEntry;)Lorg/freertr/tab/tabRouteEntry;   sendUpdate#(Lorg/freertr/tab/tabRouteEntry;Z)V   org/freertr/tab/tabRoute$addTypenotyet"Lorg/freertr/tab/tabRoute$addType;  org/freertr/tab/tabRouteEntrydiffersD(Lorg/freertr/tab/tabRoute$addType;Lorg/freertr/tab/tabRouteEntry;)Inomorewithdraw  "(Lorg/freertr/tab/tabRouteEntry;)Z reachable  always  F(Lorg/freertr/tab/tabRoute$addType;Lorg/freertr/tab/tabRouteEntry;ZZ)V  Ulabels  bestLorg/freertr/tab/tabRouteAttr;  org/freertr/tab/tabRouteAttrlabelLocLorg/freertr/tab/tabLabelEntry;  UlabelPop   org/freertr/ip/ipFwd commonLabel org/freertr/ip/ipMpls   labelOutLorg/freertr/tab/tabListing;  prefixLorg/freertr/addr/addrPrefix;   checkPrefix<(Lorg/freertr/tab/tabListing;Lorg/freertr/addr/addrPrefix;)Z  Q segrouIdx! n'(Ljava/lang/String;I)Ljava/lang/String; ! "QbierIdx" % &QbierSub# )*+ ,-org/freertr/addr/addrPrefixip2str1(Lorg/freertr/addr/addrPrefix;)Ljava/lang/String; / 0Qmetric 2 3Q metricOut 5 6Qtag 8 9QrouSrc ; <= clustListLjava/util/List; ?@A Borg/freertr/tab/tabRouteUtil dumpAddrList$D nEq(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;)Ljava/lang/String; G dH!(Lorg/freertr/rtr/rtrPvrpNeigh;)IJjava/lang/RunnableLorg/freertr/rtr/rtrBfdClntNjava/lang/Comparable Signature5Lorg/freertr/tab/tabRoute; gotSegrouBeg gotSegrouMax gotBierBeg gotBierLen gotBierMaxn(Lorg/freertr/rtr/rtrPvrp;Lorg/freertr/rtr/rtrPvrpIface;Lorg/freertr/addr/addrIPv4;Lorg/freertr/addr/addrIP;)VCodeLineNumberTabletoString bfdPeerDown StackMapTablerunsendWrn(Lorg/freertr/tab/tabListing;Lorg/freertr/addr/addrPrefix;)Z`[B>(Lorg/freertr/tab/tabRouteEntry;Z)V(Ljava/lang/Object;)IMethodParametersxLjava/lang/Object;Ljava/lang/Runnable;Lorg/freertr/rtr/rtrBfdClnt;Ljava/lang/Comparable; SourceFilertrPvrpNeigh.javaBootstrapMethodsi pvrp with kstarting peer  ()mstopping peer  ()o rx q  rx su signed  w tx y  tx {sent error () to }error sent warning () to  warning  accepting  connecting startEncrypt secure client secure server password-request password-reply 'open rtrid= mtu= bfd= iface= name=mtu mismatch with bfd mismatch with neighbor  () upecho  keepalive neighbor  () downmetric measme  segrou   bier    label=  segrou=  bieri=  biers=/ prefix= metric= tag= external= path=    n$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; InnerClassesmodTypaddType%java/lang/invoke/MethodHandles$Lookupjava/lang/invoke/MethodHandlesLookup!IKM BC*-9:OPOP^QaUQQRQSQTQUQaMqQ !LM'(+,/0MPQTUXQ[Q!QQUVWw**Y *Y *Y*"Y$%*+)*,-*-17*;@*DJ*N*R*V*Y*\*_XFIN+6;@HQX]bglqvdHW$ *@+@bXYW% *@flXZW!*pX XWt;s*7f*@fx{*DJ**DY*X#(/:[rWus*7f*@f{*<** *W***-*W*)*-*@*W*%X:!&-5<CGS]mt[\Wj* *L+*pX"     [  BWE*-<*-Ù*\*\*\<*_*-*ɬX"!&-/:<![& Ww*Y`*Й*L+Lܙ*@f+{*-*-*@f+Y+M*,,L+ *,LY N-* W-*ͺ W-, W-* W+- *,Xj* +,. /%0+1;3E4_6j7q8s:x;<=?@ABCDEFGI[$g#Q $/ W*Y`+L*DY M,* W,* W,+ W,* W,+"Lܙ*@f+#{*-*-*@f+$*+%X>R STUV)W9XAYLZW\]]m_w`bc[W# WC+*@f()*+,-*pXklmn] W;+*@f0)*+1-XvwxWB++,4X[ @O^W  * *W**:>*@*-Bbgs*@fE{FY*)HLYNO*- *@R*-T*-WZL+u0]*+`Ss*@fd{**)HLYNO*-*@ R*-T*-We***-khn*qw*z}**-k*-SY*)*@*-BL*Y*-+*W* ** **-C**--*L+YL+M, **@*-Bb4s*@f{***-s*@f{***-LYNOY*-Ŵ*-Ѵ*-ִ*-۴*-*-߸***-khn*qw*z}**-kW* **-z*-pL=++T+M*,-*N-YN-: *-: *Y : W, W*- W W, W* -*N-YN-: * Y :, W W*- W, W W:- **,*-**-,* ***)f*-*-*-f-*L+YL+" *$*&(*&+=>+:.040*5+90*5(:05;=?05;>nk*-*@fA)*-*@fB)* *A*-6*-*@*RCW*-*@*-kG *K* ****(*@fMNQY*SV*)*-*-*@*RCW 7*t*%*-Y\WD7*_*-ba**-eh*-ƪ 7r*lo**or-sYu:*v*)y*-|*@vY:  * *) *- *@ ;Y:  * *) *- *@ * e_*-Ya**-k- e7*Й***p*(*@fX)=CR ./9[nw (.=  %/48FLW^_eovw'18DKL_ry      !+".$9%H&K(V)e*h,s-.01245789;<= >?BCD F'G.HAILJVK`LsNvP}QSTUVWYZ[]^_`a&b+c.e7f@gLhXiajfkimrn{opqruwxy{|~[8BN:5Y3g(i2_%gggb X%Gg BR [::7& Wzp*<*N*N**N-*R*-#**-R**R-<*)*)2<*V*V**)-<*)*)2<*Y *Y**)*)ú-=<*ɢA*N-+*--**-ׄ<*-жɢH*-N-/-*-Ӷ**-ׄ *-X- -8MOYfns +/2DGTU[^dho[<d$    W 0N*+WN*+:*)X+N+6*-*)6 :**-+:*)++:*)-+ #+ #:+$':*-+(+.*-1`+4+7~*)f+:>C-XR%*>Jfir/[ZgCg#30ggggggggggOaAdbW! *+FX+cOdefg%hjlnprtvxz|~r@@