76  'net/luminis/quic/recovery/RecoveryTests()V   -net/luminis/quic/recovery/RecoveryManagerTest defaultRttI    defaultRttVar&net/luminis/quic/recovery/RttEstimator  org/mockito/Mockitomock%(Ljava/lang/Class;)Ljava/lang/Object;   rttEstimator(Lnet/luminis/quic/recovery/RttEstimator;  getSmoothedRtt()I !"# $%java/lang/IntegervalueOf(I)Ljava/lang/Integer; ' ()when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing; +,- .)$org/mockito/stubbing/OngoingStubbing thenReturn 0 1 getLatestRtt 3 4 getRttVar6net/luminis/quic/send/Sender 8 9: probeSenderLnet/luminis/quic/send/Sender;<net/luminis/quic/log/Logger ;> ?@getQLog()Lnet/luminis/quic/qlog/QLog;Bnet/luminis/quic/qlog/QLogDnet/luminis/quic/test/TestClock C G HIclock!Lnet/luminis/quic/test/TestClock;K)net/luminis/quic/recovery/RecoveryManager MNO PQnet/luminis/quic/RoleClientLnet/luminis/quic/Role;S(net/luminis/quic/cc/CongestionController JU V(Ljava/time/Clock;Lnet/luminis/quic/Role;Lnet/luminis/quic/recovery/RttEstimator;Lnet/luminis/quic/cc/CongestionController;Lnet/luminis/quic/send/Sender;Lnet/luminis/quic/log/Logger;)V X YZrecoveryManager+Lnet/luminis/quic/recovery/RecoveryManager;\+net/luminis/quic/test/TestScheduledExecutor [^ _$(Lnet/luminis/quic/test/TestClock;)V abc dejava/lang/ObjectgetClass()Ljava/lang/Class;g scheduler ijk lmjava/lang/ClassgetDeclaredField-(Ljava/lang/String;)Ljava/lang/reflect/Field; opq rs!net/luminis/quic/test/FieldSettersetField@(Ljava/lang/Object;Ljava/lang/reflect/Field;Ljava/lang/Object;)Vu+net/luminis/quic/recovery/LostPacketHandler w xylostPacketHandler-Lnet/luminis/quic/recovery/LostPacketHandler; J{ | stopRecovery ~  createPacket'(I)Lnet/luminis/quic/packet/QuicPacket; C instant()Ljava/time/Instant;  java/util/ObjectsrequireNonNull&(Ljava/lang/Object;)Ljava/lang/Object; acceptL(Lnet/luminis/quic/recovery/LostPacketHandler;)Ljava/util/function/Consumer; J  packetSentW(Lnet/luminis/quic/packet/QuicPacket;Ljava/time/Instant;Ljava/util/function/Consumer;)V C  fastForward(I)V N(Lnet/luminis/quic/recovery/RecoveryManagerTest;)Ljava/util/function/Consumer;net/luminis/quic/frame/AckFrame (J)V  net/luminis/quic/PnSpaceAppLnet/luminis/quic/PnSpace; J  onAckReceivedQ(Lnet/luminis/quic/frame/AckFrame;Lnet/luminis/quic/PnSpace;Ljava/time/Instant;)V  never-()Lorg/mockito/verification/VerificationMode;  verifyQ(Ljava/lang/Object;Lorg/mockito/verification/VerificationMode;)Ljava/lang/Object;"net/luminis/quic/packet/QuicPacket  any t process'(Lnet/luminis/quic/packet/QuicPacket;)V  times.(I)Lorg/mockito/verification/VerificationMode;,net/luminis/quic/PacketMatcherByPacketNumber   argThat1(Lorg/mockito/ArgumentMatcher;)Ljava/lang/Object;  net/luminis/quic/HandshakeState Confirmed!Lnet/luminis/quic/HandshakeState; J handshakeStateChangedEvent$(Lnet/luminis/quic/HandshakeState;)V  anyList()Ljava/util/List; net/luminis/quic/EncryptionLevel 5  sendProbe5(Ljava/util/List;Lnet/luminis/quic/EncryptionLevel;)V  ensureSendProbeCallsPacketSent([I)V ()Ljava/util/function/Consumer;  java/time/Instantnow  I(ILnet/luminis/quic/frame/QuicFrame;)Lnet/luminis/quic/packet/QuicPacket; "Lnet/luminis/quic/EncryptionLevel; 5 %(Lnet/luminis/quic/EncryptionLevel;)V      clearInvocations([Ljava/lang/Object;)V&net/luminis/quic/recovery/LossDetector lossDetectors    getLossTimed   minusMillis(J)Ljava/time/Instant;  apply()Ljava/util/function/Function; J getEarliestLossTimeV(Ljava/util/function/Function;)Lnet/luminis/quic/recovery/RecoveryManager$PnSpaceTime;  5net/luminis/quic/recovery/RecoveryManager$PnSpaceTimepnSpace  !ordinal #$% &'org/assertj/core/api/Assertions assertThat/(I)Lorg/assertj/core/api/AbstractIntegerAssert; )*+ ,'*org/assertj/core/api/AbstractIntegerAssert isEqualTo . /createCryptoPacket2 34matches()Lorg/mockito/ArgumentMatcher;6java/util/List8%net/luminis/quic/packet/InitialPacket ; <Initial> net/luminis/quic/frame/QuicFrame@ net/luminis/quic/frame/PingFrame ? C DEcreateHandshakePacketJ(I[Lnet/luminis/quic/frame/QuicFrame;)Lnet/luminis/quic/packet/QuicPacket;H"net/luminis/quic/frame/CryptoFrame JKL MNnet/luminis/quic/Version getDefault()Lnet/luminis/quic/Version; GP Q(Lnet/luminis/quic/Version;[B)V T U Handshake JW XYgetFramesToRetransmit,(Lnet/luminis/quic/PnSpace;)Ljava/util/List; #[ &\3(Ljava/util/List;)Lorg/assertj/core/api/ListAssert; ^_` aborg/assertj/core/api/ListAssert isNotEmpty/()Lorg/assertj/core/api/AbstractIterableAssert; ^d efdoesNotHaveAnyElementsOfTypesA([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractIterableAssert; ^h ijhasAtLeastOneElementOfType@(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractIterableAssert;lnet/luminis/quic/frame/Padding kq/net/luminis/quic/recovery/RecoveryManagerTest$1 ps t4(Lnet/luminis/quic/recovery/RecoveryManagerTest;[I)V v wxdoAnswer=(Lorg/mockito/stubbing/Answer;)Lorg/mockito/stubbing/Stubber; z{| (org/mockito/stubbing/Stubber 5~ stream()Ljava/util/stream/Stream; test ()Ljava/util/function/Predicate;  java/util/stream/StreamallMatch!(Ljava/util/function/Predicate;)ZCodeLineNumberTableLocalVariableTablethis/Lnet/luminis/quic/recovery/RecoveryManagerTest;initObjectUnderTestloggerLnet/luminis/quic/log/Logger;/Ljava/util/concurrent/ScheduledExecutorService; Exceptionsjava/lang/ExceptionRuntimeVisibleAnnotations"Lorg/junit/jupiter/api/BeforeEach;initLostPacketCallbackshutdownRecoveryManager!Lorg/junit/jupiter/api/AfterEach;;1framesToRetransmitShouldNotBePingAndPaddingAndAck packetNumbers[InoOp lostPacket;lambda$framesToRetransmitShouldNotBePingAndPaddingAndAck$18p;lambda$framesToRetransmitShouldNotBePingAndPaddingAndAck$17+lambda$framesToRetransmitShouldNotBePing$16+lambda$framesToRetransmitShouldNotBePing$154lambda$probeIsSentToPeerAwaitingAddressValidation$14!lambda$initialPacketRetransmit$13(Ljava/util/List;)Zframes!lambda$initialPacketRetransmit$12%(Lnet/luminis/quic/frame/QuicFrame;)Zf"Lnet/luminis/quic/frame/QuicFrame;!lambda$initialPacketRetransmit$117lambda$whenProbesAreAckedProbeTimeoutIsResetToNormal$101lambda$probeTimeoutShouldMoveToLastAckEliciting$91lambda$probeTimeoutShouldMoveToLastAckEliciting$8Alambda$whenAckElicitingPacketsAreNotAckedProbeIsSentForLastOnly$7Alambda$whenAckElicitingPacketsAreNotAckedProbeIsSentForLastOnly$6Alambda$whenAckElicitingPacketsAreNotAckedProbeIsSentForLastOnly$5Alambda$whenAckElicitingPacketsAreNotAckedProbeIsSentForLastOnly$4Alambda$whenAckElicitingPacketsAreNotAckedProbeIsSentForLastOnly$3Alambda$whenAckElicitingPacketsAreNotAckedProbeIsSentForLastOnly$2lambda$noProbeIsSentForAck$1,lambda$whenProbeIsNotAckedAnotherOneIsSent$0 SourceFileRecoveryManagerTest.java NestMembersBootstrapMethods  "java/lang/invoke/LambdaMetafactory metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;(Ljava/lang/Object;)V                          =(Lnet/luminis/quic/recovery/LossDetector;)Ljava/time/Instant;  (Ljava/lang/Object;)Z     ! # $ & ' ) * , -  InnerClasses PnSpaceTime2%java/lang/invoke/MethodHandles$Lookup4java/lang/invoke/MethodHandlesLookup YZxy  9:HI%G**P**l .2 3 ? ** &* *W*/ &* *W*2 &* *W*557;;L+=&AA*W*CYEF*JY*FL*RR*7+TW[Y*F]M*W*W`fh,n2 : ;&<@=Z>f?o@CDEFG ofg; *ttv K L  6*Wz PQ *W*}*F*vYW*F*l*W*}*F**WY*F*vt*F**vtY¸"Z![.\G_bb|cde *Wȶ*W*}*F*** h`<*F h l*75ָֹ*Fh l*75ָֹ"j m#p/q=rZsgtu/W =*Wȶ* YOYOYO*FL*W*}+** h`=*F*75ָֹh>*F h l*75ָֹ*Fh l*75ָֹ6 z {~%7CKim{*%C mX c*WY *YL*W+** h`=*F h*75&6BMb c&=B! *Wȶ** h`<l=*W* }*F*F*W* }*F*F*W* }*F*F*W* }*F*F*W*}*F*F*W*}*F*75ָֹ*F*75ָֹJ 3;T\u}   !*Wȶ** h`<*W* }*F*Fl*W* }*F*Fl*WY*Fhl*75*Fhl*75ָֹ2 /9R\s *Wȶ* YOYOYO*W*}*F** h`<*F*75ָֹ5Y*7Sh=*F*75ָֹ5Y*7S*WY*F*Fhl*75ָֹ*Fhl*75ָֹF 5AIguy A y  L=+S*W*W`h+nM+2 &,*W+2 &*W+2 &, *W*W"(W.  37GWm* 7Q *W*-*F*0** h`<*Fhl*75ָֹ*Fhl*7515ָֹ*vt7"%3 Q ^ %{ o*W*-*F9*F**WY :*F** h`<*F*75ָֹ#<HPnoH'  *=Y?YASBL*W+*FF*=YGYIdOSBM*W,*FR*WSVN-Z]W-ZiY?ScW-ZGgW& "#($C%W'b)j*|+,*tCEb& b& *=Y?YASYkYmSYY SBL*W+*Fn*=YGYIdOSBM*W,*Fo*WSVN-Z]W-ZiY?ScW-ZGgW& 0*1>2Y3m5x789:**tYEx& x&e)pY*+ru*7y5ָֹCM(N))5P +3  +1  +%  +#  +  ;*}   /*G  ? *v+   +  +  +  +  +  +  +  +  +  +  + p  "%(+./J0p135