All classes:
- websocket._exceptions.WebSocketException
- websocket._exceptions.WebSocketProtocolException
- websocket._exceptions.WebSocketPayloadException
- websocket._exceptions.WebSocketConnectionClosedException
- websocket._exceptions.WebSocketTimeoutException
- websocket._exceptions.WebSocketProxyException
- websocket._exceptions.WebSocketBadStatusException
- websocket._exceptions.WebSocketAddressException
- websocket._utils.NoLock
- websocket._abnf.ABNF
- websocket._abnf.frame_buffer
- websocket._abnf.continuous_frame
- websocket._logging.NullHandler
- websocket._cookiejar.SimpleCookieJar
- websocket._ssl_compat.SSLError
- websocket._ssl_compat.SSLEOFError
- websocket._ssl_compat.SSLWantReadError
- websocket._ssl_compat.SSLWantWriteError
- websocket._http.ProxyError
- websocket._http.ProxyTimeoutError
- websocket._http.ProxyConnectionError
- websocket._http.proxy_info
- websocket._handshake.handshake_response
- websocket._dispatcher.DispatcherBase
- websocket._dispatcher.Dispatcher
- websocket._dispatcher.SSLDispatcher
- websocket._dispatcher.WrappedDispatcher
- websocket._core.WebSocket
- websocket._app.WebSocketApp
- '...fuzz_http.FuzzMock'
- websocket._wsdump.VAction
- websocket._wsdump.RawInput
- websocket._wsdump.InteractiveConsole
- websocket._wsdump.NonInteractive
- websocket._socket.sock_opt
All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: '...fuzz_http'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached:
    - '...fuzz_http.main'
    - atheris.Fuzz
    - atheris.instrument_all
    - atheris.Setup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - packet
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 26
    functionName: '...fuzz_http.FuzzMock.__init__'
    functionSourceFile: '...fuzz_http'
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 30
    functionName: '...fuzz_http.FuzzMock.gettimeout'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 33
    functionName: '...fuzz_http.FuzzMock.recv'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 64
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.len
    functionSourceFile: <builtin>
    functionUses: 65
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: '...fuzz_http.FuzzMock.send'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 47
    functionName: '...fuzz_http.TestOneInput'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached:
    - base64.encodebytes
    - atheris.FuzzedDataProvider
    - _socket.send
    - _logger.debug
    - websocket._logging.trace
    - value.strip
    - websocket._logging.dump
    - fdp.ConsumeBytes
    - auth_str.encode
    - headers.get
    - <builtin>.len
    - fdp.ConsumeUnicodeNoSurrogates
    - fdp.ConsumeIntInRange
    - key.lower
    - _socket.recv_line.decode
    - '...fuzz_http.FuzzMock.__init__'
    - _socket.recv_line.split
    - base64.encodebytes.strip
    - websocket._http._tunnel
    - websocket._http.read_headers
    - _socket.recv_line
    - websocket._logging.debug
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.FuzzedDataProvider
    functionSourceFile: atheris
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeBytes
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeUnicodeNoSurrogates
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeIntInRange
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - sock
    - host
    - port
    - auth
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 317
    functionName: websocket._http._tunnel
    functionSourceFile: websocket._http
    functionUses: 2
    functionsReached:
    - headers.get
    - websocket._logging.trace
    - <builtin>.len
    - value.strip
    - _socket.recv_line.split
    - websocket._logging.dump
    - base64.encodebytes.strip
    - base64.encodebytes
    - _socket.send
    - key.lower
    - websocket._http.read_headers
    - _socket.recv_line.decode
    - _socket.recv_line
    - websocket._logging.debug
    - <builtin>.int
    - _logger.debug
    - auth_str.encode
    linkageType: pythonLinkage
    raised:
    - WebSocketProxyException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 67
    functionName: '...fuzz_http.main'
    functionSourceFile: '...fuzz_http'
    functionUses: 1
    functionsReached:
    - atheris.instrument_all
    - atheris.Fuzz
    - atheris.Setup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.instrument_all
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Setup
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Fuzz
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._exceptions
    functionSourceFile: websocket._exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f094afcd2b0>
    - <ast.Constant object at 0x7f094afcde50>
    - <ast.Constant object at 0x7f094afcd5b0>
    argNames:
    - self
    - message
    - status_code
    - status_message
    - resp_headers
    - resp_body
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: websocket._exceptions.WebSocketBadStatusException.__init__
    functionSourceFile: websocket._exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.super
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket
    functionSourceFile: websocket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._app
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - reconnectInterval
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 44
    functionName: websocket._app.setReconnect
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 17
    argDefaultValues:
    - <ast.Constant object at 0x7f094b7eba30>
    - <ast.Constant object at 0x7f094b7eb130>
    - <ast.Constant object at 0x7f094b7eb100>
    - <ast.Constant object at 0x7f094b7ebd60>
    - <ast.Constant object at 0x7f094b7eb580>
    - <ast.Constant object at 0x7f094b7eb640>
    - <ast.Constant object at 0x7f094b7eb2b0>
    - <ast.Constant object at 0x7f094b7eb070>
    - <ast.Constant object at 0x7f094b7eb670>
    - <ast.Constant object at 0x7f094b7eb7c0>
    - <ast.Constant object at 0x7f094b7eba00>
    - <ast.Constant object at 0x7f094b7ebd30>
    - <ast.Constant object at 0x7f094b7ebe50>
    - <ast.Constant object at 0x7f094b7eb850>
    - <ast.Constant object at 0x7f094b7ebb50>
    argNames:
    - self
    - url
    - header
    - on_open
    - on_reconnect
    - on_message
    - on_error
    - on_close
    - on_ping
    - on_pong
    - on_cont_message
    - keep_running
    - get_mask_key
    - cookie
    - subprotocols
    - on_data
    - socket
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: websocket._app.WebSocketApp.__init__
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - threading.Lock
    - <builtin>.float
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.float
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.Lock
    functionSourceFile: threading
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7f094afcabb0>
    argNames:
    - self
    - data
    - opcode
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 167
    functionName: websocket._app.WebSocketApp.send
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.format
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._logging.trace
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - data.encode
    - <builtin>.len
    - <builtin>.any
    - websocket._core.WebSocket.send
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - array.array
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.send_frame
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.__init__
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7f094af04cd0>
    argNames:
    - self
    - payload
    - opcode
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 285
    functionName: websocket._core.WebSocket.send
    functionSourceFile: websocket._core
    functionUses: 40
    functionsReached:
    - websocket._abnf.ABNF.format
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._logging.trace
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - data.encode
    - <builtin>.len
    - <builtin>.any
    - websocket._core.WebSocket.send
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - array.array
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.send_frame
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 183
    functionName: websocket._app.WebSocketApp.send_text
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.format
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._logging.trace
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - data.encode
    - <builtin>.len
    - <builtin>.any
    - websocket._core.WebSocket.send
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - array.array
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.send_frame
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.__init__
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 190
    functionName: websocket._app.WebSocketApp.send_bytes
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.format
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._logging.trace
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - data.encode
    - <builtin>.len
    - <builtin>.any
    - websocket._core.WebSocket.send
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - array.array
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.send_frame
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.__init__
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 197
    functionName: websocket._app.WebSocketApp.close
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - websocket._core.WebSocket.send_close
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._core.WebSocket.recv
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - _logger.isEnabledFor
    - websocket._core.WebSocket.close
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._logging.isEnabledForError
    - websocket._abnf.frame_buffer.recv_frame
    - _logger.error
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - payload.encode
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.frame_buffer.has_received_mask
    - array.array
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - <builtin>.int
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket.shutdown
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._utils._decode
    - time.time
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f094aee82e0>
    - <ast.Constant object at 0x7f094aee8970>
    - <ast.Constant object at 0x7f094aee88b0>
    argNames:
    - self
    - status
    - reason
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 499
    functionName: websocket._core.WebSocket.close
    functionSourceFile: websocket._core
    functionUses: 14
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - websocket._core.WebSocket.send_close
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._core.WebSocket.recv
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - _logger.isEnabledFor
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.shutdown
    - websocket._core.WebSocket.send
    - websocket._logging.isEnabledForError
    - websocket._abnf.frame_buffer.recv_frame
    - _logger.error
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - payload.encode
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.frame_buffer.has_received_mask
    - array.array
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - <builtin>.int
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.pong
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._utils._decode
    - time.time
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 206
    functionName: websocket._app.WebSocketApp._start_ping_thread
    functionSourceFile: websocket._app
    functionUses: 12
    functionsReached:
    - threading.Event
    - threading.Thread
    - <builtin>.float
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.Event
    functionSourceFile: threading
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.Thread
    functionSourceFile: threading
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 213
    functionName: websocket._app.WebSocketApp._stop_ping_thread
    functionSourceFile: websocket._app
    functionUses: 13
    functionsReached:
    - <builtin>.float
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 220
    functionName: websocket._app.WebSocketApp._send_ping
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.format
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._logging.trace
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - data.encode
    - <builtin>.len
    - <builtin>.any
    - websocket._core.WebSocket.send
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - websocket._abnf.ABNF._get_masked
    - int.from_bytes
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.send_frame
    - mask_key.encode
    - websocket._core.WebSocket.ping
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - time.time
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.time
    functionSourceFile: time
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: websocket._logging.debug
    functionSourceFile: websocket._logging
    functionUses: 19
    functionsReached:
    - _logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f094b17ba60>
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 356
    functionName: websocket._core.WebSocket.ping
    functionSourceFile: websocket._core
    functionUses: 1
    functionsReached:
    - websocket._abnf.ABNF.format
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._logging.trace
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - data.encode
    - <builtin>.len
    - <builtin>.any
    - websocket._core.WebSocket.send
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - websocket._abnf.ABNF._get_masked
    - int.from_bytes
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.send_frame
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 232
    functionName: websocket._app.WebSocketApp.ready
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 7
    IfCount: 9
    argCount: 18
    argDefaultValues:
    - <ast.Constant object at 0x7f094af77940>
    - <ast.Constant object at 0x7f094af77ca0>
    - <ast.Constant object at 0x7f094af77bb0>
    - <ast.Constant object at 0x7f094af77850>
    - <ast.Constant object at 0x7f094af77760>
    - <ast.Constant object at 0x7f094af77c70>
    - <ast.Constant object at 0x7f094af77b80>
    - <ast.Constant object at 0x7f094af77820>
    - <ast.Constant object at 0x7f094af77af0>
    - <ast.Constant object at 0x7f094af77f10>
    - <ast.Constant object at 0x7f094af77e20>
    - <ast.Constant object at 0x7f094af77880>
    - <ast.Constant object at 0x7f094af771f0>
    - <ast.Constant object at 0x7f094af77550>
    - <ast.Constant object at 0x7f094af775b0>
    - <ast.Constant object at 0x7f094af77460>
    - <ast.Constant object at 0x7f094af77fa0>
    argNames:
    - self
    - sockopt
    - sslopt
    - ping_interval
    - ping_timeout
    - ping_payload
    - http_proxy_host
    - http_proxy_port
    - http_no_proxy
    - http_proxy_auth
    - http_proxy_timeout
    - skip_utf8_validation
    - host
    - origin
    - dispatcher
    - suppress_origin
    - proxy_type
    - reconnect
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 235
    functionName: websocket._app.WebSocketApp.run_forever
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - base64.encodebytes
    - x.strip
    - websocket._core.WebSocket._send
    - websocket._app.WebSocketApp._callback
    - threading.Lock
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - <builtin>.callable
    - websocket._core.WebSocket.send_close
    - struct.pack
    - cookies.append
    - websocket._abnf.frame_buffer.recv_mask
    - headers.get
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._core.WebSocket.close
    - subproto.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._core.WebSocket.send
    - websocket._handshake.handshake
    - sel.register
    - headers.append
    - websocket._core.WebSocket.connect
    - websocket._core.WebSocket.recv_data_frame
    - result.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - threading.Event
    - wsaccel.xormask.XorMaskerSimple
    - http.cookies.SimpleCookie
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._abnf.frame_buffer.__init__
    - websocket._core.WebSocket.recv_data
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.timeout
    - <builtin>.type
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_frame
    - url.split
    - <builtin>.repr
    - _logger.debug
    - value.strip
    - hashlib.sha1
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.has_received_header
    - header.items
    - <builtin>.len
    - _logger.isEnabledFor
    - websocket._app.WebSocketApp.run_forever.check
    - selectors.DefaultSelector
    - websocket._core.WebSocket.settimeout
    - resp_headers.get
    - websocket._dispatcher.DispatcherBase.__init__
    - key.lower
    - _socket.sock_opt
    - <builtin>.isinstance
    - websocket._core.WebSocket.pong
    - cookie.items
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket.send_frame
    - sel.select
    - websocket._cookiejar.SimpleCookieJar.get
    - data.decode
    - websocket._utils._decode
    - <builtin>.int
    - time.time
    - websocket._abnf.frame_buffer.clear
    - time.sleep
    - cookie.update
    - websocket._http.proxy_info.__init__
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf._mask
    - s.lower
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._dispatcher.WrappedDispatcher.__init__
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - urllib.parse.urlparse
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp.run_forever.closed
    - options.get
    - sock.pending
    - <builtin>.range
    - websocket._logging.dump
    - domain.startswith
    - <builtin>.filter
    - <builtin>.min
    - <builtin>.bool
    - websocket._core.WebSocket.shutdown
    - data.encode
    - websocket._core.WebSocket.recv
    - websocket._utils._validate_utf8
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - _logger.info
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._dispatcher.Dispatcher.read
    - reason.decode
    - mask_key.encode
    - host.endswith
    - _socket.recv_line.split
    - _socket.getdefaulttimeout
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._dispatcher.DispatcherBase.timeout
    - r.split
    - <builtin>.sum
    - websocket._logging.info
    - inspect.stack
    - websocket._abnf.continuous_frame.validate
    - _HEADERS_TO_CHECK.items
    - websocket._handshake._create_sec_websocket_key
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._abnf.ABNF.create_frame
    - <builtin>.map
    - options.pop
    - websocket._abnf.frame_buffer.has_mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.continuous_frame.__init__
    - v.get
    - websocket._logging.trace
    - <builtin>.float
    - os.urandom
    - host.lower
    - websocket._core.WebSocket.__init__
    - websocket._handshake._validate
    - websocket._abnf.frame_buffer.recv_length
    - websocket._dispatcher.DispatcherBase.send
    - websocket._url.parse_url
    - sock.recv
    - headers.extend
    - websocket._app.WebSocketApp._stop_ping_thread
    - data_received.decode
    - dispatcher.signal
    - <builtin>.any
    - websocket._dispatcher.DispatcherBase.reconnect
    - sel.close
    - websocket._app.WebSocketApp.run_forever.setSock
    - hmac.compare_digest
    - websocket._logging.isEnabledForError
    - _socket.recv_line.decode
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._app.WebSocketApp.create_dispatcher
    - payload.encode
    - array.array
    - simple_cookie.values
    - domain.lower
    - threading.Thread
    - base64.encodebytes.strip
    - websocket._http.read_headers
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f094afabaf0>
    argNames:
    - close_frame
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 330
    functionName: websocket._app.WebSocketApp.run_forever.teardown
    functionSourceFile: websocket._app
    functionUses: 12
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - websocket._abnf.frame_buffer.has_mask
    - websocket._app.WebSocketApp._callback
    - <builtin>.repr
    - wsaccel.xormask.XorMaskerSimple.process
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - <builtin>.float
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.sum
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - websocket._core.WebSocket.send_close
    - websocket._app.WebSocketApp._stop_ping_thread
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._core.WebSocket.shutdown
    - websocket._core.WebSocket.recv
    - <builtin>.len
    - <builtin>.any
    - _logger.isEnabledFor
    - websocket._core.WebSocket.close
    - websocket._utils._validate_utf8
    - data_received.decode
    - websocket._core.WebSocket.send
    - websocket._app.WebSocketApp._get_close_args
    - websocket._logging.isEnabledForError
    - websocket._abnf.frame_buffer.recv_frame
    - _logger.error
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.frame_buffer.has_received_mask
    - array.array
    - websocket._abnf.ABNF._get_masked
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - payload.encode
    - reason.decode
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - <builtin>.int
    - time.time
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - close_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 555
    functionName: websocket._app.WebSocketApp._get_close_args
    functionSourceFile: websocket._app
    functionUses: 13
    functionsReached:
    - <builtin>.len
    - <builtin>.isinstance
    - reason.decode
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - callback
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 578
    functionName: websocket._app.WebSocketApp._callback
    functionSourceFile: websocket._app
    functionUses: 13
    functionsReached:
    - _logger.error
    - websocket._logging.error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 9
    IfCount: 3
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f094b7ea8e0>
    argNames:
    - reconnecting
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 360
    functionName: websocket._app.WebSocketApp.run_forever.setSock
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - base64.encodebytes
    - x.strip
    - websocket._core.WebSocket._send
    - websocket._app.WebSocketApp._callback
    - threading.Lock
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - <builtin>.callable
    - websocket._core.WebSocket.send_close
    - struct.pack
    - cookies.append
    - websocket._abnf.frame_buffer.recv_mask
    - headers.get
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._core.WebSocket.close
    - subproto.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._core.WebSocket.send
    - websocket._handshake.handshake
    - sel.register
    - headers.append
    - websocket._core.WebSocket.connect
    - websocket._core.WebSocket.recv_data_frame
    - result.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - threading.Event
    - wsaccel.xormask.XorMaskerSimple
    - http.cookies.SimpleCookie
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._abnf.frame_buffer.__init__
    - websocket._core.WebSocket.recv_data
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.timeout
    - <builtin>.type
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_frame
    - url.split
    - <builtin>.repr
    - _logger.debug
    - value.strip
    - hashlib.sha1
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.has_received_header
    - header.items
    - <builtin>.len
    - _logger.isEnabledFor
    - websocket._app.WebSocketApp.run_forever.check
    - selectors.DefaultSelector
    - websocket._core.WebSocket.settimeout
    - resp_headers.get
    - key.lower
    - _socket.sock_opt
    - <builtin>.isinstance
    - websocket._core.WebSocket.pong
    - cookie.items
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket.send_frame
    - sel.select
    - websocket._cookiejar.SimpleCookieJar.get
    - data.decode
    - websocket._utils._decode
    - <builtin>.int
    - time.time
    - websocket._abnf.frame_buffer.clear
    - time.sleep
    - cookie.update
    - websocket._http.proxy_info.__init__
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf._mask
    - s.lower
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp.run_forever.closed
    - options.get
    - sock.pending
    - <builtin>.range
    - websocket._logging.dump
    - domain.startswith
    - <builtin>.filter
    - <builtin>.min
    - <builtin>.bool
    - websocket._core.WebSocket.shutdown
    - data.encode
    - websocket._core.WebSocket.recv
    - websocket._utils._validate_utf8
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - _logger.info
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._dispatcher.Dispatcher.read
    - reason.decode
    - mask_key.encode
    - host.endswith
    - _socket.recv_line.split
    - _socket.getdefaulttimeout
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._dispatcher.DispatcherBase.timeout
    - r.split
    - <builtin>.sum
    - websocket._logging.info
    - inspect.stack
    - websocket._abnf.continuous_frame.validate
    - _HEADERS_TO_CHECK.items
    - websocket._handshake._create_sec_websocket_key
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._abnf.ABNF.create_frame
    - <builtin>.map
    - options.pop
    - websocket._abnf.frame_buffer.has_mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.continuous_frame.__init__
    - v.get
    - websocket._logging.trace
    - <builtin>.float
    - os.urandom
    - host.lower
    - websocket._core.WebSocket.__init__
    - websocket._handshake._validate
    - websocket._abnf.frame_buffer.recv_length
    - websocket._dispatcher.DispatcherBase.send
    - sock.recv
    - headers.extend
    - websocket._app.WebSocketApp._stop_ping_thread
    - data_received.decode
    - <builtin>.any
    - websocket._dispatcher.DispatcherBase.reconnect
    - sel.close
    - websocket._app.WebSocketApp.run_forever.setSock
    - hmac.compare_digest
    - websocket._logging.isEnabledForError
    - _socket.recv_line.decode
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - simple_cookie.values
    - domain.lower
    - threading.Thread
    - base64.encodebytes.strip
    - websocket._http.read_headers
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 552
    functionName: websocket._core.WebSocket.shutdown
    functionSourceFile: ''
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f094b045a90>
    - <ast.Constant object at 0x7f094b045af0>
    - <ast.Constant object at 0x7f094b045580>
    - <ast.Constant object at 0x7f094b045550>
    - <ast.Constant object at 0x7f094b045640>
    - <ast.Constant object at 0x7f094b045a00>
    - <ast.Constant object at 0x7f094b045bb0>
    argNames:
    - self
    - get_mask_key
    - sockopt
    - sslopt
    - fire_cont_frame
    - enable_multithread
    - skip_utf8_validation
    - dispatcher
    - _
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 78
    functionName: websocket._core.WebSocket.__init__
    functionSourceFile: websocket._core
    functionUses: 13
    functionsReached:
    - _socket.sock_opt
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.continuous_frame.__init__
    - websocket._abnf.frame_buffer.clear
    - threading.Lock
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _socket.getdefaulttimeout
    functionSourceFile: _socket
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 157
    functionName: websocket._core.WebSocket.settimeout
    functionSourceFile: ''
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.callable
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 211
    functionName: websocket._core.WebSocket.connect
    functionSourceFile: websocket._core
    functionUses: 12
    functionsReached:
    - websocket._handshake._create_sec_websocket_key
    - _HEADERS_TO_CHECK.items
    - cookie.update
    - websocket._http.proxy_info.__init__
    - base64.encodebytes
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - x.strip
    - options.pop
    - s.lower
    - url.split
    - websocket._handshake._get_resp_headers
    - base64.encodebytes.decode
    - _logger.debug
    - v.get
    - websocket._logging.trace
    - options.get
    - value.strip
    - hashlib.sha1
    - <builtin>.range
    - websocket._logging.dump
    - result.lower
    - domain.startswith
    - os.urandom
    - <builtin>.filter
    - host.lower
    - websocket._handshake._validate
    - sock.recv
    - headers.extend
    - cookies.append
    - header.items
    - headers.get
    - <builtin>.len
    - resp_headers.get
    - subproto.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - hmac.compare_digest
    - websocket._handshake.handshake
    - key.lower
    - _socket.recv_line.decode
    - _logger.error
    - <builtin>.isinstance
    - headers.append
    - websocket._core.WebSocket.connect
    - result.encode
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - cookie.items
    - simple_cookie.values
    - domain.lower
    - host.endswith
    - _socket.recv_line.split
    - base64.encodebytes.strip
    - http.cookies.SimpleCookie
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._http.read_headers
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._logging.error
    - <builtin>.int
    - r.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 88
    functionName: websocket._logging.info
    functionSourceFile: websocket._logging
    functionUses: 12
    functionsReached:
    - _logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 43
    functionName: websocket._dispatcher.Dispatcher.read
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - base64.encodebytes
    - x.strip
    - websocket._core.WebSocket._send
    - websocket._app.WebSocketApp._callback
    - threading.Lock
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - <builtin>.callable
    - websocket._core.WebSocket.send_close
    - struct.pack
    - cookies.append
    - websocket._abnf.frame_buffer.recv_mask
    - headers.get
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._core.WebSocket.close
    - subproto.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._core.WebSocket.send
    - websocket._handshake.handshake
    - sel.register
    - headers.append
    - websocket._core.WebSocket.connect
    - websocket._core.WebSocket.recv_data_frame
    - result.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - threading.Event
    - wsaccel.xormask.XorMaskerSimple
    - http.cookies.SimpleCookie
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._abnf.frame_buffer.__init__
    - websocket._core.WebSocket.recv_data
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.timeout
    - <builtin>.type
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_frame
    - url.split
    - <builtin>.repr
    - _logger.debug
    - value.strip
    - hashlib.sha1
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.has_received_header
    - header.items
    - <builtin>.len
    - _logger.isEnabledFor
    - websocket._app.WebSocketApp.run_forever.check
    - selectors.DefaultSelector
    - websocket._core.WebSocket.settimeout
    - resp_headers.get
    - key.lower
    - _socket.sock_opt
    - <builtin>.isinstance
    - websocket._core.WebSocket.pong
    - cookie.items
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket.send_frame
    - sel.select
    - websocket._cookiejar.SimpleCookieJar.get
    - data.decode
    - websocket._utils._decode
    - <builtin>.int
    - time.time
    - websocket._abnf.frame_buffer.clear
    - time.sleep
    - cookie.update
    - websocket._http.proxy_info.__init__
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf._mask
    - s.lower
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp.run_forever.closed
    - options.get
    - sock.pending
    - <builtin>.range
    - websocket._logging.dump
    - domain.startswith
    - <builtin>.filter
    - <builtin>.min
    - <builtin>.bool
    - websocket._core.WebSocket.shutdown
    - data.encode
    - websocket._core.WebSocket.recv
    - websocket._utils._validate_utf8
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - _logger.info
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._dispatcher.Dispatcher.read
    - reason.decode
    - mask_key.encode
    - host.endswith
    - _socket.recv_line.split
    - _socket.getdefaulttimeout
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._dispatcher.DispatcherBase.timeout
    - r.split
    - <builtin>.sum
    - websocket._logging.info
    - inspect.stack
    - websocket._abnf.continuous_frame.validate
    - _HEADERS_TO_CHECK.items
    - websocket._handshake._create_sec_websocket_key
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._abnf.ABNF.create_frame
    - <builtin>.map
    - options.pop
    - websocket._abnf.frame_buffer.has_mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.continuous_frame.__init__
    - v.get
    - websocket._logging.trace
    - <builtin>.float
    - os.urandom
    - host.lower
    - websocket._core.WebSocket.__init__
    - websocket._abnf.frame_buffer.recv_length
    - websocket._handshake._validate
    - websocket._dispatcher.DispatcherBase.send
    - sock.recv
    - headers.extend
    - websocket._app.WebSocketApp._stop_ping_thread
    - data_received.decode
    - <builtin>.any
    - websocket._dispatcher.DispatcherBase.reconnect
    - sel.close
    - websocket._app.WebSocketApp.run_forever.setSock
    - hmac.compare_digest
    - websocket._logging.isEnabledForError
    - _socket.recv_line.decode
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - simple_cookie.values
    - domain.lower
    - threading.Thread
    - base64.encodebytes.strip
    - websocket._http.read_headers
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 66
    functionName: websocket._dispatcher.SSLDispatcher.read
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - base64.encodebytes
    - x.strip
    - websocket._core.WebSocket._send
    - websocket._app.WebSocketApp._callback
    - threading.Lock
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - <builtin>.callable
    - websocket._core.WebSocket.send_close
    - struct.pack
    - cookies.append
    - websocket._abnf.frame_buffer.recv_mask
    - headers.get
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._core.WebSocket.close
    - subproto.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._core.WebSocket.send
    - websocket._handshake.handshake
    - sel.register
    - headers.append
    - websocket._core.WebSocket.connect
    - websocket._core.WebSocket.recv_data_frame
    - result.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - threading.Event
    - wsaccel.xormask.XorMaskerSimple
    - http.cookies.SimpleCookie
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._abnf.frame_buffer.__init__
    - websocket._core.WebSocket.recv_data
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.timeout
    - <builtin>.type
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_frame
    - url.split
    - <builtin>.repr
    - _logger.debug
    - value.strip
    - hashlib.sha1
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.has_received_header
    - header.items
    - <builtin>.len
    - _logger.isEnabledFor
    - websocket._app.WebSocketApp.run_forever.check
    - selectors.DefaultSelector
    - websocket._core.WebSocket.settimeout
    - resp_headers.get
    - key.lower
    - _socket.sock_opt
    - <builtin>.isinstance
    - websocket._core.WebSocket.pong
    - cookie.items
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket.send_frame
    - sel.select
    - websocket._cookiejar.SimpleCookieJar.get
    - data.decode
    - websocket._utils._decode
    - <builtin>.int
    - time.time
    - websocket._abnf.frame_buffer.clear
    - time.sleep
    - cookie.update
    - websocket._http.proxy_info.__init__
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf._mask
    - s.lower
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp.run_forever.closed
    - options.get
    - sock.pending
    - <builtin>.range
    - websocket._logging.dump
    - domain.startswith
    - <builtin>.filter
    - <builtin>.min
    - <builtin>.bool
    - websocket._core.WebSocket.shutdown
    - data.encode
    - websocket._core.WebSocket.recv
    - websocket._utils._validate_utf8
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - _logger.info
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._dispatcher.Dispatcher.read
    - reason.decode
    - mask_key.encode
    - host.endswith
    - _socket.recv_line.split
    - _socket.getdefaulttimeout
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._dispatcher.DispatcherBase.timeout
    - r.split
    - <builtin>.sum
    - websocket._logging.info
    - inspect.stack
    - websocket._abnf.continuous_frame.validate
    - _HEADERS_TO_CHECK.items
    - websocket._handshake._create_sec_websocket_key
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._abnf.ABNF.create_frame
    - <builtin>.map
    - options.pop
    - websocket._abnf.frame_buffer.has_mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.continuous_frame.__init__
    - v.get
    - websocket._logging.trace
    - <builtin>.float
    - os.urandom
    - host.lower
    - websocket._core.WebSocket.__init__
    - websocket._abnf.frame_buffer.recv_length
    - websocket._handshake._validate
    - websocket._dispatcher.DispatcherBase.send
    - sock.recv
    - headers.extend
    - websocket._app.WebSocketApp._stop_ping_thread
    - data_received.decode
    - <builtin>.any
    - websocket._dispatcher.DispatcherBase.reconnect
    - sel.close
    - websocket._app.WebSocketApp.run_forever.setSock
    - hmac.compare_digest
    - websocket._logging.isEnabledForError
    - _socket.recv_line.decode
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - simple_cookie.values
    - domain.lower
    - threading.Thread
    - base64.encodebytes.strip
    - websocket._http.read_headers
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 111
    functionName: websocket._dispatcher.WrappedDispatcher.read
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - base64.encodebytes
    - x.strip
    - websocket._core.WebSocket._send
    - websocket._app.WebSocketApp._callback
    - threading.Lock
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - <builtin>.callable
    - websocket._core.WebSocket.send_close
    - struct.pack
    - cookies.append
    - websocket._abnf.frame_buffer.recv_mask
    - headers.get
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._core.WebSocket.close
    - subproto.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._core.WebSocket.send
    - websocket._handshake.handshake
    - sel.register
    - headers.append
    - websocket._core.WebSocket.connect
    - websocket._core.WebSocket.recv_data_frame
    - result.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - threading.Event
    - wsaccel.xormask.XorMaskerSimple
    - http.cookies.SimpleCookie
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._abnf.frame_buffer.__init__
    - websocket._core.WebSocket.recv_data
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.timeout
    - <builtin>.type
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_frame
    - url.split
    - <builtin>.repr
    - _logger.debug
    - value.strip
    - hashlib.sha1
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.has_received_header
    - header.items
    - <builtin>.len
    - _logger.isEnabledFor
    - websocket._app.WebSocketApp.run_forever.check
    - selectors.DefaultSelector
    - websocket._core.WebSocket.settimeout
    - resp_headers.get
    - key.lower
    - _socket.sock_opt
    - <builtin>.isinstance
    - websocket._core.WebSocket.pong
    - cookie.items
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket.send_frame
    - sel.select
    - websocket._cookiejar.SimpleCookieJar.get
    - data.decode
    - websocket._utils._decode
    - <builtin>.int
    - time.time
    - websocket._abnf.frame_buffer.clear
    - time.sleep
    - cookie.update
    - websocket._http.proxy_info.__init__
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf._mask
    - s.lower
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp.run_forever.closed
    - options.get
    - sock.pending
    - <builtin>.range
    - websocket._logging.dump
    - domain.startswith
    - <builtin>.filter
    - <builtin>.min
    - <builtin>.bool
    - websocket._core.WebSocket.shutdown
    - data.encode
    - websocket._core.WebSocket.recv
    - websocket._utils._validate_utf8
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - _logger.info
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._dispatcher.Dispatcher.read
    - reason.decode
    - mask_key.encode
    - host.endswith
    - _socket.recv_line.split
    - _socket.getdefaulttimeout
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._dispatcher.DispatcherBase.timeout
    - r.split
    - <builtin>.sum
    - websocket._logging.info
    - inspect.stack
    - websocket._abnf.continuous_frame.validate
    - _HEADERS_TO_CHECK.items
    - websocket._handshake._create_sec_websocket_key
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._abnf.ABNF.create_frame
    - <builtin>.map
    - options.pop
    - websocket._abnf.frame_buffer.has_mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.continuous_frame.__init__
    - v.get
    - websocket._logging.trace
    - <builtin>.float
    - os.urandom
    - host.lower
    - websocket._core.WebSocket.__init__
    - websocket._abnf.frame_buffer.recv_length
    - websocket._handshake._validate
    - websocket._dispatcher.DispatcherBase.send
    - sock.recv
    - headers.extend
    - websocket._app.WebSocketApp._stop_ping_thread
    - data_received.decode
    - <builtin>.any
    - websocket._dispatcher.DispatcherBase.reconnect
    - sel.close
    - websocket._app.WebSocketApp.run_forever.setSock
    - hmac.compare_digest
    - websocket._logging.isEnabledForError
    - _socket.recv_line.decode
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - simple_cookie.values
    - domain.lower
    - threading.Thread
    - base64.encodebytes.strip
    - websocket._http.read_headers
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f094b1782b0>
    argNames:
    - e
    - reconnecting
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 487
    functionName: websocket._app.WebSocketApp.run_forever.handleDisconnect
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - base64.encodebytes
    - x.strip
    - websocket._core.WebSocket._send
    - websocket._app.WebSocketApp._callback
    - threading.Lock
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - <builtin>.callable
    - websocket._core.WebSocket.send_close
    - struct.pack
    - cookies.append
    - websocket._abnf.frame_buffer.recv_mask
    - headers.get
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._core.WebSocket.close
    - subproto.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._core.WebSocket.send
    - websocket._handshake.handshake
    - sel.register
    - headers.append
    - websocket._core.WebSocket.connect
    - websocket._core.WebSocket.recv_data_frame
    - result.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - threading.Event
    - wsaccel.xormask.XorMaskerSimple
    - http.cookies.SimpleCookie
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._abnf.frame_buffer.__init__
    - websocket._core.WebSocket.recv_data
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.timeout
    - <builtin>.type
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_frame
    - url.split
    - <builtin>.repr
    - _logger.debug
    - value.strip
    - hashlib.sha1
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.has_received_header
    - header.items
    - <builtin>.len
    - _logger.isEnabledFor
    - websocket._app.WebSocketApp.run_forever.check
    - selectors.DefaultSelector
    - websocket._core.WebSocket.settimeout
    - resp_headers.get
    - key.lower
    - _socket.sock_opt
    - <builtin>.isinstance
    - websocket._core.WebSocket.pong
    - cookie.items
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket.send_frame
    - sel.select
    - websocket._cookiejar.SimpleCookieJar.get
    - data.decode
    - websocket._utils._decode
    - <builtin>.int
    - time.time
    - websocket._abnf.frame_buffer.clear
    - time.sleep
    - cookie.update
    - websocket._http.proxy_info.__init__
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf._mask
    - s.lower
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp.run_forever.closed
    - options.get
    - sock.pending
    - <builtin>.range
    - websocket._logging.dump
    - domain.startswith
    - <builtin>.filter
    - <builtin>.min
    - <builtin>.bool
    - websocket._core.WebSocket.shutdown
    - data.encode
    - websocket._core.WebSocket.recv
    - websocket._utils._validate_utf8
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - _logger.info
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._dispatcher.Dispatcher.read
    - reason.decode
    - mask_key.encode
    - host.endswith
    - _socket.recv_line.split
    - _socket.getdefaulttimeout
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._dispatcher.DispatcherBase.timeout
    - r.split
    - <builtin>.sum
    - websocket._logging.info
    - inspect.stack
    - websocket._abnf.continuous_frame.validate
    - _HEADERS_TO_CHECK.items
    - websocket._handshake._create_sec_websocket_key
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._abnf.ABNF.create_frame
    - <builtin>.map
    - options.pop
    - websocket._abnf.frame_buffer.has_mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.continuous_frame.__init__
    - v.get
    - websocket._logging.trace
    - <builtin>.float
    - os.urandom
    - host.lower
    - websocket._core.WebSocket.__init__
    - websocket._handshake._validate
    - websocket._abnf.frame_buffer.recv_length
    - websocket._dispatcher.DispatcherBase.send
    - sock.recv
    - headers.extend
    - websocket._app.WebSocketApp._stop_ping_thread
    - data_received.decode
    - <builtin>.any
    - websocket._dispatcher.DispatcherBase.reconnect
    - sel.close
    - websocket._app.WebSocketApp.run_forever.setSock
    - hmac.compare_digest
    - websocket._logging.isEnabledForError
    - _socket.recv_line.decode
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - simple_cookie.values
    - domain.lower
    - threading.Thread
    - base64.encodebytes.strip
    - websocket._http.read_headers
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 6
    IfCount: 7
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 415
    functionName: websocket._app.WebSocketApp.run_forever.read
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._abnf.ABNF.format
    - base64.encodebytes
    - x.strip
    - websocket._core.WebSocket._send
    - websocket._app.WebSocketApp._callback
    - threading.Lock
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - <builtin>.callable
    - websocket._core.WebSocket.send_close
    - struct.pack
    - cookies.append
    - websocket._abnf.frame_buffer.recv_mask
    - headers.get
    - websocket._core.WebSocket.close
    - websocket._app.WebSocketApp.run_forever.read
    - subproto.lower
    - websocket._core.WebSocket.send
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._handshake.handshake
    - sel.register
    - headers.append
    - websocket._core.WebSocket.connect
    - websocket._core.WebSocket.recv_data_frame
    - result.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - threading.Event
    - wsaccel.xormask.XorMaskerSimple
    - http.cookies.SimpleCookie
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._abnf.frame_buffer.__init__
    - websocket._core.WebSocket.recv_data
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.timeout
    - <builtin>.type
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_frame
    - url.split
    - <builtin>.repr
    - _logger.debug
    - value.strip
    - hashlib.sha1
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.has_received_header
    - header.items
    - <builtin>.len
    - _logger.isEnabledFor
    - websocket._app.WebSocketApp.run_forever.check
    - selectors.DefaultSelector
    - websocket._core.WebSocket.settimeout
    - resp_headers.get
    - key.lower
    - _socket.sock_opt
    - <builtin>.isinstance
    - websocket._core.WebSocket.pong
    - cookie.items
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket.send_frame
    - sel.select
    - websocket._cookiejar.SimpleCookieJar.get
    - data.decode
    - websocket._utils._decode
    - <builtin>.int
    - time.time
    - websocket._abnf.frame_buffer.clear
    - time.sleep
    - cookie.update
    - websocket._http.proxy_info.__init__
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf._mask
    - s.lower
    - base64.encodebytes.decode
    - websocket._logging.isEnabledForTrace
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp.run_forever.closed
    - options.get
    - sock.pending
    - <builtin>.range
    - websocket._logging.dump
    - domain.startswith
    - <builtin>.filter
    - <builtin>.min
    - <builtin>.bool
    - data.encode
    - websocket._core.WebSocket.shutdown
    - websocket._core.WebSocket.recv
    - websocket._utils._validate_utf8
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - _logger.info
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._dispatcher.Dispatcher.read
    - reason.decode
    - mask_key.encode
    - _socket.recv_line.split
    - host.endswith
    - _socket.getdefaulttimeout
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._dispatcher.DispatcherBase.timeout
    - r.split
    - <builtin>.sum
    - websocket._logging.info
    - inspect.stack
    - websocket._abnf.continuous_frame.validate
    - websocket._handshake._create_sec_websocket_key
    - _HEADERS_TO_CHECK.items
    - websocket._abnf.ABNF.create_frame
    - websocket._dispatcher.SSLDispatcher.select
    - <builtin>.map
    - options.pop
    - websocket._abnf.frame_buffer.has_mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.continuous_frame.__init__
    - v.get
    - websocket._logging.trace
    - <builtin>.float
    - os.urandom
    - host.lower
    - websocket._core.WebSocket.__init__
    - websocket._abnf.frame_buffer.recv_length
    - websocket._dispatcher.DispatcherBase.send
    - websocket._handshake._validate
    - sock.recv
    - headers.extend
    - websocket._app.WebSocketApp._stop_ping_thread
    - data_received.decode
    - <builtin>.any
    - websocket._dispatcher.DispatcherBase.reconnect
    - sel.close
    - websocket._app.WebSocketApp.run_forever.setSock
    - hmac.compare_digest
    - websocket._logging.isEnabledForError
    - _socket.recv_line.decode
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - simple_cookie.values
    - domain.lower
    - threading.Thread
    - base64.encodebytes.strip
    - websocket._http.read_headers
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 7
    IfCount: 10
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f094b5bf1f0>
    argNames:
    - self
    - control_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 422
    functionName: websocket._core.WebSocket.recv_data_frame
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_close
    - struct.pack
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._core.WebSocket.recv
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.pong
    - payload.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF._get_masked
    - array.array
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - int.from_bytes
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._utils._decode
    - <builtin>.int
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f094b178ee0>
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 473
    functionName: websocket._app.WebSocketApp.run_forever.closed
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - base64.encodebytes
    - x.strip
    - websocket._core.WebSocket._send
    - websocket._app.WebSocketApp._callback
    - threading.Lock
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - <builtin>.callable
    - websocket._core.WebSocket.send_close
    - struct.pack
    - cookies.append
    - websocket._abnf.frame_buffer.recv_mask
    - headers.get
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._core.WebSocket.close
    - subproto.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._core.WebSocket.send
    - websocket._handshake.handshake
    - sel.register
    - headers.append
    - websocket._core.WebSocket.connect
    - websocket._core.WebSocket.recv_data_frame
    - result.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - threading.Event
    - wsaccel.xormask.XorMaskerSimple
    - http.cookies.SimpleCookie
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._abnf.frame_buffer.__init__
    - websocket._core.WebSocket.recv_data
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.timeout
    - <builtin>.type
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_frame
    - url.split
    - <builtin>.repr
    - _logger.debug
    - value.strip
    - hashlib.sha1
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.has_received_header
    - header.items
    - <builtin>.len
    - _logger.isEnabledFor
    - websocket._app.WebSocketApp.run_forever.check
    - selectors.DefaultSelector
    - websocket._core.WebSocket.settimeout
    - resp_headers.get
    - key.lower
    - _socket.sock_opt
    - <builtin>.isinstance
    - websocket._core.WebSocket.pong
    - cookie.items
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket.send_frame
    - sel.select
    - websocket._cookiejar.SimpleCookieJar.get
    - data.decode
    - websocket._utils._decode
    - <builtin>.int
    - time.time
    - websocket._abnf.frame_buffer.clear
    - time.sleep
    - cookie.update
    - websocket._http.proxy_info.__init__
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf._mask
    - s.lower
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp.run_forever.closed
    - options.get
    - sock.pending
    - <builtin>.range
    - websocket._logging.dump
    - domain.startswith
    - <builtin>.filter
    - <builtin>.min
    - <builtin>.bool
    - websocket._core.WebSocket.shutdown
    - data.encode
    - websocket._core.WebSocket.recv
    - websocket._utils._validate_utf8
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - _logger.info
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._dispatcher.Dispatcher.read
    - reason.decode
    - mask_key.encode
    - host.endswith
    - _socket.recv_line.split
    - _socket.getdefaulttimeout
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._dispatcher.DispatcherBase.timeout
    - r.split
    - <builtin>.sum
    - websocket._logging.info
    - inspect.stack
    - websocket._abnf.continuous_frame.validate
    - _HEADERS_TO_CHECK.items
    - websocket._handshake._create_sec_websocket_key
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._abnf.ABNF.create_frame
    - <builtin>.map
    - options.pop
    - websocket._abnf.frame_buffer.has_mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.continuous_frame.__init__
    - v.get
    - websocket._logging.trace
    - <builtin>.float
    - os.urandom
    - host.lower
    - websocket._core.WebSocket.__init__
    - websocket._abnf.frame_buffer.recv_length
    - websocket._handshake._validate
    - websocket._dispatcher.DispatcherBase.send
    - sock.recv
    - headers.extend
    - websocket._app.WebSocketApp._stop_ping_thread
    - data_received.decode
    - <builtin>.any
    - websocket._dispatcher.DispatcherBase.reconnect
    - sel.close
    - websocket._app.WebSocketApp.run_forever.setSock
    - hmac.compare_digest
    - websocket._logging.isEnabledForError
    - _socket.recv_line.decode
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - simple_cookie.values
    - domain.lower
    - threading.Thread
    - base64.encodebytes.strip
    - websocket._http.read_headers
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.decode
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 450
    functionName: websocket._app.WebSocketApp.run_forever.check
    functionSourceFile: websocket._app
    functionUses: 12
    functionsReached:
    - time.time
    linkageType: pythonLinkage
    raised:
    - WebSocketTimeoutException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.type
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bool
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.stack
    functionSourceFile: inspect
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - reconnector
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 19
    functionLinenumber: 127
    functionName: websocket._dispatcher.WrappedDispatcher.reconnect
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - base64.encodebytes
    - x.strip
    - websocket._core.WebSocket._send
    - websocket._app.WebSocketApp._callback
    - threading.Lock
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - <builtin>.callable
    - websocket._core.WebSocket.send_close
    - struct.pack
    - cookies.append
    - websocket._abnf.frame_buffer.recv_mask
    - headers.get
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._core.WebSocket.close
    - subproto.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._core.WebSocket.send
    - websocket._handshake.handshake
    - sel.register
    - headers.append
    - websocket._core.WebSocket.connect
    - websocket._core.WebSocket.recv_data_frame
    - result.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - threading.Event
    - wsaccel.xormask.XorMaskerSimple
    - http.cookies.SimpleCookie
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._abnf.frame_buffer.__init__
    - websocket._core.WebSocket.recv_data
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.timeout
    - <builtin>.type
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_frame
    - url.split
    - <builtin>.repr
    - _logger.debug
    - value.strip
    - hashlib.sha1
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.has_received_header
    - header.items
    - <builtin>.len
    - _logger.isEnabledFor
    - websocket._app.WebSocketApp.run_forever.check
    - selectors.DefaultSelector
    - websocket._core.WebSocket.settimeout
    - resp_headers.get
    - key.lower
    - _socket.sock_opt
    - <builtin>.isinstance
    - websocket._core.WebSocket.pong
    - cookie.items
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket.send_frame
    - sel.select
    - websocket._cookiejar.SimpleCookieJar.get
    - data.decode
    - websocket._utils._decode
    - <builtin>.int
    - time.time
    - websocket._abnf.frame_buffer.clear
    - time.sleep
    - cookie.update
    - websocket._http.proxy_info.__init__
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf._mask
    - s.lower
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp.run_forever.closed
    - options.get
    - sock.pending
    - <builtin>.range
    - websocket._logging.dump
    - domain.startswith
    - <builtin>.filter
    - <builtin>.min
    - <builtin>.bool
    - websocket._core.WebSocket.shutdown
    - data.encode
    - websocket._core.WebSocket.recv
    - websocket._utils._validate_utf8
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - _logger.info
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._dispatcher.Dispatcher.read
    - reason.decode
    - mask_key.encode
    - host.endswith
    - _socket.recv_line.split
    - _socket.getdefaulttimeout
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._dispatcher.DispatcherBase.timeout
    - r.split
    - <builtin>.sum
    - websocket._logging.info
    - inspect.stack
    - websocket._abnf.continuous_frame.validate
    - _HEADERS_TO_CHECK.items
    - websocket._handshake._create_sec_websocket_key
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._abnf.ABNF.create_frame
    - <builtin>.map
    - options.pop
    - websocket._abnf.frame_buffer.has_mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.continuous_frame.__init__
    - v.get
    - websocket._logging.trace
    - <builtin>.float
    - os.urandom
    - host.lower
    - websocket._core.WebSocket.__init__
    - websocket._handshake._validate
    - websocket._abnf.frame_buffer.recv_length
    - websocket._dispatcher.DispatcherBase.send
    - sock.recv
    - headers.extend
    - websocket._app.WebSocketApp._stop_ping_thread
    - data_received.decode
    - <builtin>.any
    - websocket._dispatcher.DispatcherBase.reconnect
    - sel.close
    - websocket._app.WebSocketApp.run_forever.setSock
    - hmac.compare_digest
    - websocket._logging.isEnabledForError
    - _socket.recv_line.decode
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - simple_cookie.values
    - domain.lower
    - threading.Thread
    - base64.encodebytes.strip
    - websocket._http.read_headers
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - reconnector
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 23
    functionName: websocket._dispatcher.DispatcherBase.reconnect
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - base64.encodebytes
    - x.strip
    - websocket._core.WebSocket._send
    - websocket._app.WebSocketApp._callback
    - threading.Lock
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - <builtin>.callable
    - websocket._core.WebSocket.send_close
    - struct.pack
    - cookies.append
    - websocket._abnf.frame_buffer.recv_mask
    - headers.get
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._core.WebSocket.close
    - subproto.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._core.WebSocket.send
    - websocket._handshake.handshake
    - sel.register
    - headers.append
    - websocket._core.WebSocket.connect
    - websocket._core.WebSocket.recv_data_frame
    - result.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - threading.Event
    - wsaccel.xormask.XorMaskerSimple
    - http.cookies.SimpleCookie
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._abnf.frame_buffer.__init__
    - websocket._core.WebSocket.recv_data
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.timeout
    - <builtin>.type
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_frame
    - url.split
    - <builtin>.repr
    - _logger.debug
    - value.strip
    - hashlib.sha1
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.has_received_header
    - header.items
    - <builtin>.len
    - _logger.isEnabledFor
    - websocket._app.WebSocketApp.run_forever.check
    - selectors.DefaultSelector
    - websocket._core.WebSocket.settimeout
    - resp_headers.get
    - key.lower
    - _socket.sock_opt
    - <builtin>.isinstance
    - websocket._core.WebSocket.pong
    - cookie.items
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket.send_frame
    - sel.select
    - websocket._cookiejar.SimpleCookieJar.get
    - data.decode
    - websocket._utils._decode
    - <builtin>.int
    - time.time
    - websocket._abnf.frame_buffer.clear
    - time.sleep
    - cookie.update
    - websocket._http.proxy_info.__init__
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf._mask
    - s.lower
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp.run_forever.closed
    - options.get
    - sock.pending
    - <builtin>.range
    - websocket._logging.dump
    - domain.startswith
    - <builtin>.filter
    - <builtin>.min
    - <builtin>.bool
    - websocket._core.WebSocket.shutdown
    - data.encode
    - websocket._core.WebSocket.recv
    - websocket._utils._validate_utf8
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - _logger.info
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._dispatcher.Dispatcher.read
    - reason.decode
    - mask_key.encode
    - host.endswith
    - _socket.recv_line.split
    - _socket.getdefaulttimeout
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._dispatcher.DispatcherBase.timeout
    - r.split
    - <builtin>.sum
    - websocket._logging.info
    - inspect.stack
    - websocket._abnf.continuous_frame.validate
    - _HEADERS_TO_CHECK.items
    - websocket._handshake._create_sec_websocket_key
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._abnf.ABNF.create_frame
    - <builtin>.map
    - options.pop
    - websocket._abnf.frame_buffer.has_mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.continuous_frame.__init__
    - v.get
    - websocket._logging.trace
    - <builtin>.float
    - os.urandom
    - host.lower
    - websocket._core.WebSocket.__init__
    - websocket._handshake._validate
    - websocket._abnf.frame_buffer.recv_length
    - websocket._dispatcher.DispatcherBase.send
    - sock.recv
    - headers.extend
    - websocket._app.WebSocketApp._stop_ping_thread
    - data_received.decode
    - <builtin>.any
    - websocket._dispatcher.DispatcherBase.reconnect
    - sel.close
    - websocket._app.WebSocketApp.run_forever.setSock
    - hmac.compare_digest
    - websocket._logging.isEnabledForError
    - _socket.recv_line.decode
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - simple_cookie.values
    - domain.lower
    - threading.Thread
    - base64.encodebytes.strip
    - websocket._http.read_headers
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 76
    functionName: websocket._logging.error
    functionSourceFile: websocket._logging
    functionUses: 19
    functionsReached:
    - _logger.error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 30
    functionName: websocket._url.parse_url
    functionSourceFile: websocket._url
    functionUses: 3
    functionsReached:
    - urllib.parse.urlparse
    - url.split
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f094b054070>
    - <ast.Constant object at 0x7f094b0548b0>
    - <ast.Constant object at 0x7f094b054e20>
    argNames:
    - self
    - ping_timeout
    - dispatcher
    - is_ssl
    - handleDisconnect
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 541
    functionName: websocket._app.WebSocketApp.create_dispatcher
    functionSourceFile: websocket._app
    functionUses: 1
    functionsReached:
    - dispatcher.signal
    - websocket._dispatcher.DispatcherBase.__init__
    - websocket._dispatcher.WrappedDispatcher.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - app
    - ping_timeout
    - dispatcher
    - handleDisconnect
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 102
    functionName: websocket._dispatcher.WrappedDispatcher.__init__
    functionSourceFile: websocket._dispatcher
    functionUses: 2
    functionsReached:
    - dispatcher.signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - app
    - ping_timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 15
    functionName: websocket._dispatcher.DispatcherBase.__init__
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.int
    functionSourceFile: <builtin>
    functionUses: 47
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: reason.decode
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._core
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _socket.sock_opt
    functionSourceFile: _socket
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - recv_fn
    - skip_utf8_validation
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 299
    functionName: websocket._abnf.frame_buffer.__init__
    functionSourceFile: websocket._abnf
    functionUses: 14
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - threading.Lock
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - fire_cont_frame
    - skip_utf8_validation
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 413
    functionName: websocket._abnf.continuous_frame.__init__
    functionSourceFile: ''
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 115
    functionName: websocket._core.WebSocket.__iter__
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_close
    - struct.pack
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.recv_strict
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.pong
    - payload.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF._get_masked
    - array.array
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - int.from_bytes
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._utils._decode
    - <builtin>.int
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 382
    functionName: websocket._core.WebSocket.recv
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_close
    - struct.pack
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._core.WebSocket.recv
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.pong
    - payload.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF._get_masked
    - array.array
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - int.from_bytes
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._utils._decode
    - <builtin>.int
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 122
    functionName: websocket._core.WebSocket.__next__
    functionSourceFile: websocket._core
    functionUses: 1
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_close
    - struct.pack
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.recv_strict
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.pong
    - payload.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF._get_masked
    - array.array
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - int.from_bytes
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._utils._decode
    - <builtin>.int
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 125
    functionName: websocket._core.WebSocket.next
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.min
    - websocket._core.WebSocket.__next__
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_close
    - struct.pack
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.recv_strict
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.pong
    - payload.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF._get_masked
    - array.array
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - int.from_bytes
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._utils._decode
    - <builtin>.int
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 128
    functionName: websocket._core.WebSocket.fileno
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - func
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 131
    functionName: websocket._core.WebSocket.set_mask_key
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 146
    functionName: websocket._core.WebSocket.gettimeout
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.property
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: websocket._core.WebSocket
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - <builtin>.property
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 172
    functionName: websocket._core.WebSocket.getsubprotocol
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 183
    functionName: websocket._core.WebSocket.getstatus
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 194
    functionName: websocket._core.WebSocket.getheaders
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 203
    functionName: websocket._core.WebSocket.is_ssl
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: options.get
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: websocket._http.proxy_info.__init__
    functionSourceFile: websocket._http
    functionUses: 13
    functionsReached:
    - options.get
    linkageType: pythonLinkage
    raised:
    - ProxyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: options.pop
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 6
    argDefaultValues: []
    argNames:
    - sock
    - url
    - hostname
    - port
    - resource
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 57
    functionName: websocket._handshake.handshake
    functionSourceFile: websocket._handshake
    functionUses: 13
    functionsReached:
    - websocket._handshake._create_sec_websocket_key
    - _HEADERS_TO_CHECK.items
    - cookie.update
    - base64.encodebytes
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - x.strip
    - s.lower
    - url.split
    - websocket._handshake._get_resp_headers
    - base64.encodebytes.decode
    - _logger.debug
    - v.get
    - websocket._logging.trace
    - options.get
    - value.strip
    - hashlib.sha1
    - websocket._logging.dump
    - result.lower
    - domain.startswith
    - os.urandom
    - <builtin>.filter
    - host.lower
    - websocket._handshake._validate
    - sock.recv
    - headers.extend
    - cookies.append
    - header.items
    - headers.get
    - <builtin>.len
    - resp_headers.get
    - subproto.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - hmac.compare_digest
    - key.lower
    - _socket.recv_line.decode
    - _logger.error
    - <builtin>.isinstance
    - headers.append
    - result.encode
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - cookie.items
    - simple_cookie.values
    - domain.lower
    - host.endswith
    - _socket.recv_line.split
    - base64.encodebytes.strip
    - http.cookies.SimpleCookie
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._http.read_headers
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._logging.error
    - <builtin>.int
    - r.split
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.range
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f094aef8610>
    argNames:
    - data
    - opcode
    - fin
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 208
    functionName: websocket._abnf.ABNF.create_frame
    functionSourceFile: websocket._abnf
    functionUses: 41
    functionsReached:
    - <builtin>.isinstance
    - websocket._abnf.ABNF.__init__
    - data.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 314
    functionName: websocket._core.WebSocket.send_frame
    functionSourceFile: websocket._core
    functionUses: 40
    functionsReached:
    - websocket._abnf.ABNF.format
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._logging.trace
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - data.encode
    - <builtin>.len
    - <builtin>.any
    - websocket._core.WebSocket.send
    - websocket._dispatcher.WrappedDispatcher.send
    - <builtin>.isinstance
    - array.array
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.send_frame
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 302
    functionName: websocket._core.WebSocket.send_text
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.format
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._logging.trace
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - data.encode
    - <builtin>.len
    - <builtin>.any
    - websocket._core.WebSocket.send
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - array.array
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.send_frame
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 308
    functionName: websocket._core.WebSocket.send_bytes
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.format
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._logging.trace
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - data.encode
    - <builtin>.len
    - <builtin>.any
    - websocket._core.WebSocket.send
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - array.array
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.send_frame
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 228
    functionName: websocket._abnf.ABNF.format
    functionSourceFile: websocket._abnf
    functionUses: 41
    functionsReached:
    - <builtin>.any
    - <builtin>.len
    - <builtin>.chr
    - mask_key.encode
    - os.urandom
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf._mask
    - <builtin>.isinstance
    - wsaccel.xormask.XorMaskerSimple.process
    - struct.pack
    - array.array
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - data.encode
    - websocket._abnf.ABNF.mask
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 105
    functionName: websocket._logging.isEnabledForTrace
    functionSourceFile: ''
    functionUses: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.repr
    functionSourceFile: <builtin>
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 92
    functionName: websocket._logging.trace
    functionSourceFile: websocket._logging
    functionUses: 48
    functionsReached:
    - _logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 204
    functionName: websocket._abnf.ABNF.__str__
    functionSourceFile: ''
    functionUses: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 561
    functionName: websocket._core.WebSocket._send
    functionSourceFile: websocket._core
    functionUses: 40
    functionsReached:
    - websocket._abnf.ABNF.format
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._logging.trace
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - data.encode
    - <builtin>.len
    - <builtin>.any
    - websocket._core.WebSocket.send
    - websocket._dispatcher.WrappedDispatcher.send
    - <builtin>.isinstance
    - array.array
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.send_frame
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 345
    functionName: websocket._core.WebSocket.send_binary
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.format
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._logging.trace
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - data.encode
    - <builtin>.len
    - <builtin>.any
    - websocket._core.WebSocket.send
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - array.array
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.send_frame
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: payload.encode
    functionSourceFile: <builtin>
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f094b17b7f0>
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 369
    functionName: websocket._core.WebSocket.pong
    functionSourceFile: websocket._core
    functionUses: 28
    functionsReached:
    - websocket._abnf.ABNF.format
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._logging.trace
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - data.encode
    - <builtin>.len
    - <builtin>.any
    - websocket._core.WebSocket.send
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - websocket._abnf.ABNF._get_masked
    - int.from_bytes
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.send_frame
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f094b0c5250>
    argNames:
    - self
    - control_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 404
    functionName: websocket._core.WebSocket.recv_data
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_close
    - struct.pack
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._core.WebSocket.recv
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.pong
    - payload.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF._get_masked
    - array.array
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - int.from_bytes
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._utils._decode
    - <builtin>.int
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data_received.decode
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 473
    functionName: websocket._core.WebSocket.recv_frame
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.recv_frame
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_close
    - struct.pack
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.recv
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - <builtin>.int
    - array.array
    - websocket._core.WebSocket.pong
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - payload.encode
    - websocket._abnf.ABNF._get_masked
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._utils._decode
    - websocket._abnf.frame_buffer.recv_strict
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 419
    functionName: websocket._abnf.continuous_frame.validate
    functionSourceFile: ''
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 428
    functionName: websocket._abnf.continuous_frame.add
    functionSourceFile: ''
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 439
    functionName: websocket._abnf.continuous_frame.is_fire
    functionSourceFile: ''
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 442
    functionName: websocket._abnf.continuous_frame.extract
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached:
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._utils._validate_utf8
    - websocket._utils.validate_utf8
    - websocket._utils._decode
    - <builtin>.int
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised:
    - WebSocketPayloadException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f094b1777f0>
    - <ast.Constant object at 0x7f094b177cd0>
    argNames:
    - self
    - status
    - reason
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 483
    functionName: websocket._core.WebSocket.send_close
    functionSourceFile: websocket._core
    functionUses: 28
    functionsReached:
    - websocket._abnf.ABNF.format
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._logging.trace
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - websocket._dispatcher.DispatcherBase.send
    - struct.pack
    - data.encode
    - <builtin>.len
    - <builtin>.any
    - websocket._core.WebSocket.send
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - array.array
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.send_frame
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 359
    functionName: websocket._abnf.frame_buffer.recv_frame
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.recv_frame
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_close
    - struct.pack
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.recv
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - <builtin>.int
    - array.array
    - websocket._core.WebSocket.pong
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - payload.encode
    - websocket._abnf.ABNF._get_masked
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._utils._decode
    - websocket._abnf.frame_buffer.recv_strict
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: struct.pack
    functionSourceFile: struct
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 97
    functionName: websocket._logging.isEnabledForError
    functionSourceFile: websocket._logging
    functionUses: 15
    functionsReached:
    - _logger.isEnabledFor
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: struct.unpack
    functionSourceFile: struct
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 545
    functionName: websocket._core.WebSocket.abort
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sock
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 120
    functionName: websocket._dispatcher.WrappedDispatcher.send
    functionSourceFile: websocket._dispatcher
    functionUses: 41
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sock
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 34
    functionName: websocket._dispatcher.DispatcherBase.send
    functionSourceFile: websocket._dispatcher
    functionUses: 41
    functionsReached:
    - websocket._dispatcher.DispatcherBase.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 566
    functionName: websocket._core.WebSocket._recv
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_close
    - struct.pack
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.recv_strict
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.pong
    - payload.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF._get_masked
    - array.array
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - int.from_bytes
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._utils._decode
    - <builtin>.int
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f094b52aac0>
    - <ast.Name object at 0x7f094b52a820>
    argNames:
    - url
    - timeout
    - class_
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 577
    functionName: websocket._core.create_connection
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - _socket.getdefaulttimeout
    - websocket._core.WebSocket.__init__
    - _socket.sock_opt
    - options.pop
    - websock.connect
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.continuous_frame.__init__
    - websocket._abnf.frame_buffer.clear
    - threading.Lock
    - websock.settimeout
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websock.settimeout
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websock.connect
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._dispatcher
    functionSourceFile: websocket._dispatcher
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - callback
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 19
    functionName: websocket._dispatcher.DispatcherBase.timeout
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - base64.encodebytes
    - x.strip
    - websocket._core.WebSocket._send
    - websocket._app.WebSocketApp._callback
    - threading.Lock
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - <builtin>.callable
    - websocket._core.WebSocket.send_close
    - struct.pack
    - cookies.append
    - websocket._abnf.frame_buffer.recv_mask
    - headers.get
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._core.WebSocket.close
    - subproto.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._core.WebSocket.send
    - websocket._handshake.handshake
    - sel.register
    - headers.append
    - websocket._core.WebSocket.connect
    - websocket._core.WebSocket.recv_data_frame
    - result.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - threading.Event
    - wsaccel.xormask.XorMaskerSimple
    - http.cookies.SimpleCookie
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._abnf.frame_buffer.__init__
    - websocket._core.WebSocket.recv_data
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.timeout
    - <builtin>.type
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_frame
    - url.split
    - <builtin>.repr
    - _logger.debug
    - value.strip
    - hashlib.sha1
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.has_received_header
    - header.items
    - <builtin>.len
    - _logger.isEnabledFor
    - websocket._app.WebSocketApp.run_forever.check
    - selectors.DefaultSelector
    - websocket._core.WebSocket.settimeout
    - resp_headers.get
    - key.lower
    - _socket.sock_opt
    - <builtin>.isinstance
    - websocket._core.WebSocket.pong
    - cookie.items
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket.send_frame
    - sel.select
    - websocket._cookiejar.SimpleCookieJar.get
    - data.decode
    - websocket._utils._decode
    - <builtin>.int
    - time.time
    - websocket._abnf.frame_buffer.clear
    - time.sleep
    - cookie.update
    - websocket._http.proxy_info.__init__
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf._mask
    - s.lower
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp.run_forever.closed
    - options.get
    - sock.pending
    - <builtin>.range
    - websocket._logging.dump
    - domain.startswith
    - <builtin>.filter
    - <builtin>.min
    - <builtin>.bool
    - websocket._core.WebSocket.shutdown
    - data.encode
    - websocket._core.WebSocket.recv
    - websocket._utils._validate_utf8
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - _logger.info
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._dispatcher.Dispatcher.read
    - reason.decode
    - mask_key.encode
    - host.endswith
    - _socket.recv_line.split
    - _socket.getdefaulttimeout
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._dispatcher.DispatcherBase.timeout
    - r.split
    - <builtin>.sum
    - websocket._logging.info
    - inspect.stack
    - websocket._abnf.continuous_frame.validate
    - _HEADERS_TO_CHECK.items
    - websocket._handshake._create_sec_websocket_key
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._abnf.ABNF.create_frame
    - <builtin>.map
    - options.pop
    - websocket._abnf.frame_buffer.has_mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.continuous_frame.__init__
    - v.get
    - websocket._logging.trace
    - <builtin>.float
    - os.urandom
    - host.lower
    - websocket._core.WebSocket.__init__
    - websocket._handshake._validate
    - websocket._abnf.frame_buffer.recv_length
    - websocket._dispatcher.DispatcherBase.send
    - sock.recv
    - headers.extend
    - websocket._app.WebSocketApp._stop_ping_thread
    - data_received.decode
    - <builtin>.any
    - websocket._dispatcher.DispatcherBase.reconnect
    - sel.close
    - websocket._app.WebSocketApp.run_forever.setSock
    - hmac.compare_digest
    - websocket._logging.isEnabledForError
    - _socket.recv_line.decode
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - simple_cookie.values
    - domain.lower
    - threading.Thread
    - base64.encodebytes.strip
    - websocket._http.read_headers
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.sleep
    functionSourceFile: time
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: selectors.DefaultSelector
    functionSourceFile: selectors
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sel.register
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sel.select
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sel.close
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sock
    - sel
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: websocket._dispatcher.SSLDispatcher.select
    functionSourceFile: websocket._dispatcher
    functionUses: 12
    functionsReached:
    - <builtin>.len
    - sock.pending
    - sel.select
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.pending
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dispatcher.signal
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - callback
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 18
    functionLinenumber: 124
    functionName: websocket._dispatcher.WrappedDispatcher.timeout
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - base64.encodebytes
    - x.strip
    - websocket._core.WebSocket._send
    - websocket._app.WebSocketApp._callback
    - threading.Lock
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - <builtin>.callable
    - websocket._core.WebSocket.send_close
    - struct.pack
    - cookies.append
    - websocket._abnf.frame_buffer.recv_mask
    - headers.get
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._core.WebSocket.close
    - subproto.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._core.WebSocket.send
    - websocket._handshake.handshake
    - sel.register
    - headers.append
    - websocket._core.WebSocket.connect
    - websocket._core.WebSocket.recv_data_frame
    - result.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - int.from_bytes
    - threading.Event
    - wsaccel.xormask.XorMaskerSimple
    - http.cookies.SimpleCookie
    - websocket._handshake._pack_hostname
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._logging.debug
    - websocket._logging.error
    - websocket._abnf.frame_buffer.__init__
    - websocket._core.WebSocket.recv_data
    - _socket.send
    - websocket._handshake.handshake_response.__init__
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.timeout
    - <builtin>.type
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_frame
    - url.split
    - <builtin>.repr
    - _logger.debug
    - value.strip
    - hashlib.sha1
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.has_received_header
    - header.items
    - <builtin>.len
    - _logger.isEnabledFor
    - websocket._app.WebSocketApp.run_forever.check
    - selectors.DefaultSelector
    - websocket._core.WebSocket.settimeout
    - resp_headers.get
    - key.lower
    - _socket.sock_opt
    - <builtin>.isinstance
    - websocket._core.WebSocket.pong
    - cookie.items
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket.send_frame
    - sel.select
    - websocket._cookiejar.SimpleCookieJar.get
    - data.decode
    - websocket._utils._decode
    - <builtin>.int
    - time.time
    - websocket._abnf.frame_buffer.clear
    - time.sleep
    - cookie.update
    - websocket._http.proxy_info.__init__
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf._mask
    - s.lower
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp.run_forever.closed
    - options.get
    - sock.pending
    - <builtin>.range
    - websocket._logging.dump
    - domain.startswith
    - <builtin>.filter
    - <builtin>.min
    - <builtin>.bool
    - websocket._core.WebSocket.shutdown
    - data.encode
    - websocket._core.WebSocket.recv
    - websocket._utils._validate_utf8
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - <builtin>.sorted
    - websocket._handshake._get_handshake_headers
    - _logger.info
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._dispatcher.Dispatcher.read
    - reason.decode
    - mask_key.encode
    - host.endswith
    - _socket.recv_line.split
    - _socket.getdefaulttimeout
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._dispatcher.DispatcherBase.timeout
    - r.split
    - <builtin>.sum
    - websocket._logging.info
    - inspect.stack
    - websocket._abnf.continuous_frame.validate
    - _HEADERS_TO_CHECK.items
    - websocket._handshake._create_sec_websocket_key
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._abnf.ABNF.create_frame
    - <builtin>.map
    - options.pop
    - websocket._abnf.frame_buffer.has_mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.continuous_frame.__init__
    - v.get
    - websocket._logging.trace
    - <builtin>.float
    - os.urandom
    - host.lower
    - websocket._core.WebSocket.__init__
    - websocket._handshake._validate
    - websocket._abnf.frame_buffer.recv_length
    - websocket._dispatcher.DispatcherBase.send
    - sock.recv
    - headers.extend
    - websocket._app.WebSocketApp._stop_ping_thread
    - data_received.decode
    - <builtin>.any
    - websocket._dispatcher.DispatcherBase.reconnect
    - sel.close
    - websocket._app.WebSocketApp.run_forever.setSock
    - hmac.compare_digest
    - websocket._logging.isEnabledForError
    - _socket.recv_line.decode
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.send
    - payload.encode
    - array.array
    - simple_cookie.values
    - domain.lower
    - threading.Thread
    - base64.encodebytes.strip
    - websocket._http.read_headers
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: websocket._handshake
    functionSourceFile: websocket._handshake
    functionUses: 0
    functionsReached:
    - websocket._cookiejar.SimpleCookieJar.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 25
    functionName: websocket._cookiejar.SimpleCookieJar.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - status
    - headers
    - subprotocol
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 50
    functionName: websocket._handshake.handshake_response.__init__
    functionSourceFile: websocket._handshake
    functionUses: 14
    functionsReached:
    - headers.get
    - simple_cookie.values
    - domain.lower
    - cookie.update
    - domain.startswith
    - websocket._cookiejar.SimpleCookieJar.add
    - http.cookies.SimpleCookie
    - v.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.get
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - set_cookie
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 28
    functionName: websocket._cookiejar.SimpleCookieJar.add
    functionSourceFile: websocket._cookiejar
    functionUses: 15
    functionsReached:
    - simple_cookie.values
    - domain.lower
    - cookie.update
    - domain.startswith
    - http.cookies.SimpleCookie
    - v.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 13
    IfCount: 12
    argCount: 5
    argDefaultValues: []
    argNames:
    - resource
    - url
    - host
    - port
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 83
    functionName: websocket._handshake._get_handshake_headers
    functionSourceFile: websocket._handshake
    functionUses: 14
    functionsReached:
    - websocket._handshake._create_sec_websocket_key
    - options.get
    - host.endswith
    - headers.extend
    - os.urandom
    - host.lower
    - <builtin>.filter
    - base64.encodebytes
    - cookies.append
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._handshake._pack_hostname
    - <builtin>.isinstance
    - headers.append
    - url.split
    - base64.encodebytes.decode
    - <builtin>.sorted
    - cookie.items
    - header.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _socket.send
    functionSourceFile: _socket
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - title
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 69
    functionName: websocket._logging.dump
    functionSourceFile: websocket._logging
    functionUses: 17
    functionsReached:
    - _logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f094aecb250>
    argNames:
    - sock
    - success_statuses
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 141
    functionName: websocket._handshake._get_resp_headers
    functionSourceFile: websocket._handshake
    functionUses: 14
    functionsReached:
    - headers.get
    - websocket._logging.trace
    - <builtin>.len
    - value.strip
    - _socket.recv_line.split
    - resp_headers.get
    - key.lower
    - websocket._http.read_headers
    - _socket.recv_line.decode
    - _socket.recv_line
    - sock.recv
    - _logger.debug
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketBadStatusException
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - headers
    - key
    - subprotocols
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 167
    functionName: websocket._handshake._validate
    functionSourceFile: websocket._handshake
    functionUses: 14
    functionsReached:
    - headers.get
    - _HEADERS_TO_CHECK.items
    - hashlib.sha1
    - result.lower
    - subproto.lower
    - base64.encodebytes.strip
    - base64.encodebytes
    - hmac.compare_digest
    - x.strip
    - _logger.error
    - s.lower
    - <builtin>.isinstance
    - websocket._logging.error
    - result.encode
    - r.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - hostname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 76
    functionName: websocket._handshake._pack_hostname
    functionSourceFile: websocket._handshake
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.append
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: url.split
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 201
    functionName: websocket._handshake._create_sec_websocket_key
    functionSourceFile: websocket._handshake
    functionUses: 15
    functionsReached:
    - os.urandom
    - base64.encodebytes
    - base64.encodebytes.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header.items
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.extend
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - host
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: websocket._cookiejar.SimpleCookieJar.get
    functionSourceFile: websocket._cookiejar
    functionUses: 15
    functionsReached:
    - host.endswith
    - host.lower
    - cookies.append
    - <builtin>.filter
    - <builtin>.sorted
    - cookie.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.filter
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - sock
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 345
    functionName: websocket._http.read_headers
    functionSourceFile: websocket._http
    functionUses: 18
    functionsReached:
    - headers.get
    - websocket._logging.trace
    - <builtin>.len
    - value.strip
    - _socket.recv_line.split
    - key.lower
    - _socket.recv_line.decode
    - _socket.recv_line
    - <builtin>.int
    - _logger.debug
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp_headers.get
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.recv
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _HEADERS_TO_CHECK.items
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: x.strip
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.split
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subproto.lower
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.lower
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.lower
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.encode
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hashlib.sha1
    functionSourceFile: hashlib
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.encodebytes
    functionSourceFile: base64
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.encodebytes.strip
    functionSourceFile: base64
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hmac.compare_digest
    functionSourceFile: hmac
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.urandom
    functionSourceFile: os
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.encodebytes.decode
    functionSourceFile: base64
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._cookiejar
    functionSourceFile: websocket._cookiejar
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http.cookies.SimpleCookie
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: simple_cookie.values
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: v.get
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: domain.startswith
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cookie.update
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: domain.lower
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - set_cookie
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: websocket._cookiejar.SimpleCookieJar.set
    functionSourceFile: websocket._cookiejar
    functionUses: 0
    functionsReached:
    - simple_cookie.values
    - domain.lower
    - domain.startswith
    - http.cookies.SimpleCookie
    - v.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.lower
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.endswith
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cookies.append
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cookie.items
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.sorted
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._http
    functionSourceFile: websocket._http
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - url
    - options
    - proxy
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 83
    functionName: websocket._http._start_proxied_socket
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - user_sslopt.get
    - context.load_verify_locations
    - url.split
    - python_socks.sync.Proxy.create
    - sslopt.get
    - os.environ.get
    - ssl.SSLContext
    - urllib.parse.urlparse
    - context.set_ecdh_curve
    - ws_proxy.connect
    - websocket._url.parse_url
    - context.wrap_socket
    - websocket._http._ssl_socket
    - sslopt.update
    - context.load_cert_chain
    - context.set_ciphers
    - <builtin>.hasattr
    - os.path.isfile
    - context.load_default_certs
    - websocket._http._wrap_sni_socket
    - <builtin>.int
    - os.path.isdir
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: python_socks.sync.Proxy.create
    functionSourceFile: python_socks
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws_proxy.connect
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - sock
    - user_sslopt
    - hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 290
    functionName: websocket._http._ssl_socket
    functionSourceFile: websocket._http
    functionUses: 2
    functionsReached:
    - ssl.SSLContext
    - os.path.isfile
    - sslopt.update
    - context.load_cert_chain
    - context.set_ecdh_curve
    - user_sslopt.get
    - context.load_default_certs
    - websocket._http._wrap_sni_socket
    - context.load_verify_locations
    - os.path.isdir
    - sslopt.get
    - context.set_ciphers
    - context.wrap_socket
    - <builtin>.hasattr
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 4
    argDefaultValues: []
    argNames:
    - url
    - options
    - proxy
    - socket
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 126
    functionName: websocket._http.connect
    functionSourceFile: websocket._http
    functionUses: 0
    functionsReached:
    - base64.encodebytes
    - websocket._url.get_proxy_info
    - socket.socket
    - struct.unpack
    - _socket.send
    - user_sslopt.get
    - websocket._url._is_subnet_address
    - context.load_verify_locations
    - env_key.upper
    - url.split
    - python_socks.sync.Proxy.create
    - _logger.debug
    - sslopt.get
    - os.environ.get
    - ssl.SSLContext
    - urllib.parse.urlparse
    - websocket._logging.trace
    - domain.lstrip
    - value.strip
    - urllib.parse.unquote
    - domain.startswith
    - websocket._logging.dump
    - context.set_ecdh_curve
    - ws_proxy.connect
    - websocket._url.parse_url
    - websocket._http._get_addrinfo_list
    - websocket._http._ssl_socket
    - context.wrap_socket
    - auth_str.encode
    - headers.get
    - <builtin>.any
    - <builtin>.len
    - sslopt.update
    - sock.connect
    - context.load_cert_chain
    - socket.getaddrinfo
    - key.lower
    - _socket.recv_line.decode
    - socket.inet_aton
    - context.set_ciphers
    - websocket._http._start_proxied_socket
    - <builtin>.hasattr
    - hostname.split
    - websocket._url._is_address_in_network
    - os.path.isfile
    - hostname.endswith
    - sock.close
    - websocket._url._is_ip_address
    - sock.settimeout
    - _socket.recv_line.split
    - sock.setsockopt
    - base64.encodebytes.strip
    - context.load_default_certs
    - websocket._http._open_socket
    - net.split
    - websocket._http._tunnel
    - websocket._http.read_headers
    - websocket._url._is_no_proxy_host
    - _socket.recv_line
    - websocket._logging.debug
    - v.split
    - websocket._http._wrap_sni_socket
    - <builtin>.int
    - os.path.isdir
    - <builtin>.str
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - hostname
    - port
    - is_secure
    - proxy
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 163
    functionName: websocket._http._get_addrinfo_list
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - websocket._url.get_proxy_info
    - struct.unpack
    - websocket._url._is_subnet_address
    - env_key.upper
    - os.environ.get
    - urllib.parse.urlparse
    - domain.lstrip
    - urllib.parse.unquote
    - domain.startswith
    - <builtin>.any
    - socket.getaddrinfo
    - socket.inet_aton
    - hostname.split
    - websocket._url._is_address_in_network
    - hostname.endswith
    - websocket._url._is_ip_address
    - net.split
    - websocket._url._is_no_proxy_host
    - v.split
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketAddressException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - addrinfo_list
    - sockopt
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 195
    functionName: websocket._http._open_socket
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - sock.connect
    - sock.close
    - sock.settimeout
    - sock.setsockopt
    - socket.socket
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f094b6992b0>
    - <ast.Constant object at 0x7f094b95e220>
    - <ast.Constant object at 0x7f094b95e400>
    - <ast.Constant object at 0x7f094b95e4c0>
    - <ast.Constant object at 0x7f094b95e340>
    argNames:
    - hostname
    - is_secure
    - proxy_host
    - proxy_port
    - proxy_auth
    - no_proxy
    - proxy_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 131
    functionName: websocket._url.get_proxy_info
    functionSourceFile: websocket._url
    functionUses: 2
    functionsReached:
    - websocket._url._is_address_in_network
    - urllib.parse.urlparse
    - <builtin>.any
    - hostname.endswith
    - domain.lstrip
    - websocket._url._is_ip_address
    - urllib.parse.unquote
    - domain.startswith
    - net.split
    - struct.unpack
    - websocket._url._is_no_proxy_host
    - websocket._url._is_subnet_address
    - socket.inet_aton
    - env_key.upper
    - v.split
    - <builtin>.int
    - os.environ.get
    - hostname.split
    linkageType: pythonLinkage
    raised:
    - WebSocketProxyException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.getaddrinfo
    functionSourceFile: socket
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.socket
    functionSourceFile: socket
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.settimeout
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.setsockopt
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.connect
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.str
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 6
    IfCount: 9
    argCount: 4
    argDefaultValues: []
    argNames:
    - sock
    - sslopt
    - hostname
    - check_hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 238
    functionName: websocket._http._wrap_sni_socket
    functionSourceFile: websocket._http
    functionUses: 3
    functionsReached:
    - ssl.SSLContext
    - context.load_cert_chain
    - context.set_ecdh_curve
    - context.wrap_socket
    - context.load_default_certs
    - context.load_verify_locations
    - context.set_ciphers
    - sslopt.get
    - <builtin>.hasattr
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sslopt.get
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ssl.SSLContext
    functionSourceFile: ssl
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.environ.get
    functionSourceFile: os
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.load_verify_locations
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.hasattr
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.load_default_certs
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.load_cert_chain
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.set_ciphers
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.set_ecdh_curve
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.wrap_socket
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sslopt.update
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.isfile
    functionSourceFile: os
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: user_sslopt.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.isdir
    functionSourceFile: os
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: auth_str.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _socket.recv_line
    functionSourceFile: _socket
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _socket.recv_line.decode
    functionSourceFile: _socket
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _socket.recv_line.split
    functionSourceFile: _socket
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.lower
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.strip
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._ssl_compat
    functionSourceFile: websocket._ssl_compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._url
    functionSourceFile: websocket._url
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse
    functionSourceFile: urllib
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - addr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 76
    functionName: websocket._url._is_ip_address
    functionSourceFile: websocket._url
    functionUses: 5
    functionsReached:
    - socket.inet_aton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.inet_aton
    functionSourceFile: socket
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - hostname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 85
    functionName: websocket._url._is_subnet_address
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - hostname.split
    - socket.inet_aton
    - websocket._url._is_ip_address
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hostname.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - ip
    - net
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 93
    functionName: websocket._url._is_address_in_network
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - socket.inet_aton
    - <builtin>.int
    - net.split
    - struct.unpack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: net.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - hostname
    - no_proxy
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 102
    functionName: websocket._url._is_no_proxy_host
    functionSourceFile: websocket._url
    functionUses: 3
    functionsReached:
    - websocket._url._is_address_in_network
    - <builtin>.any
    - hostname.endswith
    - domain.lstrip
    - websocket._url._is_ip_address
    - domain.startswith
    - net.split
    - struct.unpack
    - websocket._url._is_subnet_address
    - socket.inet_aton
    - v.split
    - <builtin>.int
    - os.environ.get
    - hostname.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: v.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.any
    functionSourceFile: <builtin>
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: domain.lstrip
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hostname.endswith
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: env_key.upper
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.unquote
    functionSourceFile: urllib
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: websocket._logging
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - _logger.addHandler
    - logging.NullHandler
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.getLogger
    functionSourceFile: logging
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 28
    functionName: websocket._logging.NullHandler.emit
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.NullHandler
    functionSourceFile: logging
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.addHandler
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Call object at 0x7f094af3cb80>
    - <ast.Constant object at 0x7f094af3cfd0>
    argNames:
    - traceable
    - handler
    - level
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: websocket._logging.enableTrace
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - _logger.addHandler
    - _logger.setLevel
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.getattr
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.setLevel
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.debug
    functionSourceFile: <builtin>
    functionUses: 51
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.error
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 80
    functionName: websocket._logging.warning
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - _logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.warning
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.info
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.isEnabledFor
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 101
    functionName: websocket._logging.isEnabledForDebug
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - _logger.isEnabledFor
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._abnf
    functionSourceFile: websocket._abnf
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - mask_value
    - data_value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 45
    functionName: websocket._abnf._mask
    functionSourceFile: websocket._abnf
    functionUses: 44
    functionsReached:
    - <builtin>.len
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple
    - wsaccel.xormask.XorMaskerSimple.process
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsaccel.xormask.XorMaskerSimple
    functionSourceFile: wsaccel
    functionUses: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsaccel.xormask.XorMaskerSimple.process
    functionSourceFile: wsaccel
    functionUses: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: int.from_bytes
    functionSourceFile: <builtin>
    functionUses: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f094b1003d0>
    - <ast.Constant object at 0x7f094b100a30>
    - <ast.Constant object at 0x7f094b100a00>
    - <ast.Constant object at 0x7f094b100f10>
    - <ast.Name object at 0x7f094b1008b0>
    - <ast.Constant object at 0x7f094b100f70>
    - <ast.Constant object at 0x7f094b100040>
    argNames:
    - self
    - fin
    - rsv1
    - rsv2
    - rsv3
    - opcode
    - mask_value
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 146
    functionName: websocket._abnf.ABNF.__init__
    functionSourceFile: websocket._abnf
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f094b054ac0>
    argNames:
    - self
    - skip_utf8_validation
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 170
    functionName: websocket._abnf.ABNF.validate
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached:
    - <builtin>.len
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._utils._validate_utf8
    - wsaccel.utf8validator.Utf8Validator
    - websocket._utils._decode
    - <builtin>.int
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._utils.validate_utf8
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - utfbytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 440
    functionName: websocket._utils.validate_utf8
    functionSourceFile: websocket._utils
    functionUses: 30
    functionsReached:
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._utils._validate_utf8
    - websocket._utils._decode
    - <builtin>.int
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - code
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 201
    functionName: websocket._abnf.ABNF._is_valid_close_status
    functionSourceFile: ''
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.encode
    functionSourceFile: <builtin>
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.chr
    functionSourceFile: <builtin>
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - mask_key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 263
    functionName: websocket._abnf.ABNF._get_masked
    functionSourceFile: websocket._abnf
    functionUses: 42
    functionsReached:
    - <builtin>.len
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf._mask
    - <builtin>.isinstance
    - wsaccel.xormask.XorMaskerSimple.process
    - array.array
    - int.from_bytes
    - data.encode
    - websocket._abnf.ABNF.mask
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - mask_key
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 272
    functionName: websocket._abnf.ABNF.mask
    functionSourceFile: websocket._abnf
    functionUses: 43
    functionsReached:
    - <builtin>.len
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.isinstance
    - array.array
    - int.from_bytes
    - data.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mask_key.encode
    functionSourceFile: <builtin>
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: array.array
    functionSourceFile: array
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 310
    functionName: websocket._abnf.frame_buffer.clear
    functionSourceFile: ''
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 315
    functionName: websocket._abnf.frame_buffer.has_received_header
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 318
    functionName: websocket._abnf.frame_buffer.recv_header
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_close
    - struct.pack
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.recv
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.pong
    - payload.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF._get_masked
    - <builtin>.int
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - array.array
    - int.from_bytes
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._utils._decode
    - websocket._abnf.frame_buffer.recv_strict
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 389
    functionName: websocket._abnf.frame_buffer.recv_strict
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_close
    - struct.pack
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.recv_strict
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.pong
    - payload.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF._get_masked
    - array.array
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - int.from_bytes
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._utils._decode
    - <builtin>.int
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 332
    functionName: websocket._abnf.frame_buffer.has_mask
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 338
    functionName: websocket._abnf.frame_buffer.has_received_length
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 341
    functionName: websocket._abnf.frame_buffer.recv_length
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_close
    - struct.pack
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.recv
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.pong
    - payload.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF._get_masked
    - <builtin>.int
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - array.array
    - int.from_bytes
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._utils._decode
    - websocket._abnf.frame_buffer.recv_strict
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 353
    functionName: websocket._abnf.frame_buffer.has_received_mask
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 356
    functionName: websocket._abnf.frame_buffer.recv_mask
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.ABNF.format
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.map
    - struct.unpack
    - websocket._core.WebSocket._send
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_frame
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - _logger.debug
    - websocket._logging.isEnabledForTrace
    - websocket._utils.validate_utf8
    - websocket._logging.trace
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.__str__
    - <builtin>.chr
    - websocket._abnf.frame_buffer.clear
    - os.urandom
    - <builtin>.min
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_close
    - struct.pack
    - data.encode
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.recv
    - data_received.decode
    - <builtin>.len
    - <builtin>.any
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.send
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.isinstance
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.pong
    - payload.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF._get_masked
    - <builtin>.int
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.ABNF.mask
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send_frame
    - array.array
    - int.from_bytes
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__init__
    - websocket._utils._decode
    - websocket._abnf.frame_buffer.recv_strict
    - <builtin>.sum
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.map
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.sum
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.min
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._utils
    functionSourceFile: websocket._utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 25
    functionName: websocket._utils.NoLock.__enter__
    functionSourceFile: websocket._utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_value
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 28
    functionName: websocket._utils.NoLock.__exit__
    functionSourceFile: websocket._utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - utfbytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 429
    functionName: websocket._utils._validate_utf8
    functionSourceFile: websocket._utils
    functionUses: 31
    functionsReached:
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsaccel.utf8validator.Utf8Validator
    functionSourceFile: wsaccel
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsaccel.utf8validator.Utf8Validator.validate
    functionSourceFile: wsaccel
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - state
    - codep
    - ch
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 419
    functionName: websocket._utils._decode
    functionSourceFile: websocket._utils
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - exception
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 449
    functionName: websocket._utils.extract_err_message
    functionSourceFile: websocket._utils
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - exception
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 457
    functionName: websocket._utils.extract_error_code
    functionSourceFile: websocket._utils
    functionUses: 5
    functionsReached:
    - <builtin>.len
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: -1
    functionName: websocket._wsdump
    functionSourceFile: websocket._wsdump
    functionUses: 0
    functionsReached:
    - websocket._wsdump.NonInteractive.read
    - code.InteractiveConsole.__init__
    - time.sleep
    - websocket.enableTrace
    - <builtin>.map
    - websocket._wsdump.get_encoding
    - encoding.lower
    - urllib.parse.urlparse
    - ws.send
    - websocket._wsdump.RawInput.raw_input
    - websocket._wsdump.InteractiveConsole.read
    - <builtin>.getattr
    - parser.add_argument
    - websocket._wsdump.main
    - args.headers.split
    - thread.start
    - line.encode
    - <builtin>.isinstance
    - websocket.create_connection
    - argparse.ArgumentParser
    - <builtin>.list
    - <builtin>.print
    - websocket._wsdump.parse_args
    - threading.Thread
    - parser.parse_args
    - <builtin>.input
    - line.decode
    - time.time
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: websocket._wsdump.get_encoding
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - encoding.lower
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encoding.lower
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f094afca070>
    argNames:
    - self
    - parser
    - args
    - values
    - option_string
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 53
    functionName: websocket._wsdump.VAction.__call__
    functionSourceFile: websocket._wsdump
    functionUses: 0
    functionsReached:
    - <builtin>.setattr
    - values.count
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: values.count
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.setattr
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 11
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 69
    functionName: websocket._wsdump.parse_args
    functionSourceFile: websocket._wsdump
    functionUses: 2
    functionsReached:
    - parser.parse_args
    - argparse.ArgumentParser
    - parser.add_argument
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: argparse.ArgumentParser
    functionSourceFile: argparse
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.parse_args
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f094b7a38e0>
    argNames:
    - self
    - prompt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 107
    functionName: websocket._wsdump.RawInput.raw_input
    functionSourceFile: websocket._wsdump
    functionUses: 4
    functionsReached:
    - line.encode
    - <builtin>.isinstance
    - <builtin>.input
    - line.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.input
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.decode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.encode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 119
    functionName: websocket._wsdump.InteractiveConsole.write
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - sys.stdout.write
    - sys.stdout.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.write
    functionSourceFile: sys
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.flush
    functionSourceFile: sys
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 126
    functionName: websocket._wsdump.InteractiveConsole.read
    functionSourceFile: websocket._wsdump
    functionUses: 2
    functionsReached:
    - line.encode
    - websocket._wsdump.RawInput.raw_input
    - <builtin>.isinstance
    - <builtin>.input
    - line.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 131
    functionName: websocket._wsdump.NonInteractive.write
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - sys.stdout.write
    - sys.stdout.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 136
    functionName: websocket._wsdump.NonInteractive.read
    functionSourceFile: websocket._wsdump
    functionUses: 2
    functionsReached:
    - line.encode
    - websocket._wsdump.RawInput.raw_input
    - <builtin>.isinstance
    - <builtin>.input
    - line.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 6
    IfCount: 8
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 140
    functionName: websocket._wsdump.main
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - websocket._wsdump.NonInteractive.read
    - code.InteractiveConsole.__init__
    - time.sleep
    - websocket.enableTrace
    - <builtin>.map
    - urllib.parse.urlparse
    - ws.send
    - websocket._wsdump.RawInput.raw_input
    - websocket._wsdump.InteractiveConsole.read
    - parser.add_argument
    - args.headers.split
    - thread.start
    - line.encode
    - <builtin>.isinstance
    - websocket.create_connection
    - argparse.ArgumentParser
    - <builtin>.list
    - <builtin>.print
    - websocket._wsdump.parse_args
    - threading.Thread
    - parser.parse_args
    - <builtin>.input
    - line.decode
    - time.time
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket.enableTrace
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: args.headers.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.list
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket.create_connection
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: code.InteractiveConsole.__init__
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.print
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 166
    functionName: websocket._wsdump.main.recv
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - ws.recv_frame
    - ws.send_close
    - ws.pong
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws.recv_frame
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws.send_close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws.pong
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 184
    functionName: websocket._wsdump.main.recv_ws
    functionSourceFile: websocket._wsdump
    functionUses: 0
    functionsReached:
    - ws.recv_frame
    - <builtin>.len
    - gzip.decompress
    - ws.send_close
    - websocket._wsdump.main.recv
    - websocket._wsdump.NonInteractive.write
    - sys.stdout.write
    - websocket._wsdump.InteractiveConsole.write
    - ws.pong
    - websocket.ABNF.OPCODE_MAP.get
    - <builtin>.isinstance
    - zlib.decompress
    - <builtin>.repr
    - time.time
    - sys.stdout.flush
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gzip.decompress
    functionSourceFile: gzip
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: zlib.decompress
    functionSourceFile: zlib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket.ABNF.OPCODE_MAP.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: thread.start
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws.send
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: websocket._socket
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    - DEFAULT_SOCKET_OPTION.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: DEFAULT_SOCKET_OPTION.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sockopt
    - sslopt
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 56
    functionName: websocket._socket.sock_opt.__init__
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - timeout
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 66
    functionName: websocket._socket.setdefaulttimeout
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 79
    functionName: websocket._socket.getdefaulttimeout
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 91
    functionName: websocket._socket.recv
    functionSourceFile: websocket._socket
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - sock.gettimeout
    - selectors.DefaultSelector
    - sel.select
    - websocket._utils.extract_err_message
    - websocket._socket.recv._recv
    - sel.close
    - sel.register
    - <builtin>.isinstance
    - sock.recv
    - websocket._utils.extract_error_code
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    - WebSocketTimeoutException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 95
    functionName: websocket._socket.recv._recv
    functionSourceFile: websocket._socket
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - sock.gettimeout
    - selectors.DefaultSelector
    - sel.select
    - sel.close
    - sel.register
    - <builtin>.isinstance
    - sock.recv
    - websocket._utils.extract_error_code
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.gettimeout
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - sock
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 137
    functionName: websocket._socket.recv_line
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - sock.gettimeout
    - selectors.DefaultSelector
    - sel.select
    - websocket._utils.extract_err_message
    - websocket._socket.recv._recv
    - sel.close
    - line.append
    - sel.register
    - <builtin>.isinstance
    - sock.recv
    - websocket._socket.recv
    - websocket._utils.extract_error_code
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 147
    functionName: websocket._socket.send
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - sock.gettimeout
    - sock.send
    - selectors.DefaultSelector
    - websocket._utils.extract_error_code
    - websocket._utils.extract_err_message
    - sel.close
    - sel.select
    - sel.register
    - <builtin>.isinstance
    - data.encode
    - websocket._socket.send._send
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    - WebSocketTimeoutException
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 154
    functionName: websocket._socket.send._send
    functionSourceFile: websocket._socket
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - sock.gettimeout
    - sock.send
    - selectors.DefaultSelector
    - sel.select
    - sel.close
    - sel.register
    - <builtin>.isinstance
    - websocket._utils.extract_error_code
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.send
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...fuzz_http':
  - 73
  - 74
  '...fuzz_http.FuzzMock':
  - 25
  '...fuzz_http.FuzzMock.recv':
  - 34
  - 35
  - 36
  - 38
  - 39
  '...fuzz_http.FuzzMock.send':
  - 43
  - 44
  '...fuzz_http.TestOneInput':
  - 49
  - 51
  - 52
  - 54
  - 55
  - 57
  - 58
  '...fuzz_http.main':
  - 68
  - 69
  - 70
  websocket:
  - 1
  websocket._abnf:
  - 11
  websocket._abnf.ABNF:
  - 107
  websocket._abnf.ABNF.__init__:
  - 156
  - 165
  websocket._abnf.ABNF._get_masked:
  - 264
  - 266
  - 267
  websocket._abnf.ABNF.create_frame:
  - 224
  - 209
  - 226
  - 223
  websocket._abnf.ABNF.format:
  - 256
  - 257
  - 258
  - 260
  - 229
  - 261
  - 232
  - 234
  - 236
  - 237
  - 240
  - 247
  - 248
  - 249
  - 250
  - 251
  - 253
  - 254
  websocket._abnf.ABNF.mask:
  - 289
  - 290
  - 292
  - 273
  - 283
  - 286
  - 287
  websocket._abnf.ABNF.validate:
  - 193
  - 196
  - 197
  - 171
  - 178
  - 181
  - 184
  - 187
  - 188
  - 189
  - 191
  websocket._abnf._mask:
  - 38
  - 46
  - 47
  - 48
  - 51
  websocket._abnf.continuous_frame.add:
  - 432
  - 436
  - 429
  websocket._abnf.continuous_frame.extract:
  - 450
  - 446
  websocket._abnf.continuous_frame.validate:
  - 420
  - 422
  websocket._abnf.frame_buffer.__init__:
  - 307
  - 308
  websocket._abnf.frame_buffer.has_mask:
  - 333
  websocket._abnf.frame_buffer.recv_frame:
  - 384
  - 385
  - 362
  - 363
  - 367
  - 368
  - 372
  - 373
  - 377
  - 378
  - 379
  - 382
  websocket._abnf.frame_buffer.recv_header:
  - 319
  websocket._abnf.frame_buffer.recv_length:
  - 344
  - 345
  - 346
  - 347
  - 348
  - 349
  websocket._abnf.frame_buffer.recv_mask:
  - 357
  websocket._abnf.frame_buffer.recv_strict:
  - 390
  - 398
  - 399
  - 400
  - 402
  - 404
  websocket._app:
  - 20
  websocket._app.WebSocketApp:
  - 50
  websocket._app.WebSocketApp.__init__:
  - 165
  - 73
  - 154
  - 155
  - 158
  websocket._app.WebSocketApp._callback:
  - 579
  - 581
  - 584
  - 585
  - 586
  websocket._app.WebSocketApp._get_close_args:
  - 556
  - 562
  - 566
  - 567
  - 571
  - 572
  websocket._app.WebSocketApp._send_ping:
  - 224
  - 225
  - 227
  - 228
  - 230
  - 221
  - 223
  websocket._app.WebSocketApp._start_ping_thread:
  - 208
  - 209
  - 211
  - 207
  websocket._app.WebSocketApp._stop_ping_thread:
  - 214
  - 215
  - 216
  - 217
  - 218
  websocket._app.WebSocketApp.close:
  - 202
  - 203
  - 198
  websocket._app.WebSocketApp.create_dispatcher:
  - 548
  - 549
  - 551
  - 552
  - 553
  websocket._app.WebSocketApp.run_forever:
  - 518
  - 519
  - 520
  - 524
  - 525
  - 527
  - 528
  - 530
  - 532
  - 533
  - 535
  - 537
  - 308
  - 311
  - 313
  - 315
  - 317
  - 319
  - 321
  - 255
  websocket._app.WebSocketApp.run_forever.check:
  - 451
  - 453
  - 462
  websocket._app.WebSocketApp.run_forever.closed:
  - 483
  - 484
  - 485
  websocket._app.WebSocketApp.run_forever.handleDisconnect:
  - 513
  - 515
  - 516
  - 498
  - 499
  - 500
  - 502
  - 503
  - 507
  - 508
  - 509
  - 510
  - 511
  websocket._app.WebSocketApp.run_forever.read:
  - 416
  - 417
  - 420
  - 426
  - 427
  - 431
  - 432
  - 433
  - 434
  - 435
  - 436
  - 437
  - 438
  - 439
  - 440
  - 443
  - 444
  - 445
  - 446
  websocket._app.WebSocketApp.run_forever.setSock:
  - 361
  - 362
  - 395
  - 364
  - 397
  - 398
  - 400
  - 401
  - 403
  - 405
  - 374
  - 376
  - 378
  - 413
  websocket._app.WebSocketApp.run_forever.teardown:
  - 352
  - 358
  - 331
  - 344
  - 348
  - 350
  - 351
  websocket._app.WebSocketApp.send:
  - 168
  - 180
  websocket._app.WebSocketApp.send_bytes:
  - 194
  - 191
  websocket._app.WebSocketApp.send_text:
  - 184
  - 187
  websocket._cookiejar:
  - 4
  websocket._cookiejar.SimpleCookieJar.add:
  - 32
  - 33
  - 34
  - 37
  - 38
  - 39
  - 41
  - 42
  - 29
  - 30
  websocket._cookiejar.SimpleCookieJar.get:
  - 64
  - 65
  - 67
  - 70
  - 71
  - 55
  - 59
  - 60
  - 61
  - 62
  websocket._cookiejar.SimpleCookieJar.set:
  - 45
  - 46
  - 48
  - 49
  - 50
  - 52
  websocket._core:
  - 18
  websocket._core.WebSocket:
  - 192
  - 41
  - 170
  - 209
  - 181
  websocket._core.WebSocket.__init__:
  - 97
  - 104
  - 105
  - 108
  - 109
  - 110
  - 112
  - 113
  - 89
  websocket._core.WebSocket.__iter__:
  - 120
  - 116
  websocket._core.WebSocket.__next__:
  - 123
  websocket._core.WebSocket._recv:
  - 568
  - 570
  - 571
  websocket._core.WebSocket._send:
  - 562
  - 563
  - 564
  websocket._core.WebSocket.abort:
  - 546
  - 549
  - 550
  websocket._core.WebSocket.close:
  - 513
  - 515
  - 520
  - 521
  - 522
  - 523
  - 524
  - 526
  - 527
  - 529
  - 530
  - 531
  - 532
  - 533
  - 534
  - 538
  - 539
  - 543
  - 500
  websocket._core.WebSocket.connect:
  - 258
  - 259
  - 260
  - 264
  - 265
  - 266
  - 268
  - 269
  - 272
  - 273
  - 275
  - 212
  - 280
  - 281
  websocket._core.WebSocket.fileno:
  - 129
  websocket._core.WebSocket.getheaders:
  - 195
  - 198
  websocket._core.WebSocket.getstatus:
  - 184
  - 187
  websocket._core.WebSocket.getsubprotocol:
  - 176
  - 173
  websocket._core.WebSocket.gettimeout:
  - 147
  websocket._core.WebSocket.is_ssl:
  - 205
  websocket._core.WebSocket.next:
  - 126
  websocket._core.WebSocket.ping:
  - 365
  - 357
  - 366
  - 367
  websocket._core.WebSocket.pong:
  - 370
  - 379
  - 380
  - 378
  websocket._core.WebSocket.recv:
  - 391
  - 392
  - 394
  - 395
  - 396
  - 398
  - 383
  websocket._core.WebSocket.recv_data:
  - 419
  - 405
  websocket._core.WebSocket.recv_data_frame:
  - 423
  - 440
  - 441
  - 442
  - 443
  - 444
  - 448
  - 453
  - 454
  - 456
  - 457
  - 459
  - 460
  - 462
  - 463
  - 464
  - 467
  - 469
  - 470
  websocket._core.WebSocket.recv_frame:
  - 481
  - 474
  websocket._core.WebSocket.send:
  - 299
  - 300
  - 286
  websocket._core.WebSocket.send_binary:
  - 346
  - 354
  websocket._core.WebSocket.send_bytes:
  - 312
  - 309
  websocket._core.WebSocket.send_close:
  - 497
  - 484
  - 494
  websocket._core.WebSocket.send_frame:
  - 331
  - 333
  - 334
  - 335
  - 336
  - 337
  - 340
  - 315
  websocket._core.WebSocket.send_text:
  - 306
  - 303
  websocket._core.WebSocket.set_mask_key:
  - 132
  websocket._core.WebSocket.settimeout:
  - 168
  - 158
  - 167
  websocket._core.WebSocket.shutdown:
  - 553
  - 556
  - 557
  websocket._core.create_connection:
  - 640
  - 641
  - 578
  - 642
  - 650
  - 651
  - 637
  - 638
  - 639
  websocket._dispatcher.Dispatcher:
  - 39
  websocket._dispatcher.Dispatcher.read:
  - 49
  - 50
  - 53
  - 54
  - 56
  - 58
  websocket._dispatcher.DispatcherBase:
  - 11
  websocket._dispatcher.DispatcherBase.reconnect:
  - 25
  - 26
  - 28
  - 29
  - 31
  websocket._dispatcher.DispatcherBase.send:
  - 35
  websocket._dispatcher.DispatcherBase.timeout:
  - 20
  - 21
  websocket._dispatcher.SSLDispatcher:
  - 62
  websocket._dispatcher.SSLDispatcher.read:
  - 73
  - 74
  - 77
  - 78
  - 80
  - 82
  websocket._dispatcher.SSLDispatcher.select:
  - 91
  - 93
  - 86
  websocket._dispatcher.WrappedDispatcher:
  - 98
  websocket._dispatcher.WrappedDispatcher.__init__:
  - 109
  websocket._dispatcher.WrappedDispatcher.read:
  - 117
  - 118
  websocket._dispatcher.WrappedDispatcher.reconnect:
  - 128
  websocket._dispatcher.WrappedDispatcher.send:
  - 121
  - 122
  websocket._dispatcher.WrappedDispatcher.timeout:
  - 125
  websocket._exceptions:
  - 1
  websocket._exceptions.WebSocketAddressException:
  - 90
  websocket._exceptions.WebSocketBadStatusException:
  - 71
  websocket._exceptions.WebSocketBadStatusException.__init__:
  - 83
  websocket._exceptions.WebSocketConnectionClosedException:
  - 46
  websocket._exceptions.WebSocketException:
  - 22
  websocket._exceptions.WebSocketPayloadException:
  - 38
  websocket._exceptions.WebSocketProtocolException:
  - 30
  websocket._exceptions.WebSocketProxyException:
  - 63
  websocket._exceptions.WebSocketTimeoutException:
  - 55
  websocket._handshake:
  - 1
  - 46
  websocket._handshake._create_sec_websocket_key:
  - 202
  - 203
  websocket._handshake._get_handshake_headers:
  - 128
  - 129
  - 131
  - 132
  - 134
  - 135
  - 137
  - 87
  - 88
  - 90
  - 91
  - 92
  - 94
  - 98
  - 99
  - 100
  - 101
  - 102
  - 103
  - 105
  - 107
  - 110
  - 111
  - 115
  - 116
  - 118
  - 119
  - 121
  - 123
  - 124
  - 126
  - 127
  websocket._handshake._get_resp_headers:
  - 142
  - 143
  - 144
  - 145
  - 146
  - 147
  websocket._handshake._pack_hostname:
  - 78
  websocket._handshake._validate:
  - 192
  - 193
  - 195
  - 169
  - 170
  - 171
  - 173
  - 174
  - 177
  - 178
  - 179
  - 180
  - 182
  - 184
  - 185
  - 187
  - 189
  - 190
  websocket._handshake.handshake:
  - 64
  - 66
  - 67
  - 68
  - 69
  - 70
  - 73
  - 60
  - 62
  - 63
  websocket._handshake.handshake_response.__init__:
  - 54
  websocket._http:
  - 1
  websocket._http._get_addrinfo_list:
  - 176
  - 177
  - 187
  - 164
  websocket._http._open_socket:
  - 197
  - 199
  - 200
  - 201
  - 202
  - 203
  - 204
  - 210
  - 212
  - 213
  - 222
  websocket._http._ssl_socket:
  - 292
  - 294
  - 295
  - 297
  - 298
  - 301
  - 303
  - 304
  - 308
  - 311
  - 312
  websocket._http._start_proxied_socket:
  - 98
  - 102
  - 106
  - 109
  - 115
  - 84
  - 117
  - 118
  - 119
  - 89
  - 91
  - 95
  websocket._http._tunnel:
  - 323
  - 325
  - 327
  - 330
  - 332
  - 335
  - 339
  - 318
  websocket._http._wrap_sni_socket:
  - 256
  - 258
  - 259
  - 265
  - 271
  - 272
  - 274
  - 275
  - 276
  - 278
  - 279
  - 280
  - 282
  - 284
  - 285
  - 239
  - 240
  - 241
  - 246
  - 248
  - 249
  - 250
  - 251
  - 252
  - 253
  - 254
  - 255
  websocket._http.connect:
  - 130
  - 131
  - 133
  - 135
  - 138
  - 141
  - 146
  - 147
  - 148
  - 150
  - 151
  - 152
  - 158
  - 159
  websocket._http.proxy_info.__init__:
  - 65
  - 66
  - 58
  - 59
  - 60
  - 61
  - 62
  - 63
  websocket._http.read_headers:
  - 352
  - 353
  - 354
  - 356
  - 357
  - 358
  - 359
  - 360
  - 363
  - 364
  - 367
  - 368
  - 370
  - 372
  - 349
  websocket._logging:
  - 32
  - 3
  - 22
  websocket._logging.debug:
  - 85
  websocket._logging.dump:
  - 72
  - 73
  - 70
  - 71
  websocket._logging.enableTrace:
  - 64
  - 65
  - 66
  - 54
  websocket._logging.error:
  - 77
  websocket._logging.info:
  - 89
  websocket._logging.isEnabledForDebug:
  - 102
  websocket._logging.isEnabledForError:
  - 98
  websocket._logging.trace:
  - 93
  - 94
  websocket._logging.warning:
  - 81
  websocket._socket:
  - 33
  - 34
  - 35
  - 36
  - 37
  - 38
  - 39
  - 40
  - 13
  websocket._socket.getdefaulttimeout:
  - 80
  websocket._socket.recv:
  - 131
  - 115
  - 116
  - 118
  - 122
  - 92
  - 125
  - 126
  websocket._socket.recv._recv:
  - 97
  - 101
  - 102
  - 105
  - 106
  - 108
  - 109
  - 111
  - 112
  websocket._socket.recv_line:
  - 144
  - 140
  - 141
  - 142
  websocket._socket.send:
  - 178
  - 179
  - 148
  - 149
  - 181
  - 151
  - 183
  - 186
  - 187
  websocket._socket.send._send:
  - 162
  - 163
  - 165
  - 168
  - 169
  - 171
  - 172
  - 174
  - 175
  - 156
  websocket._socket.setdefaulttimeout:
  - 67
  websocket._socket.sock_opt.__init__:
  - 57
  - 59
  websocket._ssl_compat:
  - 1
  websocket._url:
  - 8
  websocket._url._is_address_in_network:
  - 96
  - 98
  - 94
  - 95
  websocket._url._is_ip_address:
  - 78
  websocket._url._is_no_proxy_host:
  - 103
  - 104
  - 107
  - 109
  - 112
  - 114
  - 116
  - 117
  - 119
  - 121
  - 124
  - 125
  - 126
  websocket._url._is_subnet_address:
  - 88
  - 87
  websocket._url.get_proxy_info:
  - 166
  - 169
  - 170
  - 140
  - 177
  - 180
  - 181
  - 183
  websocket._url.parse_url:
  - 65
  - 70
  - 40
  - 43
  - 45
  - 46
  - 51
  - 55
  - 56
  - 58
  - 60
  - 31
  websocket._utils:
  - 3
  websocket._utils._validate_utf8:
  - 432
  - 433
  - 434
  - 38
  websocket._utils.extract_err_message:
  - 450
  websocket._utils.extract_error_code:
  - 458
  - 459
  websocket._utils.validate_utf8:
  - 441
  - 446
  websocket._wsdump:
  - 3
  - 240
  - 49
  - 242
  - 244
  websocket._wsdump.InteractiveConsole.read:
  - 127
  websocket._wsdump.InteractiveConsole.write:
  - 120
  - 122
  - 123
  - 124
  websocket._wsdump.NonInteractive.read:
  - 137
  websocket._wsdump.NonInteractive.write:
  - 132
  - 133
  - 134
  websocket._wsdump.RawInput.raw_input:
  - 108
  - 110
  - 111
  - 112
  - 113
  websocket._wsdump.VAction.__call__:
  - 65
  - 66
  - 60
  - 63
  websocket._wsdump.get_encoding:
  - 41
  - 42
  - 45
  websocket._wsdump.main:
  - 141
  - 142
  - 143
  - 144
  - 146
  - 147
  - 150
  - 152
  - 155
  - 157
  - 158
  - 159
  - 160
  - 161
  - 163
  - 164
  - 222
  - 224
  - 226
  - 227
  - 231
  - 232
  - 236
  websocket._wsdump.main.recv:
  - 168
  - 171
  - 173
  - 175
  - 176
  - 178
  - 179
  websocket._wsdump.main.recv_ws:
  - 194
  - 197
  - 199
  - 200
  - 205
  - 206
  - 208
  - 209
  - 213
  - 214
  - 215
  - 217
  - 186
  - 219
  - 188
  - 189
  - 190
  - 191
  websocket._wsdump.parse_args:
  - 97
  - 98
  - 101
  - 70
  - 71
  - 103
  - 74
  - 75
  - 85
  - 88
  - 89
  - 90
  - 91
