class org.junit.jupiter.engine.extension.TimeoutExtension implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.InvocationInterceptor
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.junit.jupiter.engine.extension.TimeoutExtension
  super_class: java.lang.Object
{
  private static final org.junit.jupiter.api.extension.ExtensionContext$Namespace NAMESPACE;
    descriptor: Lorg/junit/jupiter/api/extension/ExtensionContext$Namespace;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String TESTABLE_METHOD_TIMEOUT_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "testable_method_timeout_from_annotation"

  private static final java.lang.String GLOBAL_TIMEOUT_CONFIG_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "global_timeout_config"

  private static final java.lang.String ENABLED_MODE_VALUE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "enabled"

  private static final java.lang.String DISABLED_MODE_VALUE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "disabled"

  private static final java.lang.String DISABLED_ON_DEBUG_MODE_VALUE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "disabled_on_debug"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 42
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Lorg/junit/jupiter/api/Timeout;
            aastore
            invokestatic org.junit.jupiter.api.extension.ExtensionContext$Namespace.create:([Ljava/lang/Object;)Lorg/junit/jupiter/api/extension/ExtensionContext$Namespace;
            putstatic org.junit.jupiter.engine.extension.TimeoutExtension.NAMESPACE:Lorg/junit/jupiter/api/extension/ExtensionContext$Namespace;
         1: .line 47
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;

  public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.ExtensionContext context
         0: .line 51
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.readAndStoreTimeoutSoChildrenInheritIt:(Lorg/junit/jupiter/api/extension/ExtensionContext;)V
         1: .line 52
            return
        end local 1 // org.junit.jupiter.api.extension.ExtensionContext context
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    2     1  context  Lorg/junit/jupiter/api/extension/ExtensionContext;
    MethodParameters:
         Name  Flags
      context  

  public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.ExtensionContext context
         0: .line 56
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.readAndStoreTimeoutSoChildrenInheritIt:(Lorg/junit/jupiter/api/extension/ExtensionContext;)V
         1: .line 57
            return
        end local 1 // org.junit.jupiter.api.extension.ExtensionContext context
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    2     1  context  Lorg/junit/jupiter/api/extension/ExtensionContext;
    MethodParameters:
         Name  Flags
      context  

  private void readAndStoreTimeoutSoChildrenInheritIt(org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.ExtensionContext context
         0: .line 60
            aload 0 /* this */
            aload 1 /* context */
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getElement:()Ljava/util/Optional;
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.readTimeoutFromAnnotation:(Ljava/util/Optional;)Ljava/util/Optional;
         1: .line 61
            aload 1 /* context */
            invokedynamic accept(Lorg/junit/jupiter/api/extension/ExtensionContext;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/junit/jupiter/engine/extension/TimeoutExtension.lambda$0(Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutDuration;)V (6)
                  (Lorg/junit/jupiter/engine/extension/TimeoutDuration;)V
         2: .line 60
            invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
         3: .line 62
            return
        end local 1 // org.junit.jupiter.api.extension.ExtensionContext context
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    4     1  context  Lorg/junit/jupiter/api/extension/ExtensionContext;
    MethodParameters:
         Name  Flags
      context  

  public void interceptBeforeAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<java.lang.Void>, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method>, org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        start local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        start local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
         0: .line 68
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* invocationContext */
            aload 3 /* extensionContext */
         1: .line 69
            invokedynamic apply()Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/junit/jupiter/engine/extension/TimeoutConfiguration.getDefaultBeforeAllMethodTimeout()Ljava/util/Optional; (5)
                  (Lorg/junit/jupiter/engine/extension/TimeoutConfiguration;)Ljava/util/Optional;
         2: .line 68
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)V
         3: .line 70
            return
        end local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        end local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    4     1         invocation  Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;
            0    4     2  invocationContext  Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;
            0    4     3   extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
    Exceptions:
      throws java.lang.Throwable
    Signature: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    MethodParameters:
                   Name  Flags
      invocation         
      invocationContext  
      extensionContext   

  public void interceptBeforeEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<java.lang.Void>, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method>, org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        start local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        start local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
         0: .line 76
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* invocationContext */
            aload 3 /* extensionContext */
         1: .line 77
            invokedynamic apply()Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/junit/jupiter/engine/extension/TimeoutConfiguration.getDefaultBeforeEachMethodTimeout()Ljava/util/Optional; (5)
                  (Lorg/junit/jupiter/engine/extension/TimeoutConfiguration;)Ljava/util/Optional;
         2: .line 76
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)V
         3: .line 78
            return
        end local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        end local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    4     1         invocation  Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;
            0    4     2  invocationContext  Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;
            0    4     3   extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
    Exceptions:
      throws java.lang.Throwable
    Signature: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    MethodParameters:
                   Name  Flags
      invocation         
      invocationContext  
      extensionContext   

  public void interceptTestMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<java.lang.Void>, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method>, org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        start local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        start local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
         0: .line 84
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* invocationContext */
            aload 3 /* extensionContext */
         1: .line 85
            invokedynamic apply()Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/junit/jupiter/engine/extension/TimeoutConfiguration.getDefaultTestMethodTimeout()Ljava/util/Optional; (5)
                  (Lorg/junit/jupiter/engine/extension/TimeoutConfiguration;)Ljava/util/Optional;
         2: .line 84
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)Ljava/lang/Object;
            pop
         3: .line 86
            return
        end local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        end local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    4     1         invocation  Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;
            0    4     2  invocationContext  Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;
            0    4     3   extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
    Exceptions:
      throws java.lang.Throwable
    Signature: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    MethodParameters:
                   Name  Flags
      invocation         
      invocationContext  
      extensionContext   

  public void interceptTestTemplateMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<java.lang.Void>, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method>, org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        start local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        start local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
         0: .line 92
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* invocationContext */
            aload 3 /* extensionContext */
         1: .line 93
            invokedynamic apply()Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/junit/jupiter/engine/extension/TimeoutConfiguration.getDefaultTestTemplateMethodTimeout()Ljava/util/Optional; (5)
                  (Lorg/junit/jupiter/engine/extension/TimeoutConfiguration;)Ljava/util/Optional;
         2: .line 92
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)Ljava/lang/Object;
            pop
         3: .line 94
            return
        end local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        end local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    4     1         invocation  Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;
            0    4     2  invocationContext  Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;
            0    4     3   extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
    Exceptions:
      throws java.lang.Throwable
    Signature: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    MethodParameters:
                   Name  Flags
      invocation         
      invocationContext  
      extensionContext   

  public <T> T interceptTestFactoryMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<T>, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method>, org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        start local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        start local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
         0: .line 100
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* invocationContext */
            aload 3 /* extensionContext */
         1: .line 101
            invokedynamic apply()Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/junit/jupiter/engine/extension/TimeoutConfiguration.getDefaultTestFactoryMethodTimeout()Ljava/util/Optional; (5)
                  (Lorg/junit/jupiter/engine/extension/TimeoutConfiguration;)Ljava/util/Optional;
         2: .line 100
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)Ljava/lang/Object;
            areturn
        end local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        end local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    3     1         invocation  Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
            0    3     2  invocationContext  Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;
            0    3     3   extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;Lorg/junit/jupiter/api/extension/ExtensionContext;)TT;
    MethodParameters:
                   Name  Flags
      invocation         
      invocationContext  
      extensionContext   

  public void interceptAfterEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<java.lang.Void>, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method>, org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        start local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        start local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
         0: .line 108
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* invocationContext */
            aload 3 /* extensionContext */
         1: .line 109
            invokedynamic apply()Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/junit/jupiter/engine/extension/TimeoutConfiguration.getDefaultAfterEachMethodTimeout()Ljava/util/Optional; (5)
                  (Lorg/junit/jupiter/engine/extension/TimeoutConfiguration;)Ljava/util/Optional;
         2: .line 108
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)V
         3: .line 110
            return
        end local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        end local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    4     1         invocation  Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;
            0    4     2  invocationContext  Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;
            0    4     3   extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
    Exceptions:
      throws java.lang.Throwable
    Signature: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    MethodParameters:
                   Name  Flags
      invocation         
      invocationContext  
      extensionContext   

  public void interceptAfterAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<java.lang.Void>, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method>, org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        start local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        start local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
         0: .line 116
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* invocationContext */
            aload 3 /* extensionContext */
         1: .line 117
            invokedynamic apply()Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/junit/jupiter/engine/extension/TimeoutConfiguration.getDefaultAfterAllMethodTimeout()Ljava/util/Optional; (5)
                  (Lorg/junit/jupiter/engine/extension/TimeoutConfiguration;)Ljava/util/Optional;
         2: .line 116
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)V
         3: .line 118
            return
        end local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        end local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    4     1         invocation  Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;
            0    4     2  invocationContext  Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;
            0    4     3   extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
    Exceptions:
      throws java.lang.Throwable
    Signature: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;Lorg/junit/jupiter/api/extension/ExtensionContext;)V
    MethodParameters:
                   Name  Flags
      invocation         
      invocationContext  
      extensionContext   

  private void interceptLifecycleMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<java.lang.Void>, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method>, org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider);
    descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        start local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        start local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        start local 4 // org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider defaultTimeoutProvider
         0: .line 124
            aload 0 /* this */
            aload 2 /* invocationContext */
            invokeinterface org.junit.jupiter.api.extension.ReflectiveInvocationContext.getExecutable:()Ljava/lang/reflect/Executable;
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.readTimeoutFromAnnotation:(Ljava/util/Optional;)Ljava/util/Optional;
         1: .line 125
            aconst_null
         2: .line 124
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.junit.jupiter.engine.extension.TimeoutDuration
            astore 5 /* timeout */
        start local 5 // org.junit.jupiter.engine.extension.TimeoutDuration timeout
         3: .line 126
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* invocationContext */
            aload 3 /* extensionContext */
            aload 5 /* timeout */
            aload 4 /* defaultTimeoutProvider */
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.intercept:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutDuration;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)Ljava/lang/Object;
            pop
         4: .line 127
            return
        end local 5 // org.junit.jupiter.engine.extension.TimeoutDuration timeout
        end local 4 // org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider defaultTimeoutProvider
        end local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        end local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    5     0                    this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    5     1              invocation  Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;
            0    5     2       invocationContext  Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;
            0    5     3        extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
            0    5     4  defaultTimeoutProvider  Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;
            3    5     5                 timeout  Lorg/junit/jupiter/engine/extension/TimeoutDuration;
    Exceptions:
      throws java.lang.Throwable
    Signature: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<Ljava/lang/Void;>;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)V
    MethodParameters:
                        Name  Flags
      invocation              
      invocationContext       
      extensionContext        
      defaultTimeoutProvider  

  private java.util.Optional<org.junit.jupiter.engine.extension.TimeoutDuration> readTimeoutFromAnnotation(java.util.Optional<java.lang.reflect.AnnotatedElement>);
    descriptor: (Ljava/util/Optional;)Ljava/util/Optional;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // java.util.Optional element
         0: .line 131
            aload 1 /* element */
            ldc Lorg/junit/jupiter/api/Timeout;
            invokestatic org.junit.platform.commons.support.AnnotationSupport.findAnnotation:(Ljava/util/Optional;Ljava/lang/Class;)Ljava/util/Optional;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/junit/jupiter/engine/extension/TimeoutDuration.from(Lorg/junit/jupiter/api/Timeout;)Lorg/junit/jupiter/engine/extension/TimeoutDuration; (6)
                  (Lorg/junit/jupiter/api/Timeout;)Lorg/junit/jupiter/engine/extension/TimeoutDuration;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
            areturn
        end local 1 // java.util.Optional element
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    1     1  element  Ljava/util/Optional<Ljava/lang/reflect/AnnotatedElement;>;
    Signature: (Ljava/util/Optional<Ljava/lang/reflect/AnnotatedElement;>;)Ljava/util/Optional<Lorg/junit/jupiter/engine/extension/TimeoutDuration;>;
    MethodParameters:
         Name  Flags
      element  

  private <T> T interceptTestableMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<T>, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method>, org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider);
    descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        start local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        start local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        start local 4 // org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider defaultTimeoutProvider
         0: .line 138
            aload 3 /* extensionContext */
            getstatic org.junit.jupiter.engine.extension.TimeoutExtension.NAMESPACE:Lorg/junit/jupiter/api/extension/ExtensionContext$Namespace;
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getStore:(Lorg/junit/jupiter/api/extension/ExtensionContext$Namespace;)Lorg/junit/jupiter/api/extension/ExtensionContext$Store;
            ldc "testable_method_timeout_from_annotation"
         1: .line 139
            ldc Lorg/junit/jupiter/engine/extension/TimeoutDuration;
         2: .line 138
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext$Store.get:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.junit.jupiter.engine.extension.TimeoutDuration
            astore 5 /* timeout */
        start local 5 // org.junit.jupiter.engine.extension.TimeoutDuration timeout
         3: .line 140
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* invocationContext */
            aload 3 /* extensionContext */
            aload 5 /* timeout */
            aload 4 /* defaultTimeoutProvider */
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.intercept:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutDuration;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)Ljava/lang/Object;
            areturn
        end local 5 // org.junit.jupiter.engine.extension.TimeoutDuration timeout
        end local 4 // org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider defaultTimeoutProvider
        end local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        end local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    4     0                    this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    4     1              invocation  Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
            0    4     2       invocationContext  Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;
            0    4     3        extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
            0    4     4  defaultTimeoutProvider  Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;
            3    4     5                 timeout  Lorg/junit/jupiter/engine/extension/TimeoutDuration;
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)TT;
    MethodParameters:
                        Name  Flags
      invocation              
      invocationContext       
      extensionContext        
      defaultTimeoutProvider  

  private <T> T intercept(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<T>, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method>, org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.engine.extension.TimeoutDuration, org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider);
    descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutDuration;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        start local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        start local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        start local 4 // org.junit.jupiter.engine.extension.TimeoutDuration explicitTimeout
        start local 5 // org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider defaultTimeoutProvider
         0: .line 147
            aload 4 /* explicitTimeout */
            ifnonnull 1
            aload 0 /* this */
            aload 3 /* extensionContext */
            aload 5 /* defaultTimeoutProvider */
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.getDefaultTimeout:(Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)Lorg/junit/jupiter/engine/extension/TimeoutDuration;
            goto 2
         1: .line 148
      StackMap locals:
      StackMap stack:
            aload 4 /* explicitTimeout */
         2: .line 147
      StackMap locals:
      StackMap stack: org.junit.jupiter.engine.extension.TimeoutDuration
            astore 6 /* timeout */
        start local 6 // org.junit.jupiter.engine.extension.TimeoutDuration timeout
         3: .line 149
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* invocationContext */
            aload 3 /* extensionContext */
            aload 6 /* timeout */
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.decorate:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutDuration;)Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;
            invokeinterface org.junit.jupiter.api.extension.InvocationInterceptor$Invocation.proceed:()Ljava/lang/Object;
            areturn
        end local 6 // org.junit.jupiter.engine.extension.TimeoutDuration timeout
        end local 5 // org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider defaultTimeoutProvider
        end local 4 // org.junit.jupiter.engine.extension.TimeoutDuration explicitTimeout
        end local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        end local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    4     0                    this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    4     1              invocation  Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
            0    4     2       invocationContext  Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;
            0    4     3        extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
            0    4     4         explicitTimeout  Lorg/junit/jupiter/engine/extension/TimeoutDuration;
            0    4     5  defaultTimeoutProvider  Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;
            3    4     6                 timeout  Lorg/junit/jupiter/engine/extension/TimeoutDuration;
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutDuration;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)TT;
    MethodParameters:
                        Name  Flags
      invocation              
      invocationContext       
      extensionContext        
      explicitTimeout         
      defaultTimeoutProvider  

  private org.junit.jupiter.engine.extension.TimeoutDuration getDefaultTimeout(org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider);
    descriptor: (Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;)Lorg/junit/jupiter/engine/extension/TimeoutDuration;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        start local 2 // org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider defaultTimeoutProvider
         0: .line 155
            aload 2 /* defaultTimeoutProvider */
            aload 0 /* this */
            aload 1 /* extensionContext */
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.getGlobalTimeoutConfiguration:(Lorg/junit/jupiter/api/extension/ExtensionContext;)Lorg/junit/jupiter/engine/extension/TimeoutConfiguration;
            invokeinterface org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Optional
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.junit.jupiter.engine.extension.TimeoutDuration
            areturn
        end local 2 // org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider defaultTimeoutProvider
        end local 1 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    1     0                    this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    1     1        extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
            0    1     2  defaultTimeoutProvider  Lorg/junit/jupiter/engine/extension/TimeoutExtension$TimeoutProvider;
    MethodParameters:
                        Name  Flags
      extensionContext        
      defaultTimeoutProvider  

  private org.junit.jupiter.engine.extension.TimeoutConfiguration getGlobalTimeoutConfiguration(org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/ExtensionContext;)Lorg/junit/jupiter/engine/extension/TimeoutConfiguration;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
         0: .line 159
            aload 1 /* extensionContext */
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getRoot:()Lorg/junit/jupiter/api/extension/ExtensionContext;
            astore 2 /* root */
        start local 2 // org.junit.jupiter.api.extension.ExtensionContext root
         1: .line 160
            aload 2 /* root */
            getstatic org.junit.jupiter.engine.extension.TimeoutExtension.NAMESPACE:Lorg/junit/jupiter/api/extension/ExtensionContext$Namespace;
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getStore:(Lorg/junit/jupiter/api/extension/ExtensionContext$Namespace;)Lorg/junit/jupiter/api/extension/ExtensionContext$Store;
            ldc "global_timeout_config"
         2: .line 161
            aload 2 /* root */
            invokedynamic apply(Lorg/junit/jupiter/api/extension/ExtensionContext;)Ljava/util/function/Function;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/junit/jupiter/engine/extension/TimeoutExtension.lambda$9(Lorg/junit/jupiter/api/extension/ExtensionContext;Ljava/lang/String;)Lorg/junit/jupiter/engine/extension/TimeoutConfiguration; (6)
                  (Ljava/lang/String;)Lorg/junit/jupiter/engine/extension/TimeoutConfiguration;
            ldc Lorg/junit/jupiter/engine/extension/TimeoutConfiguration;
         3: .line 160
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext$Store.getOrComputeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.junit.jupiter.engine.extension.TimeoutConfiguration
            areturn
        end local 2 // org.junit.jupiter.api.extension.ExtensionContext root
        end local 1 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    4     1  extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
            1    4     2              root  Lorg/junit/jupiter/api/extension/ExtensionContext;
    MethodParameters:
                  Name  Flags
      extensionContext  

  private <T> org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<T> decorate(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<T>, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method>, org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.engine.extension.TimeoutDuration);
    descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutDuration;)Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        start local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        start local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        start local 4 // org.junit.jupiter.engine.extension.TimeoutDuration timeout
         0: .line 167
            aload 4 /* timeout */
            ifnull 1
            aload 0 /* this */
            aload 3 /* extensionContext */
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.isTimeoutDisabled:(Lorg/junit/jupiter/api/extension/ExtensionContext;)Z
            ifeq 2
         1: .line 168
      StackMap locals:
      StackMap stack:
            aload 1 /* invocation */
            areturn
         2: .line 170
      StackMap locals:
      StackMap stack:
            new org.junit.jupiter.engine.extension.TimeoutInvocation
            dup
            aload 1 /* invocation */
            aload 4 /* timeout */
            aload 0 /* this */
            aload 3 /* extensionContext */
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.getExecutor:(Lorg/junit/jupiter/api/extension/ExtensionContext;)Ljava/util/concurrent/ScheduledExecutorService;
         3: .line 171
            aload 0 /* this */
            aload 2 /* invocationContext */
            aload 3 /* extensionContext */
            invokedynamic get(Lorg/junit/jupiter/engine/extension/TimeoutExtension;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic 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;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/junit/jupiter/engine/extension/TimeoutExtension.lambda$10(Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;)Ljava/lang/String; (7)
                  ()Ljava/lang/String;
         4: .line 170
            invokespecial org.junit.jupiter.engine.extension.TimeoutInvocation.<init>:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/engine/extension/TimeoutDuration;Ljava/util/concurrent/ScheduledExecutorService;Ljava/util/function/Supplier;)V
            areturn
        end local 4 // org.junit.jupiter.engine.extension.TimeoutDuration timeout
        end local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 2 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        end local 1 // org.junit.jupiter.api.extension.InvocationInterceptor$Invocation invocation
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    5     1         invocation  Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
            0    5     2  invocationContext  Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;
            0    5     3   extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
            0    5     4            timeout  Lorg/junit/jupiter/engine/extension/TimeoutDuration;
    Signature: <T:Ljava/lang/Object;>(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutDuration;)Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
    MethodParameters:
                   Name  Flags
      invocation         
      invocationContext  
      extensionContext   
      timeout            

  private java.lang.String describe(org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method>, org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        start local 2 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
         0: .line 175
            aload 1 /* invocationContext */
            invokeinterface org.junit.jupiter.api.extension.ReflectiveInvocationContext.getExecutable:()Ljava/lang/reflect/Executable;
            checkcast java.lang.reflect.Method
            astore 3 /* method */
        start local 3 // java.lang.reflect.Method method
         1: .line 176
            aload 2 /* extensionContext */
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getTestClass:()Ljava/util/Optional;
            astore 4 /* testClass */
        start local 4 // java.util.Optional testClass
         2: .line 177
            aload 4 /* testClass */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 4
            aload 1 /* invocationContext */
            invokeinterface org.junit.jupiter.api.extension.ReflectiveInvocationContext.getTargetClass:()Ljava/lang/Class;
            aload 4 /* testClass */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 178
            ldc "%s(%s)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 3 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            invokestatic org.junit.platform.commons.util.ClassUtils.nullSafeToString:([Ljava/lang/Class;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
         4: .line 180
      StackMap locals: java.lang.reflect.Method java.util.Optional
      StackMap stack:
            aload 1 /* invocationContext */
            invokeinterface org.junit.jupiter.api.extension.ReflectiveInvocationContext.getTargetClass:()Ljava/lang/Class;
            aload 3 /* method */
            invokestatic org.junit.platform.commons.util.ReflectionUtils.getFullyQualifiedMethodName:(Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/lang/String;
            areturn
        end local 4 // java.util.Optional testClass
        end local 3 // java.lang.reflect.Method method
        end local 2 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 1 // org.junit.jupiter.api.extension.ReflectiveInvocationContext invocationContext
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    5     1  invocationContext  Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;
            0    5     2   extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
            1    5     3             method  Ljava/lang/reflect/Method;
            2    5     4          testClass  Ljava/util/Optional<Ljava/lang/Class<*>;>;
    Signature: (Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext<Ljava/lang/reflect/Method;>;Lorg/junit/jupiter/api/extension/ExtensionContext;)Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      invocationContext  
      extensionContext   

  private java.util.concurrent.ScheduledExecutorService getExecutor(org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/ExtensionContext;)Ljava/util/concurrent/ScheduledExecutorService;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
         0: .line 184
            aload 1 /* extensionContext */
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getRoot:()Lorg/junit/jupiter/api/extension/ExtensionContext;
            getstatic org.junit.jupiter.engine.extension.TimeoutExtension.NAMESPACE:Lorg/junit/jupiter/api/extension/ExtensionContext$Namespace;
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getStore:(Lorg/junit/jupiter/api/extension/ExtensionContext$Namespace;)Lorg/junit/jupiter/api/extension/ExtensionContext$Store;
            ldc Lorg/junit/jupiter/engine/extension/TimeoutExtension$ExecutorResource;
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext$Store.getOrComputeIfAbsent:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.junit.jupiter.engine.extension.TimeoutExtension$ExecutorResource
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension$ExecutorResource.get:()Ljava/util/concurrent/ScheduledExecutorService;
            areturn
        end local 1 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    1     1  extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
    MethodParameters:
                  Name  Flags
      extensionContext  

  private boolean isTimeoutDisabled(org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/ExtensionContext;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
         0: .line 191
            aload 1 /* extensionContext */
            ldc "junit.jupiter.execution.timeout.mode"
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getConfigurationParameter:(Ljava/lang/String;)Ljava/util/Optional;
            astore 2 /* mode */
        start local 2 // java.util.Optional mode
         1: .line 192
            aload 2 /* mode */
            aload 0 /* this */
            invokedynamic apply(Lorg/junit/jupiter/engine/extension/TimeoutExtension;)Ljava/util/function/Function;
              Bootstrap: invokestatic 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;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/junit/jupiter/engine/extension/TimeoutExtension.isTimeoutDisabled(Ljava/lang/String;)Z (7)
                  (Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 2 // java.util.Optional mode
        end local 1 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    2     1  extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
            1    2     2              mode  Ljava/util/Optional<Ljava/lang/String;>;
    MethodParameters:
                  Name  Flags
      extensionContext  

  private boolean isTimeoutDisabled(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
        start local 1 // java.lang.String mode
         0: .line 199
            aload 1 /* mode */
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
          -1609594047: 1
            270940796: 2
            613410390: 3
              default: 7
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 2
            ldc "enabled"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            goto 7
      StackMap locals:
      StackMap stack:
         2: aload 2
            ldc "disabled"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
            goto 7
      StackMap locals:
      StackMap stack:
         3: aload 2
            ldc "disabled_on_debug"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 7
         4: .line 201
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         5: .line 203
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         6: .line 205
      StackMap locals:
      StackMap stack:
            invokestatic org.junit.platform.commons.util.RuntimeUtils.isDebugMode:()Z
            ireturn
         7: .line 207
      StackMap locals:
      StackMap stack:
            new org.junit.jupiter.api.extension.ExtensionConfigurationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported timeout mode: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* mode */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.junit.jupiter.api.extension.ExtensionConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String mode
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
            0    8     1  mode  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      mode  

  private static void lambda$0(org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.engine.extension.TimeoutDuration);
    descriptor: (Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/TimeoutDuration;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // org.junit.jupiter.engine.extension.TimeoutDuration timeout
         0: .line 61
            aload 0
            getstatic org.junit.jupiter.engine.extension.TimeoutExtension.NAMESPACE:Lorg/junit/jupiter/api/extension/ExtensionContext$Namespace;
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getStore:(Lorg/junit/jupiter/api/extension/ExtensionContext$Namespace;)Lorg/junit/jupiter/api/extension/ExtensionContext$Store;
            ldc "testable_method_timeout_from_annotation"
            aload 1 /* timeout */
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext$Store.put:(Ljava/lang/Object;Ljava/lang/Object;)V
            return
        end local 1 // org.junit.jupiter.engine.extension.TimeoutDuration timeout
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     1  timeout  Lorg/junit/jupiter/engine/extension/TimeoutDuration;

  private static org.junit.jupiter.engine.extension.TimeoutConfiguration lambda$9(org.junit.jupiter.api.extension.ExtensionContext, java.lang.String);
    descriptor: (Lorg/junit/jupiter/api/extension/ExtensionContext;Ljava/lang/String;)Lorg/junit/jupiter/engine/extension/TimeoutConfiguration;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.String key
         0: .line 161
            new org.junit.jupiter.engine.extension.TimeoutConfiguration
            dup
            aload 0
            invokespecial org.junit.jupiter.engine.extension.TimeoutConfiguration.<init>:(Lorg/junit/jupiter/api/extension/ExtensionContext;)V
            areturn
        end local 1 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1   key  Ljava/lang/String;

  private java.lang.String lambda$10(org.junit.jupiter.api.extension.ReflectiveInvocationContext, org.junit.jupiter.api.extension.ExtensionContext);
    descriptor: (Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;)Ljava/lang/String;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
         0: .line 171
            aload 0 /* this */
            aload 1
            aload 2
            invokevirtual org.junit.jupiter.engine.extension.TimeoutExtension.describe:(Lorg/junit/jupiter/api/extension/ReflectiveInvocationContext;Lorg/junit/jupiter/api/extension/ExtensionContext;)Ljava/lang/String;
            areturn
        end local 0 // org.junit.jupiter.engine.extension.TimeoutExtension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/jupiter/engine/extension/TimeoutExtension;
}
SourceFile: "TimeoutExtension.java"
NestMembers:
  org.junit.jupiter.engine.extension.TimeoutExtension$ExecutorResource  org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Namespace = org.junit.jupiter.api.extension.ExtensionContext$Namespace of org.junit.jupiter.api.extension.ExtensionContext
  public abstract Store = org.junit.jupiter.api.extension.ExtensionContext$Store of org.junit.jupiter.api.extension.ExtensionContext
  public abstract Invocation = org.junit.jupiter.api.extension.InvocationInterceptor$Invocation of org.junit.jupiter.api.extension.InvocationInterceptor
  private ExecutorResource = org.junit.jupiter.engine.extension.TimeoutExtension$ExecutorResource of org.junit.jupiter.engine.extension.TimeoutExtension
  private abstract TimeoutProvider = org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider of org.junit.jupiter.engine.extension.TimeoutExtension