Compiled from "VirtualController.java"
public final class controllers.VirtualController extends play.mvc.Controller {
  private static final java.lang.Object PIN_MONITOR;

  private final com.zaxxer.hikari.HikariDataSource pool;

  private final java.util.concurrent.ThreadPoolExecutor platform;

  private final java.util.concurrent.ExecutorService virtual;

  private final java.util.concurrent.ScheduledExecutorService clock;

  private final java.util.concurrent.Semaphore admission;

  private final java.util.concurrent.atomic.AtomicInteger running;

  private final java.util.concurrent.atomic.AtomicInteger peakRunning;

  private final java.util.concurrent.atomic.AtomicInteger peakPoolActive;

  private final java.util.concurrent.atomic.AtomicInteger peakPoolWait;

  private final java.util.concurrent.atomic.AtomicInteger rejected;

  private final java.util.concurrent.atomic.AtomicInteger finished;

  private final java.util.concurrent.atomic.AtomicBoolean closing;

  private final java.util.concurrent.atomic.AtomicBoolean recordingClosed;

  private final jdk.jfr.Recording recording;

  private final java.nio.file.Path output;

  private final java.lang.String schema;

  public controllers.VirtualController(play.inject.ApplicationLifecycle) throws java.lang.Exception;
    Code:
       0: aload_0
       1: invokespecial #1                  // Method play/mvc/Controller."<init>":()V
       4: aload_0
       5: new           #7                  // class java/util/concurrent/ThreadPoolExecutor
       8: dup
       9: iconst_2
      10: iconst_2
      11: lconst_0
      12: getstatic     #9                  // Field java/util/concurrent/TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
      15: new           #15                 // class java/util/concurrent/ArrayBlockingQueue
      18: dup
      19: iconst_2
      20: invokespecial #17                 // Method java/util/concurrent/ArrayBlockingQueue."<init>":(I)V
      23: invokestatic  #20                 // Method java/lang/Thread.ofPlatform:()Ljava/lang/Thread$Builder$OfPlatform;
      26: ldc           #26                 // String vt-platform-
      28: lconst_0
      29: invokeinterface #28,  4           // InterfaceMethod java/lang/Thread$Builder$OfPlatform.name:(Ljava/lang/String;J)Ljava/lang/Thread$Builder$OfPlatform;
      34: invokeinterface #34,  1           // InterfaceMethod java/lang/Thread$Builder$OfPlatform.factory:()Ljava/util/concurrent/ThreadFactory;
      39: invokespecial #38                 // Method java/util/concurrent/ThreadPoolExecutor."<init>":(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
      42: putfield      #41                 // Field platform:Ljava/util/concurrent/ThreadPoolExecutor;
      45: aload_0
      46: invokestatic  #47                 // Method java/lang/Thread.ofVirtual:()Ljava/lang/Thread$Builder$OfVirtual;
      49: ldc           #51                 // String vt-business-
      51: lconst_0
      52: invokeinterface #53,  4           // InterfaceMethod java/lang/Thread$Builder$OfVirtual.name:(Ljava/lang/String;J)Ljava/lang/Thread$Builder$OfVirtual;
      57: invokeinterface #58,  1           // InterfaceMethod java/lang/Thread$Builder$OfVirtual.factory:()Ljava/util/concurrent/ThreadFactory;
      62: invokestatic  #59                 // Method java/util/concurrent/Executors.newThreadPerTaskExecutor:(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
      65: putfield      #65                 // Field virtual:Ljava/util/concurrent/ExecutorService;
      68: aload_0
      69: invokestatic  #20                 // Method java/lang/Thread.ofPlatform:()Ljava/lang/Thread$Builder$OfPlatform;
      72: ldc           #69                 // String vt-clock
      74: invokeinterface #71,  2           // InterfaceMethod java/lang/Thread$Builder$OfPlatform.name:(Ljava/lang/String;)Ljava/lang/Thread$Builder$OfPlatform;
      79: invokeinterface #34,  1           // InterfaceMethod java/lang/Thread$Builder$OfPlatform.factory:()Ljava/util/concurrent/ThreadFactory;
      84: invokestatic  #74                 // Method java/util/concurrent/Executors.newSingleThreadScheduledExecutor:(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
      87: putfield      #78                 // Field clock:Ljava/util/concurrent/ScheduledExecutorService;
      90: aload_0
      91: new           #82                 // class java/util/concurrent/Semaphore
      94: dup
      95: iconst_4
      96: invokespecial #84                 // Method java/util/concurrent/Semaphore."<init>":(I)V
      99: putfield      #85                 // Field admission:Ljava/util/concurrent/Semaphore;
     102: aload_0
     103: new           #89                 // class java/util/concurrent/atomic/AtomicInteger
     106: dup
     107: invokespecial #91                 // Method java/util/concurrent/atomic/AtomicInteger."<init>":()V
     110: putfield      #92                 // Field running:Ljava/util/concurrent/atomic/AtomicInteger;
     113: aload_0
     114: new           #89                 // class java/util/concurrent/atomic/AtomicInteger
     117: dup
     118: invokespecial #91                 // Method java/util/concurrent/atomic/AtomicInteger."<init>":()V
     121: putfield      #96                 // Field peakRunning:Ljava/util/concurrent/atomic/AtomicInteger;
     124: aload_0
     125: new           #89                 // class java/util/concurrent/atomic/AtomicInteger
     128: dup
     129: invokespecial #91                 // Method java/util/concurrent/atomic/AtomicInteger."<init>":()V
     132: putfield      #99                 // Field peakPoolActive:Ljava/util/concurrent/atomic/AtomicInteger;
     135: aload_0
     136: new           #89                 // class java/util/concurrent/atomic/AtomicInteger
     139: dup
     140: invokespecial #91                 // Method java/util/concurrent/atomic/AtomicInteger."<init>":()V
     143: putfield      #102                // Field peakPoolWait:Ljava/util/concurrent/atomic/AtomicInteger;
     146: aload_0
     147: new           #89                 // class java/util/concurrent/atomic/AtomicInteger
     150: dup
     151: invokespecial #91                 // Method java/util/concurrent/atomic/AtomicInteger."<init>":()V
     154: putfield      #105                // Field rejected:Ljava/util/concurrent/atomic/AtomicInteger;
     157: aload_0
     158: new           #89                 // class java/util/concurrent/atomic/AtomicInteger
     161: dup
     162: invokespecial #91                 // Method java/util/concurrent/atomic/AtomicInteger."<init>":()V
     165: putfield      #108                // Field finished:Ljava/util/concurrent/atomic/AtomicInteger;
     168: aload_0
     169: new           #111                // class java/util/concurrent/atomic/AtomicBoolean
     172: dup
     173: invokespecial #113                // Method java/util/concurrent/atomic/AtomicBoolean."<init>":()V
     176: putfield      #114                // Field closing:Ljava/util/concurrent/atomic/AtomicBoolean;
     179: aload_0
     180: new           #111                // class java/util/concurrent/atomic/AtomicBoolean
     183: dup
     184: invokespecial #113                // Method java/util/concurrent/atomic/AtomicBoolean."<init>":()V
     187: putfield      #118                // Field recordingClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
     190: aload_0
     191: new           #121                // class jdk/jfr/Recording
     194: dup
     195: invokespecial #123                // Method jdk/jfr/Recording."<init>":()V
     198: putfield      #124                // Field recording:Ljdk/jfr/Recording;
     201: aload_0
     202: ldc           #128                // String vt.evidence
     204: ldc           #130                // String evidence/run
     206: invokestatic  #132                // Method java/lang/System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
     209: iconst_0
     210: anewarray     #138                // class java/lang/String
     213: invokestatic  #140                // InterfaceMethod java/nio/file/Path.of:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
     216: invokeinterface #146,  1          // InterfaceMethod java/nio/file/Path.toAbsolutePath:()Ljava/nio/file/Path;
     221: putfield      #150                // Field output:Ljava/nio/file/Path;
     224: aload_0
     225: getfield      #150                // Field output:Ljava/nio/file/Path;
     228: iconst_0
     229: anewarray     #154                // class java/nio/file/attribute/FileAttribute
     232: invokestatic  #156                // Method java/nio/file/Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
     235: pop
     236: aload_0
     237: ldc           #162                // String vt.schema
     239: ldc           #164                // String vt_lab
     241: invokestatic  #132                // Method java/lang/System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
     244: putfield      #166                // Field schema:Ljava/lang/String;
     247: aload_0
     248: getfield      #166                // Field schema:Ljava/lang/String;
     251: ldc           #170                // String vt_[a-z0-9_]+
     253: invokevirtual #172                // Method java/lang/String.matches:(Ljava/lang/String;)Z
     256: ifne          269
     259: new           #176                // class java/lang/IllegalArgumentException
     262: dup
     263: ldc           #178                // String own vt_ schema required
     265: invokespecial #180                // Method java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
     268: athrow
     269: new           #183                // class com/zaxxer/hikari/HikariConfig
     272: dup
     273: invokespecial #185                // Method com/zaxxer/hikari/HikariConfig."<init>":()V
     276: astore_2
     277: aload_2
     278: invokestatic  #186                // Method java/lang/System.getenv:()Ljava/util/Map;
     281: ldc           #190                // String VT_JDBC_URL
     283: ldc           #192                // String jdbc:postgresql://127.0.0.1:35711/play_lab?connectTimeout=3&socketTimeout=5
     285: invokeinterface #194,  3          // InterfaceMethod java/util/Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     290: checkcast     #138                // class java/lang/String
     293: invokevirtual #200                // Method com/zaxxer/hikari/HikariConfig.setJdbcUrl:(Ljava/lang/String;)V
     296: aload_2
     297: invokestatic  #186                // Method java/lang/System.getenv:()Ljava/util/Map;
     300: ldc           #203                // String VT_DB_USER
     302: ldc           #205                // String postgres
     304: invokeinterface #194,  3          // InterfaceMethod java/util/Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     309: checkcast     #138                // class java/lang/String
     312: invokevirtual #207                // Method com/zaxxer/hikari/HikariConfig.setUsername:(Ljava/lang/String;)V
     315: aload_2
     316: invokestatic  #186                // Method java/lang/System.getenv:()Ljava/util/Map;
     319: ldc           #210                // String VT_DB_PASSWORD
     321: ldc           #212                // String lab-only-password
     323: invokeinterface #194,  3          // InterfaceMethod java/util/Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     328: checkcast     #138                // class java/lang/String
     331: invokevirtual #214                // Method com/zaxxer/hikari/HikariConfig.setPassword:(Ljava/lang/String;)V
     334: aload_2
     335: iconst_2
     336: invokevirtual #217                // Method com/zaxxer/hikari/HikariConfig.setMaximumPoolSize:(I)V
     339: aload_2
     340: iconst_2
     341: invokevirtual #220                // Method com/zaxxer/hikari/HikariConfig.setMinimumIdle:(I)V
     344: aload_2
     345: ldc2_w        #223                // long 5000l
     348: invokevirtual #225                // Method com/zaxxer/hikari/HikariConfig.setConnectionTimeout:(J)V
     351: aload_2
     352: ldc           #229                // String vt-pool
     354: invokevirtual #231                // Method com/zaxxer/hikari/HikariConfig.setPoolName:(Ljava/lang/String;)V
     357: aload_2
     358: ldc           #234                // String ApplicationName
     360: aload_0
     361: getfield      #166                // Field schema:Ljava/lang/String;
     364: invokevirtual #236                // Method com/zaxxer/hikari/HikariConfig.addDataSourceProperty:(Ljava/lang/String;Ljava/lang/Object;)V
     367: aload_0
     368: new           #240                // class com/zaxxer/hikari/HikariDataSource
     371: dup
     372: aload_2
     373: invokespecial #242                // Method com/zaxxer/hikari/HikariDataSource."<init>":(Lcom/zaxxer/hikari/HikariConfig;)V
     376: putfield      #245                // Field pool:Lcom/zaxxer/hikari/HikariDataSource;
     379: aload_0
     380: getfield      #245                // Field pool:Lcom/zaxxer/hikari/HikariDataSource;
     383: invokevirtual #249                // Method com/zaxxer/hikari/HikariDataSource.getConnection:()Ljava/sql/Connection;
     386: astore_3
     387: aload_3
     388: invokeinterface #253,  1          // InterfaceMethod java/sql/Connection.createStatement:()Ljava/sql/Statement;
     393: astore        4
     395: aload         4
     397: aload_0
     398: getfield      #166                // Field schema:Ljava/lang/String;
     401: invokedynamic #259,  0            // InvokeDynamic #0:makeConcatWithConstants:(Ljava/lang/String;)Ljava/lang/String;
     406: invokeinterface #263,  2          // InterfaceMethod java/sql/Statement.execute:(Ljava/lang/String;)Z
     411: pop
     412: aload         4
     414: aload_0
     415: getfield      #166                // Field schema:Ljava/lang/String;
     418: invokedynamic #268,  0            // InvokeDynamic #1:makeConcatWithConstants:(Ljava/lang/String;)Ljava/lang/String;
     423: invokeinterface #263,  2          // InterfaceMethod java/sql/Statement.execute:(Ljava/lang/String;)Z
     428: pop
     429: aload         4
     431: ifnull        473
     434: aload         4
     436: invokeinterface #269,  1          // InterfaceMethod java/sql/Statement.close:()V
     441: goto          473
     444: astore        5
     446: aload         4
     448: ifnull        470
     451: aload         4
     453: invokeinterface #269,  1          // InterfaceMethod java/sql/Statement.close:()V
     458: goto          470
     461: astore        6
     463: aload         5
     465: aload         6
     467: invokevirtual #274                // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V
     470: aload         5
     472: athrow
     473: aload_3
     474: ifnull        513
     477: aload_3
     478: invokeinterface #278,  1          // InterfaceMethod java/sql/Connection.close:()V
     483: goto          513
     486: astore        4
     488: aload_3
     489: ifnull        510
     492: aload_3
     493: invokeinterface #278,  1          // InterfaceMethod java/sql/Connection.close:()V
     498: goto          510
     501: astore        5
     503: aload         4
     505: aload         5
     507: invokevirtual #274                // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V
     510: aload         4
     512: athrow
     513: aload_0
     514: getfield      #124                // Field recording:Ljdk/jfr/Recording;
     517: ldc_w         #279                // String jdk.VirtualThreadPinned
     520: invokevirtual #281                // Method jdk/jfr/Recording.enable:(Ljava/lang/String;)Ljdk/jfr/EventSettings;
     523: ldc2_w        #285                // long 20l
     526: invokestatic  #287                // Method java/time/Duration.ofMillis:(J)Ljava/time/Duration;
     529: invokevirtual #293                // Method jdk/jfr/EventSettings.withThreshold:(Ljava/time/Duration;)Ljdk/jfr/EventSettings;
     532: invokevirtual #299                // Method jdk/jfr/EventSettings.withStackTrace:()Ljdk/jfr/EventSettings;
     535: pop
     536: aload_0
     537: getfield      #124                // Field recording:Ljdk/jfr/Recording;
     540: ldc_w         #303                // String jdk.VirtualThreadStart
     543: invokevirtual #281                // Method jdk/jfr/Recording.enable:(Ljava/lang/String;)Ljdk/jfr/EventSettings;
     546: pop
     547: aload_0
     548: getfield      #124                // Field recording:Ljdk/jfr/Recording;
     551: ldc_w         #305                // String jdk.VirtualThreadEnd
     554: invokevirtual #281                // Method jdk/jfr/Recording.enable:(Ljava/lang/String;)Ljdk/jfr/EventSettings;
     557: pop
     558: aload_0
     559: getfield      #124                // Field recording:Ljdk/jfr/Recording;
     562: ldc_w         #307                // String jdk.VirtualThreadSubmitFailed
     565: invokevirtual #281                // Method jdk/jfr/Recording.enable:(Ljava/lang/String;)Ljdk/jfr/EventSettings;
     568: pop
     569: aload_0
     570: getfield      #124                // Field recording:Ljdk/jfr/Recording;
     573: ldc_w         #309                // String jdk.GarbageCollection
     576: invokevirtual #281                // Method jdk/jfr/Recording.enable:(Ljava/lang/String;)Ljdk/jfr/EventSettings;
     579: pop
     580: aload_0
     581: getfield      #124                // Field recording:Ljdk/jfr/Recording;
     584: invokevirtual #311                // Method jdk/jfr/Recording.start:()V
     587: aload_0
     588: getfield      #78                 // Field clock:Ljava/util/concurrent/ScheduledExecutorService;
     591: aload_0
     592: invokedynamic #314,  0            // InvokeDynamic #2:run:(Lcontrollers/VirtualController;)Ljava/lang/Runnable;
     597: lconst_0
     598: ldc2_w        #318                // long 2l
     601: getstatic     #320                // Field java/util/concurrent/TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
     604: invokeinterface #323,  7          // InterfaceMethod java/util/concurrent/ScheduledExecutorService.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
     609: pop
     610: aload_1
     611: aload_0
     612: invokedynamic #329,  0            // InvokeDynamic #3:call:(Lcontrollers/VirtualController;)Ljava/util/concurrent/Callable;
     617: invokeinterface #333,  2          // InterfaceMethod play/inject/ApplicationLifecycle.addStopHook:(Ljava/util/concurrent/Callable;)V
     622: return
    Exception table:
       from    to  target type
         395   429   444   Class java/lang/Throwable
         451   458   461   Class java/lang/Throwable
         387   473   486   Class java/lang/Throwable
         492   498   501   Class java/lang/Throwable