Fuzzer filename: /src/fuzz_http.py
Inheritance:
  '...fuzz_http.FuzzMock': []
  websocket._abnf.ABNF: []
  websocket._abnf.continuous_frame: []
  websocket._abnf.frame_buffer: []
  websocket._app.WebSocketApp: []
  websocket._cookiejar.SimpleCookieJar: []
  websocket._core.WebSocket: []
  websocket._dispatcher.Dispatcher:
  - DispatcherBase
  websocket._dispatcher.DispatcherBase: []
  websocket._dispatcher.SSLDispatcher:
  - DispatcherBase
  websocket._dispatcher.WrappedDispatcher: []
  websocket._exceptions.WebSocketAddressException:
  - WebSocketException
  websocket._exceptions.WebSocketBadStatusException:
  - WebSocketException
  websocket._exceptions.WebSocketConnectionClosedException:
  - WebSocketException
  websocket._exceptions.WebSocketException:
  - Exception
  websocket._exceptions.WebSocketPayloadException:
  - WebSocketException
  websocket._exceptions.WebSocketProtocolException:
  - WebSocketException
  websocket._exceptions.WebSocketProxyException:
  - WebSocketException
  websocket._exceptions.WebSocketTimeoutException:
  - WebSocketException
  websocket._handshake.handshake_response: []
  websocket._http.ProxyConnectionError:
  - Exception
  websocket._http.ProxyError:
  - Exception
  websocket._http.ProxyTimeoutError:
  - Exception
  websocket._http.proxy_info: []
  websocket._logging.NullHandler: []
  websocket._socket.sock_opt: []
  websocket._ssl_compat.SSLEOFError:
  - Exception
  websocket._ssl_compat.SSLError:
  - Exception
  websocket._ssl_compat.SSLWantReadError:
  - Exception
  websocket._ssl_compat.SSLWantWriteError:
  - Exception
  websocket._utils.NoLock: []
  websocket._wsdump.InteractiveConsole:
  - RawInput
  websocket._wsdump.NonInteractive:
  - RawInput
  websocket._wsdump.RawInput: []
  websocket._wsdump.VAction: []
ep:
  func_name: TestOneInput
  module: '...fuzz_http'
