class WebSocketUtils {
    private static final String MAGIC_GUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";

    private WebSocketUtils() {
        // Prevent outside initialization
    }

    public static String getWebSocketKey() {<FILL_FUNCTION_BODY>}

    public static String getAcceptKey(String key) {
        return Base64.getEncoder().encodeToString(pooledSha1MessageDigest().digest((key + MAGIC_GUID).getBytes(US_ASCII)));
    }
}

        byte[] nonce = new byte[16];
        ThreadLocalRandom random = ThreadLocalRandom.current();
        for (int i = 0; i < nonce.length; i++) {
            nonce[i] = (byte) random.nextInt(256);
        }
        return Base64.getEncoder().encodeToString(nonce);
    
<no_super_class>