  public synchronized play.mvc.Result finishRecording() throws java.lang.Exception;
    Code:
       0: aload_0
       1: getfield      #118                // Field recordingClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
       4: invokevirtual #339                // Method java/util/concurrent/atomic/AtomicBoolean.get:()Z
       7: ifne          52
      10: aload_0
      11: getfield      #124                // Field recording:Ljdk/jfr/Recording;
      14: invokevirtual #343                // Method jdk/jfr/Recording.stop:()Z
      17: pop
      18: aload_0
      19: getfield      #124                // Field recording:Ljdk/jfr/Recording;
      22: aload_0
      23: getfield      #150                // Field output:Ljava/nio/file/Path;
      26: ldc_w         #346                // String runtime.jfr
      29: invokeinterface #348,  2          // InterfaceMethod java/nio/file/Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
      34: invokevirtual #352                // Method jdk/jfr/Recording.dump:(Ljava/nio/file/Path;)V
      37: aload_0
      38: getfield      #124                // Field recording:Ljdk/jfr/Recording;
      41: invokevirtual #356                // Method jdk/jfr/Recording.close:()V
      44: aload_0
      45: getfield      #118                // Field recordingClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
      48: iconst_1
      49: invokevirtual #357                // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V
      52: ldc_w         #361                // String recording archived and closed
      55: invokestatic  #363                // Method ok:(Ljava/lang/String;)Lplay/mvc/Result;
      58: areturn

