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
- 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_url'
    functionSourceFile: '...fuzz_url'
    functionUses: 0
    functionsReached:
    - atheris.Fuzz
    - '...fuzz_url.main'
    - atheris.Setup
    - atheris.instrument_all
    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: 2
    functionLinenumber: 22
    functionName: '...fuzz_url.TestOneInput'
    functionSourceFile: '...fuzz_url'
    functionUses: 0
    functionsReached:
    - url.split
    - urllib.parse.urlparse
    - fdp.ConsumeUnicodeNoSurrogates
    - atheris.FuzzedDataProvider
    - websocket._url.parse_url
    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.ConsumeUnicodeNoSurrogates
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    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: 29
    functionName: websocket._url.parse_url
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - url.split
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: '...fuzz_url.main'
    functionSourceFile: '...fuzz_url'
    functionUses: 1
    functionsReached:
    - 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: 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
    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: 43
    functionName: websocket._app.set_reconnect
    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 0x7f1dc2918f70>
    - <ast.Constant object at 0x7f1dc2918460>
    - <ast.Constant object at 0x7f1dc2918790>
    - <ast.Constant object at 0x7f1dc29188b0>
    - <ast.Constant object at 0x7f1dc2918f10>
    - <ast.Constant object at 0x7f1dc2918850>
    - <ast.Constant object at 0x7f1dc2918af0>
    - <ast.Constant object at 0x7f1dc29184f0>
    - <ast.Constant object at 0x7f1dc29187f0>
    - <ast.Constant object at 0x7f1dc2918100>
    - <ast.Constant object at 0x7f1dc2918400>
    - <ast.Constant object at 0x7f1dc2918340>
    - <ast.Constant object at 0x7f1dc2918e50>
    - <ast.Constant object at 0x7f1dc2918430>
    - <ast.Constant object at 0x7f1dc2918730>
    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: 53
    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 0x7f1dc31bd5b0>
    argNames:
    - self
    - data
    - opcode
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 172
    functionName: websocket._app.WebSocketApp.send
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - _logger.debug
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - websocket._abnf.ABNF.create_frame
    - <builtin>.len
    - os.urandom
    - struct.pack
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._logging.isEnabledForTrace
    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 0x7f1dc294ec10>
    argNames:
    - self
    - payload
    - opcode
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 289
    functionName: websocket._core.WebSocket.send
    functionSourceFile: websocket._core
    functionUses: 40
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - _logger.debug
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - websocket._abnf.ABNF.create_frame
    - <builtin>.len
    - os.urandom
    - struct.pack
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._logging.isEnabledForTrace
    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: 188
    functionName: websocket._app.WebSocketApp.send_text
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - _logger.debug
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - websocket._abnf.ABNF.create_frame
    - <builtin>.len
    - os.urandom
    - struct.pack
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._logging.isEnabledForTrace
    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: 195
    functionName: websocket._app.WebSocketApp.send_bytes
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - _logger.debug
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - websocket._abnf.ABNF.create_frame
    - <builtin>.len
    - os.urandom
    - struct.pack
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._logging.isEnabledForTrace
    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: 202
    functionName: websocket._app.WebSocketApp.close
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send
    - websocket._core.WebSocket._recv
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._abnf.continuous_frame.validate
    - array.array
    - <builtin>.sum
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - <builtin>.chr
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._utils._validate_utf8
    - _logger.isEnabledFor
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - websocket._logging.debug
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - time.time
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - _logger.error
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._send
    - websocket._abnf.continuous_frame.extract
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - struct.unpack
    - websocket._logging.isEnabledForError
    - websocket._logging.isEnabledForTrace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 8
    IfCount: 8
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f1dc2b11dc0>
    - <ast.Constant object at 0x7f1dc2b11520>
    - <ast.Constant object at 0x7f1dc2b11130>
    argNames:
    - self
    - status
    - reason
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 503
    functionName: websocket._core.WebSocket.close
    functionSourceFile: websocket._core
    functionUses: 14
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send
    - websocket._core.WebSocket._recv
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._abnf.continuous_frame.validate
    - array.array
    - <builtin>.sum
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - <builtin>.chr
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data_frame
    - websocket._utils._validate_utf8
    - _logger.isEnabledFor
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - websocket._logging.debug
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - time.time
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - _logger.error
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._send
    - websocket._abnf.continuous_frame.extract
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - struct.unpack
    - websocket._logging.isEnabledForError
    - websocket._logging.isEnabledForTrace
    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: 211
    functionName: websocket._app.WebSocketApp._start_ping_thread
    functionSourceFile: websocket._app
    functionUses: 12
    functionsReached:
    - threading.Thread
    - <builtin>.float
    - threading.Event
    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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 218
    functionName: websocket._app.WebSocketApp._stop_ping_thread
    functionSourceFile: websocket._app
    functionUses: 13
    functionsReached:
    - websocket._logging.warning
    - <builtin>.float
    - _logger.warning
    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: 14
    functionsReached:
    - _logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 239
    functionName: websocket._app.WebSocketApp._send_ping
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._core.WebSocket.ping
    - <builtin>.isinstance
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._logging.debug
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - _logger.debug
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - websocket._abnf.ABNF.create_frame
    - <builtin>.len
    - os.urandom
    - time.time
    - struct.pack
    - payload.encode
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._logging.isEnabledForTrace
    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: 18
    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 0x7f1dc2a26f40>
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 360
    functionName: websocket._core.WebSocket.ping
    functionSourceFile: websocket._core
    functionUses: 1
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - _logger.debug
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - websocket._abnf.ABNF.create_frame
    - <builtin>.len
    - os.urandom
    - struct.pack
    - payload.encode
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._logging.isEnabledForTrace
    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: 253
    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 0x7f1dc2a49250>
    - <ast.Constant object at 0x7f1dc2a49280>
    - <ast.Constant object at 0x7f1dc2a49370>
    - <ast.Constant object at 0x7f1dc31ec970>
    - <ast.Constant object at 0x7f1dc31ec7c0>
    - <ast.Constant object at 0x7f1dc31ec850>
    - <ast.Constant object at 0x7f1dc31ec6a0>
    - <ast.Constant object at 0x7f1dc31eca00>
    - <ast.Constant object at 0x7f1dc31ec790>
    - <ast.Constant object at 0x7f1dc31ec6d0>
    - <ast.Constant object at 0x7f1dc342fdf0>
    - <ast.Constant object at 0x7f1dc342fdc0>
    - <ast.Constant object at 0x7f1dc342fd90>
    - <ast.Constant object at 0x7f1dc342f9a0>
    - <ast.Constant object at 0x7f1dc342ffd0>
    - <ast.Constant object at 0x7f1dc342ff10>
    - <ast.Constant object at 0x7f1dc342fd30>
    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: 18
    functionLinenumber: 256
    functionName: websocket._app.WebSocketApp.run_forever
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._core.WebSocket.__init__
    - cookie.items
    - options.pop
    - threading.Lock
    - key.lower
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - sock.pending
    - websocket._app.WebSocketApp._start_ping_thread
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    - <builtin>.sum
    - _socket.recv_line.decode
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._utils._validate_utf8
    - <builtin>.range
    - http.cookies.SimpleCookie
    - headers.append
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - _logger.warning
    - websocket._dispatcher.WrappedDispatcher.__init__
    - websocket._utils._decode
    - websocket._abnf._mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.len
    - cookies.append
    - os.urandom
    - resp_headers.get
    - _HEADERS_TO_CHECK.items
    - websocket._url.parse_url
    - _logger.info
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._logging.error
    - result.encode
    - websocket._abnf.frame_buffer.recv_length
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - <builtin>.repr
    - domain.startswith
    - websocket._dispatcher.SSLDispatcher.read
    - struct.unpack
    - websocket._handshake._get_handshake_headers
    - websocket._logging.isEnabledForTrace
    - r.split
    - value.strip
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._app.WebSocketApp._get_close_args
    - time.sleep
    - websocket._dispatcher.DispatcherBase.reconnect
    - int.from_bytes
    - sel.select
    - domain.lower
    - websocket._abnf.ABNF.mask
    - _logger.isEnabledFor
    - <builtin>.type
    - websocket._dispatcher.WrappedDispatcher.send
    - base64.encodebytes.strip
    - <builtin>.bool
    - _logger.debug
    - websocket._logging.dump
    - <builtin>.float
    - websocket._http.proxy_info.__init__
    - websocket._app.WebSocketApp._callback
    - websocket._handshake.handshake_response.__init__
    - dispatcher.signal
    - websocket._core.WebSocket.recv_frame
    - simple_cookie.values
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - _socket.send
    - subproto.lower
    - websocket._logging.warning
    - cookie.update
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.isEnabledForError
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._cookiejar.SimpleCookieJar.add
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - reason.decode
    - websocket._logging.info
    - websocket._dispatcher.Dispatcher.read
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - array.array
    - websocket._app.WebSocketApp.run_forever.read
    - <builtin>.callable
    - websocket._app.WebSocketApp.create_dispatcher
    - options.get
    - x.strip
    - websocket._abnf.ABNF.format
    - host.endswith
    - sel.register
    - base64.encodebytes
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._core.WebSocket.send_close
    - websocket._handshake.handshake
    - websocket._dispatcher.SSLDispatcher.select
    - data.encode
    - threading.Event
    - v.get
    - _socket.getdefaulttimeout
    - _socket.sock_opt
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._abnf.ABNF.create_frame
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.connect
    - websocket._abnf.ABNF.validate
    - time.time
    - websocket._http.read_headers
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.settimeout
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.timeout
    - url.split
    - websocket._dispatcher.DispatcherBase.__init__
    - headers.extend
    - payload.encode
    - <builtin>.int
    - websocket._abnf.continuous_frame.extract
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - headers.get
    - result.lower
    - s.lower
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - selectors.DefaultSelector
    - hashlib.sha1
    - websocket._handshake._create_sec_websocket_key
    - hmac.compare_digest
    - _socket.recv
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - header.items
    - <builtin>.chr
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.needs_length
    - _socket.recv_line.split
    - inspect.stack
    - <builtin>.filter
    - websocket._logging.debug
    - mask_key.encode
    - urllib.parse.urlparse
    - websocket._abnf.frame_buffer.clear
    - sel.close
    - websocket._core.WebSocket.recv_data
    - wsaccel.xormask.XorMaskerSimple
    - struct.pack
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - base64.encodebytes.decode
    - websocket._abnf.continuous_frame.__init__
    - threading.Thread
    - websocket._core.WebSocket._send
    - host.lower
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    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 0x7f1dc2b7f550>
    argNames:
    - close_frame
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 351
    functionName: websocket._app.WebSocketApp.run_forever.teardown
    functionSourceFile: websocket._app
    functionUses: 12
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket._recv
    - <builtin>.sum
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._utils._validate_utf8
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._utils._decode
    - _logger.warning
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.len
    - os.urandom
    - websocket._logging.error
    - websocket._abnf.frame_buffer.recv_length
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - <builtin>.repr
    - struct.unpack
    - websocket._logging.isEnabledForTrace
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._app.WebSocketApp._get_close_args
    - int.from_bytes
    - websocket._abnf.ABNF.mask
    - _logger.isEnabledFor
    - websocket._dispatcher.WrappedDispatcher.send
    - _logger.debug
    - <builtin>.float
    - websocket._app.WebSocketApp._callback
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.warning
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForError
    - websocket._abnf.ABNF.__init__
    - reason.decode
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send_close
    - data.encode
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - time.time
    - websocket._abnf.frame_buffer.has_mask
    - _logger.error
    - payload.encode
    - <builtin>.int
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - <builtin>.chr
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.needs_length
    - websocket._logging.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv_data
    - wsaccel.xormask.XorMaskerSimple
    - struct.pack
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._core.WebSocket._send
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    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: 587
    functionName: websocket._app.WebSocketApp._get_close_args
    functionSourceFile: websocket._app
    functionUses: 13
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - 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: 610
    functionName: websocket._app.WebSocketApp._callback
    functionSourceFile: websocket._app
    functionUses: 13
    functionsReached:
    - websocket._logging.error
    - _logger.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 0x7f1dc2b7fb80>
    argNames:
    - reconnecting
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 387
    functionName: websocket._app.WebSocketApp.run_forever.initialize_socket
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._core.WebSocket.__init__
    - cookie.items
    - options.pop
    - threading.Lock
    - key.lower
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - sock.pending
    - websocket._app.WebSocketApp._start_ping_thread
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    - <builtin>.sum
    - _socket.recv_line.decode
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._utils._validate_utf8
    - <builtin>.range
    - http.cookies.SimpleCookie
    - headers.append
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._utils._decode
    - _logger.warning
    - websocket._abnf._mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.len
    - cookies.append
    - os.urandom
    - resp_headers.get
    - _HEADERS_TO_CHECK.items
    - websocket._dispatcher.DispatcherBase.timeout
    - _logger.info
    - websocket._logging.error
    - result.encode
    - websocket._abnf.frame_buffer.recv_length
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - <builtin>.repr
    - domain.startswith
    - websocket._dispatcher.SSLDispatcher.read
    - struct.unpack
    - websocket._handshake._get_handshake_headers
    - websocket._logging.isEnabledForTrace
    - r.split
    - value.strip
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._app.WebSocketApp._get_close_args
    - time.sleep
    - websocket._dispatcher.DispatcherBase.reconnect
    - int.from_bytes
    - sel.select
    - domain.lower
    - websocket._abnf.ABNF.mask
    - _logger.isEnabledFor
    - <builtin>.type
    - websocket._dispatcher.WrappedDispatcher.send
    - base64.encodebytes.strip
    - <builtin>.bool
    - _logger.debug
    - websocket._logging.dump
    - <builtin>.float
    - websocket._http.proxy_info.__init__
    - websocket._app.WebSocketApp._callback
    - websocket._handshake.handshake_response.__init__
    - websocket._core.WebSocket.recv_frame
    - simple_cookie.values
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - _socket.send
    - subproto.lower
    - websocket._logging.warning
    - cookie.update
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.isEnabledForError
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._cookiejar.SimpleCookieJar.add
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._dispatcher.Dispatcher.read
    - websocket._logging.info
    - reason.decode
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - array.array
    - websocket._app.WebSocketApp.run_forever.read
    - <builtin>.callable
    - options.get
    - x.strip
    - websocket._abnf.ABNF.format
    - host.endswith
    - sel.register
    - base64.encodebytes
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._core.WebSocket.send_close
    - websocket._handshake.handshake
    - websocket._dispatcher.SSLDispatcher.select
    - data.encode
    - threading.Event
    - v.get
    - _socket.getdefaulttimeout
    - _socket.sock_opt
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.connect
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.ABNF.validate
    - time.time
    - websocket._http.read_headers
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.settimeout
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.timeout
    - url.split
    - headers.extend
    - payload.encode
    - <builtin>.int
    - websocket._abnf.continuous_frame.extract
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - headers.get
    - result.lower
    - s.lower
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - selectors.DefaultSelector
    - hashlib.sha1
    - websocket._handshake._create_sec_websocket_key
    - hmac.compare_digest
    - _socket.recv
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - header.items
    - <builtin>.chr
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.needs_length
    - _socket.recv_line.split
    - inspect.stack
    - <builtin>.filter
    - websocket._logging.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.clear
    - sel.close
    - websocket._core.WebSocket.recv_data
    - wsaccel.xormask.XorMaskerSimple
    - struct.pack
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - base64.encodebytes.decode
    - websocket._abnf.continuous_frame.__init__
    - threading.Thread
    - websocket._core.WebSocket._send
    - host.lower
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    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: 563
    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 0x7f1dc2a0bd90>
    - <ast.Constant object at 0x7f1dc2a0b640>
    - <ast.Constant object at 0x7f1dc2a0bb80>
    - <ast.Constant object at 0x7f1dc2a0bdc0>
    - <ast.Constant object at 0x7f1dc2a0b5b0>
    - <ast.Constant object at 0x7f1dc2a0bd00>
    - <ast.Constant object at 0x7f1dc2a0ba00>
    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: 82
    functionName: websocket._core.WebSocket.__init__
    functionSourceFile: websocket._core
    functionUses: 13
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.continuous_frame.__init__
    - threading.Lock
    - _socket.sock_opt
    - websocket._abnf.frame_buffer.__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: _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: 161
    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: 215
    functionName: websocket._core.WebSocket.connect
    functionSourceFile: websocket._core
    functionUses: 12
    functionsReached:
    - r.split
    - result.lower
    - value.strip
    - _socket.recv_line
    - s.lower
    - cookie.items
    - options.pop
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._handshake._create_sec_websocket_key
    - key.lower
    - hashlib.sha1
    - subproto.lower
    - hmac.compare_digest
    - _socket.recv
    - _socket.recv_line.decode
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - domain.lower
    - options.get
    - x.strip
    - header.items
    - host.endswith
    - base64.encodebytes
    - _socket.recv_line.split
    - websocket._handshake.handshake
    - <builtin>.range
    - <builtin>.filter
    - headers.append
    - http.cookies.SimpleCookie
    - base64.encodebytes.strip
    - v.get
    - websocket._logging.trace
    - _logger.debug
    - websocket._handshake._get_resp_headers
    - domain.startswith
    - <builtin>.len
    - cookies.append
    - resp_headers.get
    - websocket._logging.dump
    - os.urandom
    - websocket._core.WebSocket.connect
    - websocket._http.read_headers
    - websocket._http.proxy_info.__init__
    - _HEADERS_TO_CHECK.items
    - websocket._handshake.handshake_response.__init__
    - websocket._logging.error
    - result.encode
    - _logger.error
    - url.split
    - simple_cookie.values
    - headers.extend
    - base64.encodebytes.decode
    - <builtin>.int
    - <builtin>.sorted
    - websocket._cookiejar.SimpleCookieJar.add
    - _socket.send
    - host.lower
    - cookie.update
    - websocket._handshake._get_handshake_headers
    - headers.get
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 146
    functionName: websocket._dispatcher.WrappedDispatcher.read
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._core.WebSocket.__init__
    - cookie.items
    - options.pop
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - key.lower
    - websocket._core.WebSocket._recv
    - sock.pending
    - websocket._app.WebSocketApp._start_ping_thread
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    - <builtin>.sum
    - _socket.recv_line.decode
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._utils._validate_utf8
    - <builtin>.range
    - http.cookies.SimpleCookie
    - headers.append
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._utils._decode
    - _logger.warning
    - websocket._abnf._mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.len
    - os.urandom
    - resp_headers.get
    - _HEADERS_TO_CHECK.items
    - cookies.append
    - websocket._dispatcher.DispatcherBase.timeout
    - _logger.info
    - websocket._logging.error
    - result.encode
    - websocket._abnf.frame_buffer.recv_length
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - <builtin>.repr
    - domain.startswith
    - websocket._dispatcher.SSLDispatcher.read
    - struct.unpack
    - websocket._handshake._get_handshake_headers
    - websocket._logging.isEnabledForTrace
    - r.split
    - value.strip
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._app.WebSocketApp._get_close_args
    - time.sleep
    - websocket._dispatcher.DispatcherBase.reconnect
    - int.from_bytes
    - sel.select
    - domain.lower
    - websocket._abnf.ABNF.mask
    - <builtin>.type
    - _logger.isEnabledFor
    - websocket._dispatcher.WrappedDispatcher.send
    - base64.encodebytes.strip
    - <builtin>.bool
    - _logger.debug
    - websocket._logging.dump
    - <builtin>.float
    - websocket._http.proxy_info.__init__
    - websocket._app.WebSocketApp._callback
    - websocket._handshake.handshake_response.__init__
    - websocket._core.WebSocket.recv_frame
    - simple_cookie.values
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - _socket.send
    - subproto.lower
    - websocket._logging.warning
    - cookie.update
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForError
    - websocket._cookiejar.SimpleCookieJar.add
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._dispatcher.Dispatcher.read
    - reason.decode
    - websocket._logging.info
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - array.array
    - websocket._app.WebSocketApp.run_forever.read
    - <builtin>.callable
    - options.get
    - x.strip
    - websocket._abnf.ABNF.format
    - host.endswith
    - sel.register
    - websocket._app.WebSocketApp.run_forever.closed
    - base64.encodebytes
    - websocket._core.WebSocket.send_close
    - websocket._handshake.handshake
    - websocket._dispatcher.SSLDispatcher.select
    - data.encode
    - threading.Event
    - v.get
    - _socket.getdefaulttimeout
    - _socket.sock_opt
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._abnf.ABNF.create_frame
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.ABNF.validate
    - websocket._core.WebSocket.connect
    - time.time
    - websocket._http.read_headers
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.settimeout
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.timeout
    - url.split
    - headers.extend
    - payload.encode
    - <builtin>.int
    - websocket._abnf.continuous_frame.extract
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - headers.get
    - result.lower
    - s.lower
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - selectors.DefaultSelector
    - hashlib.sha1
    - websocket._handshake._create_sec_websocket_key
    - hmac.compare_digest
    - _socket.recv
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - <builtin>.chr
    - header.items
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.needs_length
    - _socket.recv_line.split
    - inspect.stack
    - <builtin>.filter
    - websocket._logging.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.clear
    - sel.close
    - websocket._core.WebSocket.recv_data
    - wsaccel.xormask.XorMaskerSimple
    - struct.pack
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - base64.encodebytes.decode
    - websocket._abnf.continuous_frame.__init__
    - threading.Thread
    - websocket._core.WebSocket._send
    - host.lower
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 92
    functionName: websocket._dispatcher.SSLDispatcher.read
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._core.WebSocket.__init__
    - cookie.items
    - options.pop
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - key.lower
    - websocket._core.WebSocket._recv
    - sock.pending
    - websocket._app.WebSocketApp._start_ping_thread
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    - <builtin>.sum
    - _socket.recv_line.decode
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._utils._validate_utf8
    - <builtin>.range
    - http.cookies.SimpleCookie
    - headers.append
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._utils._decode
    - _logger.warning
    - websocket._abnf._mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.len
    - os.urandom
    - resp_headers.get
    - _HEADERS_TO_CHECK.items
    - cookies.append
    - _logger.info
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._logging.error
    - result.encode
    - websocket._abnf.frame_buffer.recv_length
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - <builtin>.repr
    - domain.startswith
    - websocket._dispatcher.SSLDispatcher.read
    - struct.unpack
    - websocket._handshake._get_handshake_headers
    - websocket._logging.isEnabledForTrace
    - r.split
    - value.strip
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._app.WebSocketApp._get_close_args
    - time.sleep
    - websocket._dispatcher.DispatcherBase.reconnect
    - int.from_bytes
    - sel.select
    - domain.lower
    - websocket._abnf.ABNF.mask
    - <builtin>.type
    - _logger.isEnabledFor
    - websocket._dispatcher.WrappedDispatcher.send
    - base64.encodebytes.strip
    - <builtin>.bool
    - _logger.debug
    - websocket._logging.dump
    - <builtin>.float
    - websocket._http.proxy_info.__init__
    - websocket._app.WebSocketApp._callback
    - websocket._handshake.handshake_response.__init__
    - websocket._core.WebSocket.recv_frame
    - simple_cookie.values
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - _socket.send
    - subproto.lower
    - websocket._logging.warning
    - cookie.update
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.isEnabledForError
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._abnf.frame_buffer.needs_mask
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - reason.decode
    - websocket._logging.info
    - websocket._dispatcher.Dispatcher.read
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - array.array
    - websocket._app.WebSocketApp.run_forever.read
    - <builtin>.callable
    - options.get
    - x.strip
    - websocket._abnf.ABNF.format
    - host.endswith
    - sel.register
    - websocket._app.WebSocketApp.run_forever.closed
    - base64.encodebytes
    - websocket._core.WebSocket.send_close
    - websocket._handshake.handshake
    - websocket._dispatcher.SSLDispatcher.select
    - data.encode
    - threading.Event
    - v.get
    - _socket.getdefaulttimeout
    - _socket.sock_opt
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.connect
    - time.time
    - websocket._http.read_headers
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.settimeout
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.timeout
    - url.split
    - headers.extend
    - payload.encode
    - <builtin>.int
    - websocket._abnf.continuous_frame.extract
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - headers.get
    - result.lower
    - s.lower
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - selectors.DefaultSelector
    - hashlib.sha1
    - websocket._handshake._create_sec_websocket_key
    - hmac.compare_digest
    - _socket.recv
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - <builtin>.chr
    - header.items
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.needs_length
    - _socket.recv_line.split
    - inspect.stack
    - <builtin>.filter
    - websocket._logging.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.clear
    - sel.close
    - websocket._core.WebSocket.recv_data
    - wsaccel.xormask.XorMaskerSimple
    - struct.pack
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - base64.encodebytes.decode
    - websocket._abnf.continuous_frame.__init__
    - threading.Thread
    - websocket._core.WebSocket._send
    - host.lower
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 67
    functionName: websocket._dispatcher.Dispatcher.read
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._core.WebSocket.__init__
    - cookie.items
    - options.pop
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - key.lower
    - websocket._core.WebSocket._recv
    - sock.pending
    - websocket._app.WebSocketApp._start_ping_thread
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    - <builtin>.sum
    - _socket.recv_line.decode
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._utils._validate_utf8
    - <builtin>.range
    - http.cookies.SimpleCookie
    - headers.append
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._utils._decode
    - _logger.warning
    - websocket._abnf._mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.len
    - os.urandom
    - resp_headers.get
    - _HEADERS_TO_CHECK.items
    - cookies.append
    - _logger.info
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._logging.error
    - result.encode
    - websocket._abnf.frame_buffer.recv_length
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - <builtin>.repr
    - domain.startswith
    - websocket._dispatcher.SSLDispatcher.read
    - struct.unpack
    - websocket._handshake._get_handshake_headers
    - websocket._logging.isEnabledForTrace
    - r.split
    - value.strip
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._app.WebSocketApp._get_close_args
    - time.sleep
    - websocket._dispatcher.DispatcherBase.reconnect
    - int.from_bytes
    - sel.select
    - domain.lower
    - websocket._abnf.ABNF.mask
    - <builtin>.type
    - _logger.isEnabledFor
    - websocket._dispatcher.WrappedDispatcher.send
    - base64.encodebytes.strip
    - <builtin>.bool
    - _logger.debug
    - websocket._logging.dump
    - <builtin>.float
    - websocket._http.proxy_info.__init__
    - websocket._app.WebSocketApp._callback
    - websocket._handshake.handshake_response.__init__
    - websocket._core.WebSocket.recv_frame
    - simple_cookie.values
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - _socket.send
    - subproto.lower
    - websocket._logging.warning
    - cookie.update
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.isEnabledForError
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._abnf.frame_buffer.needs_mask
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - reason.decode
    - websocket._logging.info
    - websocket._dispatcher.Dispatcher.read
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - array.array
    - websocket._app.WebSocketApp.run_forever.read
    - <builtin>.callable
    - options.get
    - x.strip
    - websocket._abnf.ABNF.format
    - host.endswith
    - sel.register
    - websocket._app.WebSocketApp.run_forever.closed
    - base64.encodebytes
    - websocket._core.WebSocket.send_close
    - websocket._handshake.handshake
    - websocket._dispatcher.SSLDispatcher.select
    - data.encode
    - threading.Event
    - v.get
    - _socket.getdefaulttimeout
    - _socket.sock_opt
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._abnf.ABNF.create_frame
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.ABNF.validate
    - websocket._core.WebSocket.connect
    - time.time
    - websocket._http.read_headers
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.settimeout
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.timeout
    - url.split
    - headers.extend
    - payload.encode
    - <builtin>.int
    - websocket._abnf.continuous_frame.extract
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - headers.get
    - result.lower
    - s.lower
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - selectors.DefaultSelector
    - hashlib.sha1
    - websocket._handshake._create_sec_websocket_key
    - hmac.compare_digest
    - _socket.recv
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - <builtin>.chr
    - header.items
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.needs_length
    - _socket.recv_line.split
    - inspect.stack
    - <builtin>.filter
    - websocket._logging.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.clear
    - sel.close
    - websocket._core.WebSocket.recv_data
    - wsaccel.xormask.XorMaskerSimple
    - struct.pack
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - base64.encodebytes.decode
    - websocket._abnf.continuous_frame.__init__
    - threading.Thread
    - websocket._core.WebSocket._send
    - host.lower
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    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 0x7f1dc31c8820>
    argNames:
    - e
    - reconnecting
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 518
    functionName: websocket._app.WebSocketApp.run_forever.handleDisconnect
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._core.WebSocket.__init__
    - cookie.items
    - options.pop
    - threading.Lock
    - key.lower
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - sock.pending
    - websocket._app.WebSocketApp._start_ping_thread
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    - <builtin>.sum
    - _socket.recv_line.decode
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._utils._validate_utf8
    - <builtin>.range
    - http.cookies.SimpleCookie
    - headers.append
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._utils._decode
    - _logger.warning
    - websocket._abnf._mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.len
    - cookies.append
    - os.urandom
    - resp_headers.get
    - _HEADERS_TO_CHECK.items
    - websocket._dispatcher.DispatcherBase.timeout
    - _logger.info
    - websocket._logging.error
    - result.encode
    - websocket._abnf.frame_buffer.recv_length
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - <builtin>.repr
    - domain.startswith
    - websocket._dispatcher.SSLDispatcher.read
    - struct.unpack
    - websocket._handshake._get_handshake_headers
    - websocket._logging.isEnabledForTrace
    - r.split
    - value.strip
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._app.WebSocketApp._get_close_args
    - time.sleep
    - websocket._dispatcher.DispatcherBase.reconnect
    - int.from_bytes
    - sel.select
    - domain.lower
    - websocket._abnf.ABNF.mask
    - _logger.isEnabledFor
    - <builtin>.type
    - websocket._dispatcher.WrappedDispatcher.send
    - base64.encodebytes.strip
    - <builtin>.bool
    - _logger.debug
    - websocket._logging.dump
    - <builtin>.float
    - websocket._http.proxy_info.__init__
    - websocket._app.WebSocketApp._callback
    - websocket._handshake.handshake_response.__init__
    - websocket._core.WebSocket.recv_frame
    - simple_cookie.values
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - _socket.send
    - subproto.lower
    - websocket._logging.warning
    - cookie.update
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.isEnabledForError
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._cookiejar.SimpleCookieJar.add
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - reason.decode
    - websocket._logging.info
    - websocket._dispatcher.Dispatcher.read
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - array.array
    - websocket._app.WebSocketApp.run_forever.read
    - <builtin>.callable
    - options.get
    - x.strip
    - websocket._abnf.ABNF.format
    - host.endswith
    - sel.register
    - base64.encodebytes
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._core.WebSocket.send_close
    - websocket._handshake.handshake
    - websocket._dispatcher.SSLDispatcher.select
    - data.encode
    - threading.Event
    - v.get
    - _socket.getdefaulttimeout
    - _socket.sock_opt
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._abnf.ABNF.create_frame
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.connect
    - websocket._abnf.ABNF.validate
    - time.time
    - websocket._http.read_headers
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.settimeout
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.timeout
    - url.split
    - headers.extend
    - payload.encode
    - <builtin>.int
    - websocket._abnf.continuous_frame.extract
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - headers.get
    - result.lower
    - s.lower
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - selectors.DefaultSelector
    - hashlib.sha1
    - websocket._handshake._create_sec_websocket_key
    - hmac.compare_digest
    - _socket.recv
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - header.items
    - <builtin>.chr
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.needs_length
    - _socket.recv_line.split
    - <builtin>.filter
    - inspect.stack
    - websocket._logging.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.clear
    - sel.close
    - websocket._core.WebSocket.recv_data
    - wsaccel.xormask.XorMaskerSimple
    - struct.pack
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - base64.encodebytes.decode
    - websocket._abnf.continuous_frame.__init__
    - threading.Thread
    - websocket._core.WebSocket._send
    - host.lower
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 7
    IfCount: 8
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 442
    functionName: websocket._app.WebSocketApp.run_forever.read
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._core.WebSocket.__init__
    - cookie.items
    - options.pop
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - key.lower
    - websocket._core.WebSocket._recv
    - sock.pending
    - websocket._app.WebSocketApp._start_ping_thread
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    - <builtin>.sum
    - _socket.recv_line.decode
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._utils._validate_utf8
    - <builtin>.range
    - http.cookies.SimpleCookie
    - headers.append
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._utils._decode
    - _logger.warning
    - websocket._abnf._mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.len
    - os.urandom
    - resp_headers.get
    - _HEADERS_TO_CHECK.items
    - cookies.append
    - _logger.info
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._logging.error
    - result.encode
    - websocket._abnf.frame_buffer.recv_length
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - <builtin>.repr
    - domain.startswith
    - websocket._dispatcher.SSLDispatcher.read
    - struct.unpack
    - websocket._handshake._get_handshake_headers
    - websocket._logging.isEnabledForTrace
    - r.split
    - value.strip
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._app.WebSocketApp._get_close_args
    - time.sleep
    - websocket._dispatcher.DispatcherBase.reconnect
    - int.from_bytes
    - sel.select
    - domain.lower
    - websocket._abnf.ABNF.mask
    - <builtin>.type
    - _logger.isEnabledFor
    - websocket._dispatcher.WrappedDispatcher.send
    - base64.encodebytes.strip
    - <builtin>.bool
    - _logger.debug
    - websocket._logging.dump
    - <builtin>.float
    - websocket._http.proxy_info.__init__
    - websocket._app.WebSocketApp._callback
    - websocket._handshake.handshake_response.__init__
    - websocket._core.WebSocket.recv_frame
    - simple_cookie.values
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - _socket.send
    - subproto.lower
    - websocket._logging.warning
    - cookie.update
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.isEnabledForError
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._abnf.frame_buffer.needs_mask
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - reason.decode
    - websocket._logging.info
    - websocket._dispatcher.Dispatcher.read
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - array.array
    - websocket._app.WebSocketApp.run_forever.read
    - <builtin>.callable
    - options.get
    - x.strip
    - websocket._abnf.ABNF.format
    - host.endswith
    - sel.register
    - websocket._app.WebSocketApp.run_forever.closed
    - base64.encodebytes
    - websocket._core.WebSocket.send_close
    - websocket._handshake.handshake
    - websocket._dispatcher.SSLDispatcher.select
    - data.encode
    - threading.Event
    - v.get
    - _socket.getdefaulttimeout
    - _socket.sock_opt
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.connect
    - time.time
    - websocket._http.read_headers
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.settimeout
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.timeout
    - url.split
    - headers.extend
    - payload.encode
    - <builtin>.int
    - websocket._abnf.continuous_frame.extract
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - headers.get
    - result.lower
    - s.lower
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - selectors.DefaultSelector
    - hashlib.sha1
    - websocket._handshake._create_sec_websocket_key
    - hmac.compare_digest
    - _socket.recv
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - <builtin>.chr
    - header.items
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.needs_length
    - _socket.recv_line.split
    - inspect.stack
    - <builtin>.filter
    - websocket._logging.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.clear
    - sel.close
    - websocket._core.WebSocket.recv_data
    - wsaccel.xormask.XorMaskerSimple
    - struct.pack
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - base64.encodebytes.decode
    - websocket._abnf.continuous_frame.__init__
    - threading.Thread
    - websocket._core.WebSocket._send
    - host.lower
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    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 0x7f1dc2b8fac0>
    argNames:
    - self
    - control_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 426
    functionName: websocket._core.WebSocket.recv_data_frame
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send
    - websocket._core.WebSocket._recv
    - array.array
    - <builtin>.sum
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data_frame
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForTrace
    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 0x7f1dc31c8640>
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 504
    functionName: websocket._app.WebSocketApp.run_forever.closed
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._core.WebSocket.__init__
    - cookie.items
    - options.pop
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - key.lower
    - websocket._core.WebSocket._recv
    - sock.pending
    - websocket._app.WebSocketApp._start_ping_thread
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    - <builtin>.sum
    - _socket.recv_line.decode
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._utils._validate_utf8
    - <builtin>.range
    - http.cookies.SimpleCookie
    - headers.append
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - _logger.warning
    - websocket._utils._decode
    - websocket._abnf._mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.len
    - cookies.append
    - os.urandom
    - resp_headers.get
    - _HEADERS_TO_CHECK.items
    - websocket._dispatcher.DispatcherBase.timeout
    - _logger.info
    - websocket._logging.error
    - result.encode
    - websocket._abnf.frame_buffer.recv_length
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - <builtin>.repr
    - domain.startswith
    - websocket._dispatcher.SSLDispatcher.read
    - struct.unpack
    - websocket._handshake._get_handshake_headers
    - websocket._logging.isEnabledForTrace
    - r.split
    - value.strip
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._app.WebSocketApp._get_close_args
    - time.sleep
    - websocket._dispatcher.DispatcherBase.reconnect
    - int.from_bytes
    - sel.select
    - domain.lower
    - websocket._abnf.ABNF.mask
    - <builtin>.type
    - _logger.isEnabledFor
    - websocket._dispatcher.WrappedDispatcher.send
    - base64.encodebytes.strip
    - <builtin>.bool
    - _logger.debug
    - websocket._logging.dump
    - <builtin>.float
    - websocket._http.proxy_info.__init__
    - websocket._app.WebSocketApp._callback
    - websocket._handshake.handshake_response.__init__
    - websocket._core.WebSocket.recv_frame
    - simple_cookie.values
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - _socket.send
    - subproto.lower
    - websocket._logging.warning
    - cookie.update
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.isEnabledForError
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._cookiejar.SimpleCookieJar.add
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - reason.decode
    - websocket._logging.info
    - websocket._dispatcher.Dispatcher.read
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - array.array
    - websocket._app.WebSocketApp.run_forever.read
    - <builtin>.callable
    - options.get
    - x.strip
    - websocket._abnf.ABNF.format
    - host.endswith
    - sel.register
    - websocket._app.WebSocketApp.run_forever.closed
    - base64.encodebytes
    - websocket._core.WebSocket.send_close
    - websocket._handshake.handshake
    - websocket._dispatcher.SSLDispatcher.select
    - data.encode
    - threading.Event
    - v.get
    - _socket.getdefaulttimeout
    - _socket.sock_opt
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._abnf.ABNF.create_frame
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.connect
    - websocket._abnf.ABNF.validate
    - time.time
    - websocket._http.read_headers
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.settimeout
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.timeout
    - url.split
    - headers.extend
    - payload.encode
    - <builtin>.int
    - websocket._abnf.continuous_frame.extract
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - headers.get
    - result.lower
    - s.lower
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - selectors.DefaultSelector
    - hashlib.sha1
    - websocket._handshake._create_sec_websocket_key
    - hmac.compare_digest
    - _socket.recv
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - header.items
    - <builtin>.chr
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.needs_length
    - _socket.recv_line.split
    - inspect.stack
    - <builtin>.filter
    - websocket._logging.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.clear
    - sel.close
    - websocket._core.WebSocket.recv_data
    - wsaccel.xormask.XorMaskerSimple
    - struct.pack
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - base64.encodebytes.decode
    - websocket._abnf.continuous_frame.__init__
    - threading.Thread
    - websocket._core.WebSocket._send
    - host.lower
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    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: 481
    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: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 73
    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: 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: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - reconnector
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 20
    functionLinenumber: 163
    functionName: websocket._dispatcher.WrappedDispatcher.reconnect
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._core.WebSocket.__init__
    - cookie.items
    - options.pop
    - threading.Lock
    - key.lower
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - sock.pending
    - websocket._app.WebSocketApp._start_ping_thread
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    - <builtin>.sum
    - _socket.recv_line.decode
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._utils._validate_utf8
    - <builtin>.range
    - http.cookies.SimpleCookie
    - headers.append
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - _logger.warning
    - websocket._utils._decode
    - websocket._abnf._mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.len
    - cookies.append
    - os.urandom
    - resp_headers.get
    - _HEADERS_TO_CHECK.items
    - websocket._dispatcher.DispatcherBase.timeout
    - _logger.info
    - websocket._logging.error
    - result.encode
    - websocket._abnf.frame_buffer.recv_length
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - <builtin>.repr
    - domain.startswith
    - websocket._dispatcher.SSLDispatcher.read
    - struct.unpack
    - websocket._handshake._get_handshake_headers
    - websocket._logging.isEnabledForTrace
    - r.split
    - value.strip
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._app.WebSocketApp._get_close_args
    - time.sleep
    - websocket._dispatcher.DispatcherBase.reconnect
    - int.from_bytes
    - sel.select
    - domain.lower
    - websocket._abnf.ABNF.mask
    - _logger.isEnabledFor
    - <builtin>.type
    - websocket._dispatcher.WrappedDispatcher.send
    - base64.encodebytes.strip
    - <builtin>.bool
    - _logger.debug
    - websocket._logging.dump
    - <builtin>.float
    - websocket._http.proxy_info.__init__
    - websocket._app.WebSocketApp._callback
    - websocket._handshake.handshake_response.__init__
    - websocket._core.WebSocket.recv_frame
    - simple_cookie.values
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - _socket.send
    - subproto.lower
    - websocket._logging.warning
    - cookie.update
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.isEnabledForError
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._cookiejar.SimpleCookieJar.add
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._dispatcher.Dispatcher.read
    - websocket._logging.info
    - reason.decode
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - array.array
    - websocket._app.WebSocketApp.run_forever.read
    - <builtin>.callable
    - options.get
    - x.strip
    - websocket._abnf.ABNF.format
    - host.endswith
    - sel.register
    - base64.encodebytes
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._core.WebSocket.send_close
    - websocket._handshake.handshake
    - websocket._dispatcher.SSLDispatcher.select
    - data.encode
    - threading.Event
    - v.get
    - _socket.getdefaulttimeout
    - _socket.sock_opt
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.connect
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.ABNF.validate
    - websocket._http.read_headers
    - time.time
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.settimeout
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.timeout
    - url.split
    - headers.extend
    - payload.encode
    - <builtin>.int
    - websocket._abnf.continuous_frame.extract
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - headers.get
    - result.lower
    - s.lower
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - selectors.DefaultSelector
    - hashlib.sha1
    - websocket._handshake._create_sec_websocket_key
    - hmac.compare_digest
    - _socket.recv
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - header.items
    - <builtin>.chr
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.needs_length
    - _socket.recv_line.split
    - inspect.stack
    - <builtin>.filter
    - websocket._logging.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.clear
    - sel.close
    - websocket._core.WebSocket.recv_data
    - wsaccel.xormask.XorMaskerSimple
    - struct.pack
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - base64.encodebytes.decode
    - websocket._abnf.continuous_frame.__init__
    - threading.Thread
    - websocket._core.WebSocket._send
    - host.lower
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    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: 18
    functionLinenumber: 47
    functionName: websocket._dispatcher.DispatcherBase.reconnect
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._core.WebSocket.__init__
    - cookie.items
    - options.pop
    - threading.Lock
    - key.lower
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - sock.pending
    - websocket._app.WebSocketApp._start_ping_thread
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    - <builtin>.sum
    - _socket.recv_line.decode
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._utils._validate_utf8
    - <builtin>.range
    - http.cookies.SimpleCookie
    - headers.append
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._utils._decode
    - _logger.warning
    - websocket._abnf._mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.len
    - cookies.append
    - os.urandom
    - resp_headers.get
    - _HEADERS_TO_CHECK.items
    - _logger.info
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._logging.error
    - result.encode
    - websocket._abnf.frame_buffer.recv_length
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - <builtin>.repr
    - domain.startswith
    - websocket._dispatcher.SSLDispatcher.read
    - struct.unpack
    - websocket._handshake._get_handshake_headers
    - websocket._logging.isEnabledForTrace
    - r.split
    - value.strip
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._app.WebSocketApp._get_close_args
    - time.sleep
    - websocket._dispatcher.DispatcherBase.reconnect
    - int.from_bytes
    - sel.select
    - domain.lower
    - websocket._abnf.ABNF.mask
    - _logger.isEnabledFor
    - <builtin>.type
    - websocket._dispatcher.WrappedDispatcher.send
    - base64.encodebytes.strip
    - <builtin>.bool
    - _logger.debug
    - websocket._logging.dump
    - <builtin>.float
    - websocket._http.proxy_info.__init__
    - websocket._app.WebSocketApp._callback
    - websocket._handshake.handshake_response.__init__
    - websocket._core.WebSocket.recv_frame
    - simple_cookie.values
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - _socket.send
    - subproto.lower
    - websocket._logging.warning
    - cookie.update
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.isEnabledForError
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._cookiejar.SimpleCookieJar.add
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._dispatcher.Dispatcher.read
    - websocket._logging.info
    - reason.decode
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - array.array
    - websocket._app.WebSocketApp.run_forever.read
    - <builtin>.callable
    - options.get
    - x.strip
    - websocket._abnf.ABNF.format
    - host.endswith
    - sel.register
    - base64.encodebytes
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._core.WebSocket.send_close
    - websocket._handshake.handshake
    - websocket._dispatcher.SSLDispatcher.select
    - data.encode
    - threading.Event
    - v.get
    - _socket.getdefaulttimeout
    - _socket.sock_opt
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.connect
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.ABNF.validate
    - time.time
    - websocket._http.read_headers
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.settimeout
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.timeout
    - url.split
    - headers.extend
    - payload.encode
    - <builtin>.int
    - websocket._abnf.continuous_frame.extract
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - headers.get
    - result.lower
    - s.lower
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - selectors.DefaultSelector
    - hashlib.sha1
    - websocket._handshake._create_sec_websocket_key
    - hmac.compare_digest
    - _socket.recv
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - header.items
    - <builtin>.chr
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.needs_length
    - _socket.recv_line.split
    - inspect.stack
    - <builtin>.filter
    - websocket._logging.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.clear
    - sel.close
    - websocket._core.WebSocket.recv_data
    - wsaccel.xormask.XorMaskerSimple
    - struct.pack
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - base64.encodebytes.decode
    - websocket._abnf.continuous_frame.__init__
    - threading.Thread
    - websocket._core.WebSocket._send
    - host.lower
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    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: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f1dc31cf640>
    - <ast.Constant object at 0x7f1dc31cfeb0>
    - <ast.Constant object at 0x7f1dc31cf220>
    argNames:
    - self
    - ping_timeout
    - dispatcher
    - is_ssl
    - handleDisconnect
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 573
    functionName: websocket._app.WebSocketApp.create_dispatcher
    functionSourceFile: websocket._app
    functionUses: 1
    functionsReached:
    - websocket._dispatcher.WrappedDispatcher.__init__
    - websocket._dispatcher.DispatcherBase.__init__
    - dispatcher.signal
    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: 133
    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: 36
    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: 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: reason.decode
    functionSourceFile: <builtin>
    functionUses: 14
    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.NullHandler
    - logging.getLogger
    - _logger.addHandler
    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 0x7f1dc29a1160>
    - <ast.Constant object at 0x7f1dc29a1ee0>
    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:
    - <builtin>.getattr
    - _logger.addHandler
    - _logger.setLevel
    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: 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: 16
    functionsReached:
    - _logger.debug
    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: 50
    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: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.warning
    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: _logger.info
    functionSourceFile: <builtin>
    functionUses: 13
    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: 47
    functionsReached:
    - _logger.debug
    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: _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: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 105
    functionName: websocket._logging.isEnabledForTrace
    functionSourceFile: websocket._logging
    functionUses: 41
    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: 309
    functionName: websocket._abnf.frame_buffer.__init__
    functionSourceFile: websocket._abnf
    functionUses: 14
    functionsReached:
    - threading.Lock
    - websocket._abnf.frame_buffer.clear
    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: 437
    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: 119
    functionName: websocket._core.WebSocket.__iter__
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send
    - websocket._core.WebSocket._recv
    - array.array
    - <builtin>.sum
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.format
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForTrace
    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: 386
    functionName: websocket._core.WebSocket.recv
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send
    - websocket._core.WebSocket._recv
    - array.array
    - <builtin>.sum
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.format
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForTrace
    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: 126
    functionName: websocket._core.WebSocket.__next__
    functionSourceFile: websocket._core
    functionUses: 1
    functionsReached:
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send
    - websocket._core.WebSocket._recv
    - array.array
    - <builtin>.sum
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.format
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForTrace
    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: 129
    functionName: websocket._core.WebSocket.next
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send
    - websocket._core.WebSocket._recv
    - array.array
    - <builtin>.sum
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.format
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.send
    - websocket._core.WebSocket.__next__
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForTrace
    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: 132
    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: 135
    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: 150
    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: 176
    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: 187
    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: 198
    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: 207
    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:
    - r.split
    - result.lower
    - value.strip
    - _socket.recv_line
    - s.lower
    - cookie.items
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._handshake._create_sec_websocket_key
    - key.lower
    - hashlib.sha1
    - subproto.lower
    - hmac.compare_digest
    - _socket.recv
    - _socket.recv_line.decode
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - domain.lower
    - options.get
    - x.strip
    - header.items
    - host.endswith
    - base64.encodebytes
    - _socket.recv_line.split
    - <builtin>.filter
    - http.cookies.SimpleCookie
    - headers.append
    - base64.encodebytes.strip
    - v.get
    - websocket._logging.trace
    - _logger.debug
    - websocket._handshake._get_resp_headers
    - domain.startswith
    - <builtin>.len
    - os.urandom
    - cookies.append
    - resp_headers.get
    - websocket._logging.dump
    - websocket._http.read_headers
    - _HEADERS_TO_CHECK.items
    - websocket._handshake.handshake_response.__init__
    - websocket._logging.error
    - result.encode
    - _logger.error
    - url.split
    - simple_cookie.values
    - headers.extend
    - base64.encodebytes.decode
    - <builtin>.int
    - <builtin>.sorted
    - websocket._cookiejar.SimpleCookieJar.add
    - _socket.send
    - host.lower
    - cookie.update
    - websocket._handshake._get_handshake_headers
    - headers.get
    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 0x7f1dc2951df0>
    argNames:
    - data
    - opcode
    - fin
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 218
    functionName: websocket._abnf.ABNF.create_frame
    functionSourceFile: websocket._abnf
    functionUses: 41
    functionsReached:
    - <builtin>.isinstance
    - data.encode
    - websocket._abnf.ABNF.__init__
    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: 318
    functionName: websocket._core.WebSocket.send_frame
    functionSourceFile: websocket._core
    functionUses: 40
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - _logger.debug
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - os.urandom
    - struct.pack
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._logging.isEnabledForTrace
    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: 306
    functionName: websocket._core.WebSocket.send_text
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - _logger.debug
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - websocket._abnf.ABNF.create_frame
    - <builtin>.len
    - os.urandom
    - struct.pack
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._logging.isEnabledForTrace
    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: 312
    functionName: websocket._core.WebSocket.send_bytes
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - _logger.debug
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - websocket._abnf.ABNF.create_frame
    - <builtin>.len
    - os.urandom
    - struct.pack
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._logging.isEnabledForTrace
    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: 238
    functionName: websocket._abnf.ABNF.format
    functionSourceFile: websocket._abnf
    functionUses: 41
    functionsReached:
    - struct.pack
    - array.array
    - data.encode
    - wsaccel.xormask.XorMaskerSimple
    - mask_key.encode
    - int.from_bytes
    - websocket._abnf.ABNF._get_masked
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - <builtin>.chr
    - <builtin>.isinstance
    - websocket._abnf._mask
    - <builtin>.any
    - <builtin>.len
    - os.urandom
    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: -1
    functionName: <builtin>.repr
    functionSourceFile: <builtin>
    functionUses: 43
    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: 213
    functionName: websocket._abnf.ABNF.__str__
    functionSourceFile: websocket._abnf
    functionUses: 41
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 572
    functionName: websocket._core.WebSocket._send
    functionSourceFile: websocket._core
    functionUses: 40
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - _logger.debug
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - websocket._abnf.ABNF.create_frame
    - <builtin>.len
    - os.urandom
    - struct.pack
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._logging.isEnabledForTrace
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    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: 349
    functionName: websocket._core.WebSocket.send_binary
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - _logger.debug
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - websocket._abnf.ABNF.create_frame
    - <builtin>.len
    - os.urandom
    - struct.pack
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._logging.isEnabledForTrace
    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 0x7f1dc2a26940>
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 373
    functionName: websocket._core.WebSocket.pong
    functionSourceFile: websocket._core
    functionUses: 28
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - _logger.debug
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - websocket._abnf.ABNF.create_frame
    - <builtin>.len
    - os.urandom
    - struct.pack
    - payload.encode
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._logging.isEnabledForTrace
    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 0x7f1dc2b8f790>
    argNames:
    - self
    - control_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 408
    functionName: websocket._core.WebSocket.recv_data
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send
    - websocket._core.WebSocket._recv
    - array.array
    - <builtin>.sum
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.format
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForTrace
    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: 477
    functionName: websocket._core.WebSocket.recv_frame
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket._recv
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.send
    - <builtin>.sum
    - array.array
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - <builtin>.chr
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.format
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.continuous_frame.extract
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - struct.unpack
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForTrace
    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: 443
    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: 452
    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: 463
    functionName: websocket._abnf.continuous_frame.is_fire
    functionSourceFile: ''
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    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: 3
    functionLinenumber: 466
    functionName: websocket._abnf.continuous_frame.extract
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached:
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._utils.validate_utf8
    - <builtin>.int
    - websocket._utils._decode
    - websocket._utils._validate_utf8
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    - WebSocketPayloadException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f1dc2b11f10>
    - <ast.Constant object at 0x7f1dc2b110d0>
    argNames:
    - self
    - status
    - reason
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 487
    functionName: websocket._core.WebSocket.send_close
    functionSourceFile: websocket._core
    functionUses: 28
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.send
    - array.array
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._abnf.ABNF.format
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - _logger.debug
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - websocket._abnf.ABNF.create_frame
    - <builtin>.len
    - os.urandom
    - struct.pack
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._logging.isEnabledForTrace
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 5
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 371
    functionName: websocket._abnf.frame_buffer.recv_frame
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket._recv
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.send
    - <builtin>.sum
    - array.array
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - <builtin>.chr
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.format
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.continuous_frame.extract
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - struct.unpack
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForTrace
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    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: 0
    functionLinenumber: -1
    functionName: struct.unpack
    functionSourceFile: struct
    functionUses: 29
    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: 556
    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: 156
    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: 58
    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: 579
    functionName: websocket._core.WebSocket._recv
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.send
    - websocket._core.WebSocket._recv
    - array.array
    - <builtin>.sum
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.format
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForTrace
    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 0x7f1dc2a49820>
    - <ast.Name object at 0x7f1dc2a49b80>
    argNames:
    - url
    - timeout
    - class_
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 590
    functionName: websocket._core.create_connection
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._core.WebSocket.__init__
    - websock.settimeout
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.continuous_frame.__init__
    - options.pop
    - _socket.getdefaulttimeout
    - threading.Lock
    - _socket.sock_opt
    - websocket._abnf.frame_buffer.__init__
    - websock.connect
    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: 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:
    - simple_cookie.values
    - v.get
    - domain.lower
    - headers.get
    - domain.startswith
    - cookie.update
    - http.cookies.SimpleCookie
    - websocket._cookiejar.SimpleCookieJar.add
    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: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    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
    - v.get
    - domain.lower
    - domain.startswith
    - cookie.update
    - http.cookies.SimpleCookie
    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:
    - url.split
    - websocket._handshake._pack_hostname
    - headers.extend
    - cookie.items
    - host.endswith
    - options.get
    - header.items
    - <builtin>.sorted
    - <builtin>.isinstance
    - base64.encodebytes.decode
    - <builtin>.filter
    - host.lower
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._handshake._create_sec_websocket_key
    - base64.encodebytes
    - cookies.append
    - headers.append
    - os.urandom
    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: 16
    functionsReached: []
    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 0x7f1dc28e90d0>
    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:
    - websocket._http.read_headers
    - _socket.recv
    - value.strip
    - _socket.recv_line
    - _socket.recv_line.decode
    - websocket._logging.trace
    - <builtin>.int
    - <builtin>.min
    - _logger.debug
    - <builtin>.len
    - key.lower
    - _socket.recv_line.split
    - resp_headers.get
    - headers.get
    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: 174
    functionName: websocket._handshake._validate
    functionSourceFile: websocket._handshake
    functionUses: 14
    functionsReached:
    - r.split
    - result.lower
    - base64.encodebytes.strip
    - websocket._logging.error
    - result.encode
    - _logger.error
    - s.lower
    - x.strip
    - <builtin>.isinstance
    - hashlib.sha1
    - base64.encodebytes
    - subproto.lower
    - _HEADERS_TO_CHECK.items
    - hmac.compare_digest
    - headers.get
    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: 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: 1
    functionLinenumber: 208
    functionName: websocket._handshake._create_sec_websocket_key
    functionSourceFile: websocket._handshake
    functionUses: 15
    functionsReached:
    - base64.encodebytes
    - base64.encodebytes.decode
    - os.urandom
    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: 52
    functionName: websocket._cookiejar.SimpleCookieJar.get
    functionSourceFile: websocket._cookiejar
    functionUses: 15
    functionsReached:
    - cookie.items
    - <builtin>.sorted
    - host.lower
    - host.endswith
    - <builtin>.filter
    - cookies.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: <builtin>.filter
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - sock
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 378
    functionName: websocket._http.read_headers
    functionSourceFile: websocket._http
    functionUses: 17
    functionsReached:
    - value.strip
    - _socket.recv_line
    - _socket.recv_line.decode
    - websocket._logging.trace
    - <builtin>.int
    - _logger.debug
    - <builtin>.len
    - key.lower
    - _socket.recv_line.split
    - headers.get
    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: <builtin>.min
    functionSourceFile: <builtin>
    functionUses: 31
    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
    functionSourceFile: _socket
    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_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: 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: base64.encodebytes.strip
    functionSourceFile: base64
    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: 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._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:
    - python_socks.sync.Proxy.create
    - context.load_verify_locations
    - <builtin>.isinstance
    - websocket._http._ssl_socket
    - os.environ.get
    - sslopt.update
    - user_sslopt.get
    - <builtin>.hasattr
    - ws_proxy.connect
    - context.wrap_socket
    - context.load_default_certs
    - os.path.isfile
    - os.path.isdir
    - ssl.SSLContext
    - urllib.parse.urlparse
    - <builtin>.len
    - websocket._url.parse_url
    - context.set_ecdh_curve
    - url.split
    - sslopt.get
    - <builtin>.int
    - context.set_ciphers
    - websocket._http._wrap_sni_socket
    - context.load_cert_chain
    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: 323
    functionName: websocket._http._ssl_socket
    functionSourceFile: websocket._http
    functionUses: 2
    functionsReached:
    - context.load_default_certs
    - context.set_ecdh_curve
    - context.load_verify_locations
    - os.path.isfile
    - os.environ.get
    - sslopt.update
    - os.path.isdir
    - sslopt.get
    - ssl.SSLContext
    - context.set_ciphers
    - <builtin>.isinstance
    - user_sslopt.get
    - <builtin>.hasattr
    - context.wrap_socket
    - <builtin>.len
    - websocket._http._wrap_sni_socket
    - context.load_cert_chain
    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:
    - python_socks.sync.Proxy.create
    - value.strip
    - _socket.recv_line
    - context.load_verify_locations
    - websocket._url._is_ip_address
    - ipaddress.ip_network
    - <builtin>.isinstance
    - websocket._http._ssl_socket
    - ipaddress.ip_address
    - key.lower
    - websocket._http._get_addrinfo_list
    - websocket._http._tunnel
    - env_key.upper
    - _socket.recv_line.decode
    - sslopt.update
    - os.environ.get
    - user_sslopt.get
    - websocket._url._is_subnet_address
    - sock.close
    - <builtin>.hasattr
    - context.wrap_socket
    - hostname.endswith
    - _socket.recv_line.split
    - ws_proxy.connect
    - base64.encodebytes
    - sock.setsockopt
    - websocket._logging.debug
    - context.load_default_certs
    - context.load_cert_chain
    - websocket._http._open_socket
    - base64.encodebytes.strip
    - socket.getaddrinfo
    - socket.socket
    - os.path.isfile
    - websocket._logging.trace
    - websocket._http._start_proxied_socket
    - os.path.isdir
    - urllib.parse.urlparse
    - v.split
    - ssl.SSLContext
    - _logger.debug
    - domain.lstrip
    - <builtin>.str
    - websocket._url.get_proxy_info
    - <builtin>.len
    - <builtin>.any
    - sock.settimeout
    - websocket._logging.dump
    - websocket._url.parse_url
    - websocket._http.read_headers
    - context.set_ecdh_curve
    - websocket._url._is_address_in_network
    - websocket._url._is_no_proxy_host
    - url.split
    - sslopt.get
    - <builtin>.int
    - context.set_ciphers
    - _socket.send
    - domain.startswith
    - urllib.parse.unquote
    - auth_str.encode
    - websocket._http._wrap_sni_socket
    - sock.connect
    - headers.get
    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:
    - socket.getaddrinfo
    - websocket._url._is_address_in_network
    - env_key.upper
    - websocket._url._is_no_proxy_host
    - websocket._url._is_ip_address
    - os.environ.get
    - urllib.parse.urlparse
    - ipaddress.ip_network
    - <builtin>.any
    - hostname.endswith
    - v.split
    - <builtin>.isinstance
    - websocket._url._is_subnet_address
    - domain.lstrip
    - ipaddress.ip_address
    - domain.startswith
    - urllib.parse.unquote
    - websocket._url.get_proxy_info
    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.setsockopt
    - socket.socket
    - sock.close
    - <builtin>.str
    - sock.settimeout
    - sock.connect
    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: 350
    functionName: websocket._http._tunnel
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - websocket._http.read_headers
    - base64.encodebytes.strip
    - value.strip
    - _socket.recv_line
    - _socket.recv_line.decode
    - base64.encodebytes
    - websocket._logging.trace
    - <builtin>.int
    - _logger.debug
    - <builtin>.len
    - _socket.send
    - key.lower
    - auth_str.encode
    - _socket.recv_line.split
    - websocket._logging.dump
    - websocket._logging.debug
    - headers.get
    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: 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 0x7f1dc2b11790>
    - <ast.Constant object at 0x7f1dc2b11df0>
    - <ast.Constant object at 0x7f1dc2b11580>
    - <ast.Constant object at 0x7f1dc2b11220>
    - <ast.Constant object at 0x7f1dc2b113a0>
    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
    - websocket._url._is_no_proxy_host
    - env_key.upper
    - websocket._url._is_ip_address
    - os.environ.get
    - urllib.parse.urlparse
    - ipaddress.ip_network
    - <builtin>.any
    - hostname.endswith
    - v.split
    - <builtin>.isinstance
    - websocket._url._is_subnet_address
    - domain.lstrip
    - ipaddress.ip_address
    - domain.startswith
    - urllib.parse.unquote
    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: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 6
    IfCount: 11
    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:
    - context.load_default_certs
    - context.set_ecdh_curve
    - context.load_verify_locations
    - os.environ.get
    - ssl.SSLContext
    - sslopt.get
    - context.set_ciphers
    - <builtin>.isinstance
    - <builtin>.hasattr
    - context.wrap_socket
    - <builtin>.len
    - context.load_cert_chain
    linkageType: pythonLinkage
    raised:
    - ValueError
    - 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: 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: 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.recv_line
    functionSourceFile: _socket
    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: _socket.recv_line.decode
    functionSourceFile: _socket
    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: _socket.recv_line.split
    functionSourceFile: _socket
    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: key.lower
    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: value.strip
    functionSourceFile: <builtin>
    functionUses: 18
    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._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: 42
    functionName: websocket._cookiejar.SimpleCookieJar.set
    functionSourceFile: websocket._cookiejar
    functionUses: 0
    functionsReached:
    - simple_cookie.values
    - v.get
    - domain.lower
    - domain.startswith
    - http.cookies.SimpleCookie
    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._dispatcher
    functionSourceFile: websocket._dispatcher
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - callback
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 18
    functionLinenumber: 42
    functionName: websocket._dispatcher.DispatcherBase.timeout
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._core.WebSocket.__init__
    - cookie.items
    - options.pop
    - threading.Lock
    - key.lower
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - sock.pending
    - websocket._app.WebSocketApp._start_ping_thread
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    - <builtin>.sum
    - _socket.recv_line.decode
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._utils._validate_utf8
    - <builtin>.range
    - http.cookies.SimpleCookie
    - headers.append
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - _logger.warning
    - websocket._utils._decode
    - websocket._abnf._mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.len
    - cookies.append
    - os.urandom
    - resp_headers.get
    - _HEADERS_TO_CHECK.items
    - _logger.info
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._logging.error
    - result.encode
    - websocket._abnf.frame_buffer.recv_length
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - <builtin>.repr
    - domain.startswith
    - websocket._dispatcher.SSLDispatcher.read
    - struct.unpack
    - websocket._handshake._get_handshake_headers
    - websocket._logging.isEnabledForTrace
    - r.split
    - value.strip
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._app.WebSocketApp._get_close_args
    - time.sleep
    - websocket._dispatcher.DispatcherBase.reconnect
    - int.from_bytes
    - sel.select
    - domain.lower
    - websocket._abnf.ABNF.mask
    - _logger.isEnabledFor
    - <builtin>.type
    - websocket._dispatcher.WrappedDispatcher.send
    - base64.encodebytes.strip
    - <builtin>.bool
    - _logger.debug
    - websocket._logging.dump
    - <builtin>.float
    - websocket._http.proxy_info.__init__
    - websocket._app.WebSocketApp._callback
    - websocket._handshake.handshake_response.__init__
    - websocket._core.WebSocket.recv_frame
    - simple_cookie.values
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - _socket.send
    - subproto.lower
    - websocket._logging.warning
    - cookie.update
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.isEnabledForError
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._cookiejar.SimpleCookieJar.add
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._dispatcher.Dispatcher.read
    - websocket._logging.info
    - reason.decode
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - array.array
    - websocket._app.WebSocketApp.run_forever.read
    - <builtin>.callable
    - options.get
    - x.strip
    - websocket._abnf.ABNF.format
    - host.endswith
    - sel.register
    - base64.encodebytes
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._core.WebSocket.send_close
    - websocket._handshake.handshake
    - websocket._dispatcher.SSLDispatcher.select
    - data.encode
    - threading.Event
    - v.get
    - _socket.getdefaulttimeout
    - _socket.sock_opt
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.connect
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.ABNF.validate
    - websocket._http.read_headers
    - time.time
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.settimeout
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.timeout
    - url.split
    - headers.extend
    - payload.encode
    - <builtin>.int
    - websocket._abnf.continuous_frame.extract
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - headers.get
    - result.lower
    - s.lower
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - selectors.DefaultSelector
    - hashlib.sha1
    - websocket._handshake._create_sec_websocket_key
    - hmac.compare_digest
    - _socket.recv
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - header.items
    - <builtin>.chr
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.needs_length
    - _socket.recv_line.split
    - inspect.stack
    - <builtin>.filter
    - websocket._logging.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.clear
    - sel.close
    - websocket._core.WebSocket.recv_data
    - wsaccel.xormask.XorMaskerSimple
    - struct.pack
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - base64.encodebytes.decode
    - websocket._abnf.continuous_frame.__init__
    - threading.Thread
    - websocket._core.WebSocket._send
    - host.lower
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sock
    - sel
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 112
    functionName: websocket._dispatcher.SSLDispatcher.select
    functionSourceFile: websocket._dispatcher
    functionUses: 12
    functionsReached:
    - sock.pending
    - sel.select
    - <builtin>.len
    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: 19
    functionLinenumber: 160
    functionName: websocket._dispatcher.WrappedDispatcher.timeout
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_header
    - websocket._core.WebSocket.__init__
    - cookie.items
    - options.pop
    - threading.Lock
    - key.lower
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - sock.pending
    - websocket._app.WebSocketApp._start_ping_thread
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    - <builtin>.sum
    - _socket.recv_line.decode
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._utils._validate_utf8
    - <builtin>.range
    - http.cookies.SimpleCookie
    - headers.append
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - _logger.warning
    - websocket._utils._decode
    - websocket._abnf._mask
    - websocket._handshake._get_resp_headers
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.len
    - cookies.append
    - os.urandom
    - resp_headers.get
    - _HEADERS_TO_CHECK.items
    - websocket._dispatcher.DispatcherBase.timeout
    - _logger.info
    - websocket._logging.error
    - result.encode
    - websocket._abnf.frame_buffer.recv_length
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - <builtin>.repr
    - domain.startswith
    - websocket._dispatcher.SSLDispatcher.read
    - struct.unpack
    - websocket._handshake._get_handshake_headers
    - websocket._logging.isEnabledForTrace
    - r.split
    - value.strip
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._app.WebSocketApp._get_close_args
    - time.sleep
    - websocket._dispatcher.DispatcherBase.reconnect
    - int.from_bytes
    - sel.select
    - domain.lower
    - websocket._abnf.ABNF.mask
    - _logger.isEnabledFor
    - <builtin>.type
    - websocket._dispatcher.WrappedDispatcher.send
    - base64.encodebytes.strip
    - <builtin>.bool
    - _logger.debug
    - websocket._logging.dump
    - <builtin>.float
    - websocket._http.proxy_info.__init__
    - websocket._app.WebSocketApp._callback
    - websocket._handshake.handshake_response.__init__
    - websocket._core.WebSocket.recv_frame
    - simple_cookie.values
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - _socket.send
    - subproto.lower
    - websocket._logging.warning
    - cookie.update
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.isEnabledForError
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._cookiejar.SimpleCookieJar.add
    - _socket.recv_line
    - websocket._abnf.ABNF.__init__
    - websocket._dispatcher.Dispatcher.read
    - websocket._logging.info
    - reason.decode
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - array.array
    - websocket._app.WebSocketApp.run_forever.read
    - <builtin>.callable
    - options.get
    - x.strip
    - websocket._abnf.ABNF.format
    - host.endswith
    - sel.register
    - base64.encodebytes
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._core.WebSocket.send_close
    - websocket._handshake.handshake
    - websocket._dispatcher.SSLDispatcher.select
    - data.encode
    - threading.Event
    - v.get
    - _socket.getdefaulttimeout
    - _socket.sock_opt
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.connect
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - websocket._abnf.ABNF.validate
    - websocket._http.read_headers
    - time.time
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.settimeout
    - _logger.error
    - websocket._dispatcher.WrappedDispatcher.timeout
    - url.split
    - headers.extend
    - payload.encode
    - <builtin>.int
    - websocket._abnf.continuous_frame.extract
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - headers.get
    - result.lower
    - s.lower
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - selectors.DefaultSelector
    - hashlib.sha1
    - websocket._handshake._create_sec_websocket_key
    - hmac.compare_digest
    - _socket.recv
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - header.items
    - <builtin>.chr
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.needs_length
    - _socket.recv_line.split
    - inspect.stack
    - <builtin>.filter
    - websocket._logging.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.clear
    - sel.close
    - websocket._core.WebSocket.recv_data
    - wsaccel.xormask.XorMaskerSimple
    - struct.pack
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - base64.encodebytes.decode
    - websocket._abnf.continuous_frame.__init__
    - threading.Thread
    - websocket._core.WebSocket._send
    - host.lower
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    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:
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - wsaccel.xormask.XorMaskerSimple.process
    - int.from_bytes
    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 0x7f1dc2f83910>
    - <ast.Constant object at 0x7f1dc2f83be0>
    - <ast.Constant object at 0x7f1dc2f83310>
    - <ast.Constant object at 0x7f1dc2f83640>
    - <ast.Name object at 0x7f1dc2f831f0>
    - <ast.Constant object at 0x7f1dc2f83ee0>
    - <ast.Constant object at 0x7f1dc2f833d0>
    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 0x7f1dc2bc4e50>
    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:
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._utils.validate_utf8
    - <builtin>.int
    - websocket._utils._decode
    - <builtin>.isinstance
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._utils._validate_utf8
    - <builtin>.len
    - struct.unpack
    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
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._utils._decode
    - <builtin>.int
    - websocket._utils._validate_utf8
    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: 210
    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>.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: <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: 273
    functionName: websocket._abnf.ABNF._get_masked
    functionSourceFile: websocket._abnf
    functionUses: 42
    functionsReached:
    - array.array
    - data.encode
    - mask_key.encode
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - <builtin>.isinstance
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    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: 282
    functionName: websocket._abnf.ABNF.mask
    functionSourceFile: websocket._abnf
    functionUses: 43
    functionsReached:
    - array.array
    - data.encode
    - mask_key.encode
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.isinstance
    - websocket._abnf._mask
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    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: 320
    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: 325
    functionName: websocket._abnf.frame_buffer.needs_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: 328
    functionName: websocket._abnf.frame_buffer.recv_header
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send
    - <builtin>.sum
    - array.array
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.format
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForTrace
    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: 10
    functionLinenumber: 407
    functionName: websocket._abnf.frame_buffer.recv_strict
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send
    - <builtin>.sum
    - array.array
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.format
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForTrace
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: 342
    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: 348
    functionName: websocket._abnf.frame_buffer.needs_length
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 351
    functionName: websocket._abnf.frame_buffer.recv_length
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send
    - <builtin>.sum
    - array.array
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.format
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - struct.unpack
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForTrace
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    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: 365
    functionName: websocket._abnf.frame_buffer.needs_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: 368
    functionName: websocket._abnf.frame_buffer.recv_mask
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF._get_masked
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.recv
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.recv_header
    - websocket._dispatcher.DispatcherBase.send
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send
    - <builtin>.sum
    - array.array
    - int.from_bytes
    - websocket._core.WebSocket.pong
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.format
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.needs_length
    - websocket._core.WebSocket.send_close
    - struct.unpack
    - websocket._dispatcher.WrappedDispatcher.send
    - data.encode
    - mask_key.encode
    - websocket._logging.trace
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.clear
    - websocket._utils._decode
    - _logger.debug
    - websocket._core.WebSocket.recv_data
    - websocket._abnf._mask
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.validate
    - os.urandom
    - websocket._abnf.frame_buffer.has_mask
    - struct.pack
    - websocket._core.WebSocket.recv_frame
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.frame_buffer.recv_length
    - payload.encode
    - <builtin>.int
    - data_received.decode
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._send
    - <builtin>.repr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForTrace
    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: 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
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._utils._decode
    - <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: 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>.isinstance
    - <builtin>.len
    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: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - addr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: websocket._url._is_ip_address
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - ipaddress.ip_address
    linkageType: pythonLinkage
    raised:
    - TypeError
    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: ipaddress.ip_address
    functionSourceFile: ipaddress
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - hostname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: websocket._url._is_subnet_address
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - ipaddress.ip_network
    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: ipaddress.ip_network
    functionSourceFile: ipaddress
    functionUses: 6
    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: 95
    functionName: websocket._url._is_address_in_network
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - ipaddress.ip_network
    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
    - websocket._url._is_ip_address
    - os.environ.get
    - ipaddress.ip_network
    - <builtin>.any
    - v.split
    - <builtin>.isinstance
    - websocket._url._is_subnet_address
    - domain.lstrip
    - ipaddress.ip_address
    - domain.startswith
    - hostname.endswith
    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: 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: 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 0x7f1dc294e7f0>
    - <ast.Constant object at 0x7f1dc294e8b0>
    - <ast.Constant object at 0x7f1dc294e070>
    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: 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:
    - argparse.ArgumentParser
    - parser.add_argument
    - encoding.lower
    - <builtin>.map
    - websocket._wsdump.RawInput.raw_input
    - args.headers.split
    - <builtin>.isinstance
    - time.sleep
    - <builtin>.getattr
    - thread.start
    - websocket._wsdump.main
    - ws.send
    - <builtin>.input
    - websocket._wsdump.get_encoding
    - code.InteractiveConsole.__init__
    - urllib.parse.urlparse
    - websocket._wsdump.InteractiveConsole.read
    - line.decode
    - websocket._wsdump.NonInteractive.read
    - websocket.enableTrace
    - time.time
    - <builtin>.list
    - threading.Thread
    - websocket.create_connection
    - <builtin>.print
    - parser.parse_args
    - websocket._wsdump.parse_args
    - line.encode
    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:
    - <builtin>.getattr
    - encoding.lower
    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 0x7f1dc2a498e0>
    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:
    - argparse.ArgumentParser
    - parser.add_argument
    - parser.parse_args
    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 0x7f1dc2b7f460>
    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:
    - <builtin>.isinstance
    - <builtin>.input
    - line.decode
    - line.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: <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:
    - websocket._wsdump.RawInput.raw_input
    - line.decode
    - <builtin>.isinstance
    - <builtin>.input
    - line.encode
    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:
    - websocket._wsdump.RawInput.raw_input
    - line.decode
    - <builtin>.isinstance
    - <builtin>.input
    - line.encode
    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:
    - argparse.ArgumentParser
    - parser.add_argument
    - <builtin>.map
    - websocket._wsdump.RawInput.raw_input
    - args.headers.split
    - <builtin>.isinstance
    - time.sleep
    - thread.start
    - ws.send
    - <builtin>.input
    - code.InteractiveConsole.__init__
    - urllib.parse.urlparse
    - websocket._wsdump.InteractiveConsole.read
    - line.decode
    - websocket._wsdump.NonInteractive.read
    - websocket.enableTrace
    - time.time
    - <builtin>.list
    - threading.Thread
    - websocket.create_connection
    - <builtin>.print
    - parser.parse_args
    - websocket._wsdump.parse_args
    - line.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: 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>.map
    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.pong
    - ws.send_close
    - ws.recv_frame
    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:
    - zlib.decompress
    - time.time
    - sys.stdout.write
    - ws.pong
    - sys.stdout.flush
    - websocket._wsdump.NonInteractive.write
    - ws.recv_frame
    - ws.send_close
    - <builtin>.isinstance
    - websocket._wsdump.InteractiveConsole.write
    - <builtin>.repr
    - <builtin>.str
    - <builtin>.len
    - websocket.ABNF.OPCODE_MAP.get
    - gzip.decompress
    - websocket._wsdump.main.recv
    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:
    - DEFAULT_SOCKET_OPTION.append
    - <builtin>.hasattr
    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: 68
    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: 81
    functionName: websocket._socket.getdefaulttimeout
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 93
    functionName: websocket._socket.recv
    functionSourceFile: websocket._socket
    functionUses: 1
    functionsReached:
    - sel.select
    - sel.close
    - websocket._utils.extract_error_code
    - selectors.DefaultSelector
    - websocket._socket.recv._recv
    - <builtin>.isinstance
    - websocket._utils.extract_err_message
    - sel.register
    - <builtin>.len
    - sock.gettimeout
    - sock.recv
    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: 97
    functionName: websocket._socket.recv._recv
    functionSourceFile: websocket._socket
    functionUses: 2
    functionsReached:
    - sel.select
    - sel.close
    - websocket._utils.extract_error_code
    - selectors.DefaultSelector
    - <builtin>.isinstance
    - sel.register
    - <builtin>.len
    - sock.gettimeout
    - sock.recv
    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: sock.recv
    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: 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: 148
    functionName: websocket._socket.recv_line
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - line.append
    - sel.select
    - sel.close
    - websocket._utils.extract_error_code
    - selectors.DefaultSelector
    - websocket._socket.recv._recv
    - <builtin>.isinstance
    - websocket._utils.extract_err_message
    - websocket._socket.recv
    - sel.register
    - <builtin>.len
    - sock.gettimeout
    - sock.recv
    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: 158
    functionName: websocket._socket.send
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - data.encode
    - sock.send
    - sel.select
    - sel.close
    - websocket._utils.extract_error_code
    - selectors.DefaultSelector
    - <builtin>.isinstance
    - websocket._utils.extract_err_message
    - websocket._socket.send._send
    - sel.register
    - <builtin>.len
    - sock.gettimeout
    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: 165
    functionName: websocket._socket.send._send
    functionSourceFile: websocket._socket
    functionUses: 1
    functionsReached:
    - sel.select
    - sel.close
    - websocket._utils.extract_error_code
    - selectors.DefaultSelector
    - <builtin>.isinstance
    - sock.send
    - sel.register
    - <builtin>.len
    - sock.gettimeout
    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_url':
  - 38
  - 39
  '...fuzz_url.TestOneInput':
  - 25
  - 23
  '...fuzz_url.main':
  - 33
  - 34
  - 35
  websocket:
  - 1
  websocket._abnf:
  - 11
  websocket._abnf.ABNF:
  - 107
  websocket._abnf.ABNF.__init__:
  - 156
  - 165
  websocket._abnf.ABNF.__str__:
  - 214
  websocket._abnf.ABNF._get_masked:
  - 274
  - 276
  - 277
  websocket._abnf.ABNF.create_frame:
  - 233
  - 234
  - 219
  - 236
  websocket._abnf.ABNF.format:
  - 257
  - 258
  - 259
  - 260
  - 261
  - 263
  - 264
  - 266
  - 267
  - 268
  - 270
  - 239
  - 271
  - 242
  - 244
  - 246
  - 247
  - 250
  websocket._abnf.ABNF.mask:
  - 293
  - 296
  - 297
  - 299
  - 300
  - 302
  - 283
  websocket._abnf.ABNF.validate:
  - 193
  - 196
  - 202
  - 171
  - 203
  - 205
  - 206
  - 178
  - 181
  - 184
  - 187
  - 188
  - 189
  - 191
  websocket._abnf._mask:
  - 38
  - 46
  - 47
  - 48
  - 51
  websocket._abnf.continuous_frame.add:
  - 456
  - 460
  - 453
  websocket._abnf.continuous_frame.extract:
  - 472
  - 480
  - 468
  - 477
  websocket._abnf.continuous_frame.validate:
  - 444
  - 446
  websocket._abnf.frame_buffer.__init__:
  - 317
  - 318
  websocket._abnf.frame_buffer.has_mask:
  - 343
  websocket._abnf.frame_buffer.recv_frame:
  - 386
  - 387
  - 391
  - 393
  - 394
  - 395
  - 397
  - 400
  - 402
  - 403
  - 374
  - 375
  - 376
  - 381
  - 382
  websocket._abnf.frame_buffer.recv_header:
  - 329
  websocket._abnf.frame_buffer.recv_length:
  - 352
  - 356
  - 357
  - 358
  - 359
  - 360
  - 361
  websocket._abnf.frame_buffer.recv_mask:
  - 369
  websocket._abnf.frame_buffer.recv_strict:
  - 418
  - 419
  - 420
  - 421
  - 426
  - 428
  - 408
  - 410
  websocket._app:
  - 19
  websocket._app.WebSocketApp:
  - 49
  websocket._app.WebSocketApp.__init__:
  - 160
  - 163
  - 170
  - 78
  - 159
  websocket._app.WebSocketApp._callback:
  - 611
  - 613
  - 616
  - 619
  - 620
  websocket._app.WebSocketApp._get_close_args:
  - 588
  - 594
  - 598
  - 599
  - 603
  - 604
  websocket._app.WebSocketApp._send_ping:
  - 240
  - 242
  - 244
  - 245
  - 246
  - 248
  - 249
  - 251
  websocket._app.WebSocketApp._start_ping_thread:
  - 216
  - 212
  - 213
  - 214
  websocket._app.WebSocketApp._stop_ping_thread:
  - 225
  - 226
  - 237
  - 219
  - 220
  - 221
  - 222
  websocket._app.WebSocketApp.close:
  - 208
  - 203
  - 207
  websocket._app.WebSocketApp.create_dispatcher:
  - 580
  - 581
  - 583
  - 584
  - 585
  websocket._app.WebSocketApp.run_forever:
  - 276
  - 550
  - 551
  - 552
  - 556
  - 557
  - 559
  - 560
  - 562
  - 564
  - 565
  - 567
  - 569
  - 329
  - 332
  - 334
  - 336
  - 338
  - 340
  - 342
  websocket._app.WebSocketApp.run_forever.check:
  - 482
  - 484
  - 493
  websocket._app.WebSocketApp.run_forever.closed:
  - 514
  - 515
  - 516
  websocket._app.WebSocketApp.run_forever.handleDisconnect:
  - 544
  - 546
  - 547
  - 529
  - 530
  - 531
  - 533
  - 534
  - 538
  - 539
  - 540
  - 541
  - 542
  websocket._app.WebSocketApp.run_forever.initialize_socket:
  - 388
  - 389
  - 422
  - 391
  - 424
  - 425
  - 427
  - 428
  - 430
  - 432
  - 401
  - 403
  - 405
  - 440
  websocket._app.WebSocketApp.run_forever.read:
  - 443
  - 444
  - 447
  - 451
  - 457
  - 458
  - 462
  - 463
  - 464
  - 465
  - 466
  - 467
  - 468
  - 469
  - 470
  - 471
  - 474
  - 475
  - 476
  - 477
  websocket._app.WebSocketApp.run_forever.teardown:
  - 352
  - 385
  - 365
  - 369
  - 372
  - 379
  - 381
  websocket._app.WebSocketApp.send:
  - 185
  - 173
  websocket._app.WebSocketApp.send_bytes:
  - 196
  - 199
  websocket._app.WebSocketApp.send_text:
  - 192
  - 189
  websocket._cookiejar:
  - 4
  websocket._cookiejar.SimpleCookieJar.add:
  - 32
  - 33
  - 34
  - 36
  - 37
  - 38
  - 39
  - 40
  - 29
  - 30
  websocket._cookiejar.SimpleCookieJar.get:
  - 65
  - 68
  - 69
  - 53
  - 57
  - 58
  - 59
  - 60
  - 62
  - 63
  websocket._cookiejar.SimpleCookieJar.set:
  - 43
  - 44
  - 46
  - 47
  - 48
  - 50
  websocket._core:
  - 22
  websocket._core.WebSocket:
  - 196
  - 45
  - 174
  - 213
  - 185
  websocket._core.WebSocket.__init__:
  - 101
  - 108
  - 109
  - 112
  - 113
  - 114
  - 116
  - 117
  - 93
  websocket._core.WebSocket.__iter__:
  - 120
  - 124
  websocket._core.WebSocket.__next__:
  - 127
  websocket._core.WebSocket._recv:
  - 584
  - 581
  - 583
  websocket._core.WebSocket._send:
  - 576
  - 577
  - 573
  - 575
  websocket._core.WebSocket.abort:
  - 560
  - 561
  - 557
  websocket._core.WebSocket.close:
  - 517
  - 519
  - 524
  - 525
  - 527
  - 528
  - 529
  - 530
  - 532
  - 533
  - 535
  - 536
  - 537
  - 538
  - 539
  - 540
  - 548
  - 549
  - 550
  - 554
  - 504
  websocket._core.WebSocket.connect:
  - 262
  - 263
  - 264
  - 268
  - 269
  - 270
  - 272
  - 273
  - 276
  - 277
  - 279
  - 216
  - 284
  - 285
  websocket._core.WebSocket.fileno:
  - 133
  websocket._core.WebSocket.getheaders:
  - 202
  - 199
  websocket._core.WebSocket.getstatus:
  - 188
  - 191
  websocket._core.WebSocket.getsubprotocol:
  - 177
  - 180
  websocket._core.WebSocket.gettimeout:
  - 151
  websocket._core.WebSocket.is_ssl:
  - 209
  websocket._core.WebSocket.next:
  - 130
  websocket._core.WebSocket.ping:
  - 361
  - 370
  - 371
  - 369
  websocket._core.WebSocket.pong:
  - 384
  - 382
  - 374
  - 383
  websocket._core.WebSocket.recv:
  - 387
  - 395
  - 396
  - 398
  - 399
  - 400
  - 402
  websocket._core.WebSocket.recv_data:
  - 409
  - 423
  websocket._core.WebSocket.recv_data_frame:
  - 427
  - 444
  - 445
  - 446
  - 447
  - 448
  - 452
  - 457
  - 458
  - 460
  - 461
  - 463
  - 464
  - 466
  - 467
  - 468
  - 471
  - 473
  - 474
  websocket._core.WebSocket.recv_frame:
  - 485
  - 478
  websocket._core.WebSocket.send:
  - 304
  - 290
  - 303
  websocket._core.WebSocket.send_binary:
  - 358
  - 350
  websocket._core.WebSocket.send_bytes:
  - 313
  - 316
  websocket._core.WebSocket.send_close:
  - 488
  - 498
  - 501
  websocket._core.WebSocket.send_frame:
  - 335
  - 337
  - 338
  - 339
  - 340
  - 341
  - 344
  - 319
  websocket._core.WebSocket.send_text:
  - 307
  - 310
  websocket._core.WebSocket.set_mask_key:
  - 136
  websocket._core.WebSocket.settimeout:
  - 162
  - 171
  - 172
  websocket._core.WebSocket.shutdown:
  - 568
  - 564
  - 567
  websocket._core.create_connection:
  - 650
  - 651
  - 652
  - 653
  - 654
  - 591
  - 655
  - 663
  - 664
  websocket._dispatcher:
  - 12
  - 7
  websocket._dispatcher.Dispatcher:
  - 63
  websocket._dispatcher.Dispatcher.read:
  - 73
  - 75
  - 76
  - 79
  - 80
  - 82
  - 84
  websocket._dispatcher.DispatcherBase:
  - 32
  websocket._dispatcher.DispatcherBase.reconnect:
  - 49
  - 50
  - 52
  - 53
  - 55
  websocket._dispatcher.DispatcherBase.send:
  - 59
  websocket._dispatcher.DispatcherBase.timeout:
  - 43
  - 44
  - 45
  websocket._dispatcher.SSLDispatcher:
  - 88
  websocket._dispatcher.SSLDispatcher.read:
  - 98
  - 101
  - 102
  - 105
  - 106
  - 108
  - 110
  websocket._dispatcher.SSLDispatcher.select:
  - 113
  - 123
  - 116
  - 121
  websocket._dispatcher.WrappedDispatcher:
  - 129
  websocket._dispatcher.WrappedDispatcher.__init__:
  - 144
  websocket._dispatcher.WrappedDispatcher.read:
  - 152
  - 153
  - 154
  websocket._dispatcher.WrappedDispatcher.reconnect:
  - 164
  websocket._dispatcher.WrappedDispatcher.send:
  - 157
  - 158
  websocket._dispatcher.WrappedDispatcher.timeout:
  - 161
  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:
  - 209
  - 210
  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
  - 150
  - 152
  - 153
  - 155
  websocket._handshake._pack_hostname:
  - 78
  websocket._handshake._validate:
  - 192
  - 194
  - 196
  - 197
  - 199
  - 200
  - 202
  - 176
  - 177
  - 178
  - 180
  - 181
  - 184
  - 185
  - 186
  - 187
  - 189
  - 191
  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:
  - 325
  - 327
  - 328
  - 330
  - 331
  - 334
  - 336
  - 337
  - 341
  - 344
  - 345
  websocket._http._start_proxied_socket:
  - 98
  - 102
  - 106
  - 109
  - 115
  - 84
  - 117
  - 118
  - 119
  - 89
  - 91
  - 95
  websocket._http._tunnel:
  - 356
  - 358
  - 360
  - 363
  - 365
  - 368
  - 372
  - 351
  websocket._http._wrap_sni_socket:
  - 258
  - 260
  - 265
  - 267
  - 269
  - 270
  - 280
  - 286
  - 287
  - 289
  - 291
  - 294
  - 297
  - 302
  - 309
  - 311
  - 315
  - 317
  - 318
  - 239
  - 240
  - 241
  - 246
  - 247
  - 250
  - 251
  - 252
  - 253
  - 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:
  - 385
  - 386
  - 387
  - 389
  - 390
  - 391
  - 392
  - 393
  - 396
  - 397
  - 400
  - 401
  - 402
  - 403
  - 405
  - 407
  - 409
  - 382
  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:
  - 82
  websocket._socket.recv:
  - 131
  - 134
  - 135
  - 140
  - 142
  - 124
  - 125
  - 94
  - 127
  websocket._socket.recv._recv:
  - 99
  - 104
  - 105
  - 110
  - 111
  - 113
  - 114
  - 116
  - 117
  websocket._socket.recv_line:
  - 152
  - 153
  - 155
  - 151
  websocket._socket.send:
  - 160
  - 159
  - 162
  - 193
  - 195
  - 198
  - 199
  - 190
  - 191
  websocket._socket.send._send:
  - 167
  - 173
  - 174
  - 176
  - 179
  - 180
  - 182
  - 183
  - 185
  - 186
  websocket._socket.setdefaulttimeout:
  - 69
  websocket._socket.sock_opt.__init__:
  - 59
  - 61
  websocket._ssl_compat:
  - 1
  - 22
  websocket._url:
  - 7
  websocket._url._is_address_in_network:
  - 97
  websocket._url._is_ip_address:
  - 76
  - 79
  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
  websocket._url.get_proxy_info:
  - 166
  - 169
  - 170
  - 140
  - 177
  - 180
  - 181
  - 183
  websocket._url.parse_url:
  - 64
  - 69
  - 39
  - 42
  - 44
  - 45
  - 50
  - 54
  - 55
  - 57
  - 59
  - 30
  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_url.py
Inheritance:
  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_url'
