protected FullHttpResponse newHandshakeResponse(FullHttpRequest var1, HttpHeaders var2) { DefaultFullHttpResponse var3 = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.SWITCHING_PROTOCOLS); if (var2 != null) { var3.headers().add(var2); } String var4 = var1.headers().get("Sec-WebSocket-Key"); if (var4 == null) { throw new WebSocketHandshakeException("not a WebSocket request: missing key"); } else { String var5 = var4 + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; byte[] var6 = WebSocketUtil.sha1(var5.getBytes(CharsetUtil.US_ASCII)); String var7 = WebSocketUtil.base64(var6); if (logger.isDebugEnabled()) { logger.debug("WebSocket version 13 server handshake key: {}, response: {}", var4, var7); } var3.headers().add((String) "Upgrade", (Object) "WebSocket".toLowerCase()); var3.headers().add((String) "Connection", (Object) "Upgrade"); var3.headers().add((String) "Sec-WebSocket-Accept", (Object) var7); String var8 = var1.headers().get("Sec-WebSocket-Protocol"); if (var8 != null) { String var9 = this.selectSubprotocol(var8); if (var9 == null) { if (logger.isDebugEnabled()) { logger.debug("Requested subprotocol(s) not supported: {}", (Object) var8); } } else { var3.headers().add((String) "Sec-WebSocket-Protocol", (Object) var9); } } return var3; } }