  private void sample();
    Code:
       0: aload_0
       1: getfield      #96                 // Field peakRunning:Ljava/util/concurrent/atomic/AtomicInteger;
       4: aload_0
       5: getfield      #92                 // Field running:Ljava/util/concurrent/atomic/AtomicInteger;
       8: invokevirtual #367                // Method java/util/concurrent/atomic/AtomicInteger.get:()I
      11: invokedynamic #370,  0            // InvokeDynamic #4:applyAsInt:()Ljava/util/function/IntBinaryOperator;
      16: invokevirtual #374                // Method java/util/concurrent/atomic/AtomicInteger.accumulateAndGet:(ILjava/util/function/IntBinaryOperator;)I
      19: pop
      20: aload_0
      21: getfield      #99                 // Field peakPoolActive:Ljava/util/concurrent/atomic/AtomicInteger;
      24: aload_0
      25: getfield      #245                // Field pool:Lcom/zaxxer/hikari/HikariDataSource;
      28: invokevirtual #378                // Method com/zaxxer/hikari/HikariDataSource.getHikariPoolMXBean:()Lcom/zaxxer/hikari/HikariPoolMXBean;
      31: invokeinterface #382,  1          // InterfaceMethod com/zaxxer/hikari/HikariPoolMXBean.getActiveConnections:()I
      36: invokedynamic #370,  0            // InvokeDynamic #4:applyAsInt:()Ljava/util/function/IntBinaryOperator;
      41: invokevirtual #374                // Method java/util/concurrent/atomic/AtomicInteger.accumulateAndGet:(ILjava/util/function/IntBinaryOperator;)I
      44: pop
      45: aload_0
      46: getfield      #102                // Field peakPoolWait:Ljava/util/concurrent/atomic/AtomicInteger;
      49: aload_0
      50: getfield      #245                // Field pool:Lcom/zaxxer/hikari/HikariDataSource;
      53: invokevirtual #378                // Method com/zaxxer/hikari/HikariDataSource.getHikariPoolMXBean:()Lcom/zaxxer/hikari/HikariPoolMXBean;
      56: invokeinterface #387,  1          // InterfaceMethod com/zaxxer/hikari/HikariPoolMXBean.getThreadsAwaitingConnection:()I
      61: invokedynamic #370,  0            // InvokeDynamic #4:applyAsInt:()Ljava/util/function/IntBinaryOperator;
      66: invokevirtual #374                // Method java/util/concurrent/atomic/AtomicInteger.accumulateAndGet:(ILjava/util/function/IntBinaryOperator;)I
      69: pop
      70: return

  public play.mvc.Result stats();
    Code:
       0: invokestatic  #390                // Method play/libs/Json.newObject:()Lcom/fasterxml/jackson/databind/node/ObjectNode;
       3: astore_1
       4: aload_1
       5: ldc_w         #396                // String pid
       8: invokestatic  #398                // InterfaceMethod java/lang/ProcessHandle.current:()Ljava/lang/ProcessHandle;
      11: invokeinterface #404,  1          // InterfaceMethod java/lang/ProcessHandle.pid:()J
      16: invokevirtual #407                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;J)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      19: pop
      20: aload_1
      21: ldc_w         #413                // String schema
      24: aload_0
      25: getfield      #166                // Field schema:Ljava/lang/String;
      28: invokevirtual #414                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      31: pop
      32: aload_1
      33: ldc_w         #417                // String running
      36: aload_0
      37: getfield      #92                 // Field running:Ljava/util/concurrent/atomic/AtomicInteger;
      40: invokevirtual #367                // Method java/util/concurrent/atomic/AtomicInteger.get:()I
      43: invokevirtual #418                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;I)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      46: pop
      47: aload_1
      48: ldc_w         #421                // String peakRunning
      51: aload_0
      52: getfield      #96                 // Field peakRunning:Ljava/util/concurrent/atomic/AtomicInteger;
      55: invokevirtual #367                // Method java/util/concurrent/atomic/AtomicInteger.get:()I
      58: invokevirtual #418                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;I)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      61: pop
      62: aload_1
      63: ldc_w         #422                // String platformQueued
      66: aload_0
      67: getfield      #41                 // Field platform:Ljava/util/concurrent/ThreadPoolExecutor;
      70: invokevirtual #424                // Method java/util/concurrent/ThreadPoolExecutor.getQueue:()Ljava/util/concurrent/BlockingQueue;
      73: invokeinterface #428,  1          // InterfaceMethod java/util/concurrent/BlockingQueue.size:()I
      78: invokevirtual #418                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;I)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      81: pop
      82: aload_1
      83: ldc_w         #433                // String permits
      86: aload_0
      87: getfield      #85                 // Field admission:Ljava/util/concurrent/Semaphore;
      90: invokevirtual #435                // Method java/util/concurrent/Semaphore.availablePermits:()I
      93: invokevirtual #418                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;I)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      96: pop
      97: aload_1
      98: ldc_w         #438                // String poolActive
     101: aload_0
     102: getfield      #245                // Field pool:Lcom/zaxxer/hikari/HikariDataSource;
     105: invokevirtual #378                // Method com/zaxxer/hikari/HikariDataSource.getHikariPoolMXBean:()Lcom/zaxxer/hikari/HikariPoolMXBean;
     108: invokeinterface #382,  1          // InterfaceMethod com/zaxxer/hikari/HikariPoolMXBean.getActiveConnections:()I
     113: invokevirtual #418                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;I)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     116: pop
     117: aload_1
     118: ldc_w         #440                // String poolWait
     121: aload_0
     122: getfield      #245                // Field pool:Lcom/zaxxer/hikari/HikariDataSource;
     125: invokevirtual #378                // Method com/zaxxer/hikari/HikariDataSource.getHikariPoolMXBean:()Lcom/zaxxer/hikari/HikariPoolMXBean;
     128: invokeinterface #387,  1          // InterfaceMethod com/zaxxer/hikari/HikariPoolMXBean.getThreadsAwaitingConnection:()I
     133: invokevirtual #418                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;I)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     136: pop
     137: aload_1
     138: ldc_w         #442                // String peakPoolActive
     141: aload_0
     142: getfield      #99                 // Field peakPoolActive:Ljava/util/concurrent/atomic/AtomicInteger;
     145: invokevirtual #367                // Method java/util/concurrent/atomic/AtomicInteger.get:()I
     148: invokevirtual #418                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;I)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     151: pop
     152: aload_1
     153: ldc_w         #443                // String peakPoolWait
     156: aload_0
     157: getfield      #102                // Field peakPoolWait:Ljava/util/concurrent/atomic/AtomicInteger;
     160: invokevirtual #367                // Method java/util/concurrent/atomic/AtomicInteger.get:()I
     163: invokevirtual #418                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;I)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     166: pop
     167: aload_1
     168: ldc_w         #444                // String rejected
     171: aload_0
     172: getfield      #105                // Field rejected:Ljava/util/concurrent/atomic/AtomicInteger;
     175: invokevirtual #367                // Method java/util/concurrent/atomic/AtomicInteger.get:()I
     178: invokevirtual #418                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;I)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     181: pop
     182: aload_1
     183: ldc_w         #445                // String finished
     186: aload_0
     187: getfield      #108                // Field finished:Ljava/util/concurrent/atomic/AtomicInteger;
     190: invokevirtual #367                // Method java/util/concurrent/atomic/AtomicInteger.get:()I
     193: invokevirtual #418                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;I)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     196: pop
     197: invokestatic  #446                // Method java/lang/management/ManagementFactory.getThreadMXBean:()Ljava/lang/management/ThreadMXBean;
     200: checkcast     #452                // class com/sun/management/ThreadMXBean
     203: astore_2
     204: aload_1
     205: ldc_w         #454                // String totalAllocatedBytes
     208: aload_2
     209: invokeinterface #456,  1          // InterfaceMethod com/sun/management/ThreadMXBean.getTotalThreadAllocatedBytes:()J
     214: invokevirtual #407                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;J)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     217: pop
     218: aload_1
     219: ldc_w         #459                // String heapUsed
     222: invokestatic  #461                // Method java/lang/management/ManagementFactory.getMemoryMXBean:()Ljava/lang/management/MemoryMXBean;
     225: invokeinterface #465,  1          // InterfaceMethod java/lang/management/MemoryMXBean.getHeapMemoryUsage:()Ljava/lang/management/MemoryUsage;
     230: invokevirtual #471                // Method java/lang/management/MemoryUsage.getUsed:()J
     233: invokevirtual #407                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;J)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     236: pop
     237: aload_1
     238: ldc_w         #476                // String gcCount
     241: invokestatic  #478                // Method java/lang/management/ManagementFactory.getGarbageCollectorMXBeans:()Ljava/util/List;
     244: invokeinterface #482,  1          // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;
     249: invokedynamic #488,  0            // InvokeDynamic #5:applyAsLong:()Ljava/util/function/ToLongFunction;
     254: invokeinterface #492,  2          // InterfaceMethod java/util/stream/Stream.mapToLong:(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream;
     259: invokeinterface #498,  1          // InterfaceMethod java/util/stream/LongStream.sum:()J
     264: invokevirtual #407                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;J)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     267: pop
     268: aload_1
     269: ldc_w         #503                // String gcMillis
     272: invokestatic  #478                // Method java/lang/management/ManagementFactory.getGarbageCollectorMXBeans:()Ljava/util/List;
     275: invokeinterface #482,  1          // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;
     280: invokedynamic #505,  0            // InvokeDynamic #6:applyAsLong:()Ljava/util/function/ToLongFunction;
     285: invokeinterface #492,  2          // InterfaceMethod java/util/stream/Stream.mapToLong:(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream;
     290: invokeinterface #498,  1          // InterfaceMethod java/util/stream/LongStream.sum:()J
     295: invokevirtual #407                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;J)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     298: pop
     299: aload_1
     300: invokestatic  #506                // Method ok:(Lcom/fasterxml/jackson/databind/JsonNode;)Lplay/mvc/Result;
     303: areturn

  public java.util.concurrent.CompletionStage<play.mvc.Result> work(java.lang.String, java.lang.String, int, int);
    Code:
       0: aload_1
       1: ldc_w         #509                // String platform
       4: invokevirtual #510                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
       7: ifne          20
      10: aload_1
      11: ldc_w         #514                // String virtual
      14: invokevirtual #510                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      17: ifeq          55
      20: aload_2
      21: ldc_w         #515                // String [a-zA-Z0-9_-]{1,80}
      24: invokevirtual #172                // Method java/lang/String.matches:(Ljava/lang/String;)Z
      27: ifeq          55
      30: iload_3
      31: bipush        30
      33: if_icmplt     55
      36: iload_3
      37: bipush        100
      39: if_icmpgt     55
      42: iload         4
      44: iflt          55
      47: iload         4
      49: sipush        1000
      52: if_icmple     65
      55: ldc_w         #517                // String invalid bounded input
      58: invokestatic  #519                // Method badRequest:(Ljava/lang/String;)Lplay/mvc/Result;
      61: invokestatic  #522                // Method java/util/concurrent/CompletableFuture.completedFuture:(Ljava/lang/Object;)Ljava/util/concurrent/CompletableFuture;
      64: areturn
      65: aload_0
      66: getfield      #114                // Field closing:Ljava/util/concurrent/atomic/AtomicBoolean;
      69: invokevirtual #339                // Method java/util/concurrent/atomic/AtomicBoolean.get:()Z
      72: ifne          85
      75: aload_0
      76: getfield      #85                 // Field admission:Ljava/util/concurrent/Semaphore;
      79: invokevirtual #528                // Method java/util/concurrent/Semaphore.tryAcquire:()Z
      82: ifne          106
      85: aload_0
      86: getfield      #105                // Field rejected:Ljava/util/concurrent/atomic/AtomicInteger;
      89: invokevirtual #531                // Method java/util/concurrent/atomic/AtomicInteger.incrementAndGet:()I
      92: pop
      93: sipush        503
      96: ldc_w         #534                // String admission full
      99: invokestatic  #536                // Method status:(ILjava/lang/String;)Lplay/mvc/Result;
     102: invokestatic  #522                // Method java/util/concurrent/CompletableFuture.completedFuture:(Ljava/lang/Object;)Ljava/util/concurrent/CompletableFuture;
     105: areturn
     106: new           #523                // class java/util/concurrent/CompletableFuture
     109: dup
     110: invokespecial #540                // Method java/util/concurrent/CompletableFuture."<init>":()V
     113: astore        5
     115: invokestatic  #541                // Method java/lang/System.nanoTime:()J
     118: lstore        6
     120: aload_1
     121: ldc_w         #509                // String platform
     124: invokevirtual #510                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     127: ifeq          137
     130: aload_0
     131: getfield      #41                 // Field platform:Ljava/util/concurrent/ThreadPoolExecutor;
     134: goto          141
     137: aload_0
     138: getfield      #65                 // Field virtual:Ljava/util/concurrent/ExecutorService;
     141: aload_0
     142: aload         5
     144: aload_2
     145: iload_3
     146: lload         6
     148: invokedynamic #544,  0            // InvokeDynamic #7:run:(Lcontrollers/VirtualController;Ljava/util/concurrent/CompletableFuture;Ljava/lang/String;IJ)Ljava/lang/Runnable;
     153: invokeinterface #547,  2          // InterfaceMethod java/util/concurrent/ExecutorService.execute:(Ljava/lang/Runnable;)V
     158: goto          193
     161: astore        8
     163: aload_0
     164: getfield      #85                 // Field admission:Ljava/util/concurrent/Semaphore;
     167: invokevirtual #554                // Method java/util/concurrent/Semaphore.release:()V
     170: aload_0
     171: getfield      #105                // Field rejected:Ljava/util/concurrent/atomic/AtomicInteger;
     174: invokevirtual #531                // Method java/util/concurrent/atomic/AtomicInteger.incrementAndGet:()I
     177: pop
     178: aload         5
     180: sipush        503
     183: ldc_w         #557                // String executor full
     186: invokestatic  #536                // Method status:(ILjava/lang/String;)Lplay/mvc/Result;
     189: invokevirtual #559                // Method java/util/concurrent/CompletableFuture.complete:(Ljava/lang/Object;)Z
     192: pop
     193: iload         4
     195: ifle          235
     198: aload_0
     199: getfield      #78                 // Field clock:Ljava/util/concurrent/ScheduledExecutorService;
     202: aload         5
     204: invokedynamic #562,  0            // InvokeDynamic #8:call:(Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/Callable;
     209: iload         4
     211: i2l
     212: getstatic     #320                // Field java/util/concurrent/TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
     215: invokeinterface #565,  5          // InterfaceMethod java/util/concurrent/ScheduledExecutorService.schedule:(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
     220: astore        8
     222: aload         5
     224: aload         8
     226: invokedynamic #569,  0            // InvokeDynamic #9:accept:(Ljava/util/concurrent/ScheduledFuture;)Ljava/util/function/BiConsumer;
     231: invokevirtual #573                // Method java/util/concurrent/CompletableFuture.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
     234: pop
     235: aload         5
     237: areturn
    Exception table:
       from    to  target type
         120   158   161   Class java/util/concurrent/RejectedExecutionException

  private com.fasterxml.jackson.databind.node.ObjectNode query(java.lang.String, int, long) throws java.lang.Exception;
    Code:
       0: invokestatic  #541                // Method java/lang/System.nanoTime:()J
       3: lstore        5
       5: aload_0
       6: getfield      #92                 // Field running:Ljava/util/concurrent/atomic/AtomicInteger;
       9: invokevirtual #531                // Method java/util/concurrent/atomic/AtomicInteger.incrementAndGet:()I
      12: pop
      13: aload_0
      14: invokevirtual #577                // Method sample:()V
      17: aload_0
      18: getfield      #245                // Field pool:Lcom/zaxxer/hikari/HikariDataSource;
      21: invokevirtual #249                // Method com/zaxxer/hikari/HikariDataSource.getConnection:()Ljava/sql/Connection;
      24: astore        7
      26: invokestatic  #541                // Method java/lang/System.nanoTime:()J
      29: lstore        8
      31: aload         7
      33: iconst_0
      34: invokeinterface #580,  2          // InterfaceMethod java/sql/Connection.setAutoCommit:(Z)V
      39: aload         7
      41: ldc_w         #583                // String SELECT pg_sleep(?)
      44: invokeinterface #585,  2          // InterfaceMethod java/sql/Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
      49: astore        10
      51: aload         7
      53: aload_0
      54: getfield      #166                // Field schema:Ljava/lang/String;
      57: invokedynamic #589,  0            // InvokeDynamic #10:makeConcatWithConstants:(Ljava/lang/String;)Ljava/lang/String;
      62: invokeinterface #585,  2          // InterfaceMethod java/sql/Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
      67: astore        11
      69: aload         10
      71: iconst_1
      72: iload_2
      73: i2d
      74: ldc2_w        #590                // double 1000.0d
      77: ddiv
      78: invokeinterface #592,  4          // InterfaceMethod java/sql/PreparedStatement.setDouble:(ID)V
      83: aload         10
      85: invokeinterface #598,  1          // InterfaceMethod java/sql/PreparedStatement.execute:()Z
      90: pop
      91: aload         11
      93: iconst_1
      94: aload_1
      95: invokeinterface #600,  3          // InterfaceMethod java/sql/PreparedStatement.setString:(ILjava/lang/String;)V
     100: aload         11
     102: invokeinterface #604,  1          // InterfaceMethod java/sql/PreparedStatement.executeUpdate:()I
     107: pop
     108: aload         7
     110: invokeinterface #607,  1          // InterfaceMethod java/sql/Connection.commit:()V
     115: aload         11
     117: ifnull        159
     120: aload         11
     122: invokeinterface #610,  1          // InterfaceMethod java/sql/PreparedStatement.close:()V
     127: goto          159
     130: astore        12
     132: aload         11
     134: ifnull        156
     137: aload         11
     139: invokeinterface #610,  1          // InterfaceMethod java/sql/PreparedStatement.close:()V
     144: goto          156
     147: astore        13
     149: aload         12
     151: aload         13
     153: invokevirtual #274                // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V
     156: aload         12
     158: athrow
     159: aload         10
     161: ifnull        203
     164: aload         10
     166: invokeinterface #610,  1          // InterfaceMethod java/sql/PreparedStatement.close:()V
     171: goto          203
     174: astore        11
     176: aload         10
     178: ifnull        200
     181: aload         10
     183: invokeinterface #610,  1          // InterfaceMethod java/sql/PreparedStatement.close:()V
     188: goto          200
     191: astore        12
     193: aload         11
     195: aload         12
     197: invokevirtual #274                // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V
     200: aload         11
     202: athrow
     203: goto          218
     206: astore        10
     208: aload         7
     210: invokeinterface #613,  1          // InterfaceMethod java/sql/Connection.rollback:()V
     215: aload         10
     217: athrow
     218: aload_0
     219: getfield      #108                // Field finished:Ljava/util/concurrent/atomic/AtomicInteger;
     222: invokevirtual #531                // Method java/util/concurrent/atomic/AtomicInteger.incrementAndGet:()I
     225: pop
     226: invokestatic  #390                // Method play/libs/Json.newObject:()Lcom/fasterxml/jackson/databind/node/ObjectNode;
     229: astore        10
     231: aload         10
     233: ldc_w         #616                // String id
     236: aload_1
     237: invokevirtual #414                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     240: pop
     241: aload         10
     243: ldc_w         #514                // String virtual
     246: invokestatic  #618                // Method java/lang/Thread.currentThread:()Ljava/lang/Thread;
     249: invokevirtual #622                // Method java/lang/Thread.isVirtual:()Z
     252: invokevirtual #625                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;Z)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     255: pop
     256: aload         10
     258: ldc_w         #628                // String thread
     261: invokestatic  #618                // Method java/lang/Thread.currentThread:()Ljava/lang/Thread;
     264: invokevirtual #630                // Method java/lang/Thread.getName:()Ljava/lang/String;
     267: invokevirtual #414                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     270: pop
     271: aload         10
     273: ldc_w         #634                // String queueMillis
     276: lload         5
     278: lload_3
     279: lsub
     280: l2d
     281: ldc2_w        #636                // double 1000000.0d
     284: ddiv
     285: invokevirtual #638                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;D)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     288: pop
     289: aload         10
     291: ldc_w         #641                // String poolWaitMillis
     294: lload         8
     296: lload         5
     298: lsub
     299: l2d
     300: ldc2_w        #636                // double 1000000.0d
     303: ddiv
     304: invokevirtual #638                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;D)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     307: pop
     308: aload         10
     310: ldc_w         #643                // String committed
     313: iconst_1
     314: invokevirtual #625                // Method com/fasterxml/jackson/databind/node/ObjectNode.put:(Ljava/lang/String;Z)Lcom/fasterxml/jackson/databind/node/ObjectNode;
     317: pop
     318: aload         10
     320: astore        11
     322: aload         7
     324: ifnull        334
     327: aload         7
     329: invokeinterface #278,  1          // InterfaceMethod java/sql/Connection.close:()V
     334: aload_0
     335: getfield      #92                 // Field running:Ljava/util/concurrent/atomic/AtomicInteger;
     338: invokevirtual #645                // Method java/util/concurrent/atomic/AtomicInteger.decrementAndGet:()I
     341: pop
     342: aload         11
     344: areturn
     345: astore        8
     347: aload         7
     349: ifnull        371
     352: aload         7
     354: invokeinterface #278,  1          // InterfaceMethod java/sql/Connection.close:()V
     359: goto          371
     362: astore        9
     364: aload         8
     366: aload         9
     368: invokevirtual #274                // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V
     371: aload         8
     373: athrow
     374: astore        14
     376: aload_0
     377: getfield      #92                 // Field running:Ljava/util/concurrent/atomic/AtomicInteger;
     380: invokevirtual #645                // Method java/util/concurrent/atomic/AtomicInteger.decrementAndGet:()I
     383: pop
     384: aload         14
     386: athrow
    Exception table:
       from    to  target type
          69   115   130   Class java/lang/Throwable
         137   144   147   Class java/lang/Throwable
          51   159   174   Class java/lang/Throwable
         181   188   191   Class java/lang/Throwable
          39   203   206   Class java/lang/Exception
          26   322   345   Class java/lang/Throwable
         352   359   362   Class java/lang/Throwable
          17   334   374   any
         345   376   374   any

  public java.util.concurrent.CompletionStage<play.mvc.Result> burst();
    Code:
       0: new           #648                // class java/util/ArrayList
       3: dup
       4: invokespecial #650                // Method java/util/ArrayList."<init>":()V
       7: astore_1
       8: invokestatic  #541                // Method java/lang/System.nanoTime:()J
      11: invokedynamic #651,  0            // InvokeDynamic #11:makeConcatWithConstants:(J)Ljava/lang/String;
      16: astore_2
      17: iconst_0
      18: istore_3
      19: iload_3
      20: bipush        48
      22: if_icmpge     62
      25: aload_2
      26: iload_3
      27: invokedynamic #654,  0            // InvokeDynamic #12:makeConcatWithConstants:(Ljava/lang/String;I)Ljava/lang/String;
      32: astore        4
      34: aload_1
      35: aload_0
      36: aload         4
      38: invokedynamic #657,  0            // InvokeDynamic #13:get:(Lcontrollers/VirtualController;Ljava/lang/String;)Ljava/util/function/Supplier;
      43: aload_0
      44: getfield      #65                 // Field virtual:Ljava/util/concurrent/ExecutorService;
      47: invokestatic  #660                // Method java/util/concurrent/CompletableFuture.supplyAsync:(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
      50: invokeinterface #664,  2          // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
      55: pop
      56: iinc          3, 1
      59: goto          19
      62: aload_1
      63: invokedynamic #667,  0            // InvokeDynamic #14:apply:()Ljava/util/function/IntFunction;
      68: invokeinterface #671,  2          // InterfaceMethod java/util/List.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
      73: checkcast     #675                // class "[Ljava/util/concurrent/CompletableFuture;"
      76: invokestatic  #677                // Method java/util/concurrent/CompletableFuture.allOf:([Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
      79: aload_1
      80: invokedynamic #681,  0            // InvokeDynamic #15:apply:(Ljava/util/List;)Ljava/util/function/Function;
      85: invokevirtual #684                // Method java/util/concurrent/CompletableFuture.thenApply:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
      88: areturn

  public java.util.concurrent.CompletionStage<play.mvc.Result> pin(java.lang.String);
    Code:
       0: aload_1
       1: ldc_w         #688                // String monitor
       4: invokevirtual #510                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
       7: ifne          30
      10: aload_1
      11: ldc_w         #690                // String lock
      14: invokevirtual #510                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      17: ifne          30
      20: ldc_w         #692                // String monitor or lock
      23: invokestatic  #519                // Method badRequest:(Ljava/lang/String;)Lplay/mvc/Result;
      26: invokestatic  #522                // Method java/util/concurrent/CompletableFuture.completedFuture:(Ljava/lang/Object;)Ljava/util/concurrent/CompletableFuture;
      29: areturn
      30: aload_1
      31: invokedynamic #694,  0            // InvokeDynamic #16:get:(Ljava/lang/String;)Ljava/util/function/Supplier;
      36: aload_0
      37: getfield      #65                 // Field virtual:Ljava/util/concurrent/ExecutorService;
      40: invokestatic  #660                // Method java/util/concurrent/CompletableFuture.supplyAsync:(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
      43: areturn

  public static void monitorSleep() throws java.lang.InterruptedException;
    Code:
       0: getstatic     #697                // Field PIN_MONITOR:Ljava/lang/Object;
       3: dup
       4: astore_0
       5: monitorenter
       6: ldc2_w        #701                // long 60l
       9: invokestatic  #703                // Method java/lang/Thread.sleep:(J)V
      12: aload_0
      13: monitorexit
      14: goto          22
      17: astore_1
      18: aload_0
      19: monitorexit
      20: aload_1
      21: athrow
      22: return
    Exception table:
       from    to  target type
           6    14    17   any
          17    20    17   any

  public static void lockSleep() throws java.lang.InterruptedException;
    Code:
       0: new           #706                // class java/util/concurrent/locks/ReentrantLock
       3: dup
       4: invokespecial #708                // Method java/util/concurrent/locks/ReentrantLock."<init>":()V
       7: astore_0
       8: aload_0
       9: invokevirtual #709                // Method java/util/concurrent/locks/ReentrantLock.lock:()V
      12: ldc2_w        #701                // long 60l
      15: invokestatic  #703                // Method java/lang/Thread.sleep:(J)V
      18: aload_0
      19: invokevirtual #711                // Method java/util/concurrent/locks/ReentrantLock.unlock:()V
      22: goto          32
      25: astore_1
      26: aload_0
      27: invokevirtual #711                // Method java/util/concurrent/locks/ReentrantLock.unlock:()V
      30: aload_1
      31: athrow
      32: return
    Exception table:
       from    to  target type
          12    18    25   any

  private static play.mvc.Result lambda$pin$9(java.lang.String);
    Code:
       0: iconst_0
       1: istore_1
       2: iload_1
       3: bipush        6
       5: if_icmpge     33
       8: aload_0
       9: ldc_w         #688                // String monitor
      12: invokevirtual #510                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      15: ifeq          24
      18: invokestatic  #714                // Method monitorSleep:()V
      21: goto          27
      24: invokestatic  #717                // Method lockSleep:()V
      27: iinc          1, 1
      30: goto          2
      33: ldc_w         #720                // String kind
      36: aload_0
      37: ldc_w         #514                // String virtual
      40: invokestatic  #618                // Method java/lang/Thread.currentThread:()Ljava/lang/Thread;
      43: invokevirtual #622                // Method java/lang/Thread.isVirtual:()Z
      46: invokestatic  #722                // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
      49: invokestatic  #728                // InterfaceMethod java/util/Map.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
      52: invokestatic  #731                // Method play/libs/Json.toJson:(Ljava/lang/Object;)Lcom/fasterxml/jackson/databind/JsonNode;
      55: invokestatic  #506                // Method ok:(Lcom/fasterxml/jackson/databind/JsonNode;)Lplay/mvc/Result;
      58: areturn
      59: astore_1
      60: invokestatic  #618                // Method java/lang/Thread.currentThread:()Ljava/lang/Thread;
      63: invokevirtual #737                // Method java/lang/Thread.interrupt:()V
      66: ldc_w         #740                // String interrupted
      69: invokestatic  #742                // Method internalServerError:(Ljava/lang/String;)Lplay/mvc/Result;
      72: areturn
    Exception table:
       from    to  target type
           0    58    59   Class java/lang/InterruptedException

  private static play.mvc.Result lambda$burst$8(java.util.List, java.lang.Void);
    Code:
       0: aload_0
       1: invokeinterface #482,  1          // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;
       6: invokedynamic #745,  0            // InvokeDynamic #17:apply:()Ljava/util/function/Function;
      11: invokeinterface #748,  2          // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
      16: invokeinterface #752,  1          // InterfaceMethod java/util/stream/Stream.toList:()Ljava/util/List;
      21: invokestatic  #731                // Method play/libs/Json.toJson:(Ljava/lang/Object;)Lcom/fasterxml/jackson/databind/JsonNode;
      24: invokestatic  #506                // Method ok:(Lcom/fasterxml/jackson/databind/JsonNode;)Lplay/mvc/Result;
      27: areturn

  private static java.util.concurrent.CompletableFuture[] lambda$burst$7(int);
    Code:
       0: iload_0
       1: anewarray     #523                // class java/util/concurrent/CompletableFuture
       4: areturn

  private com.fasterxml.jackson.databind.node.ObjectNode lambda$burst$6(java.lang.String);
    Code:
       0: aload_0
       1: aload_1
       2: bipush        50
       4: invokestatic  #541                // Method java/lang/System.nanoTime:()J
       7: invokevirtual #755                // Method query:(Ljava/lang/String;IJ)Lcom/fasterxml/jackson/databind/node/ObjectNode;
      10: areturn
      11: astore_2
      12: new           #759                // class java/util/concurrent/CompletionException
      15: dup
      16: aload_2
      17: invokespecial #761                // Method java/util/concurrent/CompletionException."<init>":(Ljava/lang/Throwable;)V
      20: athrow
    Exception table:
       from    to  target type
           0    10    11   Class java/lang/Exception

  private static void lambda$work$5(java.util.concurrent.ScheduledFuture, play.mvc.Result, java.lang.Throwable);
    Code:
       0: aload_0
       1: iconst_0
       2: invokeinterface #763,  2          // InterfaceMethod java/util/concurrent/ScheduledFuture.cancel:(Z)Z
       7: pop
       8: return

  private static java.lang.Boolean lambda$work$4(java.util.concurrent.CompletableFuture) throws java.lang.Exception;
    Code:
       0: aload_0
       1: sipush        504
       4: ldc_w         #769                // String response budget
       7: invokestatic  #536                // Method status:(ILjava/lang/String;)Lplay/mvc/Result;
      10: invokevirtual #559                // Method java/util/concurrent/CompletableFuture.complete:(Ljava/lang/Object;)Z
      13: invokestatic  #722                // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
      16: areturn

  private void lambda$work$3(java.util.concurrent.CompletableFuture, java.lang.String, int, long);
    Code:
       0: aload_1
       1: aload_0
       2: aload_2
       3: iload_3
       4: lload         4
       6: invokevirtual #755                // Method query:(Ljava/lang/String;IJ)Lcom/fasterxml/jackson/databind/node/ObjectNode;
       9: invokestatic  #506                // Method ok:(Lcom/fasterxml/jackson/databind/JsonNode;)Lplay/mvc/Result;
      12: invokevirtual #559                // Method java/util/concurrent/CompletableFuture.complete:(Ljava/lang/Object;)Z
      15: pop
      16: aload_0
      17: getfield      #85                 // Field admission:Ljava/util/concurrent/Semaphore;
      20: invokevirtual #554                // Method java/util/concurrent/Semaphore.release:()V
      23: goto          66
      26: astore        6
      28: aload_1
      29: aload         6
      31: invokevirtual #771                // Method java/lang/Object.getClass:()Ljava/lang/Class;
      34: invokevirtual #777                // Method java/lang/Class.getSimpleName:()Ljava/lang/String;
      37: invokestatic  #742                // Method internalServerError:(Ljava/lang/String;)Lplay/mvc/Result;
      40: invokevirtual #559                // Method java/util/concurrent/CompletableFuture.complete:(Ljava/lang/Object;)Z
      43: pop
      44: aload_0
      45: getfield      #85                 // Field admission:Ljava/util/concurrent/Semaphore;
      48: invokevirtual #554                // Method java/util/concurrent/Semaphore.release:()V
      51: goto          66
      54: astore        7
      56: aload_0
      57: getfield      #85                 // Field admission:Ljava/util/concurrent/Semaphore;
      60: invokevirtual #554                // Method java/util/concurrent/Semaphore.release:()V
      63: aload         7
      65: athrow
      66: return
    Exception table:
       from    to  target type
           0    16    26   Class java/lang/Exception
           0    16    54   any
          26    44    54   any
          54    56    54   any

  private static long lambda$stats$2(java.lang.management.GarbageCollectorMXBean);
    Code:
       0: lconst_0
       1: aload_0
       2: invokeinterface #782,  1          // InterfaceMethod java/lang/management/GarbageCollectorMXBean.getCollectionTime:()J
       7: invokestatic  #787                // Method java/lang/Math.max:(JJ)J
      10: lreturn

  private static long lambda$stats$1(java.lang.management.GarbageCollectorMXBean);
    Code:
       0: lconst_0
       1: aload_0
       2: invokeinterface #793,  1          // InterfaceMethod java/lang/management/GarbageCollectorMXBean.getCollectionCount:()J
       7: invokestatic  #787                // Method java/lang/Math.max:(JJ)J
      10: lreturn

  private java.util.concurrent.CompletionStage lambda$new$0() throws java.lang.Exception;
    Code:
       0: aload_0
       1: getfield      #114                // Field closing:Ljava/util/concurrent/atomic/AtomicBoolean;
       4: iconst_1
       5: invokevirtual #357                // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V
       8: aload_0
       9: getfield      #41                 // Field platform:Ljava/util/concurrent/ThreadPoolExecutor;
      12: invokevirtual #796                // Method java/util/concurrent/ThreadPoolExecutor.shutdown:()V
      15: aload_0
      16: getfield      #65                 // Field virtual:Ljava/util/concurrent/ExecutorService;
      19: invokeinterface #799,  1          // InterfaceMethod java/util/concurrent/ExecutorService.shutdown:()V
      24: aload_0
      25: getfield      #41                 // Field platform:Ljava/util/concurrent/ThreadPoolExecutor;
      28: ldc2_w        #800                // long 8l
      31: getstatic     #9                  // Field java/util/concurrent/TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
      34: invokevirtual #802                // Method java/util/concurrent/ThreadPoolExecutor.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
      37: istore_1
      38: aload_0
      39: getfield      #65                 // Field virtual:Ljava/util/concurrent/ExecutorService;
      42: ldc2_w        #800                // long 8l
      45: getstatic     #9                  // Field java/util/concurrent/TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
      48: invokeinterface #806,  4          // InterfaceMethod java/util/concurrent/ExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
      53: istore_2
      54: iload_1
      55: ifeq          62
      58: iload_2
      59: ifne          73
      62: new           #807                // class java/lang/IllegalStateException
      65: dup
      66: ldc_w         #809                // String workers failed to drain
      69: invokespecial #811                // Method java/lang/IllegalStateException."<init>":(Ljava/lang/String;)V
      72: athrow
      73: aload_0
      74: getfield      #78                 // Field clock:Ljava/util/concurrent/ScheduledExecutorService;
      77: invokeinterface #812,  1          // InterfaceMethod java/util/concurrent/ScheduledExecutorService.shutdown:()V
      82: aload_0
      83: getfield      #78                 // Field clock:Ljava/util/concurrent/ScheduledExecutorService;
      86: ldc2_w        #318                // long 2l
      89: getstatic     #9                  // Field java/util/concurrent/TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
      92: invokeinterface #813,  4          // InterfaceMethod java/util/concurrent/ScheduledExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
      97: istore_3
      98: aload_0
      99: getfield      #245                // Field pool:Lcom/zaxxer/hikari/HikariDataSource;
     102: invokevirtual #814                // Method com/zaxxer/hikari/HikariDataSource.close:()V
     105: aload_0
     106: getfield      #150                // Field output:Ljava/nio/file/Path;
     109: ldc_w         #815                // String cleanup.json
     112: invokeinterface #348,  2          // InterfaceMethod java/nio/file/Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
     117: ldc_w         #817                // String platformTerminated
     120: iload_1
     121: invokestatic  #722                // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
     124: ldc_w         #819                // String virtualTerminated
     127: iload_2
     128: invokestatic  #722                // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
     131: ldc_w         #821                // String clockTerminated
     134: iload_3
     135: invokestatic  #722                // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
     138: ldc_w         #823                // String poolClosed
     141: aload_0
     142: getfield      #245                // Field pool:Lcom/zaxxer/hikari/HikariDataSource;
     145: invokevirtual #825                // Method com/zaxxer/hikari/HikariDataSource.isClosed:()Z
     148: invokestatic  #722                // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
     151: ldc_w         #828                // String recordingClosed
     154: aload_0
     155: getfield      #118                // Field recordingClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
     158: invokevirtual #339                // Method java/util/concurrent/atomic/AtomicBoolean.get:()Z
     161: invokestatic  #722                // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
     164: ldc_w         #433                // String permits
     167: aload_0
     168: getfield      #85                 // Field admission:Ljava/util/concurrent/Semaphore;
     171: invokevirtual #435                // Method java/util/concurrent/Semaphore.availablePermits:()I
     174: invokestatic  #829                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     177: ldc_w         #417                // String running
     180: aload_0
     181: getfield      #92                 // Field running:Ljava/util/concurrent/atomic/AtomicInteger;
     184: invokevirtual #367                // Method java/util/concurrent/atomic/AtomicInteger.get:()I
     187: invokestatic  #829                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     190: ldc_w         #445                // String finished
     193: aload_0
     194: getfield      #108                // Field finished:Ljava/util/concurrent/atomic/AtomicInteger;
     197: invokevirtual #367                // Method java/util/concurrent/atomic/AtomicInteger.get:()I
     200: invokestatic  #829                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     203: invokestatic  #834                // InterfaceMethod java/util/Map.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
     206: invokestatic  #731                // Method play/libs/Json.toJson:(Ljava/lang/Object;)Lcom/fasterxml/jackson/databind/JsonNode;
     209: invokestatic  #837                // Method play/libs/Json.stringify:(Lcom/fasterxml/jackson/databind/JsonNode;)Ljava/lang/String;
     212: iconst_0
     213: anewarray     #841                // class java/nio/file/OpenOption
     216: invokestatic  #843                // Method java/nio/file/Files.writeString:(Ljava/nio/file/Path;Ljava/lang/CharSequence;[Ljava/nio/file/OpenOption;)Ljava/nio/file/Path;
     219: pop
     220: aconst_null
     221: invokestatic  #522                // Method java/util/concurrent/CompletableFuture.completedFuture:(Ljava/lang/Object;)Ljava/util/concurrent/CompletableFuture;
     224: astore        4
     226: aload_0
     227: getfield      #78                 // Field clock:Ljava/util/concurrent/ScheduledExecutorService;
     230: invokeinterface #847,  1          // InterfaceMethod java/util/concurrent/ScheduledExecutorService.shutdownNow:()Ljava/util/List;
     235: pop
     236: aload_0
     237: getfield      #245                // Field pool:Lcom/zaxxer/hikari/HikariDataSource;
     240: invokevirtual #814                // Method com/zaxxer/hikari/HikariDataSource.close:()V
     243: aload         4
     245: areturn
     246: astore_1
     247: aload_1
     248: invokestatic  #850                // Method java/util/concurrent/CompletableFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
     251: astore_2
     252: aload_0
     253: getfield      #78                 // Field clock:Ljava/util/concurrent/ScheduledExecutorService;
     256: invokeinterface #847,  1          // InterfaceMethod java/util/concurrent/ScheduledExecutorService.shutdownNow:()Ljava/util/List;
     261: pop
     262: aload_0
     263: getfield      #245                // Field pool:Lcom/zaxxer/hikari/HikariDataSource;
     266: invokevirtual #814                // Method com/zaxxer/hikari/HikariDataSource.close:()V
     269: aload_2
     270: areturn
     271: astore        5
     273: aload_0
     274: getfield      #78                 // Field clock:Ljava/util/concurrent/ScheduledExecutorService;
     277: invokeinterface #847,  1          // InterfaceMethod java/util/concurrent/ScheduledExecutorService.shutdownNow:()Ljava/util/List;
     282: pop
     283: aload_0
     284: getfield      #245                // Field pool:Lcom/zaxxer/hikari/HikariDataSource;
     287: invokevirtual #814                // Method com/zaxxer/hikari/HikariDataSource.close:()V
     290: aload         5
     292: athrow
    Exception table:
       from    to  target type
          24   226   246   Class java/lang/Exception
          24   226   271   any
         246   252   271   any
         271   273   271   any

  static {};
    Code:
       0: new           #772                // class java/lang/Object
       3: dup
       4: invokespecial #854                // Method java/lang/Object."<init>":()V
       7: putstatic     #697                // Field PIN_MONITOR:Ljava/lang/Object;
      10: return
}
