All classes:
- jwt.exceptions.PyJWTError
- jwt.exceptions.InvalidTokenError
- jwt.exceptions.DecodeError
- jwt.exceptions.InvalidSignatureError
- jwt.exceptions.ExpiredSignatureError
- jwt.exceptions.InvalidAudienceError
- jwt.exceptions.InvalidIssuerError
- jwt.exceptions.InvalidIssuedAtError
- jwt.exceptions.ImmatureSignatureError
- jwt.exceptions.InvalidKeyError
- jwt.exceptions.InvalidAlgorithmError
- jwt.exceptions.MissingRequiredClaimError
- jwt.exceptions.PyJWKError
- jwt.exceptions.MissingCryptographyError
- jwt.exceptions.PyJWKSetError
- jwt.exceptions.PyJWKClientError
- jwt.exceptions.PyJWKClientConnectionError
- jwt.exceptions.InvalidSubjectError
- jwt.exceptions.InvalidJTIError
- jwt.algorithms.Algorithm
- jwt.algorithms.NoneAlgorithm
- jwt.algorithms.HMACAlgorithm
- jwt.algorithms.RSAAlgorithm
- jwt.algorithms.ECAlgorithm
- jwt.algorithms.RSAPSSAlgorithm
- jwt.algorithms.OKPAlgorithm
- jwt.api_jwk.PyJWK
- jwt.api_jwk.PyJWKSet
- jwt.api_jwk.PyJWTSetWithTimestamp
- jwt.warnings.RemovedInPyjwt3Warning
- jwt.api_jws.PyJWS
- jwt.api_jwt.PyJWT
- jwt.jwk_set_cache.JWKSetCache
- jwt.jwks_client.PyJWKClient
- flask.wrappers.Request
- flask.config.ConfigAttribute
- flask.config.Config
- flask.json.tag.JSONTag
- flask.json.tag.TagDict
- flask.json.tag.PassDict
- flask.json.tag.TagTuple
- flask.json.tag.PassList
- flask.json.tag.TagBytes
- flask.json.tag.TagMarkup
- flask.json.tag.TagUUID
- flask.json.tag.TagDateTime
- flask.json.tag.TaggedJSONSerializer
- flask.sessions.SessionMixin
- flask.sessions.SecureCookieSession
- flask.sessions.NullSession
- flask.sessions.SessionInterface
- flask.sessions.SecureCookieSessionInterface
- flask.ctx._AppCtxGlobals
- flask.ctx.AppContext
- flask.ctx.RequestContext
- flask.json.provider.JSONProvider
- flask.json.provider.DefaultJSONProvider
- flask.testing.EnvironBuilder
- flask.testing.FlaskClient
- flask.testing.FlaskCliRunner
- flask.sansio.app.App
- flask.templating.Environment
- flask.templating.DispatchingJinjaLoader
- flask.sansio.scaffold.Scaffold
- flask.sansio.blueprints.BlueprintSetupState
- flask.sansio.blueprints.Blueprint
- flask.blueprints.Blueprint
- flask.debughelpers.UnexpectedUnicodeError
- flask.debughelpers.DebugFilesKeyError
- flask.debughelpers.FormDataRoutingRedirect
- flask.debughelpers.attach_enctype_error_multidict.newcls
- flask.wrappers.Response
- flask.cli.NoAppException
- flask.cli.ScriptInfo
- flask.cli.AppGroup
- flask.cli.FlaskGroup
- flask.cli.CertParamType
- flask.cli.SeparatedPathType
- flask.app.Flask
- flask_jwt_extended.exceptions.JWTExtendedException
- flask_jwt_extended.exceptions.JWTDecodeError
- flask_jwt_extended.exceptions.InvalidHeaderError
- flask_jwt_extended.exceptions.InvalidQueryParamError
- flask_jwt_extended.exceptions.NoAuthorizationError
- flask_jwt_extended.exceptions.CSRFError
- flask_jwt_extended.exceptions.WrongTokenError
- flask_jwt_extended.exceptions.RevokedTokenError
- flask_jwt_extended.exceptions.FreshTokenRequired
- flask_jwt_extended.exceptions.UserLookupError
- flask_jwt_extended.exceptions.UserClaimsVerificationError
- flask_jwt_extended.internal_utils.JSONEncoder
- flask_jwt_extended.config._Config
- flask_jwt_extended.jwt_manager.JWTManager
- flask.views.View
- flask.views.MethodView
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_jwt'
    functionSourceFile: '...fuzz_jwt'
    functionUses: 0
    functionsReached:
    - atheris.Setup
    - atheris.instrument_all
    - atheris.Fuzz
    - '...fuzz_jwt.main'
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - key
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 29
    functionName: '...fuzz_jwt.get_app'
    functionSourceFile: '...fuzz_jwt'
    functionUses: 3
    functionsReached:
    - flask_jwt_extended.view_decorators.jwt_required.wrapper
    - flask.sansio.scaffold._endpoint_from_view_func
    - <builtin>.super
    - item.upper
    - flask.sansio.scaffold.Scaffold.route.decorator
    - flask_jwt_extended.view_decorators.jwt_required
    - flask_jwt_extended.jwt_manager.JWTManager.init_app
    - app.config.setdefault
    - werkzeug.routing.Rule
    - functools.wraps
    - weakref.ref
    - <builtin>.getattr
    - options.pop
    - flask.sansio.scaffold.Scaffold.errorhandler.decorator
    - <builtin>.set
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - flask.sansio.scaffold.Scaffold.route
    - <builtin>.bool
    - flask.app.Flask.__init__
    - flask.sansio.scaffold.Scaffold.errorhandler
    - cli.AppGroup
    - flask.sansio.scaffold.Scaffold.add_url_rule
    - datetime.timedelta
    - <builtin>.isinstance
    - <builtin>.issubclass
    - flask.sansio.scaffold.Scaffold.context_processor
    - flask_jwt_extended.jwt_manager.JWTManager._set_default_configuration_options
    - flask.sansio.app.App.add_url_rule
    - flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks
    - required_methods.add
    - <builtin>.hasattr
    - flask.sansio.scaffold.Scaffold.register_error_handler
    - flask_jwt_extended.jwt_manager.JWTManager.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd971b50>
    - <ast.Constant object at 0x7f68cd9717f0>
    - <ast.Constant object at 0x7f68cd971250>
    - <ast.Constant object at 0x7f68cd971bb0>
    - <ast.Constant object at 0x7f68cd971fa0>
    - <ast.Constant object at 0x7f68cd971c40>
    - <ast.Constant object at 0x7f68cd9710d0>
    - <ast.Constant object at 0x7f68cd971a00>
    - <ast.Constant object at 0x7f68cd971160>
    argNames:
    - self
    - import_name
    - static_url_path
    - static_folder
    - static_host
    - host_matching
    - subdomain_matching
    - template_folder
    - instance_path
    - instance_relative_config
    - root_path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 226
    functionName: flask.app.Flask.__init__
    functionSourceFile: flask.app
    functionUses: 4
    functionsReached:
    - <builtin>.set
    - required_methods.add
    - <builtin>.bool
    - cli.AppGroup
    - flask.sansio.scaffold._endpoint_from_view_func
    - item.upper
    - werkzeug.routing.Rule
    - <builtin>.super
    - <builtin>.isinstance
    - flask.sansio.app.App.add_url_rule
    - weakref.ref
    - <builtin>.getattr
    - options.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd9e5430>
    - <ast.Constant object at 0x7f68cd9e54f0>
    argNames:
    - self
    - app
    - add_context_processor
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 59
    functionName: flask_jwt_extended.jwt_manager.JWTManager.__init__
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 4
    functionsReached:
    - flask.sansio.scaffold.Scaffold.errorhandler.decorator
    - flask_jwt_extended.jwt_manager.JWTManager.init_app
    - app.config.setdefault
    - flask.sansio.scaffold.Scaffold.errorhandler
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - datetime.timedelta
    - <builtin>.hasattr
    - <builtin>.issubclass
    - <builtin>.isinstance
    - flask.sansio.scaffold.Scaffold.context_processor
    - flask_jwt_extended.jwt_manager.JWTManager._set_default_configuration_options
    - flask.sansio.scaffold.Scaffold.register_error_handler
    - flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - rule
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 336
    functionName: flask.sansio.scaffold.Scaffold.route
    functionSourceFile: ''
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 360
    functionName: flask.sansio.scaffold.Scaffold.route.decorator
    functionSourceFile: flask.sansio.scaffold
    functionUses: 4
    functionsReached:
    - options.pop
    - flask.sansio.scaffold.Scaffold.add_url_rule
    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 0x7f68ce331d00>
    - <ast.Constant object at 0x7f68cdf79910>
    - <ast.Constant object at 0x7f68cdf793a0>
    - <ast.Constant object at 0x7f68cdf799d0>
    - <ast.Constant object at 0x7f68cdf79220>
    - <ast.Constant object at 0x7f68cdf792b0>
    argNames:
    - optional
    - fresh
    - refresh
    - locations
    - verify_type
    - skip_revocation_check
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 121
    functionName: flask_jwt_extended.view_decorators.jwt_required
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fn
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 164
    functionName: flask_jwt_extended.view_decorators.jwt_required.wrapper
    functionSourceFile: flask_jwt_extended.view_decorators
    functionUses: 4
    functionsReached:
    - functools.wraps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 38
    functionName: '...fuzz_jwt.get_app.access_protected'
    functionSourceFile: '...fuzz_jwt'
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - flask.json.jsonify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 138
    functionName: flask.json.jsonify
    functionSourceFile: flask.json
    functionUses: 25
    functionsReached:
    - current_app.json.response
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 44
    functionName: '...fuzz_jwt.test_encodings'
    functionSourceFile: '...fuzz_jwt'
    functionUses: 1
    functionsReached:
    - flask.ctx.RequestContext.__init__
    - werkzeug.test.Client.application.config.get
    - flask_jwt_extended.view_decorators.jwt_required.wrapper
    - flask.sansio.scaffold._endpoint_from_view_func
    - <builtin>.super
    - flask.sansio.scaffold.Scaffold.route.decorator
    - item.upper
    - flask_jwt_extended.view_decorators.jwt_required
    - flask_jwt_extended.jwt_manager.JWTManager.init_app
    - builder.get_environ
    - flask_jwt_extended.utils.decode_token
    - app.config.setdefault
    - werkzeug.routing.Rule
    - werkzeug.wsgi.get_host
    - functools.wraps
    - flask.app.Flask.test_request_context
    - jwt_manager._encode_jwt_from_config
    - '...fuzz_jwt.get_app'
    - weakref.ref
    - <builtin>.getattr
    - flask.app.Flask.create_url_adapter
    - options.pop
    - builder.close
    - flask.sansio.scaffold.Scaffold.errorhandler.decorator
    - <builtin>.set
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - <builtin>.bool
    - flask.sansio.scaffold.Scaffold.route
    - flask.app.Flask.__init__
    - urllib.parse.urlsplit
    - flask.sansio.scaffold.Scaffold.errorhandler
    - cli.AppGroup
    - flask.sansio.scaffold.Scaffold.add_url_rule
    - datetime.timedelta
    - <builtin>.isinstance
    - <builtin>.issubclass
    - atheris.FuzzedDataProvider
    - flask.sansio.app.App.add_url_rule
    - fdp.ConsumeUnicodeNoSurrogates
    - flask.sansio.scaffold.Scaffold.context_processor
    - flask_jwt_extended.jwt_manager.JWTManager._set_default_configuration_options
    - flask_jwt_extended.jwt_manager.JWTManager.__init__
    - flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks
    - app.request_class
    - required_methods.add
    - app_root.lstrip
    - flask_jwt_extended.utils.create_access_token
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._decode_jwt_from_config
    - flask.testing.EnvironBuilder.__init__
    - <builtin>.hasattr
    - flask.sansio.scaffold.Scaffold.register_error_handler
    - flask.app.Flask.request_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: fdp.ConsumeUnicodeNoSurrogates
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1423
    functionName: flask.app.Flask.test_request_context
    functionSourceFile: flask.app
    functionUses: 3
    functionsReached:
    - flask.ctx.RequestContext.__init__
    - werkzeug.test.Client.application.config.get
    - builder.get_environ
    - <builtin>.bool
    - app_root.lstrip
    - urllib.parse.urlsplit
    - flask.testing.EnvironBuilder.__init__
    - <builtin>.super
    - werkzeug.wsgi.get_host
    - flask.app.Flask.create_url_adapter
    - flask.app.Flask.request_context
    - builder.close
    - app.request_class
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd568670>
    - <ast.Constant object at 0x7f68cd568dc0>
    - <ast.Constant object at 0x7f68cd568eb0>
    - <ast.Constant object at 0x7f68cd568100>
    argNames:
    - identity
    - fresh
    - expires_delta
    - additional_claims
    - additional_headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 131
    functionName: flask_jwt_extended.utils.create_access_token
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 3
    functionsReached:
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._encode_jwt_from_config
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd5684c0>
    - <ast.Constant object at 0x7f68cd5680a0>
    argNames:
    - encoded_token
    - csrf_value
    - allow_expired
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 104
    functionName: flask_jwt_extended.utils.decode_token
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 10
    functionsReached:
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._decode_jwt_from_config
    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: 8
    functionLinenumber: 52
    functionName: '...fuzz_jwt.test_get'
    functionSourceFile: '...fuzz_jwt'
    functionUses: 1
    functionsReached:
    - flask.ctx.RequestContext.__init__
    - werkzeug.test.Client.application.config.get
    - flask_jwt_extended.view_decorators.jwt_required.wrapper
    - flask.sansio.scaffold._endpoint_from_view_func
    - <builtin>.super
    - flask.sansio.scaffold.Scaffold.route.decorator
    - item.upper
    - flask_jwt_extended.view_decorators.jwt_required
    - flask.app.Flask.request_context
    - flask_jwt_extended.jwt_manager.JWTManager.init_app
    - builder.get_environ
    - app.config.setdefault
    - flask.app.Flask.test_client
    - importlib.metadata.version
    - werkzeug.routing.Rule
    - werkzeug.wsgi.get_host
    - functools.wraps
    - flask.app.Flask.test_request_context
    - jwt_manager._encode_jwt_from_config
    - '...fuzz_jwt.get_app'
    - weakref.ref
    - <builtin>.getattr
    - flask.app.Flask.create_url_adapter
    - options.pop
    - contextlib.ExitStack
    - builder.close
    - flask.sansio.scaffold.Scaffold.errorhandler.decorator
    - <builtin>.set
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - flask.sansio.scaffold.Scaffold.route
    - <builtin>.bool
    - flask.app.Flask.__init__
    - flask.testing.FlaskClient.__init__
    - urllib.parse.urlsplit
    - flask.sansio.scaffold.Scaffold.errorhandler
    - cli.AppGroup
    - flask.sansio.scaffold.Scaffold.add_url_rule
    - datetime.timedelta
    - <builtin>.isinstance
    - <builtin>.issubclass
    - response.get_json
    - atheris.FuzzedDataProvider
    - flask.sansio.app.App.add_url_rule
    - fdp.ConsumeUnicodeNoSurrogates
    - flask.sansio.scaffold.Scaffold.context_processor
    - flask_jwt_extended.jwt_manager.JWTManager._set_default_configuration_options
    - flask_jwt_extended.jwt_manager.JWTManager.__init__
    - flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks
    - app.request_class
    - required_methods.add
    - app_root.lstrip
    - flask_jwt_extended.utils.create_access_token
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - flask.testing.EnvironBuilder.__init__
    - <builtin>.hasattr
    - flask.sansio.scaffold.Scaffold.register_error_handler
    - flask.testing._get_werkzeug_version
    - test_client.get
    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: 4
    functionLinenumber: 57
    functionName: '...fuzz_jwt.test_get.custom'
    functionSourceFile: '...fuzz_jwt'
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.view_decorators._decode_jwt_from_request
    - flask_jwt_extended.internal_utils.verify_token_not_blocklisted
    - flask_jwt_extended.internal_utils.custom_verification_for_token
    - flask_jwt_extended.view_decorators._verify_token_is_fresh
    - jwt_manager._token_in_blocklist_callback
    - flask.json.jsonify
    - flask_jwt_extended.view_decorators._load_user
    - flask_jwt_extended.utils.decode_token
    - flask_jwt_extended.internal_utils.has_user_lookup
    - flask_jwt_extended.internal_utils.verify_token_type
    - flask_jwt_extended.utils.get_unverified_jwt_headers
    - jwt_manager._token_verification_callback
    - flask_jwt_extended.view_decorators.verify_jwt_in_request
    - datetime.datetime.now
    - jwt_manager._user_lookup_callback
    - <builtin>.isinstance
    - <builtin>.str
    - fdp.ConsumeUnicodeNoSurrogates
    - <builtin>.len
    - fdp.ConsumeBool
    - flask_jwt_extended.internal_utils.user_lookup
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._decode_jwt_from_config
    - get_encoded_token_functions.append
    - errors.append
    - current_app.json.response
    - datetime.datetime.timestamp
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.ConsumeBool
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd6601c0>
    - <ast.Constant object at 0x7f68cd660550>
    - <ast.Constant object at 0x7f68cd660e80>
    - <ast.Constant object at 0x7f68cd660910>
    - <ast.Constant object at 0x7f68cd6603d0>
    - <ast.Constant object at 0x7f68cd660d90>
    argNames:
    - optional
    - fresh
    - refresh
    - locations
    - verify_type
    - skip_revocation_check
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 45
    functionName: flask_jwt_extended.view_decorators.verify_jwt_in_request
    functionSourceFile: flask_jwt_extended.view_decorators
    functionUses: 2
    functionsReached:
    - flask_jwt_extended.view_decorators._decode_jwt_from_request
    - flask_jwt_extended.internal_utils.verify_token_not_blocklisted
    - flask_jwt_extended.internal_utils.custom_verification_for_token
    - flask_jwt_extended.view_decorators._verify_token_is_fresh
    - jwt_manager._token_in_blocklist_callback
    - flask_jwt_extended.view_decorators._load_user
    - flask_jwt_extended.utils.decode_token
    - flask_jwt_extended.internal_utils.has_user_lookup
    - flask_jwt_extended.internal_utils.verify_token_type
    - flask_jwt_extended.utils.get_unverified_jwt_headers
    - jwt_manager._token_verification_callback
    - datetime.datetime.now
    - jwt_manager._user_lookup_callback
    - <builtin>.isinstance
    - <builtin>.str
    - flask_jwt_extended.internal_utils.user_lookup
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._decode_jwt_from_config
    - get_encoded_token_functions.append
    - errors.append
    - <builtin>.len
    - datetime.datetime.timestamp
    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 0x7f68cd6de7c0>
    argNames:
    - self
    - use_cookies
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 669
    functionName: flask.app.Flask.test_client
    functionSourceFile: flask.app
    functionUses: 2
    functionsReached:
    - importlib.metadata.version
    - flask.testing.FlaskClient.__init__
    - <builtin>.super
    - flask.testing._get_werkzeug_version
    - contextlib.ExitStack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: test_client.get
    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: response.get_json
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 84
    functionName: '...fuzz_jwt.TestOneInput'
    functionSourceFile: '...fuzz_jwt'
    functionUses: 0
    functionsReached:
    - flask.ctx.RequestContext.__init__
    - werkzeug.test.Client.application.config.get
    - flask_jwt_extended.view_decorators.jwt_required.wrapper
    - flask.sansio.scaffold._endpoint_from_view_func
    - <builtin>.super
    - flask.sansio.scaffold.Scaffold.route.decorator
    - item.upper
    - flask_jwt_extended.view_decorators.jwt_required
    - flask.app.Flask.request_context
    - '...fuzz_jwt.test_get'
    - builder.get_environ
    - flask_jwt_extended.jwt_manager.JWTManager.init_app
    - flask.app.Flask.test_client
    - importlib.metadata.version
    - app.config.setdefault
    - flask_jwt_extended.utils.decode_token
    - werkzeug.routing.Rule
    - werkzeug.wsgi.get_host
    - functools.wraps
    - flask.app.Flask.test_request_context
    - jwt_manager._encode_jwt_from_config
    - '...fuzz_jwt.get_app'
    - weakref.ref
    - <builtin>.getattr
    - flask.app.Flask.create_url_adapter
    - options.pop
    - '...fuzz_jwt.test_encodings'
    - contextlib.ExitStack
    - builder.close
    - flask.sansio.scaffold.Scaffold.errorhandler.decorator
    - <builtin>.set
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - flask.sansio.scaffold.Scaffold.route
    - <builtin>.bool
    - flask.app.Flask.__init__
    - flask.testing.FlaskClient.__init__
    - urllib.parse.urlsplit
    - flask.sansio.scaffold.Scaffold.errorhandler
    - cli.AppGroup
    - flask.sansio.scaffold.Scaffold.add_url_rule
    - datetime.timedelta
    - <builtin>.isinstance
    - <builtin>.issubclass
    - response.get_json
    - atheris.FuzzedDataProvider
    - flask.sansio.app.App.add_url_rule
    - fdp.ConsumeUnicodeNoSurrogates
    - flask.sansio.scaffold.Scaffold.context_processor
    - flask_jwt_extended.jwt_manager.JWTManager._set_default_configuration_options
    - flask_jwt_extended.jwt_manager.JWTManager.__init__
    - flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks
    - app.request_class
    - fdp.ConsumeBool
    - required_methods.add
    - app_root.lstrip
    - flask_jwt_extended.utils.create_access_token
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._decode_jwt_from_config
    - flask.testing.EnvironBuilder.__init__
    - <builtin>.hasattr
    - flask.sansio.scaffold.Scaffold.register_error_handler
    - flask.testing._get_werkzeug_version
    - test_client.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 92
    functionName: '...fuzz_jwt.main'
    functionSourceFile: '...fuzz_jwt'
    functionUses: 1
    functionsReached:
    - atheris.instrument_all
    - atheris.Fuzz
    - atheris.Setup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.instrument_all
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Setup
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Fuzz
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt
    functionSourceFile: jwt
    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: 2
    functionLinenumber: -1
    functionName: jwt.api_jwt
    functionSourceFile: jwt.api_jwt
    functionUses: 0
    functionsReached:
    - jwt.api_jwt.PyJWT._get_default_options
    - jwt.api_jwt.PyJWT.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd73cfd0>
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 30
    functionName: jwt.api_jwt.PyJWT.__init__
    functionSourceFile: jwt.api_jwt
    functionUses: 1
    functionsReached:
    - jwt.api_jwt.PyJWT._get_default_options
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 36
    functionName: jwt.api_jwt.PyJWT._get_default_options
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd522fd0>
    - <ast.Constant object at 0x7f68cd522430>
    - <ast.Constant object at 0x7f68cd522610>
    - <ast.Constant object at 0x7f68cd522760>
    argNames:
    - self
    - payload
    - key
    - algorithm
    - headers
    - json_encoder
    - sort_headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 49
    functionName: jwt.api_jwt.PyJWT.encode
    functionSourceFile: jwt.api_jwt
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - json.dumps
    - jwt.api_jwt.PyJWT._encode_payload
    - payload.copy
    - calendar.timegm
    - payload.get
    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: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 111
    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: payload.copy
    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: payload.get
    functionSourceFile: <builtin>
    functionUses: 8
    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: calendar.timegm
    functionSourceFile: calendar
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd567dc0>
    - <ast.Constant object at 0x7f68cd5670a0>
    argNames:
    - self
    - payload
    - headers
    - json_encoder
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 87
    functionName: jwt.api_jwt.PyJWT._encode_payload
    functionSourceFile: jwt.api_jwt
    functionUses: 1
    functionsReached:
    - json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: json.dumps
    functionSourceFile: json
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 11
    IfCount: 3
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd4d4ca0>
    - <ast.Constant object at 0x7f68cd4d41c0>
    - <ast.Constant object at 0x7f68cd4d4b80>
    - <ast.Constant object at 0x7f68cd4d4400>
    - <ast.Constant object at 0x7f68cd4d4640>
    - <ast.Constant object at 0x7f68cd4d4340>
    - <ast.Constant object at 0x7f68cd4d49d0>
    - <ast.Constant object at 0x7f68cd4d4730>
    - <ast.Constant object at 0x7f68cd4d4ee0>
    argNames:
    - self
    - jwt
    - key
    - algorithms
    - options
    - verify
    - detached_payload
    - audience
    - issuer
    - subject
    - leeway
    - kwargs
    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
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 105
    functionName: jwt.api_jwt.PyJWT.decode_complete
    functionSourceFile: jwt.api_jwt
    functionUses: 2
    functionsReached:
    - jwt.api_jwt.PyJWT._validate_iat
    - jwt.api_jwt.PyJWT._validate_required_claims
    - <builtin>.any
    - leeway.total_seconds
    - warnings.warn
    - jwt.api_jwt.PyJWT._validate_nbf
    - kwargs.keys
    - jwt.api_jwt.PyJWT._validate_iss
    - <builtin>.dict
    - <builtin>.int
    - <builtin>.tuple
    - json.loads
    - payload.get
    - datetime.datetime.now
    - jwt.api_jwt.PyJWT._validate_jti
    - jwt.api_jwt.PyJWT._validate_exp
    - <builtin>.isinstance
    - jwt.api_jwt.PyJWT._validate_sub
    - options.get
    - jwt.api_jwt.PyJWT._decode_payload
    - jwt.api_jwt.PyJWT._validate_aud
    - options.setdefault
    - jwt.api_jwt.PyJWT._validate_claims
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.keys
    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: <builtin>.tuple
    functionSourceFile: <builtin>
    functionUses: 6
    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: warnings.warn
    functionSourceFile: warnings
    functionUses: 6
    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>.dict
    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: options.setdefault
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - decoded
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 179
    functionName: jwt.api_jwt.PyJWT._decode_payload
    functionSourceFile: jwt.api_jwt
    functionUses: 3
    functionsReached:
    - json.loads
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - DecodeError
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 8
    IfCount: 9
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd47ec10>
    - <ast.Constant object at 0x7f68cd47edf0>
    - <ast.Constant object at 0x7f68cd47e700>
    - <ast.Constant object at 0x7f68cd47e2b0>
    argNames:
    - self
    - payload
    - options
    - audience
    - issuer
    - subject
    - leeway
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 236
    functionName: jwt.api_jwt.PyJWT._validate_claims
    functionSourceFile: jwt.api_jwt
    functionUses: 3
    functionsReached:
    - jwt.api_jwt.PyJWT._validate_nbf
    - jwt.api_jwt.PyJWT._validate_aud
    - datetime.datetime.now
    - jwt.api_jwt.PyJWT._validate_iss
    - jwt.api_jwt.PyJWT._validate_iat
    - jwt.api_jwt.PyJWT._validate_jti
    - jwt.api_jwt.PyJWT._validate_exp
    - <builtin>.isinstance
    - leeway.total_seconds
    - jwt.api_jwt.PyJWT._validate_required_claims
    - jwt.api_jwt.PyJWT._validate_sub
    - <builtin>.int
    - <builtin>.any
    - options.get
    - payload.get
    - <builtin>.all
    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: json.loads
    functionSourceFile: json
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd4ce0d0>
    - <ast.Constant object at 0x7f68cd4ce610>
    - <ast.Constant object at 0x7f68cd4ce6d0>
    - <ast.Constant object at 0x7f68cd4ce9a0>
    - <ast.Constant object at 0x7f68cd4cea30>
    - <ast.Constant object at 0x7f68cd4cea90>
    - <ast.Constant object at 0x7f68cd4cee20>
    - <ast.Constant object at 0x7f68cd4cef40>
    - <ast.Constant object at 0x7f68cd4ced00>
    argNames:
    - self
    - jwt
    - key
    - algorithms
    - options
    - verify
    - detached_payload
    - audience
    - subject
    - issuer
    - leeway
    - kwargs
    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
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 195
    functionName: jwt.api_jwt.PyJWT.decode
    functionSourceFile: jwt.api_jwt
    functionUses: 0
    functionsReached:
    - jwt.api_jwt.PyJWT._validate_iat
    - jwt.api_jwt.PyJWT._validate_required_claims
    - <builtin>.any
    - leeway.total_seconds
    - warnings.warn
    - jwt.api_jwt.PyJWT._validate_nbf
    - jwt.api_jwt.PyJWT.decode_complete
    - kwargs.keys
    - jwt.api_jwt.PyJWT._validate_iss
    - <builtin>.dict
    - <builtin>.int
    - <builtin>.tuple
    - json.loads
    - payload.get
    - datetime.datetime.now
    - jwt.api_jwt.PyJWT._validate_jti
    - jwt.api_jwt.PyJWT._validate_exp
    - <builtin>.isinstance
    - jwt.api_jwt.PyJWT._validate_sub
    - options.get
    - jwt.api_jwt.PyJWT._decode_payload
    - jwt.api_jwt.PyJWT._validate_aud
    - options.setdefault
    - jwt.api_jwt.PyJWT._validate_claims
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: leeway.total_seconds
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - payload
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 278
    functionName: jwt.api_jwt.PyJWT._validate_required_claims
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - payload.get
    linkageType: pythonLinkage
    raised:
    - MissingRequiredClaimError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: datetime.datetime.now
    functionSourceFile: datetime
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - payload
    - now
    - leeway
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 320
    functionName: jwt.api_jwt.PyJWT._validate_iat
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - InvalidIssuedAtError
    - ImmatureSignatureError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - payload
    - now
    - leeway
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 335
    functionName: jwt.api_jwt.PyJWT._validate_nbf
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - ImmatureSignatureError
    - DecodeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - payload
    - now
    - leeway
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 349
    functionName: jwt.api_jwt.PyJWT._validate_exp
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - DecodeError
    - ExpiredSignatureError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - payload
    - issuer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 415
    functionName: jwt.api_jwt.PyJWT._validate_iss
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - InvalidIssuerError
    - MissingRequiredClaimError
    returnType: N/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: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 0
    IfCount: 12
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - payload
    - audience
    - strict
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 365
    functionName: jwt.api_jwt.PyJWT._validate_aud
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.any
    - <builtin>.all
    linkageType: pythonLinkage
    raised:
    - MissingRequiredClaimError
    - InvalidAudienceError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cda83d30>
    argNames:
    - self
    - payload
    - subject
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 287
    functionName: jwt.api_jwt.PyJWT._validate_sub
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - payload.get
    linkageType: pythonLinkage
    raised:
    - InvalidSubjectError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 306
    functionName: jwt.api_jwt.PyJWT._validate_jti
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - payload.get
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - InvalidJTIError
    returnType: N/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: 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>.any
    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>.all
    functionSourceFile: <builtin>
    functionUses: 10
    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: jwt.api_jwk
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 0
    IfCount: 15
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7b2bb0>
    argNames:
    - self
    - jwk_data
    - algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 19
    functionName: jwt.api_jwk.PyJWK.__init__
    functionSourceFile: jwt.api_jwk
    functionUses: 9
    functionsReached:
    - jwt.algorithms.HMACAlgorithm.__init__
    - <builtin>.isinstance
    - default_algorithms.update
    - abc.ABC.__init__
    - jwt.algorithms.get_default_algorithms
    linkageType: pythonLinkage
    raised:
    - PyJWKError
    - InvalidKeyError
    - MissingCryptographyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 105
    functionName: jwt.algorithms.get_default_algorithms
    functionSourceFile: jwt.algorithms
    functionUses: 12
    functionsReached:
    - default_algorithms.update
    - abc.ABC.__init__
    - jwt.algorithms.HMACAlgorithm.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68ce180af0>
    argNames:
    - obj
    - algorithm
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 73
    functionName: jwt.api_jwk.PyJWK.from_dict
    functionSourceFile: jwt.api_jwk
    functionUses: 1
    functionsReached:
    - jwt.algorithms.HMACAlgorithm.__init__
    - <builtin>.isinstance
    - default_algorithms.update
    - abc.ABC.__init__
    - jwt.api_jwk.PyJWK.__init__
    - jwt.algorithms.get_default_algorithms
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68ce180160>
    argNames:
    - data
    - algorithm
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 77
    functionName: jwt.api_jwk.PyJWK.from_json
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached:
    - jwt.api_jwk.PyJWK.from_dict
    - jwt.algorithms.HMACAlgorithm.__init__
    - <builtin>.isinstance
    - default_algorithms.update
    - abc.ABC.__init__
    - jwt.api_jwk.PyJWK.__init__
    - json.loads
    - jwt.algorithms.get_default_algorithms
    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: 82
    functionName: jwt.api_jwk.PyJWK.key_type
    functionSourceFile: jwt.api_jwk
    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: 86
    functionName: jwt.api_jwk.PyJWK.key_id
    functionSourceFile: jwt.api_jwk
    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: 90
    functionName: jwt.api_jwk.PyJWK.public_key_use
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - keys
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 95
    functionName: jwt.api_jwk.PyJWKSet.__init__
    functionSourceFile: jwt.api_jwk
    functionUses: 6
    functionsReached:
    - jwt.algorithms.HMACAlgorithm.__init__
    - <builtin>.isinstance
    - default_algorithms.update
    - abc.ABC.__init__
    - jwt.algorithms.get_default_algorithms
    - jwt.api_jwk.PyJWK.__init__
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - PyJWKSetError
    returnType: N/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: 54
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 119
    functionName: jwt.api_jwk.PyJWKSet.from_dict
    functionSourceFile: jwt.api_jwk
    functionUses: 5
    functionsReached:
    - jwt.algorithms.HMACAlgorithm.__init__
    - <builtin>.isinstance
    - jwt.algorithms.get_default_algorithms
    - default_algorithms.update
    - abc.ABC.__init__
    - jwt.api_jwk.PyJWK.__init__
    - <builtin>.len
    - obj.get
    - jwt.api_jwk.PyJWKSet.__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: obj.get
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 124
    functionName: jwt.api_jwk.PyJWKSet.from_json
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached:
    - jwt.algorithms.HMACAlgorithm.__init__
    - <builtin>.isinstance
    - jwt.algorithms.get_default_algorithms
    - default_algorithms.update
    - abc.ABC.__init__
    - jwt.api_jwk.PyJWK.__init__
    - json.loads
    - <builtin>.len
    - obj.get
    - jwt.api_jwk.PyJWKSet.from_dict
    - jwt.api_jwk.PyJWKSet.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 128
    functionName: jwt.api_jwk.PyJWKSet.__getitem__
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - jwk_set
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 136
    functionName: jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    functionSourceFile: jwt.api_jwk
    functionUses: 6
    functionsReached:
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.monotonic
    functionSourceFile: time
    functionUses: 9
    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: 140
    functionName: jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    functionSourceFile: jwt.api_jwk
    functionUses: 5
    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: 143
    functionName: jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    functionSourceFile: jwt.api_jwk
    functionUses: 6
    functionsReached: []
    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: 0
    functionLinenumber: -1
    functionName: jwt.algorithms
    functionSourceFile: jwt.algorithms
    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: abc.ABC.__init__
    functionSourceFile: ''
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hash_alg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 252
    functionName: jwt.algorithms.HMACAlgorithm.__init__
    functionSourceFile: ''
    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: default_algorithms.update
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bytestr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 144
    functionName: jwt.algorithms.Algorithm.compute_hash_digest
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.backends.default_backend
    - digest.update
    - <builtin>.issubclass
    - <builtin>.isinstance
    - digest.finalize
    - <builtin>.getattr
    - <builtin>.bytes
    - cryptography.hazmat.primitives.hashes.Hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.issubclass
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.backends.default_backend
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.hashes.Hash
    functionSourceFile: cryptography
    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: digest.update
    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: digest.finalize
    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>.bytes
    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: 1
    functionLinenumber: -1
    functionName: jwt.algorithms.Algorithm
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abc.abstractmethod
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 167
    functionName: jwt.algorithms.Algorithm.prepare_key
    functionSourceFile: jwt.algorithms
    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
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 174
    functionName: jwt.algorithms.Algorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 181
    functionName: jwt.algorithms.Algorithm.verify
    functionSourceFile: jwt.algorithms
    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: typing.overload
    functionSourceFile: ''
    functionUses: 8
    functionsReached: []
    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 0x7f68cd8b2be0>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 199
    functionName: jwt.algorithms.Algorithm.to_jwk
    functionSourceFile: jwt.algorithms
    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:
    - jwk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 206
    functionName: jwt.algorithms.Algorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 218
    functionName: jwt.algorithms.NoneAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 227
    functionName: jwt.algorithms.NoneAlgorithm.sign
    functionSourceFile: jwt.algorithms
    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
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 230
    functionName: jwt.algorithms.NoneAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd95ccd0>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 234
    functionName: jwt.algorithms.NoneAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - jwk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 238
    functionName: jwt.algorithms.NoneAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 255
    functionName: jwt.algorithms.HMACAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - jwt.utils.is_ssh_key
    - _PEM_RE.search
    - <builtin>.bool
    - <builtin>.isinstance
    - jwt.utils.force_bytes
    - value.encode
    - jwt.utils.is_pem_format
    - key.startswith
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 16
    functionName: jwt.utils.force_bytes
    functionSourceFile: jwt.utils
    functionUses: 15
    functionsReached:
    - value.encode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - key
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 126
    functionName: jwt.utils.is_pem_format
    functionSourceFile: jwt.utils
    functionUses: 1
    functionsReached:
    - _PEM_RE.search
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - key
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 141
    functionName: jwt.utils.is_ssh_key
    functionSourceFile: jwt.utils
    functionUses: 1
    functionsReached:
    - key.startswith
    linkageType: 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: jwt.algorithms.HMACAlgorithm
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68ce12ba60>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 279
    functionName: jwt.algorithms.HMACAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - base64.urlsafe_b64encode
    - jwt.utils.base64url_encode
    - <builtin>.isinstance
    - json.dumps
    - jwt.utils.force_bytes
    - value.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - input
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: jwt.utils.base64url_encode
    functionSourceFile: jwt.utils
    functionUses: 6
    functionsReached:
    - base64.urlsafe_b64encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - jwk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 291
    functionName: jwt.algorithms.HMACAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - jwt.utils.base64url_decode
    - jwt.utils.force_bytes
    - value.encode
    - json.loads
    - <builtin>.len
    - obj.get
    - base64.urlsafe_b64decode
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - input
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 25
    functionName: jwt.utils.base64url_decode
    functionSourceFile: jwt.utils
    functionUses: 9
    functionsReached:
    - <builtin>.isinstance
    - jwt.utils.force_bytes
    - value.encode
    - <builtin>.len
    - base64.urlsafe_b64decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 307
    functionName: jwt.algorithms.HMACAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 1
    functionsReached:
    - hmac.new
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.new
    functionSourceFile: hmac
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 310
    functionName: jwt.algorithms.HMACAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - hmac.new
    - hmac.compare_digest
    - jwt.algorithms.HMACAlgorithm.sign
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hash_alg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 326
    functionName: jwt.algorithms.RSAAlgorithm.__init__
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 329
    functionName: jwt.algorithms.RSAAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - typing.cast
    - <builtin>.isinstance
    - cryptography.hazmat.primitives.serialization.load_ssh_public_key
    - jwt.utils.force_bytes
    - value.encode
    - key_bytes.startswith
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    - 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: key_bytes.startswith
    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: cryptography.hazmat.primitives.serialization.load_ssh_public_key
    functionSourceFile: cryptography
    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: typing.cast
    functionSourceFile: typing
    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: 1
    functionLinenumber: -1
    functionName: jwt.algorithms.RSAAlgorithm
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd4f7af0>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 366
    functionName: jwt.algorithms.RSAAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - val.to_bytes
    - jwt.utils.base64url_encode
    - base64.urlsafe_b64encode
    - <builtin>.hasattr
    - jwt.utils.to_base64url_uint
    - json.dumps
    - val.bit_length
    - key_obj.private_numbers
    - jwt.utils.bytes_from_int
    - key_obj.public_numbers
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/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: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key_obj.private_numbers
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - val
    - bit_length
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 40
    functionName: jwt.utils.to_base64url_uint
    functionSourceFile: jwt.utils
    functionUses: 2
    functionsReached:
    - val.to_bytes
    - jwt.utils.base64url_encode
    - base64.urlsafe_b64encode
    - val.bit_length
    - jwt.utils.bytes_from_int
    - <builtin>.len
    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: key_obj.public_numbers
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 0
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - jwk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 405
    functionName: jwt.algorithms.RSAAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicNumbers.public_key
    - cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicNumbers
    - <builtin>.any
    - jwt.utils.force_bytes
    - obj.get
    - cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_dmq1
    - cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateNumbers.private_key
    - json.loads
    - cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_dmp1
    - <builtin>.isinstance
    - jwt.utils.base64url_decode
    - <builtin>.len
    - value.encode
    - cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_iqmp
    - base64.urlsafe_b64decode
    - int.from_bytes
    - cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateNumbers
    - cryptography.hazmat.primitives.asymmetric.rsa.rsa_recover_prime_factors
    - jwt.utils.from_base64url_uint
    - <builtin>.all
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 52
    functionName: jwt.utils.from_base64url_uint
    functionSourceFile: jwt.utils
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - int.from_bytes
    - jwt.utils.base64url_decode
    - jwt.utils.force_bytes
    - value.encode
    - <builtin>.len
    - base64.urlsafe_b64decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicNumbers
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateNumbers
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.rsa.rsa_recover_prime_factors
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_dmp1
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_dmq1
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_iqmp
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateNumbers.private_key
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicNumbers.public_key
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 476
    functionName: jwt.algorithms.RSAAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.padding.PKCS1v15
    - key.sign
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.padding.PKCS1v15
    functionSourceFile: cryptography
    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: key.sign
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 479
    functionName: jwt.algorithms.RSAAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.padding.PKCS1v15
    - key.verify
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.verify
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hash_alg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 496
    functionName: jwt.algorithms.ECAlgorithm.__init__
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 499
    functionName: jwt.algorithms.ECAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - cryptography.hazmat.primitives.serialization.load_ssh_public_key
    - jwt.utils.force_bytes
    - value.encode
    - key_bytes.startswith
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 529
    functionName: jwt.algorithms.ECAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - key.sign
    - binascii.a2b_hex
    - cryptography.hazmat.primitives.asymmetric.ec.ECDSA
    - padded_hex.encode
    - cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature
    - jwt.utils.number_to_bytes
    - jwt.utils.der_to_raw_signature
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ec.ECDSA
    functionSourceFile: cryptography
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - der_sig
    - curve
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 74
    functionName: jwt.utils.der_to_raw_signature
    functionSourceFile: jwt.utils
    functionUses: 1
    functionsReached:
    - jwt.utils.number_to_bytes
    - binascii.a2b_hex
    - padded_hex.encode
    - cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 534
    functionName: jwt.algorithms.ECAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - key.public_key
    - public_key.verify
    - jwt.utils.bytes_to_number
    - cryptography.hazmat.primitives.asymmetric.ec.ECDSA
    - binascii.b2a_hex
    - <builtin>.isinstance
    - cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature
    - jwt.utils.raw_to_der_signature
    - <builtin>.int
    - <builtin>.bytes
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - raw_sig
    - curve
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 83
    functionName: jwt.utils.raw_to_der_signature
    functionSourceFile: jwt.utils
    functionUses: 1
    functionsReached:
    - jwt.utils.bytes_to_number
    - binascii.b2a_hex
    - cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature
    - <builtin>.int
    - <builtin>.bytes
    - <builtin>.len
    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: key.public_key
    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: public_key.verify
    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: 1
    functionLinenumber: -1
    functionName: jwt.algorithms.ECAlgorithm
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 0
    IfCount: 8
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdef9730>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 564
    functionName: jwt.algorithms.ECAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - val.to_bytes
    - jwt.utils.base64url_encode
    - base64.urlsafe_b64encode
    - <builtin>.isinstance
    - jwt.utils.to_base64url_uint
    - json.dumps
    - val.bit_length
    - key_obj.private_numbers
    - key_obj.public_key
    - jwt.utils.bytes_from_int
    - key_obj.public_numbers
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/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_obj.public_key
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 0
    IfCount: 14
    argCount: 1
    argDefaultValues: []
    argNames:
    - jwk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 608
    functionName: jwt.algorithms.ECAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.ec.SECP256R1
    - cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.public_key
    - cryptography.hazmat.primitives.asymmetric.ec.SECP521R1
    - cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers
    - <builtin>.isinstance
    - int.from_bytes
    - cryptography.hazmat.primitives.asymmetric.ec.SECP256K1
    - jwt.utils.base64url_decode
    - jwt.utils.force_bytes
    - cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateNumbers.private_key
    - value.encode
    - json.loads
    - cryptography.hazmat.primitives.asymmetric.ec.SECP384R1
    - <builtin>.len
    - obj.get
    - cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateNumbers
    - base64.urlsafe_b64decode
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ec.SECP256R1
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.ec.SECP384R1
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.ec.SECP521R1
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.ec.SECP256K1
    functionSourceFile: cryptography
    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: int.from_bytes
    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: cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.public_key
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateNumbers
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateNumbers.private_key
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 686
    functionName: jwt.algorithms.RSAPSSAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.padding.PSS
    - key.sign
    - cryptography.hazmat.primitives.asymmetric.padding.MGF1
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.padding.MGF1
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.padding.PSS
    functionSourceFile: cryptography
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 696
    functionName: jwt.algorithms.RSAPSSAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.padding.PSS
    - key.verify
    - cryptography.hazmat.primitives.asymmetric.padding.MGF1
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 718
    functionName: jwt.algorithms.OKPAlgorithm.__init__
    functionSourceFile: jwt.algorithms
    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:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 721
    functionName: jwt.algorithms.OKPAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.serialization.load_ssh_public_key.encode
    - cryptography.hazmat.primitives.serialization.load_ssh_public_key.decode
    - cryptography.hazmat.primitives.serialization.load_ssh_public_key
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.serialization.load_ssh_public_key.decode
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.serialization.load_ssh_public_key.encode
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 744
    functionName: jwt.algorithms.OKPAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - key.sign
    - msg.encode
    - <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: msg.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 757
    functionName: jwt.algorithms.OKPAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - msg.encode
    - key.public_key
    - public_key.verify
    - <builtin>.isinstance
    - sig.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: sig.encode
    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: jwt.algorithms.OKPAlgorithm
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd873640>
    argNames:
    - key
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 796
    functionName: jwt.algorithms.OKPAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - key.public_key
    - jwt.utils.base64url_encode
    - base64.urlsafe_b64encode
    - key.private_bytes
    - <builtin>.isinstance
    - json.dumps
    - key.public_bytes
    - jwt.utils.force_bytes
    - value.encode
    - cryptography.hazmat.primitives.serialization.NoEncryption
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/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.public_bytes
    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: cryptography.hazmat.primitives.serialization.NoEncryption
    functionSourceFile: cryptography
    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: key.private_bytes
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 0
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - jwk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 843
    functionName: jwt.algorithms.OKPAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.ed448.Ed448PrivateKey.from_private_bytes
    - <builtin>.isinstance
    - base64.urlsafe_b64decode
    - jwt.utils.base64url_decode
    - jwt.utils.force_bytes
    - cryptography.hazmat.primitives.asymmetric.ed448.Ed448PublicKey.from_public_bytes
    - value.encode
    - json.loads
    - <builtin>.len
    - cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PrivateKey.from_private_bytes
    - obj.get
    - cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PublicKey.from_public_bytes
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PublicKey.from_public_bytes
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.ed448.Ed448PublicKey.from_public_bytes
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PrivateKey.from_private_bytes
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.ed448.Ed448PrivateKey.from_private_bytes
    functionSourceFile: cryptography
    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: jwt.exceptions
    functionSourceFile: jwt.exceptions
    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:
    - self
    - claim
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 50
    functionName: jwt.exceptions.MissingRequiredClaimError.__init__
    functionSourceFile: jwt.exceptions
    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: 53
    functionName: jwt.exceptions.MissingRequiredClaimError.__str__
    functionSourceFile: jwt.exceptions
    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: jwt.types
    functionSourceFile: jwt.types
    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: 1
    functionLinenumber: -1
    functionName: jwt.utils
    functionSourceFile: jwt.utils
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.encode
    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: base64.urlsafe_b64decode
    functionSourceFile: base64
    functionUses: 10
    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.urlsafe_b64encode
    functionSourceFile: base64
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - val
    - bit_length
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: jwt.utils.bytes_from_int
    functionSourceFile: jwt.utils
    functionUses: 3
    functionsReached:
    - val.bit_length
    - val.to_bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - num
    - num_bytes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: jwt.utils.number_to_bytes
    functionSourceFile: jwt.utils
    functionUses: 2
    functionsReached:
    - binascii.a2b_hex
    - padded_hex.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: padded_hex.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: binascii.a2b_hex
    functionSourceFile: binascii
    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:
    - string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: jwt.utils.bytes_to_number
    functionSourceFile: jwt.utils
    functionUses: 2
    functionsReached:
    - binascii.b2a_hex
    - <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: binascii.b2a_hex
    functionSourceFile: binascii
    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: val.bit_length
    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: val.to_bytes
    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: cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature
    functionSourceFile: cryptography
    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: cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature
    functionSourceFile: cryptography
    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: re.compile
    functionSourceFile: re
    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: _PEM_RE.search
    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>.bool
    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: key.startswith
    functionSourceFile: <builtin>
    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: jwt.jwks_client
    functionSourceFile: jwt.jwks_client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f68ce1397c0>
    - <ast.Constant object at 0x7f68ce139670>
    - <ast.Constant object at 0x7f68ce139790>
    - <ast.Constant object at 0x7f68ce139370>
    - <ast.Constant object at 0x7f68ce139e80>
    - <ast.Constant object at 0x7f68ce139940>
    - <ast.Constant object at 0x7f68ce1394c0>
    argNames:
    - self
    - uri
    - cache_keys
    - max_cached_keys
    - cache_jwk_set
    - lifespan
    - headers
    - timeout
    - ssl_context
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 15
    functionName: jwt.jwks_client.PyJWKClient.__init__
    functionSourceFile: jwt.jwks_client
    functionUses: 0
    functionsReached:
    - jwt.jwk_set_cache.JWKSetCache.__init__
    - functools.lru_cache
    linkageType: pythonLinkage
    raised:
    - PyJWKClientError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - lifespan
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 8
    functionName: jwt.jwk_set_cache.JWKSetCache.__init__
    functionSourceFile: ''
    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: functools.lru_cache
    functionSourceFile: functools
    functionUses: 1
    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: 3
    functionLinenumber: 52
    functionName: jwt.jwks_client.PyJWKClient.fetch_data
    functionSourceFile: jwt.jwks_client
    functionUses: 4
    functionsReached:
    - urllib.request.urlopen
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - jwt.jwk_set_cache.JWKSetCache.put
    - urllib.request.Request
    - json.load
    - time.monotonic
    linkageType: pythonLinkage
    raised:
    - PyJWKClientConnectionError
    returnType: N/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.request.Request
    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: urllib.request.urlopen
    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: json.load
    functionSourceFile: json
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - jwk_set
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 12
    functionName: jwt.jwk_set_cache.JWKSetCache.put
    functionSourceFile: jwt.jwk_set_cache
    functionUses: 5
    functionsReached:
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68ce134970>
    argNames:
    - self
    - refresh
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 70
    functionName: jwt.jwks_client.PyJWKClient.get_jwk_set
    functionSourceFile: jwt.jwks_client
    functionUses: 3
    functionsReached:
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - json.load
    - jwt.algorithms.get_default_algorithms
    - obj.get
    - time.monotonic
    - jwt.api_jwk.PyJWKSet.__init__
    - jwt.algorithms.HMACAlgorithm.__init__
    - jwt.jwk_set_cache.JWKSetCache.get
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    - abc.ABC.__init__
    - urllib.request.Request
    - jwt.api_jwk.PyJWK.__init__
    - jwt.api_jwk.PyJWKSet.from_dict
    - <builtin>.isinstance
    - urllib.request.urlopen
    - jwt.jwks_client.PyJWKClient.fetch_data
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - jwt.jwk_set_cache.JWKSetCache.put
    - default_algorithms.update
    - <builtin>.len
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    linkageType: pythonLinkage
    raised:
    - PyJWKClientError
    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: 2
    functionLinenumber: 19
    functionName: jwt.jwk_set_cache.JWKSetCache.get
    functionSourceFile: jwt.jwk_set_cache
    functionUses: 4
    functionsReached:
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    - time.monotonic
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7a8dc0>
    argNames:
    - self
    - refresh
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 83
    functionName: jwt.jwks_client.PyJWKClient.get_signing_keys
    functionSourceFile: jwt.jwks_client
    functionUses: 2
    functionsReached:
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - json.load
    - jwt.algorithms.get_default_algorithms
    - obj.get
    - time.monotonic
    - jwt.api_jwk.PyJWKSet.__init__
    - jwt.algorithms.HMACAlgorithm.__init__
    - jwt.jwk_set_cache.JWKSetCache.get
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    - abc.ABC.__init__
    - urllib.request.Request
    - jwt.api_jwk.PyJWK.__init__
    - jwt.api_jwk.PyJWKSet.from_dict
    - <builtin>.isinstance
    - urllib.request.urlopen
    - jwt.jwks_client.PyJWKClient.get_jwk_set
    - jwt.jwks_client.PyJWKClient.fetch_data
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - jwt.jwk_set_cache.JWKSetCache.put
    - default_algorithms.update
    - <builtin>.len
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    linkageType: pythonLinkage
    raised:
    - PyJWKClientError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 96
    functionName: jwt.jwks_client.PyJWKClient.get_signing_key
    functionSourceFile: jwt.jwks_client
    functionUses: 1
    functionsReached:
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - json.load
    - jwt.algorithms.get_default_algorithms
    - obj.get
    - time.monotonic
    - jwt.api_jwk.PyJWKSet.__init__
    - jwt.algorithms.HMACAlgorithm.__init__
    - jwt.jwks_client.PyJWKClient.match_kid
    - jwt.jwk_set_cache.JWKSetCache.get
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    - abc.ABC.__init__
    - urllib.request.Request
    - jwt.api_jwk.PyJWK.__init__
    - jwt.api_jwk.PyJWKSet.from_dict
    - jwt.jwks_client.PyJWKClient.get_signing_keys
    - <builtin>.isinstance
    - urllib.request.urlopen
    - jwt.jwks_client.PyJWKClient.get_jwk_set
    - jwt.jwks_client.PyJWKClient.fetch_data
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - jwt.jwk_set_cache.JWKSetCache.put
    - default_algorithms.update
    - <builtin>.len
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    linkageType: pythonLinkage
    raised:
    - PyJWKClientError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - signing_keys
    - kid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 118
    functionName: jwt.jwks_client.PyJWKClient.match_kid
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - token
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 112
    functionName: jwt.jwks_client.PyJWKClient.get_signing_key_from_jwt
    functionSourceFile: jwt.jwks_client
    functionUses: 0
    functionsReached:
    - jwt.api_jwt.PyJWT._validate_iat
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - jwt.api_jwt.PyJWT._validate_required_claims
    - <builtin>.any
    - json.load
    - leeway.total_seconds
    - jwt.algorithms.get_default_algorithms
    - obj.get
    - time.monotonic
    - jwt.api_jwk.PyJWKSet.__init__
    - warnings.warn
    - jwt.jwks_client.PyJWKClient.get_signing_key
    - jwt.api_jwt.PyJWT._validate_nbf
    - jwt.api_jwt.PyJWT.decode_complete
    - jwt.algorithms.HMACAlgorithm.__init__
    - kwargs.keys
    - jwt.api_jwt.PyJWT._validate_iss
    - jwt.jwks_client.PyJWKClient.match_kid
    - jwt.jwk_set_cache.JWKSetCache.get
    - <builtin>.dict
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    - <builtin>.int
    - abc.ABC.__init__
    - urllib.request.Request
    - jwt.api_jwk.PyJWK.__init__
    - json.loads
    - <builtin>.tuple
    - jwt.api_jwk.PyJWKSet.from_dict
    - payload.get
    - jwt.jwks_client.PyJWKClient.get_signing_keys
    - datetime.datetime.now
    - jwt.api_jwt.PyJWT._validate_jti
    - jwt.api_jwt.PyJWT._validate_exp
    - <builtin>.isinstance
    - jwt.api_jwt.PyJWT._validate_sub
    - options.get
    - jwt.api_jwt.PyJWT._decode_payload
    - jwt.api_jwt.PyJWT._validate_aud
    - options.setdefault
    - jwt.api_jwt.PyJWT._validate_claims
    - jwt.jwks_client.PyJWKClient.get_jwk_set
    - urllib.request.urlopen
    - jwt.jwks_client.PyJWKClient.fetch_data
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - jwt.jwk_set_cache.JWKSetCache.put
    - default_algorithms.update
    - <builtin>.len
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    - header.get
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.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: jwt.jwk_set_cache
    functionSourceFile: jwt.jwk_set_cache
    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: 25
    functionName: jwt.jwk_set_cache.JWKSetCache.is_expired
    functionSourceFile: jwt.jwk_set_cache
    functionUses: 5
    functionsReached:
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: jwt.api_jws
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached:
    - jwt.api_jws.PyJWS.__init__
    - <builtin>.set
    - jwt.algorithms.HMACAlgorithm.__init__
    - <builtin>.list
    - default_algorithms.update
    - jwt.api_jws.PyJWS._get_default_options
    - abc.ABC.__init__
    - jwt.algorithms.get_default_algorithms
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7c9160>
    - <ast.Constant object at 0x7f68cd7c9130>
    argNames:
    - self
    - algorithms
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 32
    functionName: jwt.api_jws.PyJWS.__init__
    functionSourceFile: jwt.api_jws
    functionUses: 1
    functionsReached:
    - <builtin>.set
    - jwt.algorithms.HMACAlgorithm.__init__
    - <builtin>.list
    - default_algorithms.update
    - jwt.api_jws.PyJWS._get_default_options
    - abc.ABC.__init__
    - jwt.algorithms.get_default_algorithms
    linkageType: pythonLinkage
    raised: []
    returnType: N/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>.set
    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: <builtin>.list
    functionSourceFile: <builtin>
    functionUses: 9
    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: 52
    functionName: jwt.api_jws.PyJWS._get_default_options
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - alg_id
    - alg_obj
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 55
    functionName: jwt.api_jws.PyJWS.register_algorithm
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - alg_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 68
    functionName: jwt.api_jws.PyJWS.unregister_algorithm
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    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: 82
    functionName: jwt.api_jws.PyJWS.get_algorithms
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached:
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - alg_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 88
    functionName: jwt.api_jws.PyJWS.get_algorithm_by_name
    functionSourceFile: jwt.api_jws
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 5
    IfCount: 12
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd873af0>
    - <ast.Constant object at 0x7f68cd8734f0>
    - <ast.Constant object at 0x7f68cd873bb0>
    - <ast.Constant object at 0x7f68cd8730a0>
    - <ast.Constant object at 0x7f68cd873070>
    argNames:
    - self
    - payload
    - key
    - algorithm
    - headers
    - json_encoder
    - is_payload_detached
    - sort_headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 105
    functionName: jwt.api_jws.PyJWS.encode
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached:
    - segments.append
    - jwt.api_jws.PyJWS._validate_kid
    - jwt.api_jws.PyJWS.get_algorithm_by_name
    - headers.get
    - jwt.utils.base64url_encode
    - base64.urlsafe_b64encode
    - encoded_string.decode
    - jwt.api_jws.PyJWS._validate_headers
    - alg_obj.sign
    - header.update
    - alg_obj.prepare_key
    - <builtin>.isinstance
    - json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - headers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 330
    functionName: jwt.api_jws.PyJWS._validate_headers
    functionSourceFile: jwt.api_jws
    functionUses: 2
    functionsReached:
    - jwt.api_jws.PyJWS._validate_kid
    - <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: header.update
    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: segments.append
    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: alg_obj.prepare_key
    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: alg_obj.sign
    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: encoded_string.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 2
    IfCount: 6
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd6d8ac0>
    - <ast.Constant object at 0x7f68cd6d8a60>
    - <ast.Constant object at 0x7f68cd6d85e0>
    - <ast.Constant object at 0x7f68cd6d88b0>
    argNames:
    - self
    - jwt
    - key
    - algorithms
    - options
    - detached_payload
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 182
    functionName: jwt.api_jws.PyJWS.decode_complete
    functionSourceFile: jwt.api_jws
    functionUses: 1
    functionsReached:
    - jwt.api_jws.PyJWS._load
    - jwt.encode
    - jwt.utils.force_bytes
    - alg_obj.verify
    - warnings.warn
    - kwargs.keys
    - <builtin>.tuple
    - json.loads
    - jwt.api_jws.PyJWS.get_algorithm_by_name
    - jwt.rsplit
    - signing_input.split
    - <builtin>.isinstance
    - jwt.api_jws.PyJWS._verify_signature
    - jwt.utils.base64url_decode
    - value.encode
    - base64.urlsafe_b64decode
    - alg_obj.prepare_key
    - <builtin>.len
    - header.get
    linkageType: pythonLinkage
    raised:
    - DecodeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - jwt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 261
    functionName: jwt.api_jws.PyJWS._load
    functionSourceFile: jwt.api_jws
    functionUses: 3
    functionsReached:
    - jwt.rsplit
    - signing_input.split
    - <builtin>.isinstance
    - jwt.encode
    - jwt.utils.base64url_decode
    - jwt.utils.force_bytes
    - value.encode
    - json.loads
    - <builtin>.len
    - base64.urlsafe_b64decode
    linkageType: pythonLinkage
    raised:
    - DecodeError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdef91c0>
    - <ast.Constant object at 0x7f68cdef9d30>
    argNames:
    - self
    - signing_input
    - header
    - signature
    - key
    - algorithms
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 299
    functionName: jwt.api_jws.PyJWS._verify_signature
    functionSourceFile: jwt.api_jws
    functionUses: 2
    functionsReached:
    - jwt.api_jws.PyJWS.get_algorithm_by_name
    - alg_obj.prepare_key
    - <builtin>.isinstance
    - alg_obj.verify
    linkageType: pythonLinkage
    raised:
    - InvalidAlgorithmError
    - InvalidSignatureError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd6f0bb0>
    - <ast.Constant object at 0x7f68cd6f0070>
    - <ast.Constant object at 0x7f68cd6f0e20>
    - <ast.Constant object at 0x7f68cd6f0340>
    argNames:
    - self
    - jwt
    - key
    - algorithms
    - options
    - detached_payload
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 228
    functionName: jwt.api_jws.PyJWS.decode
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached:
    - jwt.api_jws.PyJWS.decode_complete
    - jwt.api_jws.PyJWS._load
    - jwt.encode
    - alg_obj.verify
    - jwt.utils.force_bytes
    - warnings.warn
    - kwargs.keys
    - json.loads
    - <builtin>.tuple
    - jwt.api_jws.PyJWS.get_algorithm_by_name
    - jwt.rsplit
    - signing_input.split
    - <builtin>.isinstance
    - jwt.api_jws.PyJWS._verify_signature
    - jwt.utils.base64url_decode
    - value.encode
    - base64.urlsafe_b64decode
    - alg_obj.prepare_key
    - <builtin>.len
    - header.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - jwt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 250
    functionName: jwt.api_jws.PyJWS.get_unverified_header
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached:
    - jwt.api_jws.PyJWS._validate_kid
    - jwt.rsplit
    - signing_input.split
    - jwt.api_jws.PyJWS._validate_headers
    - <builtin>.isinstance
    - jwt.api_jws.PyJWS._load
    - jwt.encode
    - jwt.utils.base64url_decode
    - jwt.utils.force_bytes
    - value.encode
    - json.loads
    - <builtin>.len
    - base64.urlsafe_b64decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt.encode
    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: jwt.rsplit
    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: signing_input.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: alg_obj.verify
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 334
    functionName: jwt.api_jws.PyJWS._validate_kid
    functionSourceFile: jwt.api_jws
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - InvalidTokenError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt.warnings
    functionSourceFile: jwt.warnings
    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: flask
    functionSourceFile: flask
    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:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 47
    functionName: flask.__getattr__
    functionSourceFile: flask
    functionUses: 0
    functionsReached:
    - importlib.metadata.version
    - warnings.warn
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.metadata.version
    functionSourceFile: <builtin>
    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: flask.json
    functionSourceFile: flask.json
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - obj
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 13
    functionName: flask.json.dumps
    functionSourceFile: flask.json
    functionUses: 0
    functionsReached:
    - kwargs.setdefault
    - json.dumps
    - current_app.json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_app.json.dumps
    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: kwargs.setdefault
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - obj
    - fp
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 47
    functionName: flask.json.dump
    functionSourceFile: flask.json
    functionUses: 0
    functionsReached:
    - kwargs.setdefault
    - current_app.json.dump
    - json.dump
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_app.json.dump
    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: json.dump
    functionSourceFile: json
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - s
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 77
    functionName: flask.json.loads
    functionSourceFile: flask.json
    functionUses: 0
    functionsReached:
    - current_app.json.loads
    - json.loads
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_app.json.loads
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - fp
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 108
    functionName: flask.json.load
    functionSourceFile: flask.json
    functionUses: 0
    functionsReached:
    - current_app.json.load
    - json.load
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_app.json.load
    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: current_app.json.response
    functionSourceFile: <builtin>
    functionUses: 26
    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: flask.wrappers
    functionSourceFile: flask.wrappers
    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:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 89
    functionName: flask.wrappers.Request.max_content_length
    functionSourceFile: flask.wrappers
    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: 48
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 116
    functionName: flask.wrappers.Request.max_form_memory_size
    functionSourceFile: flask.wrappers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 143
    functionName: flask.wrappers.Request.max_form_parts
    functionSourceFile: flask.wrappers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    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: 147
    functionName: flask.wrappers.Request.endpoint
    functionSourceFile: flask.wrappers
    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: 162
    functionName: flask.wrappers.Request.blueprint
    functionSourceFile: flask.wrappers
    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: 2
    functionLinenumber: 181
    functionName: flask.wrappers.Request.blueprints
    functionSourceFile: flask.wrappers
    functionUses: 0
    functionsReached:
    - out.extend
    - flask.helpers._split_blueprint_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 635
    functionName: flask.helpers._split_blueprint_path
    functionSourceFile: flask.helpers
    functionUses: 2
    functionsReached:
    - flask.helpers._split_blueprint_path
    - out.extend
    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: 1
    functionLinenumber: 197
    functionName: flask.wrappers.Request._load_form_data
    functionSourceFile: flask.wrappers
    functionUses: 0
    functionsReached:
    - flask.debughelpers.attach_enctype_error_multidict
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - request
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 81
    functionName: flask.debughelpers.attach_enctype_error_multidict
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - e
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 212
    functionName: flask.wrappers.Request.on_json_loading_failed
    functionSourceFile: flask.wrappers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - BadRequest
    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: 1
    functionLinenumber: 247
    functionName: flask.wrappers.Response.max_cookie_size
    functionSourceFile: flask.wrappers
    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: flask.debughelpers
    functionSourceFile: flask.debughelpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - request
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 28
    functionName: flask.debughelpers.DebugFilesKeyError.__init__
    functionSourceFile: flask.debughelpers
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - werkzeug.wrappers.Request.form.getlist
    - buf.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: werkzeug.wrappers.Request.form.getlist
    functionSourceFile: werkzeug
    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>.repr
    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: buf.append
    functionSourceFile: <builtin>
    functionUses: 2
    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: 46
    functionName: flask.debughelpers.DebugFilesKeyError.__str__
    functionSourceFile: flask.debughelpers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: flask.debughelpers.FormDataRoutingRedirect.__init__
    functionSourceFile: flask.debughelpers
    functionUses: 0
    functionsReached:
    - exc.new_url.partition
    - <builtin>.super
    - <builtin>.isinstance
    - buf.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: exc.new_url.partition
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 91
    functionName: flask.debughelpers.attach_enctype_error_multidict.newcls.__getitem__
    functionSourceFile: flask.debughelpers
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - loader
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 107
    functionName: flask.debughelpers._dump_loader_info
    functionSourceFile: flask.debughelpers
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - loader.__dict__.items
    - <builtin>.sorted
    - key.startswith
    - <builtin>.type
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: loader.__dict__.items
    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>.sorted
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 10
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - app
    - template
    - attempts
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 124
    functionName: flask.debughelpers.explain_template_loading_attempts
    functionSourceFile: flask.debughelpers
    functionUses: 2
    functionsReached:
    - info.append
    - flask.debughelpers._dump_loader_info
    - <builtin>.isinstance
    - loader.__dict__.items
    - <builtin>.repr
    - <builtin>.sorted
    - <builtin>.enumerate
    - key.startswith
    - <builtin>.type
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/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>.enumerate
    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: info.append
    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: flask.blueprints
    functionSourceFile: flask.blueprints
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd6d8e80>
    - <ast.Constant object at 0x7f68cd6d88e0>
    - <ast.Constant object at 0x7f68cd6d8640>
    - <ast.Constant object at 0x7f68cd6d84c0>
    - <ast.Constant object at 0x7f68cd6d8f40>
    - <ast.Constant object at 0x7f68cd6d87f0>
    - <ast.Constant object at 0x7f68cd6d8df0>
    - <ast.Name object at 0x7f68cd6d8760>
    argNames:
    - self
    - name
    - import_name
    - static_folder
    - static_url_path
    - template_folder
    - url_prefix
    - subdomain
    - url_defaults
    - root_path
    - cli_group
    argTypes:
    - 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: 19
    functionName: flask.blueprints.Blueprint.__init__
    functionSourceFile: flask.blueprints
    functionUses: 0
    functionsReached:
    - click.Group.__init__
    - <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: click.Group.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 55
    functionName: flask.blueprints.Blueprint.get_send_file_max_age
    functionSourceFile: flask.blueprints
    functionUses: 1
    functionsReached:
    - value.total_seconds
    - <builtin>.int
    - <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: value.total_seconds
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 82
    functionName: flask.blueprints.Blueprint.send_static_file
    functionSourceFile: flask.blueprints
    functionUses: 0
    functionsReached:
    - kwargs.update
    - flask.helpers._prepare_send_file_kwargs
    - value.total_seconds
    - flask.helpers.send_from_directory
    - typing.cast
    - kwargs.get
    - <builtin>.isinstance
    - <builtin>.int
    - flask.blueprints.Blueprint.get_send_file_max_age
    - werkzeug.utils.send_from_directory
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - directory
    - path
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 533
    functionName: flask.helpers.send_from_directory
    functionSourceFile: flask.helpers
    functionUses: 2
    functionsReached:
    - kwargs.update
    - werkzeug.utils.send_from_directory
    - flask.helpers._prepare_send_file_kwargs
    - kwargs.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd873910>
    - <ast.Constant object at 0x7f68cd8732e0>
    argNames:
    - self
    - resource
    - mode
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 104
    functionName: flask.blueprints.Blueprint.open_resource
    functionSourceFile: flask.blueprints
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.path.join
    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: os.path.join
    functionSourceFile: os
    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: <builtin>.open
    functionSourceFile: <builtin>
    functionUses: 8
    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: flask.sansio.blueprints
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.TypeVar
    functionSourceFile: typing
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - blueprint
    - app
    - options
    - first_registration
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 41
    functionName: flask.sansio.blueprints.BlueprintSetupState.__init__
    functionSourceFile: flask.sansio.blueprints
    functionUses: 2
    functionsReached:
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f68cda0e280>
    - <ast.Constant object at 0x7f68cda0eca0>
    argNames:
    - self
    - rule
    - endpoint
    - view_func
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 87
    functionName: flask.sansio.blueprints.BlueprintSetupState.add_url_rule
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached:
    - options.setdefault
    - flask.sansio.scaffold._endpoint_from_view_func
    - <builtin>.dict
    - rule.lstrip
    - options.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rule.lstrip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - view_func
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 701
    functionName: flask.sansio.scaffold._endpoint_from_view_func
    functionSourceFile: ''
    functionUses: 8
    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: options.pop
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdaabc40>
    - <ast.Constant object at 0x7f68cdaab2e0>
    - <ast.Constant object at 0x7f68cdaabac0>
    - <ast.Constant object at 0x7f68cdaab490>
    - <ast.Constant object at 0x7f68cdaaba90>
    - <ast.Constant object at 0x7f68cdaab280>
    - <ast.Constant object at 0x7f68cdaab7f0>
    - <ast.Name object at 0x7f68cdaab4c0>
    argNames:
    - self
    - name
    - import_name
    - static_folder
    - static_url_path
    - template_folder
    - url_prefix
    - subdomain
    - url_defaults
    - root_path
    - cli_group
    argTypes:
    - 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: 174
    functionName: flask.sansio.blueprints.Blueprint.__init__
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 213
    functionName: flask.sansio.blueprints.Blueprint._check_setup_finished
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: flask.sansio.blueprints.Blueprint
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - flask.sansio.scaffold.setupmethod
    - functools.update_wrapper
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: flask.sansio.scaffold.setupmethod
    functionSourceFile: flask.sansio.scaffold
    functionUses: 3
    functionsReached:
    - functools.update_wrapper
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - func
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 224
    functionName: flask.sansio.blueprints.Blueprint.record
    functionSourceFile: flask.sansio.blueprints
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - func
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 233
    functionName: flask.sansio.blueprints.Blueprint.record_once
    functionSourceFile: flask.sansio.blueprints
    functionUses: 14
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record
    - functools.update_wrapper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - state
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 240
    functionName: flask.sansio.blueprints.Blueprint.record_once.wrapper
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - flask.sansio.blueprints.Blueprint.add_app_template_test.register_template
    - flask.sansio.blueprints.Blueprint.add_app_template_filter.register_template
    - state.app.errorhandler
    - flask.sansio.blueprints.Blueprint.app_errorhandler.decorator.from_blueprint
    - flask.sansio.blueprints.Blueprint.add_app_template_global.register_template
    - functools.update_wrapper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - state
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 510
    functionName: flask.sansio.blueprints.Blueprint.add_app_template_test.register_template
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - state
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 472
    functionName: flask.sansio.blueprints.Blueprint.add_app_template_filter.register_template
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - state
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 604
    functionName: flask.sansio.blueprints.Blueprint.app_errorhandler.decorator.from_blueprint
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached:
    - state.app.errorhandler
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - state
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 548
    functionName: flask.sansio.blueprints.Blueprint.add_app_template_global.register_template
    functionSourceFile: ''
    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: functools.update_wrapper
    functionSourceFile: functools
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd3d5d60>
    argNames:
    - self
    - app
    - options
    - first_registration
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 246
    functionName: flask.sansio.blueprints.Blueprint.make_setup_state
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached:
    - flask.sansio.blueprints.BlueprintSetupState.__init__
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - blueprint
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 256
    functionName: flask.sansio.blueprints.Blueprint.register_blueprint
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 8
    IfCount: 14
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - app
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 273
    functionName: flask.sansio.blueprints.Blueprint.register
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - state.url_prefix.rstrip
    - collections.defaultdict.items
    - flask.sansio.scaffold._endpoint_from_view_func
    - collections.defaultdict
    - flask.sansio.blueprints.Blueprint._merge_blueprint_funcs.extend
    - bp_dict.items
    - bp_url_prefix.lstrip
    - <builtin>.any
    - bp_options.get
    - flask.sansio.blueprints.BlueprintSetupState.__init__
    - flask.sansio.blueprints.Blueprint.make_setup_state
    - <builtin>.dict
    - code_values.items
    - rule.lstrip
    - options.pop
    - app.cli.add_command
    - flask.sansio.blueprints.Blueprint._merge_blueprint_funcs
    - options.get
    - app.cli.commands.update
    - app.blueprints.values
    - bp_options.copy
    - options.setdefault
    - flask.sansio.blueprints.BlueprintSetupState.add_url_rule
    - blueprint.register
    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: app.blueprints.values
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - app
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 379
    functionName: flask.sansio.blueprints.Blueprint._merge_blueprint_funcs
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached:
    - collections.defaultdict.items
    - bp_dict.items
    - flask.sansio.blueprints.Blueprint._merge_blueprint_funcs.extend
    - collections.defaultdict
    - code_values.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: app.cli.commands.update
    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: app.cli.add_command
    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: bp_options.copy
    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: bp_options.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: state.url_prefix.rstrip
    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: bp_url_prefix.lstrip
    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: blueprint.register
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - bp_dict
    - parent_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 380
    functionName: flask.sansio.blueprints.Blueprint._merge_blueprint_funcs.extend
    functionSourceFile: flask.sansio.blueprints
    functionUses: 2
    functionsReached:
    - bp_dict.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: bp_dict.items
    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: code_values.items
    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: collections.defaultdict.items
    functionSourceFile: collections
    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: collections.defaultdict
    functionSourceFile: collections
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdaed9d0>
    - <ast.Constant object at 0x7f68cdaedb50>
    - <ast.Constant object at 0x7f68cdaeda90>
    argNames:
    - self
    - rule
    - endpoint
    - view_func
    - provide_automatic_options
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 413
    functionName: flask.sansio.blueprints.Blueprint.add_url_rule
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record
    - <builtin>.hasattr
    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: 1
    functionLinenumber: -1
    functionName: flask.sansio.blueprints.Blueprint.add_url_rule.<lambda1>
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - s.add_url_rule
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.add_url_rule
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    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 0x7f68cdaed8e0>
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 444
    functionName: flask.sansio.blueprints.Blueprint.app_template_filter
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 454
    functionName: flask.sansio.blueprints.Blueprint.app_template_filter.decorator
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - flask.sansio.blueprints.Blueprint.add_app_template_filter
    - flask.sansio.blueprints.Blueprint.record
    - flask.sansio.blueprints.Blueprint.record_once
    - functools.update_wrapper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdb32430>
    argNames:
    - self
    - f
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 461
    functionName: flask.sansio.blueprints.Blueprint.add_app_template_filter
    functionSourceFile: flask.sansio.blueprints
    functionUses: 2
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record_once
    - flask.sansio.blueprints.Blueprint.record
    - functools.update_wrapper
    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 0x7f68cdb321f0>
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 478
    functionName: flask.sansio.blueprints.Blueprint.app_template_test
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 490
    functionName: flask.sansio.blueprints.Blueprint.app_template_test.decorator
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record_once
    - flask.sansio.blueprints.Blueprint.record
    - flask.sansio.blueprints.Blueprint.add_app_template_test
    - functools.update_wrapper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd6933d0>
    argNames:
    - self
    - f
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 497
    functionName: flask.sansio.blueprints.Blueprint.add_app_template_test
    functionSourceFile: flask.sansio.blueprints
    functionUses: 2
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record_once
    - flask.sansio.blueprints.Blueprint.record
    - functools.update_wrapper
    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 0x7f68cd693790>
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 516
    functionName: flask.sansio.blueprints.Blueprint.app_template_global
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 528
    functionName: flask.sansio.blueprints.Blueprint.app_template_global.decorator
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record_once
    - flask.sansio.blueprints.Blueprint.record
    - flask.sansio.blueprints.Blueprint.add_app_template_global
    - functools.update_wrapper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd5f84c0>
    argNames:
    - self
    - f
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 535
    functionName: flask.sansio.blueprints.Blueprint.add_app_template_global
    functionSourceFile: flask.sansio.blueprints
    functionUses: 2
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record_once
    - flask.sansio.blueprints.Blueprint.record
    - functools.update_wrapper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 554
    functionName: flask.sansio.blueprints.Blueprint.before_app_request
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record_once
    - flask.sansio.blueprints.Blueprint.record
    - functools.update_wrapper
    linkageType: 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: flask.sansio.blueprints.Blueprint.before_app_request.<lambda1>
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - s.app.before_request_funcs.setdefault
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.app.before_request_funcs.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 564
    functionName: flask.sansio.blueprints.Blueprint.after_app_request
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record_once
    - flask.sansio.blueprints.Blueprint.record
    - functools.update_wrapper
    linkageType: 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: flask.sansio.blueprints.Blueprint.after_app_request.<lambda1>
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - s.app.after_request_funcs.setdefault
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.app.after_request_funcs.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 574
    functionName: flask.sansio.blueprints.Blueprint.teardown_app_request
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record_once
    - flask.sansio.blueprints.Blueprint.record
    - functools.update_wrapper
    linkageType: 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: flask.sansio.blueprints.Blueprint.teardown_app_request.<lambda1>
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - s.app.teardown_request_funcs.setdefault
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.app.teardown_request_funcs.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 584
    functionName: flask.sansio.blueprints.Blueprint.app_context_processor
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record_once
    - flask.sansio.blueprints.Blueprint.record
    - functools.update_wrapper
    linkageType: 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: flask.sansio.blueprints.Blueprint.app_context_processor.<lambda1>
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - s.app.template_context_processors.setdefault
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.app.template_context_processors.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - code
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 596
    functionName: flask.sansio.blueprints.Blueprint.app_errorhandler
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 603
    functionName: flask.sansio.blueprints.Blueprint.app_errorhandler.decorator
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record_once
    - flask.sansio.blueprints.Blueprint.record
    - functools.update_wrapper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: state.app.errorhandler
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 613
    functionName: flask.sansio.blueprints.Blueprint.app_url_value_preprocessor
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record_once
    - flask.sansio.blueprints.Blueprint.record
    - functools.update_wrapper
    linkageType: 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: flask.sansio.blueprints.Blueprint.app_url_value_preprocessor.<lambda1>
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - s.app.url_value_preprocessors.setdefault
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.app.url_value_preprocessors.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 625
    functionName: flask.sansio.blueprints.Blueprint.app_url_defaults
    functionSourceFile: flask.sansio.blueprints
    functionUses: 1
    functionsReached:
    - flask.sansio.blueprints.Blueprint.record_once
    - flask.sansio.blueprints.Blueprint.record
    - functools.update_wrapper
    linkageType: 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: flask.sansio.blueprints.Blueprint.app_url_defaults.<lambda1>
    functionSourceFile: flask.sansio.blueprints
    functionUses: 0
    functionsReached:
    - s.app.url_default_functions.setdefault
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.app.url_default_functions.setdefault
    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: flask.sansio.scaffold
    functionSourceFile: flask.sansio.scaffold
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    - <builtin>.object
    linkageType: pythonLinkage
    raised: []
    returnType: N/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>.object
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 45
    functionName: flask.sansio.scaffold.setupmethod.wrapper_func
    functionSourceFile: flask.sansio.scaffold
    functionUses: 0
    functionsReached:
    - flask.sansio.blueprints.Blueprint.app_context_processor
    - headers.append
    - sorts.append
    - flask.sansio.scaffold.Scaffold.patch
    - flask.sansio.blueprints.Blueprint.add_app_template_filter
    - <builtin>.list
    - flask.sansio.blueprints.Blueprint.add_url_rule
    - flask.sansio.blueprints.Blueprint.add_app_template_test
    - flask.sansio.blueprints.Blueprint.record
    - flask.cli.routes_command
    - current_app.url_map.iter_rules
    - <builtin>.any
    - <builtin>.open
    - <builtin>.sorted
    - flask.sansio.blueprints.Blueprint.before_app_request
    - functools.update_wrapper
    - current_app.make_shell_context
    - flask.sansio.scaffold.Scaffold.put
    - rows.sort
    - flask.sansio.blueprints.Blueprint.after_app_request
    - flask.sansio.scaffold.Scaffold.before_request
    - sorts.index
    - flask.sansio.scaffold.Scaffold.after_request
    - f.read
    - code.interact
    - operator.itemgetter
    - click.echo
    - flask.sansio.blueprints.Blueprint.app_url_value_preprocessor
    - row.append
    - <builtin>.getattr
    - <builtin>.compile
    - flask.sansio.blueprints.Blueprint.add_app_template_global
    - <builtin>.enumerate
    - flask.sansio.scaffold.Scaffold.post
    - <builtin>.set
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - flask.sansio.scaffold.Scaffold.route
    - flask.sansio.scaffold.Scaffold.errorhandler
    - flask.sansio.blueprints.Blueprint.app_template_test
    - os.environ.get
    - flask.sansio.scaffold.Scaffold.url_value_preprocessor
    - rlcompleter.Completer
    - flask.sansio.scaffold.Scaffold.add_url_rule
    - readline.set_completer
    - <builtin>.max
    - <builtin>.issubclass
    - <builtin>.isinstance
    - flask.sansio.scaffold.Scaffold.teardown_request
    - flask.sansio.scaffold.Scaffold.url_defaults
    - flask.sansio.scaffold.Scaffold.context_processor
    - flask.sansio.scaffold.Scaffold.delete
    - flask.cli.shell_command
    - ctx.update
    - flask.sansio.blueprints.Blueprint.app_url_defaults
    - <builtin>.range
    - flask.sansio.blueprints.Blueprint.record_once
    - <builtin>.eval
    - flask.sansio.scaffold.Scaffold._method_route
    - flask.sansio.blueprints.Blueprint.app_template_global
    - rows.append
    - flask.sansio.blueprints.Blueprint.app_template_filter
    - rows.insert
    - <builtin>.hasattr
    - flask.sansio.blueprints.Blueprint.app_errorhandler
    - template.format
    - flask.sansio.scaffold.Scaffold.endpoint
    - flask.sansio.blueprints.Blueprint.teardown_app_request
    - flask.sansio.scaffold.Scaffold.register_error_handler
    - <builtin>.len
    - os.path.isfile
    - flask.sansio.scaffold.Scaffold.get
    - flask.sansio.blueprints.Blueprint.register_blueprint
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - rule
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 328
    functionName: flask.sansio.scaffold.Scaffold.patch
    functionSourceFile: flask.sansio.scaffold
    functionUses: 1
    functionsReached:
    - flask.sansio.scaffold.Scaffold._method_route
    - flask.sansio.scaffold.Scaffold.route
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 13
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - sort
    - all_methods
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1069
    functionName: flask.cli.routes_command
    functionSourceFile: flask.cli
    functionUses: 1
    functionsReached:
    - headers.append
    - sorts.append
    - <builtin>.list
    - current_app.url_map.iter_rules
    - <builtin>.any
    - <builtin>.sorted
    - rows.sort
    - sorts.index
    - operator.itemgetter
    - click.echo
    - row.append
    - <builtin>.enumerate
    - <builtin>.set
    - <builtin>.max
    - <builtin>.range
    - rows.append
    - rows.insert
    - template.format
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - rule
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 312
    functionName: flask.sansio.scaffold.Scaffold.put
    functionSourceFile: flask.sansio.scaffold
    functionUses: 1
    functionsReached:
    - flask.sansio.scaffold.Scaffold._method_route
    - flask.sansio.scaffold.Scaffold.route
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 460
    functionName: flask.sansio.scaffold.Scaffold.before_request
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 487
    functionName: flask.sansio.scaffold.Scaffold.after_request
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - rule
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 304
    functionName: flask.sansio.scaffold.Scaffold.post
    functionSourceFile: flask.sansio.scaffold
    functionUses: 1
    functionsReached:
    - flask.sansio.scaffold.Scaffold._method_route
    - flask.sansio.scaffold.Scaffold.route
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - code_or_exception
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 598
    functionName: flask.sansio.scaffold.Scaffold.errorhandler
    functionSourceFile: ''
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 559
    functionName: flask.sansio.scaffold.Scaffold.url_value_preprocessor
    functionSourceFile: ''
    functionUses: 1
    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 0x7f68cdef9d30>
    - <ast.Constant object at 0x7f68cdef92e0>
    - <ast.Constant object at 0x7f68cdef9520>
    argNames:
    - self
    - rule
    - endpoint
    - view_func
    - provide_automatic_options
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 368
    functionName: flask.sansio.scaffold.Scaffold.add_url_rule
    functionSourceFile: ''
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - rule
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 296
    functionName: flask.sansio.scaffold.Scaffold.get
    functionSourceFile: flask.sansio.scaffold
    functionUses: 1
    functionsReached:
    - flask.sansio.scaffold.Scaffold._method_route
    - flask.sansio.scaffold.Scaffold.route
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 508
    functionName: flask.sansio.scaffold.Scaffold.teardown_request
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 584
    functionName: flask.sansio.scaffold.Scaffold.url_defaults
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 542
    functionName: flask.sansio.scaffold.Scaffold.context_processor
    functionSourceFile: ''
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - endpoint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 436
    functionName: flask.sansio.scaffold.Scaffold.endpoint
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - code_or_exception
    - f
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 642
    functionName: flask.sansio.scaffold.Scaffold.register_error_handler
    functionSourceFile: flask.sansio.scaffold
    functionUses: 9
    functionsReached:
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - <builtin>.isinstance
    - <builtin>.issubclass
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - rule
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 320
    functionName: flask.sansio.scaffold.Scaffold.delete
    functionSourceFile: flask.sansio.scaffold
    functionUses: 1
    functionsReached:
    - flask.sansio.scaffold.Scaffold._method_route
    - flask.sansio.scaffold.Scaffold.route
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1009
    functionName: flask.cli.shell_command
    functionSourceFile: flask.cli
    functionUses: 1
    functionsReached:
    - os.environ.get
    - rlcompleter.Completer
    - readline.set_completer
    - f.read
    - code.interact
    - ctx.update
    - current_app.make_shell_context
    - <builtin>.eval
    - <builtin>.compile
    - <builtin>.getattr
    - <builtin>.open
    - os.path.isfile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd4ba910>
    - <ast.Constant object at 0x7f68cd4ba9a0>
    - <ast.Constant object at 0x7f68cd4ba0d0>
    - <ast.Constant object at 0x7f68cd4ba310>
    argNames:
    - self
    - import_name
    - static_folder
    - static_url_path
    - template_folder
    - root_path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 75
    functionName: flask.sansio.scaffold.Scaffold.__init__
    functionSourceFile: flask.sansio.scaffold
    functionUses: 0
    functionsReached:
    - importlib.util.find_spec
    - os.path.dirname
    - os.getcwd
    - collections.defaultdict
    - flask.helpers.get_root_path
    - <builtin>.hasattr
    - loader.get_filename
    - os.path.abspath
    - <builtin>.getattr
    - sys.modules.get
    - <builtin>.__import__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - import_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 577
    functionName: flask.helpers.get_root_path
    functionSourceFile: flask.helpers
    functionUses: 1
    functionsReached:
    - importlib.util.find_spec
    - os.path.dirname
    - os.getcwd
    - <builtin>.hasattr
    - loader.get_filename
    - os.path.abspath
    - <builtin>.getattr
    - sys.modules.get
    - <builtin>.__import__
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    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: flask.sansio.scaffold.Scaffold.__init__.<lambda1>
    functionSourceFile: flask.sansio.scaffold
    functionUses: 0
    functionsReached:
    - collections.defaultdict
    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: 217
    functionName: flask.sansio.scaffold.Scaffold.__repr__
    functionSourceFile: flask.sansio.scaffold
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 220
    functionName: flask.sansio.scaffold.Scaffold._check_setup_finished
    functionSourceFile: flask.sansio.scaffold
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 234
    functionName: flask.sansio.scaffold.Scaffold.static_folder
    functionSourceFile: flask.sansio.scaffold
    functionUses: 0
    functionsReached:
    - os.fspath
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.fspath
    functionSourceFile: os
    functionUses: 1
    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: 241
    functionName: flask.sansio.scaffold.Scaffold.has_static_folder
    functionSourceFile: flask.sansio.scaffold
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 265
    functionName: flask.sansio.scaffold.Scaffold.static_url_path
    functionSourceFile: flask.sansio.scaffold
    functionUses: 0
    functionsReached:
    - value.rstrip
    - os.path.basename
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.basename
    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: value.rstrip
    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: 2
    functionLinenumber: -1
    functionName: flask.sansio.scaffold.Scaffold
    functionSourceFile: flask.sansio.scaffold
    functionUses: 0
    functionsReached:
    - werkzeug.utils.cached_property
    - flask.sansio.scaffold.setupmethod
    - functools.update_wrapper
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: werkzeug.utils.cached_property
    functionSourceFile: ''
    functionUses: 2
    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: 1
    functionLinenumber: 272
    functionName: flask.sansio.scaffold.Scaffold.jinja_loader
    functionSourceFile: flask.sansio.scaffold
    functionUses: 0
    functionsReached:
    - os.path.join
    - jinja2.FileSystemLoader
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jinja2.FileSystemLoader
    functionSourceFile: jinja2
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - method
    - rule
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 284
    functionName: flask.sansio.scaffold.Scaffold._method_route
    functionSourceFile: flask.sansio.scaffold
    functionUses: 6
    functionsReached:
    - flask.sansio.scaffold.Scaffold.route
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 453
    functionName: flask.sansio.scaffold.Scaffold.endpoint.decorator
    functionSourceFile: flask.sansio.scaffold
    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:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 635
    functionName: flask.sansio.scaffold.Scaffold.errorhandler.decorator
    functionSourceFile: flask.sansio.scaffold
    functionUses: 7
    functionsReached:
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - <builtin>.isinstance
    - <builtin>.issubclass
    - flask.sansio.scaffold.Scaffold.register_error_handler
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - exc_class_or_code
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 657
    functionName: flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    functionSourceFile: flask.sansio.scaffold
    functionUses: 17
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.issubclass
    linkageType: pythonLinkage
    raised:
    - TypeError
    - ValueError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - import_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 709
    functionName: flask.sansio.scaffold._find_package_path
    functionSourceFile: flask.sansio.scaffold
    functionUses: 3
    functionsReached:
    - importlib.util.find_spec
    - <builtin>.next
    - os.path.dirname
    - package_path.is_relative_to
    - pathlib.Path
    - os.getcwd
    - import_name.partition
    - os.path.commonpath
    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: import_name.partition
    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: importlib.util.find_spec
    functionSourceFile: <builtin>
    functionUses: 6
    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.getcwd
    functionSourceFile: os
    functionUses: 6
    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.commonpath
    functionSourceFile: os
    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: pathlib.Path
    functionSourceFile: pathlib
    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: package_path.is_relative_to
    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>.next
    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: os.path.dirname
    functionSourceFile: os
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - import_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 754
    functionName: flask.sansio.scaffold.find_package
    functionSourceFile: flask.sansio.scaffold
    functionUses: 2
    functionsReached:
    - importlib.util.find_spec
    - flask.sansio.scaffold._find_package_path
    - <builtin>.next
    - package_path.is_relative_to
    - os.path.dirname
    - pathlib.Path
    - os.getcwd
    - import_name.partition
    - os.path.abspath
    - os.path.basename
    - folder.lower
    - site_folder.lower
    - os.path.commonpath
    - pathlib.PurePath
    - os.path.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.abspath
    functionSourceFile: os
    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: pathlib.PurePath
    functionSourceFile: pathlib
    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.split
    functionSourceFile: os
    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: site_folder.lower
    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: folder.lower
    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: flask.templating
    functionSourceFile: flask.templating
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: flask.templating._default_template_ctx_processor
    functionSourceFile: flask.templating
    functionUses: 0
    functionsReached:
    - _cv_request.get
    - _cv_app.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _cv_app.get
    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: _cv_request.get
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - app
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 45
    functionName: flask.templating.Environment.__init__
    functionSourceFile: flask.templating
    functionUses: 2
    functionsReached:
    - jinja2.Environment.__init__
    - flask.templating.DispatchingJinjaLoader.__init__
    - flask.sansio.app.App.create_global_jinja_loader
    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: 1
    functionLinenumber: 523
    functionName: flask.sansio.app.App.create_global_jinja_loader
    functionSourceFile: flask.sansio.app
    functionUses: 3
    functionsReached:
    - flask.templating.DispatchingJinjaLoader.__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: jinja2.Environment.__init__
    functionSourceFile: jinja2
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 57
    functionName: flask.templating.DispatchingJinjaLoader.__init__
    functionSourceFile: flask.templating
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - environment
    - template
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 60
    functionName: flask.templating.DispatchingJinjaLoader.get_source
    functionSourceFile: flask.templating
    functionUses: 0
    functionsReached:
    - flask.templating.DispatchingJinjaLoader._iter_loaders
    - <builtin>.sorted
    - info.append
    - flask.sansio.app.App.iter_blueprints
    - flask.debughelpers._dump_loader_info
    - <builtin>.isinstance
    - flask.debughelpers.explain_template_loading_attempts
    - loader.__dict__.items
    - flask.templating.DispatchingJinjaLoader._get_source_fast
    - flask.templating.DispatchingJinjaLoader._get_source_explained
    - <builtin>.repr
    - loader.get_source
    - attempts.append
    - <builtin>.enumerate
    - key.startswith
    - <builtin>.type
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - environment
    - template
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 67
    functionName: flask.templating.DispatchingJinjaLoader._get_source_explained
    functionSourceFile: flask.templating
    functionUses: 1
    functionsReached:
    - flask.templating.DispatchingJinjaLoader._iter_loaders
    - <builtin>.sorted
    - info.append
    - flask.sansio.app.App.iter_blueprints
    - flask.debughelpers._dump_loader_info
    - <builtin>.isinstance
    - flask.debughelpers.explain_template_loading_attempts
    - loader.__dict__.items
    - <builtin>.repr
    - loader.get_source
    - attempts.append
    - <builtin>.enumerate
    - key.startswith
    - <builtin>.type
    - <builtin>.all
    linkageType: pythonLinkage
    raised:
    - TemplateNotFound
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - environment
    - template
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 91
    functionName: flask.templating.DispatchingJinjaLoader._get_source_fast
    functionSourceFile: flask.templating
    functionUses: 1
    functionsReached:
    - flask.sansio.app.App.iter_blueprints
    - flask.templating.DispatchingJinjaLoader._iter_loaders
    - loader.get_source
    linkageType: pythonLinkage
    raised:
    - TemplateNotFound
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - template
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 101
    functionName: flask.templating.DispatchingJinjaLoader._iter_loaders
    functionSourceFile: flask.templating
    functionUses: 3
    functionsReached:
    - flask.sansio.app.App.iter_blueprints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: loader.get_source
    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: attempts.append
    functionSourceFile: <builtin>
    functionUses: 2
    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: 597
    functionName: flask.sansio.app.App.iter_blueprints
    functionSourceFile: ''
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 111
    functionName: flask.templating.DispatchingJinjaLoader.list_templates
    functionSourceFile: flask.templating
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - flask.sansio.app.App.iter_blueprints
    - <builtin>.list
    - result.add
    - result.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.update
    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: result.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - app
    - template
    - context
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 126
    functionName: flask.templating._render
    functionSourceFile: flask.templating
    functionUses: 2
    functionsReached:
    - template.render
    - before_render_template.send
    - app.update_template_context
    - template_rendered.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: app.update_template_context
    functionSourceFile: <builtin>
    functionUses: 6
    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: before_render_template.send
    functionSourceFile: <builtin>
    functionUses: 6
    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: template.render
    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: template_rendered.send
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - template_name_or_list
    - context
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 138
    functionName: flask.templating.render_template
    functionSourceFile: flask.templating
    functionUses: 0
    functionsReached:
    - current_app._get_current_object
    - before_render_template.send
    - app.jinja_env.get_or_select_template
    - template_rendered.send
    - template.render
    - flask.templating._render
    - app.update_template_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_app._get_current_object
    functionSourceFile: <builtin>
    functionUses: 6
    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: app.jinja_env.get_or_select_template
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - source
    - context
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 153
    functionName: flask.templating.render_template_string
    functionSourceFile: flask.templating
    functionUses: 0
    functionsReached:
    - current_app._get_current_object
    - before_render_template.send
    - template_rendered.send
    - template.render
    - flask.templating._render
    - app.jinja_env.from_string
    - app.update_template_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: app.jinja_env.from_string
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - app
    - template
    - context
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 165
    functionName: flask.templating._stream
    functionSourceFile: flask.templating
    functionUses: 2
    functionsReached:
    - before_render_template.send
    - <builtin>.next
    - flask.helpers.stream_with_context.generator
    - template_rendered.send
    - _cv_request.get
    - gen.close
    - <builtin>.iter
    - _cv_app.get
    - <builtin>.hasattr
    - template.generate
    - flask.helpers.stream_with_context
    - functools.update_wrapper
    - flask.templating._stream.generate
    - app.update_template_context
    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: 173
    functionName: flask.templating._stream.generate
    functionSourceFile: flask.templating
    functionUses: 3
    functionsReached:
    - template.generate
    - template_rendered.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: template.generate
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - generator_or_function
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 63
    functionName: flask.helpers.stream_with_context
    functionSourceFile: flask.helpers
    functionUses: 4
    functionsReached:
    - <builtin>.next
    - flask.helpers.stream_with_context.generator
    - gen.close
    - _cv_request.get
    - <builtin>.iter
    - _cv_app.get
    - <builtin>.hasattr
    - functools.update_wrapper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - template_name_or_list
    - context
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 188
    functionName: flask.templating.stream_template
    functionSourceFile: flask.templating
    functionUses: 0
    functionsReached:
    - flask.templating._stream
    - current_app._get_current_object
    - before_render_template.send
    - app.jinja_env.get_or_select_template
    - <builtin>.next
    - template_rendered.send
    - flask.helpers.stream_with_context.generator
    - _cv_request.get
    - gen.close
    - <builtin>.iter
    - _cv_app.get
    - <builtin>.hasattr
    - template.generate
    - flask.helpers.stream_with_context
    - functools.update_wrapper
    - flask.templating._stream.generate
    - app.update_template_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - source
    - context
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 207
    functionName: flask.templating.stream_template_string
    functionSourceFile: flask.templating
    functionUses: 0
    functionsReached:
    - flask.templating._stream
    - current_app._get_current_object
    - before_render_template.send
    - <builtin>.next
    - flask.helpers.stream_with_context.generator
    - template_rendered.send
    - _cv_request.get
    - gen.close
    - <builtin>.iter
    - _cv_app.get
    - <builtin>.hasattr
    - template.generate
    - flask.helpers.stream_with_context
    - app.jinja_env.from_string
    - functools.update_wrapper
    - flask.templating._stream.generate
    - app.update_template_context
    linkageType: 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: flask.sansio.app
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 52
    functionName: flask.sansio.app._make_timedelta
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - datetime.timedelta
    - <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: datetime.timedelta
    functionSourceFile: datetime
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7f68cda00b80>
    - <ast.Constant object at 0x7f68cda00cd0>
    - <ast.Constant object at 0x7f68cda006a0>
    - <ast.Constant object at 0x7f68cda00790>
    - <ast.Constant object at 0x7f68cda00d00>
    - <ast.Constant object at 0x7f68cda00640>
    - <ast.Constant object at 0x7f68cda00280>
    - <ast.Constant object at 0x7f68cda002e0>
    - <ast.Constant object at 0x7f68cda00fd0>
    argNames:
    - self
    - import_name
    - static_url_path
    - static_folder
    - static_host
    - host_matching
    - subdomain_matching
    - template_folder
    - instance_path
    - instance_relative_config
    - root_path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 282
    functionName: flask.sansio.app.App.__init__
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - importlib.util.find_spec
    - os.path.dirname
    - package_path.is_relative_to
    - flask.sansio.app.App.make_config
    - os.getcwd
    - <builtin>.super
    - import_name.partition
    - val.lower
    - os.path.abspath
    - werkzeug.exceptions.Aborter
    - folder.lower
    - flask.config.Config.__init__
    - flask.helpers.get_debug_flag
    - os.path.isabs
    - os.path.join
    - <builtin>.dict
    - flask.sansio.scaffold.find_package
    - flask.sansio.app.App.auto_find_instance_path
    - os.environ.get
    - <builtin>.bool
    - werkzeug.routing.Map
    - pathlib.Path
    - site_folder.lower
    - os.path.commonpath
    - pathlib.PurePath
    - flask.sansio.scaffold._find_package_path
    - <builtin>.next
    - os.path.basename
    - flask.sansio.app.App.make_aborter
    - os.path.split
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: 3
    functionLinenumber: 510
    functionName: flask.sansio.app.App.auto_find_instance_path
    functionSourceFile: flask.sansio.app
    functionUses: 1
    functionsReached:
    - importlib.util.find_spec
    - flask.sansio.scaffold._find_package_path
    - <builtin>.next
    - os.path.dirname
    - package_path.is_relative_to
    - pathlib.Path
    - os.getcwd
    - os.path.split
    - os.path.join
    - import_name.partition
    - flask.sansio.scaffold.find_package
    - os.path.abspath
    - os.path.basename
    - folder.lower
    - site_folder.lower
    - pathlib.PurePath
    - os.path.commonpath
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.isabs
    functionSourceFile: os
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7ad6d0>
    argNames:
    - self
    - instance_relative
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 482
    functionName: flask.sansio.app.App.make_config
    functionSourceFile: flask.sansio.app
    functionUses: 1
    functionsReached:
    - flask.helpers.get_debug_flag
    - os.environ.get
    - <builtin>.bool
    - <builtin>.super
    - <builtin>.dict
    - val.lower
    - flask.config.Config.__init__
    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: 1
    functionLinenumber: 498
    functionName: flask.sansio.app.App.make_aborter
    functionSourceFile: flask.sansio.app
    functionUses: 1
    functionsReached:
    - werkzeug.exceptions.Aborter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: werkzeug.routing.Map
    functionSourceFile: werkzeug
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 413
    functionName: flask.sansio.app.App._check_setup_finished
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: flask.sansio.app.App
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - werkzeug.utils.cached_property
    - flask.sansio.scaffold.setupmethod
    - functools.update_wrapper
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 426
    functionName: flask.sansio.app.App.name
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - os.path.splitext
    - os.path.basename
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.splitext
    functionSourceFile: os
    functionUses: 3
    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: 3
    functionLinenumber: 443
    functionName: flask.sansio.app.App.logger
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - logger.addHandler
    - logging.getLogger
    - flask.logging.has_level_handler
    - flask.logging.create_logger
    - <builtin>.any
    - logger.setLevel
    - logger.getEffectiveLevel
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - app
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 58
    functionName: flask.logging.create_logger
    functionSourceFile: flask.logging
    functionUses: 1
    functionsReached:
    - logger.addHandler
    - logging.getLogger
    - flask.logging.has_level_handler
    - <builtin>.any
    - logger.setLevel
    - logger.getEffectiveLevel
    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: 4
    functionLinenumber: 470
    functionName: flask.sansio.app.App.jinja_env
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - jinja2.Environment.globals.update
    - jinja2.Environment.__init__
    - flask.sansio.app.App.create_jinja_environment
    - flask.app.Flask.create_jinja_environment
    - <builtin>.dict
    - flask.sansio.app.App.create_global_jinja_loader
    - flask.templating.DispatchingJinjaLoader.__init__
    - flask.templating.Environment.__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: 479
    functionName: flask.sansio.app.App.create_jinja_environment
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 385
    functionName: flask.app.Flask.create_jinja_environment
    functionSourceFile: flask.app
    functionUses: 1
    functionsReached:
    - jinja2.Environment.globals.update
    - jinja2.Environment.__init__
    - <builtin>.dict
    - flask.sansio.app.App.create_global_jinja_loader
    - flask.templating.DispatchingJinjaLoader.__init__
    - flask.templating.Environment.__init__
    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: 28
    functionName: flask.helpers.get_debug_flag
    functionSourceFile: flask.helpers
    functionUses: 5
    functionsReached:
    - val.lower
    - os.environ.get
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd543310>
    argNames:
    - self
    - root_path
    - defaults
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 94
    functionName: flask.config.Config.__init__
    functionSourceFile: flask.config
    functionUses: 2
    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: werkzeug.exceptions.Aborter
    functionSourceFile: werkzeug
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 536
    functionName: flask.sansio.app.App.select_jinja_autoescape
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - filename.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: filename.endswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 563
    functionName: flask.sansio.app.App.debug
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - blueprint
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 570
    functionName: flask.sansio.app.App.register_blueprint
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - blueprint.register
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7390d0>
    - <ast.Constant object at 0x7f68cd739bb0>
    - <ast.Constant object at 0x7f68cd7391f0>
    argNames:
    - self
    - rule
    - endpoint
    - view_func
    - provide_automatic_options
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 605
    functionName: flask.sansio.app.App.add_url_rule
    functionSourceFile: flask.sansio.app
    functionUses: 5
    functionsReached:
    - <builtin>.set
    - required_methods.add
    - flask.sansio.scaffold._endpoint_from_view_func
    - item.upper
    - werkzeug.routing.Rule
    - <builtin>.isinstance
    - <builtin>.getattr
    - options.pop
    linkageType: pythonLinkage
    raised:
    - AssertionError
    - 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: item.upper
    functionSourceFile: <builtin>
    functionUses: 6
    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: required_methods.add
    functionSourceFile: <builtin>
    functionUses: 6
    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: werkzeug.routing.Rule
    functionSourceFile: werkzeug
    functionUses: 6
    functionsReached: []
    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 0x7f68cd68caf0>
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 664
    functionName: flask.sansio.app.App.template_filter
    functionSourceFile: flask.sansio.app
    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:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 679
    functionName: flask.sansio.app.App.template_filter.decorator
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - flask.sansio.app.App.add_template_filter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd68cee0>
    argNames:
    - self
    - f
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 686
    functionName: flask.sansio.app.App.add_template_filter
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    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 0x7f68cdaed940>
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 698
    functionName: flask.sansio.app.App.template_test
    functionSourceFile: flask.sansio.app
    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:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 720
    functionName: flask.sansio.app.App.template_test.decorator
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - flask.sansio.app.App.add_template_test
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdaed100>
    argNames:
    - self
    - f
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 727
    functionName: flask.sansio.app.App.add_template_test
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    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 0x7f68cdaeddc0>
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 741
    functionName: flask.sansio.app.App.template_global
    functionSourceFile: flask.sansio.app
    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:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 758
    functionName: flask.sansio.app.App.template_global.decorator
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - flask.sansio.app.App.add_template_global
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdb32c10>
    argNames:
    - self
    - f
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 765
    functionName: flask.sansio.app.App.add_template_global
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 779
    functionName: flask.sansio.app.App.teardown_appcontext
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 813
    functionName: flask.sansio.app.App.shell_context_processor
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - e
    - blueprints
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 823
    functionName: flask.sansio.app.App._find_error_handler
    functionSourceFile: flask.sansio.app
    functionUses: 6
    functionsReached:
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - <builtin>.isinstance
    - handler_map.get
    - <builtin>.issubclass
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: handler_map.get
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - e
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 848
    functionName: flask.sansio.app.App.trap_http_exception
    functionSourceFile: flask.sansio.app
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - error
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 883
    functionName: flask.sansio.app.App.should_ignore_error
    functionSourceFile: flask.sansio.app
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdf71d30>
    argNames:
    - self
    - location
    - code
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 893
    functionName: flask.sansio.app.App.redirect
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - werkzeug.utils.redirect
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: werkzeug.utils.redirect
    functionSourceFile: werkzeug
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - endpoint
    - values
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 911
    functionName: flask.sansio.app.App.inject_url_defaults
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - endpoint.rpartition
    - itertools.chain
    - flask.helpers._split_blueprint_path
    - <builtin>.reversed
    - out.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: endpoint.rpartition
    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>.reversed
    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: itertools.chain
    functionSourceFile: itertools
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - error
    - endpoint
    - values
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 932
    functionName: flask.sansio.app.App.handle_url_build_error
    functionSourceFile: flask.sansio.app
    functionUses: 0
    functionsReached:
    - sys.exc_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.exc_info
    functionSourceFile: sys
    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: 1
    functionLinenumber: -1
    functionName: flask.helpers
    functionSourceFile: flask.helpers
    functionUses: 0
    functionsReached:
    - functools.cache
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: val.lower
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7a8a30>
    argNames:
    - default
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: flask.helpers.get_load_dotenv
    functionSourceFile: flask.helpers
    functionUses: 4
    functionsReached:
    - val.lower
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.iter
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 108
    functionName: flask.helpers.stream_with_context.decorator
    functionSourceFile: flask.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - flask.helpers.stream_with_context.generator
    - gen.close
    - _cv_request.get
    - <builtin>.iter
    - _cv_app.get
    - <builtin>.hasattr
    - flask.helpers.stream_with_context
    - functools.update_wrapper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 114
    functionName: flask.helpers.stream_with_context.generator
    functionSourceFile: flask.helpers
    functionUses: 5
    functionsReached:
    - _cv_request.get
    - gen.close
    - _cv_app.get
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gen.close
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: flask.helpers.make_response
    functionSourceFile: flask.helpers
    functionUses: 0
    functionsReached:
    - current_app.response_class
    - current_app.make_response
    - <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: current_app.response_class
    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: current_app.make_response
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - endpoint
    - _anchor
    - _method
    - _scheme
    - _external
    - values
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 195
    functionName: flask.helpers.url_for
    functionSourceFile: flask.helpers
    functionUses: 0
    functionsReached:
    - current_app.url_for
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_app.url_for
    functionSourceFile: <builtin>
    functionUses: 1
    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 0x7f68cd456670>
    - <ast.Constant object at 0x7f68cd4562e0>
    argNames:
    - location
    - code
    - Response
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 249
    functionName: flask.helpers.redirect
    functionSourceFile: flask.helpers
    functionUses: 0
    functionsReached:
    - current_app.redirect
    - werkzeug.utils.redirect
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_app.redirect
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - code
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 273
    functionName: flask.helpers.abort
    functionSourceFile: flask.helpers
    functionUses: 0
    functionsReached:
    - current_app.aborter
    - werkzeug.exceptions.abort
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_app.aborter
    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: werkzeug.exceptions.abort
    functionSourceFile: werkzeug
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - template_name
    - attribute
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 296
    functionName: flask.helpers.get_template_attribute
    functionSourceFile: flask.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - current_app.jinja_env.get_template
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_app.jinja_env.get_template
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68ce13dee0>
    argNames:
    - message
    - category
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 318
    functionName: flask.helpers.flash
    functionSourceFile: flask.helpers
    functionUses: 0
    functionsReached:
    - current_app._get_current_object
    - message_flashed.send
    - flashes.append
    - session.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: session.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: flashes.append
    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: message_flashed.send
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd543bb0>
    - <ast.Tuple object at 0x7f68cd543790>
    argNames:
    - with_categories
    - category_filter
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 352
    functionName: flask.helpers.get_flashed_messages
    functionSourceFile: flask.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.list
    - <builtin>.filter
    - session.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: session.pop
    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: flask.helpers.get_flashed_messages.<lambda1>
    functionSourceFile: flask.helpers
    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>.filter
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - kwargs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 394
    functionName: flask.helpers._prepare_send_file_kwargs
    functionSourceFile: flask.helpers
    functionUses: 4
    functionsReached:
    - kwargs.update
    - kwargs.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.get
    functionSourceFile: <builtin>
    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: kwargs.update
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7313a0>
    - <ast.Constant object at 0x7f68cd731c40>
    - <ast.Constant object at 0x7f68cd731b80>
    - <ast.Constant object at 0x7f68cd731f10>
    - <ast.Constant object at 0x7f68cd731490>
    - <ast.Constant object at 0x7f68cd731220>
    - <ast.Constant object at 0x7f68cd7311f0>
    argNames:
    - path_or_file
    - mimetype
    - as_attachment
    - download_name
    - conditional
    - etag
    - last_modified
    - max_age
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 407
    functionName: flask.helpers.send_file
    functionSourceFile: flask.helpers
    functionUses: 0
    functionsReached:
    - kwargs.update
    - flask.helpers._prepare_send_file_kwargs
    - werkzeug.utils.send_file
    - kwargs.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: werkzeug.utils.send_file
    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: werkzeug.utils.send_from_directory
    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: sys.modules.get
    functionSourceFile: sys
    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: loader.get_filename
    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>.__import__
    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: functools.cache
    functionSourceFile: ''
    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: out.extend
    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: 1
    functionLinenumber: -1
    functionName: flask.signals
    functionSourceFile: flask.signals
    functionUses: 0
    functionsReached:
    - blinker.Namespace
    - blinker.Namespace.signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: blinker.Namespace
    functionSourceFile: blinker
    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: blinker.Namespace.signal
    functionSourceFile: blinker
    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: flask.json.provider
    functionSourceFile: flask.json.provider
    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:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 38
    functionName: flask.json.provider.JSONProvider.__init__
    functionSourceFile: flask.json.provider
    functionUses: 0
    functionsReached:
    - weakref.proxy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: weakref.proxy
    functionSourceFile: weakref
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - obj
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 41
    functionName: flask.json.provider.JSONProvider.dumps
    functionSourceFile: flask.json.provider
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - obj
    - fp
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: flask.json.provider.JSONProvider.dump
    functionSourceFile: flask.json.provider
    functionUses: 0
    functionsReached:
    - flask.json.provider.JSONProvider.dumps
    - fp.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fp.write
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - s
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 59
    functionName: flask.json.provider.JSONProvider.loads
    functionSourceFile: flask.json.provider
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - fp
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 67
    functionName: flask.json.provider.JSONProvider.load
    functionSourceFile: flask.json.provider
    functionUses: 0
    functionsReached:
    - flask.json.provider.JSONProvider.loads
    - fp.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fp.read
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: flask.json.provider.JSONProvider._prepare_response_obj
    functionSourceFile: flask.json.provider
    functionUses: 2
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 89
    functionName: flask.json.provider.JSONProvider.response
    functionSourceFile: flask.json.provider
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - flask.json.provider.JSONProvider._prepare_response_obj
    - flask.json.provider.JSONProvider.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - o
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 108
    functionName: flask.json.provider._default
    functionSourceFile: flask.json.provider
    functionUses: 0
    functionsReached:
    - dataclasses.asdict
    - <builtin>.hasattr
    - <builtin>.isinstance
    - <builtin>.str
    - o.__html__
    - werkzeug.http.http_date
    - dataclasses.is_dataclass
    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: werkzeug.http.http_date
    functionSourceFile: werkzeug
    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: 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: dataclasses.is_dataclass
    functionSourceFile: dataclasses
    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: dataclasses.asdict
    functionSourceFile: dataclasses
    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: o.__html__
    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>.staticmethod
    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: flask.json.provider.DefaultJSONProvider
    functionSourceFile: flask.json.provider
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - obj
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 166
    functionName: flask.json.provider.DefaultJSONProvider.dumps
    functionSourceFile: flask.json.provider
    functionUses: 1
    functionsReached:
    - kwargs.setdefault
    - json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - s
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 181
    functionName: flask.json.provider.DefaultJSONProvider.loads
    functionSourceFile: flask.json.provider
    functionUses: 0
    functionsReached:
    - json.loads
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 189
    functionName: flask.json.provider.DefaultJSONProvider.response
    functionSourceFile: flask.json.provider
    functionUses: 0
    functionsReached:
    - flask.json.provider.DefaultJSONProvider.dumps
    - kwargs.setdefault
    - json.dumps
    - <builtin>.len
    - flask.json.provider.JSONProvider._prepare_response_obj
    - dump_args.setdefault
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dump_args.setdefault
    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: flask.ctx
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    - <builtin>.object
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 52
    functionName: flask.ctx._AppCtxGlobals.__getattr__
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 58
    functionName: flask.ctx._AppCtxGlobals.__setattr__
    functionSourceFile: flask.ctx
    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:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 61
    functionName: flask.ctx._AppCtxGlobals.__delattr__
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cda006a0>
    argNames:
    - self
    - name
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 67
    functionName: flask.ctx._AppCtxGlobals.get
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f68cda009a0>
    argNames:
    - self
    - name
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 78
    functionName: flask.ctx._AppCtxGlobals.pop
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd455ac0>
    argNames:
    - self
    - name
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 92
    functionName: flask.ctx._AppCtxGlobals.setdefault
    functionSourceFile: flask.ctx
    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:
    - self
    - item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 104
    functionName: flask.ctx._AppCtxGlobals.__contains__
    functionSourceFile: flask.ctx
    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: 107
    functionName: flask.ctx._AppCtxGlobals.__iter__
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 110
    functionName: flask.ctx._AppCtxGlobals.__repr__
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached:
    - _cv_app.get
    - object.__repr__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: object.__repr__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 117
    functionName: flask.ctx.after_this_request
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached:
    - _cv_request.get
    - ctx._after_request_functions.append
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctx._after_request_functions.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 155
    functionName: flask.ctx.copy_current_request_context
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached:
    - _cv_request.get
    - ctx.copy
    - functools.update_wrapper
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctx.copy
    functionSourceFile: <builtin>
    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:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 189
    functionName: flask.ctx.copy_current_request_context.wrapper
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached:
    - ctx.app.ensure_sync
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctx.app.ensure_sync
    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: 196
    functionName: flask.ctx.has_request_context
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached:
    - _cv_request.get
    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: 228
    functionName: flask.ctx.has_app_context
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached:
    - _cv_app.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 245
    functionName: flask.ctx.AppContext.__init__
    functionSourceFile: flask.ctx
    functionUses: 5
    functionsReached:
    - flask.app.Flask.create_url_adapter
    - werkzeug.wsgi.get_host
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 425
    functionName: flask.app.Flask.create_url_adapter
    functionSourceFile: flask.app
    functionUses: 12
    functionsReached:
    - werkzeug.wsgi.get_host
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 251
    functionName: flask.ctx.AppContext.push
    functionSourceFile: flask.ctx
    functionUses: 5
    functionsReached:
    - _cv_app.set
    - appcontext_pushed.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _cv_app.set
    functionSourceFile: <builtin>
    functionUses: 6
    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: appcontext_pushed.send
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f68cdee6490>
    argNames:
    - self
    - exc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 256
    functionName: flask.ctx.AppContext.pop
    functionSourceFile: flask.ctx
    functionUses: 1
    functionsReached:
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - appcontext_popped.send
    - _cv_app.get
    - flask.app.Flask.do_teardown_appcontext
    - appcontext_tearing_down.send
    - <builtin>.reversed
    - asgiref.sync.async_to_sync
    - flask.app.Flask.async_to_sync
    - <builtin>.len
    - _cv_app.reset
    - sys.exc_info
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f68cd4f7b20>
    argNames:
    - self
    - exc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1360
    functionName: flask.app.Flask.do_teardown_appcontext
    functionSourceFile: flask.app
    functionUses: 2
    functionsReached:
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - appcontext_tearing_down.send
    - <builtin>.reversed
    - flask.app.Flask.async_to_sync
    - asgiref.sync.async_to_sync
    - sys.exc_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _cv_app.reset
    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: appcontext_popped.send
    functionSourceFile: <builtin>
    functionUses: 2
    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: 2
    functionLinenumber: 274
    functionName: flask.ctx.AppContext.__enter__
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached:
    - _cv_app.set
    - flask.ctx.AppContext.push
    - appcontext_pushed.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_value
    - tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 278
    functionName: flask.ctx.AppContext.__exit__
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached:
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - appcontext_popped.send
    - _cv_app.get
    - flask.app.Flask.do_teardown_appcontext
    - appcontext_tearing_down.send
    - <builtin>.reversed
    - asgiref.sync.async_to_sync
    - flask.app.Flask.async_to_sync
    - <builtin>.len
    - flask.ctx.AppContext.pop
    - _cv_app.reset
    - sys.exc_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd68c640>
    - <ast.Constant object at 0x7f68cd68cbe0>
    argNames:
    - self
    - app
    - environ
    - request
    - session
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 309
    functionName: flask.ctx.RequestContext.__init__
    functionSourceFile: flask.ctx
    functionUses: 7
    functionsReached:
    - flask.app.Flask.create_url_adapter
    - werkzeug.wsgi.get_host
    - app.request_class
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: app.request_class
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 337
    functionName: flask.ctx.RequestContext.copy
    functionSourceFile: flask.ctx
    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: 357
    functionName: flask.ctx.RequestContext.match_request
    functionSourceFile: flask.ctx
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 367
    functionName: flask.ctx.RequestContext.push
    functionSourceFile: flask.ctx
    functionUses: 3
    functionsReached:
    - session_interface.make_null_session
    - flask.ctx.AppContext.__init__
    - appcontext_pushed.send
    - _cv_app.set
    - flask.app.Flask.app_context
    - werkzeug.wsgi.get_host
    - flask.ctx.AppContext.push
    - _cv_app.get
    - _cv_request.set
    - flask.ctx.RequestContext.match_request
    - flask.app.Flask.create_url_adapter
    - session_interface.open_session
    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: 3
    functionLinenumber: 1386
    functionName: flask.app.Flask.app_context
    functionSourceFile: flask.app
    functionUses: 4
    functionsReached:
    - flask.ctx.AppContext.__init__
    - flask.app.Flask.create_url_adapter
    - werkzeug.wsgi.get_host
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _cv_request.set
    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: session_interface.open_session
    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: session_interface.make_null_session
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f68cdb32850>
    argNames:
    - self
    - exc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 396
    functionName: flask.ctx.RequestContext.pop
    functionSourceFile: flask.ctx
    functionUses: 3
    functionsReached:
    - app_ctx.pop
    - _cv_request.get
    - itertools.chain
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - <builtin>.reversed
    - flask.app.Flask.async_to_sync
    - request_tearing_down.send
    - asgiref.sync.async_to_sync
    - _cv_request.reset
    - <builtin>.getattr
    - <builtin>.len
    - sys.exc_info
    - flask.app.Flask.do_teardown_request
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f68ce1395e0>
    argNames:
    - self
    - exc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1326
    functionName: flask.app.Flask.do_teardown_request
    functionSourceFile: flask.app
    functionUses: 4
    functionsReached:
    - inspect.iscoroutinefunction
    - itertools.chain
    - flask.app.Flask.ensure_sync
    - <builtin>.reversed
    - flask.app.Flask.async_to_sync
    - request_tearing_down.send
    - asgiref.sync.async_to_sync
    - sys.exc_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _cv_request.reset
    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: app_ctx.pop
    functionSourceFile: <builtin>
    functionUses: 4
    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: 5
    functionLinenumber: 433
    functionName: flask.ctx.RequestContext.__enter__
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached:
    - session_interface.make_null_session
    - flask.ctx.AppContext.__init__
    - flask.ctx.RequestContext.push
    - appcontext_pushed.send
    - _cv_app.set
    - flask.app.Flask.app_context
    - _cv_app.get
    - flask.ctx.AppContext.push
    - werkzeug.wsgi.get_host
    - _cv_request.set
    - flask.ctx.RequestContext.match_request
    - flask.app.Flask.create_url_adapter
    - session_interface.open_session
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_value
    - tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 437
    functionName: flask.ctx.RequestContext.__exit__
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached:
    - app_ctx.pop
    - _cv_request.get
    - itertools.chain
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - flask.ctx.RequestContext.pop
    - <builtin>.reversed
    - flask.app.Flask.async_to_sync
    - request_tearing_down.send
    - asgiref.sync.async_to_sync
    - _cv_request.reset
    - <builtin>.getattr
    - <builtin>.len
    - sys.exc_info
    - flask.app.Flask.do_teardown_request
    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: 445
    functionName: flask.ctx.RequestContext.__repr__
    functionSourceFile: flask.ctx
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: 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: flask.typing
    functionSourceFile: flask.typing
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: flask.sessions
    functionSourceFile: flask.sessions
    functionUses: 0
    functionsReached:
    - flask.json.tag.TaggedJSONSerializer.register
    - flask.json.tag.TaggedJSONSerializer.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 33
    functionName: flask.sessions.SessionMixin.permanent
    functionSourceFile: flask.sessions
    functionUses: 0
    functionsReached:
    - flask.sessions.SecureCookieSession.get
    - <builtin>.bool
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd665af0>
    argNames:
    - self
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 88
    functionName: flask.sessions.SecureCookieSession.get
    functionSourceFile: flask.sessions
    functionUses: 1
    functionsReached:
    - <builtin>.super
    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 0x7f68cda672e0>
    argNames:
    - self
    - initial
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 74
    functionName: flask.sessions.SecureCookieSession.__init__
    functionSourceFile: flask.sessions
    functionUses: 2
    functionsReached:
    - <builtin>.super
    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: 78
    functionName: flask.sessions.SecureCookieSession.__init__.on_update
    functionSourceFile: flask.sessions
    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:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: flask.sessions.SecureCookieSession.__getitem__
    functionSourceFile: flask.sessions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd665160>
    argNames:
    - self
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 92
    functionName: flask.sessions.SecureCookieSession.setdefault
    functionSourceFile: flask.sessions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 103
    functionName: flask.sessions.NullSession._fail
    functionSourceFile: flask.sessions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 164
    functionName: flask.sessions.SessionInterface.make_null_session
    functionSourceFile: flask.sessions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - flask.sessions.SecureCookieSession.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 176
    functionName: flask.sessions.SessionInterface.is_null_session
    functionSourceFile: flask.sessions
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 185
    functionName: flask.sessions.SessionInterface.get_cookie_name
    functionSourceFile: flask.sessions
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 189
    functionName: flask.sessions.SessionInterface.get_cookie_domain
    functionSourceFile: flask.sessions
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 201
    functionName: flask.sessions.SessionInterface.get_cookie_path
    functionSourceFile: flask.sessions
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 209
    functionName: flask.sessions.SessionInterface.get_cookie_httponly
    functionSourceFile: flask.sessions
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 216
    functionName: flask.sessions.SessionInterface.get_cookie_secure
    functionSourceFile: flask.sessions
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 222
    functionName: flask.sessions.SessionInterface.get_cookie_samesite
    functionSourceFile: flask.sessions
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 229
    functionName: flask.sessions.SessionInterface.get_cookie_partitioned
    functionSourceFile: flask.sessions
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - app
    - session
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 237
    functionName: flask.sessions.SessionInterface.get_expiration_time
    functionSourceFile: flask.sessions
    functionUses: 1
    functionsReached:
    - datetime.datetime.now
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - app
    - session
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 247
    functionName: flask.sessions.SessionInterface.should_set_cookie
    functionSourceFile: flask.sessions
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - app
    - request
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 263
    functionName: flask.sessions.SessionInterface.open_session
    functionSourceFile: flask.sessions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - app
    - session
    - response
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 277
    functionName: flask.sessions.SessionInterface.save_session
    functionSourceFile: flask.sessions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 249
    functionName: flask.json.tag.TaggedJSONSerializer.__init__
    functionSourceFile: flask.json.tag
    functionUses: 1
    functionsReached:
    - flask.json.tag.TaggedJSONSerializer.register
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd5fe640>
    argNames:
    - string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 290
    functionName: flask.sessions._lazy_sha1
    functionSourceFile: flask.sessions
    functionUses: 0
    functionsReached:
    - hashlib.sha1
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: flask.sessions.SecureCookieSessionInterface
    functionSourceFile: flask.sessions
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 317
    functionName: flask.sessions.SecureCookieSessionInterface.get_signing_serializer
    functionSourceFile: flask.sessions
    functionUses: 2
    functionsReached:
    - itsdangerous.URLSafeTimedSerializer
    - keys.extend
    - keys.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: keys.extend
    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: keys.append
    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: itsdangerous.URLSafeTimedSerializer
    functionSourceFile: itsdangerous
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - app
    - request
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 337
    functionName: flask.sessions.SecureCookieSessionInterface.open_session
    functionSourceFile: flask.sessions
    functionUses: 0
    functionsReached:
    - flask.sessions.SecureCookieSessionInterface.get_signing_serializer
    - itsdangerous.URLSafeTimedSerializer
    - itsdangerous.URLSafeTimedSerializer.loads
    - <builtin>.super
    - app.permanent_session_lifetime.total_seconds
    - request.cookies.get
    - keys.extend
    - flask.sessions.SecureCookieSession.__init__
    - <builtin>.int
    - keys.append
    - flask.sessions.SessionInterface.get_cookie_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.cookies.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: app.permanent_session_lifetime.total_seconds
    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: itsdangerous.URLSafeTimedSerializer.loads
    functionSourceFile: itsdangerous
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - app
    - session
    - response
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 351
    functionName: flask.sessions.SecureCookieSessionInterface.save_session
    functionSourceFile: flask.sessions
    functionUses: 0
    functionsReached:
    - flask.sessions.SessionInterface.get_cookie_partitioned
    - flask.sessions.SessionInterface.should_set_cookie
    - <builtin>.dict
    - response.set_cookie
    - keys.append
    - flask.sessions.SessionInterface.get_expiration_time
    - flask.sessions.SessionInterface.get_cookie_secure
    - datetime.datetime.now
    - response.vary.add
    - flask.sessions.SecureCookieSessionInterface.get_signing_serializer
    - flask.sessions.SessionInterface.get_cookie_samesite
    - flask.sessions.SessionInterface.get_cookie_httponly
    - keys.extend
    - response.delete_cookie
    - itsdangerous.URLSafeTimedSerializer.dumps
    - flask.sessions.SessionInterface.get_cookie_name
    - itsdangerous.URLSafeTimedSerializer
    - flask.sessions.SessionInterface.get_cookie_path
    - flask.sessions.SessionInterface.get_cookie_domain
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: response.vary.add
    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: response.delete_cookie
    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: itsdangerous.URLSafeTimedSerializer.dumps
    functionSourceFile: itsdangerous
    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: response.set_cookie
    functionSourceFile: <builtin>
    functionUses: 6
    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: flask.json.tag
    functionSourceFile: flask.json.tag
    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
    - serializer
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 69
    functionName: flask.json.tag.JSONTag.__init__
    functionSourceFile: flask.json.tag
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 73
    functionName: flask.json.tag.JSONTag.check
    functionSourceFile: flask.json.tag
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 77
    functionName: flask.json.tag.JSONTag.to_json
    functionSourceFile: flask.json.tag
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 82
    functionName: flask.json.tag.JSONTag.to_python
    functionSourceFile: flask.json.tag
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 87
    functionName: flask.json.tag.JSONTag.tag
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - flask.json.tag.JSONTag.to_json
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 103
    functionName: flask.json.tag.TagDict.check
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.next
    - <builtin>.isinstance
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 110
    functionName: flask.json.tag.TagDict.to_json
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 114
    functionName: flask.json.tag.TagDict.to_python
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 122
    functionName: flask.json.tag.PassDict.check
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 125
    functionName: flask.json.tag.PassDict.to_json
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - value.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 137
    functionName: flask.json.tag.TagTuple.check
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 140
    functionName: flask.json.tag.TagTuple.to_json
    functionSourceFile: flask.json.tag
    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:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 143
    functionName: flask.json.tag.TagTuple.to_python
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 150
    functionName: flask.json.tag.PassList.check
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 153
    functionName: flask.json.tag.PassList.to_json
    functionSourceFile: flask.json.tag
    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:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 163
    functionName: flask.json.tag.TagBytes.check
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 166
    functionName: flask.json.tag.TagBytes.to_json
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - base64.b64encode
    - base64.b64encode.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.b64encode
    functionSourceFile: base64
    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: base64.b64encode.decode
    functionSourceFile: base64
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 169
    functionName: flask.json.tag.TagBytes.to_python
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - base64.b64decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.b64decode
    functionSourceFile: base64
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 181
    functionName: flask.json.tag.TagMarkup.check
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.callable
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 184
    functionName: flask.json.tag.TagMarkup.to_json
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - value.__html__
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.__html__
    functionSourceFile: <builtin>
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 187
    functionName: flask.json.tag.TagMarkup.to_python
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - markupsafe.Markup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: markupsafe.Markup
    functionSourceFile: markupsafe
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 195
    functionName: flask.json.tag.TagUUID.check
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 198
    functionName: flask.json.tag.TagUUID.to_json
    functionSourceFile: flask.json.tag
    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:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 201
    functionName: flask.json.tag.TagUUID.to_python
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - uuid.UUID
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uuid.UUID
    functionSourceFile: uuid
    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
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 209
    functionName: flask.json.tag.TagDateTime.check
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 212
    functionName: flask.json.tag.TagDateTime.to_json
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - werkzeug.http.http_date
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 215
    functionName: flask.json.tag.TagDateTime.to_python
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - werkzeug.http.parse_date
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: werkzeug.http.parse_date
    functionSourceFile: werkzeug
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdee6670>
    - <ast.Constant object at 0x7f68cdee6d60>
    argNames:
    - self
    - tag_class
    - force
    - index
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 256
    functionName: flask.json.tag.TaggedJSONSerializer.register
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 289
    functionName: flask.json.tag.TaggedJSONSerializer.tag
    functionSourceFile: flask.json.tag
    functionUses: 1
    functionsReached:
    - tag.check
    - tag.tag
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tag.check
    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: tag.tag
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 297
    functionName: flask.json.tag.TaggedJSONSerializer.untag
    functionSourceFile: flask.json.tag
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - <builtin>.next
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 309
    functionName: flask.json.tag.TaggedJSONSerializer._untag_scan
    functionSourceFile: flask.json.tag
    functionUses: 1
    functionsReached:
    - <builtin>.next
    - flask.json.tag.TaggedJSONSerializer.untag
    - <builtin>.iter
    - <builtin>.isinstance
    - value.items
    - flask.json.tag.TaggedJSONSerializer._untag_scan
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 321
    functionName: flask.json.tag.TaggedJSONSerializer.dumps
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - tag.check
    - tag.tag
    - flask.json.tag.TaggedJSONSerializer.tag
    - flask.json.tag.TaggedJSONSerializer.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 325
    functionName: flask.json.tag.TaggedJSONSerializer.loads
    functionSourceFile: flask.json.tag
    functionUses: 0
    functionsReached:
    - <builtin>.next
    - flask.json.tag.TaggedJSONSerializer.untag
    - <builtin>.iter
    - flask.json.tag.TaggedJSONSerializer.loads
    - <builtin>.isinstance
    - value.items
    - flask.json.tag.TaggedJSONSerializer._untag_scan
    - <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: 1
    functionLinenumber: -1
    functionName: flask.config
    functionSourceFile: flask.config
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd731760>
    argNames:
    - self
    - name
    - get_converter
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 23
    functionName: flask.config.ConfigAttribute.__init__
    functionSourceFile: flask.config
    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: 1
    functionLinenumber: -1
    functionName: flask.config.ConfigAttribute
    functionSourceFile: flask.config
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7317c0>
    argNames:
    - self
    - obj
    - owner
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 35
    functionName: flask.config.ConfigAttribute.__get__
    functionSourceFile: flask.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - obj
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: flask.config.ConfigAttribute.__set__
    functionSourceFile: flask.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68ce13d220>
    argNames:
    - self
    - variable_name
    - silent
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 102
    functionName: flask.config.Config.from_envvar
    functionSourceFile: flask.config
    functionUses: 0
    functionsReached:
    - types.ModuleType
    - os.environ.get
    - config_file.read
    - flask.config.Config.from_pyfile
    - <builtin>.dir
    - <builtin>.getattr
    - flask.config.Config.from_object
    - <builtin>.exec
    - os.path.join
    - <builtin>.isinstance
    - werkzeug.utils.import_string
    - key.isupper
    - <builtin>.compile
    - <builtin>.open
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd484340>
    argNames:
    - self
    - filename
    - silent
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 187
    functionName: flask.config.Config.from_pyfile
    functionSourceFile: flask.config
    functionUses: 1
    functionsReached:
    - types.ModuleType
    - config_file.read
    - <builtin>.dir
    - flask.config.Config.from_object
    - <builtin>.exec
    - os.path.join
    - <builtin>.isinstance
    - werkzeug.utils.import_string
    - key.isupper
    - <builtin>.compile
    - <builtin>.getattr
    - <builtin>.open
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68ce13d100>
    argNames:
    - self
    - prefix
    - loads
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 126
    functionName: flask.config.Config.from_prefixed_env
    functionSourceFile: flask.config
    functionUses: 0
    functionsReached:
    - key.split
    - <builtin>.sorted
    - key.removeprefix
    - key.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.removeprefix
    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: key.split
    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: types.ModuleType
    functionSourceFile: types
    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: config_file.read
    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>.compile
    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>.exec
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 218
    functionName: flask.config.Config.from_object
    functionSourceFile: flask.config
    functionUses: 2
    functionsReached:
    - <builtin>.dir
    - <builtin>.isinstance
    - werkzeug.utils.import_string
    - key.isupper
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: werkzeug.utils.import_string
    functionSourceFile: werkzeug
    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>.dir
    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: key.isupper
    functionSourceFile: <builtin>
    functionUses: 5
    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 0x7f68cda86430>
    - <ast.Constant object at 0x7f68cda86d30>
    argNames:
    - self
    - filename
    - load
    - silent
    - text
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 256
    functionName: flask.config.Config.from_file
    functionSourceFile: flask.config
    functionUses: 0
    functionsReached:
    - flask.config.Config.from_mapping
    - mappings.items
    - os.path.join
    - key.isupper
    - <builtin>.open
    - mappings.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cda057c0>
    argNames:
    - self
    - mapping
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 304
    functionName: flask.config.Config.from_mapping
    functionSourceFile: flask.config
    functionUses: 1
    functionsReached:
    - key.isupper
    - mappings.items
    - mappings.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mappings.update
    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: mappings.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7cf850>
    - <ast.Constant object at 0x7f68cd7cff70>
    argNames:
    - self
    - namespace
    - lowercase
    - trim_namespace
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 323
    functionName: flask.config.Config.get_namespace
    functionSourceFile: flask.config
    functionUses: 0
    functionsReached:
    - k.startswith
    - key.lower
    - <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: k.startswith
    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: key.lower
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 366
    functionName: flask.config.Config.__repr__
    functionSourceFile: flask.config
    functionUses: 0
    functionsReached:
    - dict.__repr__
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dict.__repr__
    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: flask.logging
    functionSourceFile: flask.logging
    functionUses: 0
    functionsReached:
    - logging.Formatter
    - logging.StreamHandler
    - default_handler.setFormatter
    - werkzeug.local.LocalProxy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: werkzeug.local.LocalProxy
    functionSourceFile: werkzeug
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 16
    functionName: flask.logging.wsgi_errors_stream
    functionSourceFile: flask.logging
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - logger
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: flask.logging.has_level_handler
    functionSourceFile: flask.logging
    functionUses: 2
    functionsReached:
    - logger.getEffectiveLevel
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.getEffectiveLevel
    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: logging.StreamHandler
    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: logging.Formatter
    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: default_handler.setFormatter
    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: logging.getLogger
    functionSourceFile: logging
    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: logger.setLevel
    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: logger.addHandler
    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: flask.testing
    functionSourceFile: flask.testing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7812b0>
    - <ast.Constant object at 0x7f68cd781760>
    - <ast.Constant object at 0x7f68cd781850>
    - <ast.Constant object at 0x7f68cd781cd0>
    argNames:
    - self
    - app
    - path
    - base_url
    - subdomain
    - url_scheme
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: flask.testing.EnvironBuilder.__init__
    functionSourceFile: flask.testing
    functionUses: 6
    functionsReached:
    - werkzeug.test.Client.application.config.get
    - <builtin>.bool
    - app_root.lstrip
    - urllib.parse.urlsplit
    - <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: werkzeug.test.Client.application.config.get
    functionSourceFile: werkzeug
    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: urllib.parse.urlsplit
    functionSourceFile: urllib
    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: app_root.lstrip
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - obj
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 88
    functionName: flask.testing.EnvironBuilder.json_dumps
    functionSourceFile: flask.testing
    functionUses: 0
    functionsReached:
    - werkzeug.test.Client.application.json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: werkzeug.test.Client.application.json.dumps
    functionSourceFile: werkzeug
    functionUses: 1
    functionsReached: []
    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: 100
    functionName: flask.testing._get_werkzeug_version
    functionSourceFile: flask.testing
    functionUses: 4
    functionsReached:
    - importlib.metadata.version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 125
    functionName: flask.testing.FlaskClient.__init__
    functionSourceFile: flask.testing
    functionUses: 3
    functionsReached:
    - <builtin>.super
    - contextlib.ExitStack
    - importlib.metadata.version
    - flask.testing._get_werkzeug_version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: contextlib.ExitStack
    functionSourceFile: contextlib
    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: 1
    functionLinenumber: -1
    functionName: flask.testing.FlaskClient
    functionSourceFile: flask.testing
    functionUses: 0
    functionsReached:
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: contextlib.contextmanager
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 136
    functionName: flask.testing.FlaskClient.session_transaction
    functionSourceFile: flask.testing
    functionUses: 0
    functionsReached:
    - werkzeug.test.Client._add_cookies_to_wsgi
    - werkzeug.test.Client.application.session_interface.is_null_session
    - werkzeug.test.Client.application.test_request_context
    - resp.headers.getlist
    - werkzeug.test.Client._update_cookies_from_response
    - ctx.request.host.partition
    - werkzeug.test.Client.application.response_class
    - werkzeug.test.Client.application.session_interface.open_session
    - werkzeug.test.Client.application.session_interface.save_session
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    - 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: werkzeug.test.Client.application.test_request_context
    functionSourceFile: werkzeug
    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: werkzeug.test.Client._add_cookies_to_wsgi
    functionSourceFile: werkzeug
    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: werkzeug.test.Client.application.session_interface.open_session
    functionSourceFile: werkzeug
    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: werkzeug.test.Client.application.response_class
    functionSourceFile: werkzeug
    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: werkzeug.test.Client.application.session_interface.is_null_session
    functionSourceFile: werkzeug
    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: werkzeug.test.Client.application.session_interface.save_session
    functionSourceFile: werkzeug
    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: ctx.request.host.partition
    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: resp.headers.getlist
    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: werkzeug.test.Client._update_cookies_from_response
    functionSourceFile: werkzeug
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 185
    functionName: flask.testing.FlaskClient._copy_environ
    functionSourceFile: flask.testing
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 193
    functionName: flask.testing.FlaskClient._request_from_builder_args
    functionSourceFile: flask.testing
    functionUses: 1
    functionsReached:
    - werkzeug.test.Client.application.config.get
    - <builtin>.bool
    - app_root.lstrip
    - kwargs.get
    - urllib.parse.urlsplit
    - flask.testing.EnvironBuilder.__init__
    - <builtin>.super
    - flask.testing.FlaskClient._copy_environ
    - builder.get_request
    - builder.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: builder.get_request
    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: builder.close
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - args
    - buffered
    - follow_redirects
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 204
    functionName: flask.testing.FlaskClient.open
    functionSourceFile: flask.testing
    functionUses: 0
    functionsReached:
    - flask.testing.FlaskClient._request_from_builder_args
    - EnvironBuilder.from_environ
    - werkzeug.test.Client.application.config.get
    - <builtin>.bool
    - app_root.lstrip
    - kwargs.get
    - urllib.parse.urlsplit
    - flask.testing.EnvironBuilder.__init__
    - <builtin>.super
    - werkzeug.test.Client._new_contexts.clear
    - copy.copy
    - <builtin>.isinstance
    - flask.testing.FlaskClient._copy_environ
    - builder.get_request
    - builder.close
    - contextlib.ExitStack.close
    - contextlib.ExitStack.enter_context
    - copy.copy.get_request
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: copy.copy
    functionSourceFile: copy
    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: copy.copy.get_request
    functionSourceFile: copy
    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: EnvironBuilder.from_environ
    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: contextlib.ExitStack.close
    functionSourceFile: contextlib
    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: contextlib.ExitStack.enter_context
    functionSourceFile: contextlib
    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: werkzeug.test.Client._new_contexts.clear
    functionSourceFile: werkzeug
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 249
    functionName: flask.testing.FlaskClient.__enter__
    functionSourceFile: flask.testing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_value
    - tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 255
    functionName: flask.testing.FlaskClient.__exit__
    functionSourceFile: flask.testing
    functionUses: 0
    functionsReached:
    - contextlib.ExitStack.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - app
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 271
    functionName: flask.testing.FlaskCliRunner.__init__
    functionSourceFile: flask.testing
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7ad1c0>
    - <ast.Constant object at 0x7f68cd7ad7f0>
    argNames:
    - self
    - cli
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 275
    functionName: flask.testing.FlaskCliRunner.invoke
    functionSourceFile: flask.testing
    functionUses: 0
    functionsReached:
    - os.environ.get
    - flask.helpers.get_load_dotenv
    - flask.cli.ScriptInfo.__init__
    - <builtin>.super
    - val.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: flask.testing.FlaskCliRunner.invoke.<lambda1>
    functionSourceFile: flask.testing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd3c1a90>
    - <ast.Constant object at 0x7f68cd3c1b50>
    - <ast.Constant object at 0x7f68cd3c1eb0>
    - <ast.Constant object at 0x7f68cd3c1a00>
    argNames:
    - self
    - app_import_path
    - create_app
    - set_debug_flag
    - load_dotenv_defaults
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 305
    functionName: flask.cli.ScriptInfo.__init__
    functionSourceFile: flask.cli
    functionUses: 2
    functionsReached:
    - flask.helpers.get_load_dotenv
    - val.lower
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: flask.globals
    functionSourceFile: flask.globals
    functionUses: 0
    functionsReached:
    - contextvars.ContextVar
    - werkzeug.local.LocalProxy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: contextvars.ContextVar
    functionSourceFile: contextvars
    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: flask.app
    functionSourceFile: flask.app
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 74
    functionName: flask.app._make_timedelta
    functionSourceFile: flask.app
    functionUses: 0
    functionsReached:
    - datetime.timedelta
    - <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: 1
    functionLinenumber: -1
    functionName: flask.app.Flask
    functionSourceFile: flask.app
    functionUses: 0
    functionsReached:
    - datetime.timedelta
    - werkzeug.datastructures.ImmutableDict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: werkzeug.datastructures.ImmutableDict
    functionSourceFile: werkzeug
    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: cli.AppGroup
    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: weakref.ref
    functionSourceFile: weakref
    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: flask.app.Flask.__init__.<lambda1>
    functionSourceFile: flask.app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 281
    functionName: flask.app.Flask.get_send_file_max_age
    functionSourceFile: flask.app
    functionUses: 1
    functionsReached:
    - value.total_seconds
    - <builtin>.int
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 308
    functionName: flask.app.Flask.send_static_file
    functionSourceFile: flask.app
    functionUses: 0
    functionsReached:
    - kwargs.update
    - flask.app.Flask.get_send_file_max_age
    - value.total_seconds
    - flask.helpers._prepare_send_file_kwargs
    - flask.helpers.send_from_directory
    - typing.cast
    - kwargs.get
    - <builtin>.isinstance
    - <builtin>.int
    - werkzeug.utils.send_from_directory
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7b2100>
    - <ast.Constant object at 0x7f68cd7b2ac0>
    argNames:
    - self
    - resource
    - mode
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 330
    functionName: flask.app.Flask.open_resource
    functionSourceFile: flask.app
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.path.join
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd59f490>
    - <ast.Constant object at 0x7f68cd59fb20>
    argNames:
    - self
    - resource
    - mode
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 363
    functionName: flask.app.Flask.open_instance_resource
    functionSourceFile: flask.app
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jinja2.Environment.globals.update
    functionSourceFile: jinja2
    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: werkzeug.wsgi.get_host
    functionSourceFile: werkzeug
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 478
    functionName: flask.app.Flask.raise_routing_exception
    functionSourceFile: flask.app
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - FormDataRoutingRedirect
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - context
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 506
    functionName: flask.app.Flask.update_template_context
    functionSourceFile: flask.app
    functionUses: 0
    functionsReached:
    - inspect.iscoroutinefunction
    - itertools.chain
    - flask.app.Flask.ensure_sync
    - context.update
    - <builtin>.reversed
    - flask.app.Flask.async_to_sync
    - context.copy
    - asgiref.sync.async_to_sync
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.copy
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - func
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 966
    functionName: flask.app.Flask.ensure_sync
    functionSourceFile: flask.app
    functionUses: 17
    functionsReached:
    - inspect.iscoroutinefunction
    - asgiref.sync.async_to_sync
    - flask.app.Flask.async_to_sync
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asgiref.sync.async_to_sync
    functionSourceFile: asgiref
    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: context.update
    functionSourceFile: <builtin>
    functionUses: 1
    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: 1
    functionLinenumber: 534
    functionName: flask.app.Flask.make_shell_context
    functionSourceFile: flask.app
    functionUses: 0
    functionsReached:
    - rv.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rv.update
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 8
    IfCount: 10
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd567550>
    - <ast.Constant object at 0x7f68cd567880>
    - <ast.Constant object at 0x7f68cd567460>
    - <ast.Constant object at 0x7f68cd5675e0>
    argNames:
    - self
    - host
    - port
    - debug
    - load_dotenv
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 546
    functionName: flask.app.Flask.run
    functionSourceFile: flask.app
    functionUses: 0
    functionsReached:
    - flask.helpers.get_debug_flag
    - os.environ.get
    - <builtin>.bool
    - options.setdefault
    - typing.cast
    - flask.helpers.get_load_dotenv
    - click.secho
    - werkzeug.serving.run_simple
    - cli.load_dotenv
    - cli.show_server_banner
    - val.lower
    - server_name.partition
    - <builtin>.int
    - werkzeug.serving.is_running_from_reloader
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: werkzeug.serving.is_running_from_reloader
    functionSourceFile: werkzeug
    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: click.secho
    functionSourceFile: click
    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: cli.load_dotenv
    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: server_name.partition
    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: cli.show_server_banner
    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: werkzeug.serving.run_simple
    functionSourceFile: werkzeug
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 727
    functionName: flask.app.Flask.test_cli_runner
    functionSourceFile: flask.app
    functionUses: 0
    functionsReached:
    - flask.testing.FlaskCliRunner.__init__
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - e
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 744
    functionName: flask.app.Flask.handle_http_exception
    functionSourceFile: flask.app
    functionUses: 4
    functionsReached:
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - <builtin>.isinstance
    - handler_map.get
    - <builtin>.issubclass
    - flask.app.Flask.async_to_sync
    - asgiref.sync.async_to_sync
    - flask.sansio.app.App._find_error_handler
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - e
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 779
    functionName: flask.app.Flask.handle_user_exception
    functionSourceFile: flask.app
    functionUses: 3
    functionsReached:
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - flask.sansio.app.App.trap_http_exception
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - <builtin>.isinstance
    - handler_map.get
    - <builtin>.issubclass
    - flask.app.Flask.async_to_sync
    - flask.app.Flask.handle_http_exception
    - asgiref.sync.async_to_sync
    - flask.sansio.app.App._find_error_handler
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - e
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 811
    functionName: flask.app.Flask.handle_exception
    functionSourceFile: flask.app
    functionUses: 2
    functionsReached:
    - typing.cast
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - flask.app.Flask.async_to_sync
    - flask.sansio.app.App._find_error_handler
    - got_request_exception.send
    - itertools.chain
    - flask.app.Flask.process_response
    - flask.app.Flask.make_response
    - <builtin>.type
    - flask.app.Flask.log_exception
    - werkzeug.exceptions.InternalServerError.headers.update
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - request_ctx._get_current_object
    - <builtin>.issubclass
    - <builtin>.isinstance
    - handler_map.get
    - werkzeug.exceptions.InternalServerError
    - sys.exc_info
    - flask.app.Flask.finalize_request
    - <builtin>.callable
    - <builtin>.reversed
    - asgiref.sync.async_to_sync
    - request_finished.send
    - <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: got_request_exception.send
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - exc_info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 864
    functionName: flask.app.Flask.log_exception
    functionSourceFile: ''
    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: werkzeug.exceptions.InternalServerError
    functionSourceFile: werkzeug
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68ce293790>
    argNames:
    - self
    - rv
    - from_error_handler
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 922
    functionName: flask.app.Flask.finalize_request
    functionSourceFile: flask.app
    functionUses: 4
    functionsReached:
    - werkzeug.exceptions.InternalServerError.headers.update
    - request_ctx._get_current_object
    - typing.cast
    - <builtin>.callable
    - itertools.chain
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - flask.app.Flask.process_response
    - <builtin>.isinstance
    - <builtin>.reversed
    - flask.app.Flask.async_to_sync
    - asgiref.sync.async_to_sync
    - request_finished.send
    - flask.app.Flask.make_response
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 879
    functionName: flask.app.Flask.dispatch_request
    functionSourceFile: flask.app
    functionUses: 3
    functionsReached:
    - adapter.allowed_methods
    - flask.app.Flask.make_default_options_response
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - <builtin>.isinstance
    - flask.app.Flask.async_to_sync
    - rv.allow.update
    - flask.app.Flask.raise_routing_exception
    - asgiref.sync.async_to_sync
    - <builtin>.getattr
    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: 1
    functionLinenumber: 953
    functionName: flask.app.Flask.make_default_options_response
    functionSourceFile: flask.app
    functionUses: 4
    functionsReached:
    - adapter.allowed_methods
    - rv.allow.update
    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: 5
    functionLinenumber: 904
    functionName: flask.app.Flask.full_dispatch_request
    functionSourceFile: flask.app
    functionUses: 2
    functionsReached:
    - adapter.allowed_methods
    - typing.cast
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - flask.app.Flask.async_to_sync
    - flask.sansio.app.App._find_error_handler
    - itertools.chain
    - flask.app.Flask.process_response
    - request_started.send
    - flask.app.Flask.handle_user_exception
    - <builtin>.getattr
    - flask.app.Flask.make_response
    - <builtin>.type
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - werkzeug.exceptions.InternalServerError.headers.update
    - request_ctx._get_current_object
    - <builtin>.isinstance
    - <builtin>.issubclass
    - rv.allow.update
    - handler_map.get
    - flask.app.Flask.raise_routing_exception
    - flask.app.Flask.handle_http_exception
    - flask.app.Flask.make_default_options_response
    - flask.app.Flask.preprocess_request
    - flask.app.Flask.finalize_request
    - flask.sansio.app.App.trap_http_exception
    - <builtin>.callable
    - <builtin>.reversed
    - flask.app.Flask.dispatch_request
    - asgiref.sync.async_to_sync
    - request_finished.send
    - <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: request_started.send
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1271
    functionName: flask.app.Flask.preprocess_request
    functionSourceFile: flask.app
    functionUses: 3
    functionsReached:
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - <builtin>.reversed
    - flask.app.Flask.async_to_sync
    - asgiref.sync.async_to_sync
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 2
    IfCount: 12
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - rv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1129
    functionName: flask.app.Flask.make_response
    functionSourceFile: flask.app
    functionUses: 5
    functionsReached:
    - werkzeug.exceptions.InternalServerError.headers.update
    - typing.cast
    - <builtin>.callable
    - <builtin>.isinstance
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1298
    functionName: flask.app.Flask.process_response
    functionSourceFile: flask.app
    functionUses: 5
    functionsReached:
    - request_ctx._get_current_object
    - inspect.iscoroutinefunction
    - itertools.chain
    - flask.app.Flask.ensure_sync
    - <builtin>.reversed
    - flask.app.Flask.async_to_sync
    - asgiref.sync.async_to_sync
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request_finished.send
    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: adapter.allowed_methods
    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: rv.allow.update
    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: inspect.iscoroutinefunction
    functionSourceFile: inspect
    functionUses: 18
    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: 1
    functionLinenumber: 980
    functionName: flask.app.Flask.async_to_sync
    functionSourceFile: flask.app
    functionUses: 18
    functionsReached:
    - asgiref.sync.async_to_sync
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 3
    IfCount: 9
    argCount: 6
    argDefaultValues: []
    argNames:
    - endpoint
    - _anchor
    - _method
    - _scheme
    - _external
    - values
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1003
    functionName: flask.app.Flask.url_for
    functionSourceFile: flask.app
    functionUses: 0
    functionsReached:
    - url_adapter.build
    - _cv_request.get
    - urllib.parse.quote
    - _cv_app.get
    - values.update
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    - 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: url_adapter.build
    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: values.update
    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: urllib.parse.quote
    functionSourceFile: urllib
    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: werkzeug.exceptions.InternalServerError.headers.update
    functionSourceFile: werkzeug
    functionUses: 6
    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: request_ctx._get_current_object
    functionSourceFile: <builtin>
    functionUses: 6
    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: request_tearing_down.send
    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: appcontext_tearing_down.send
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - environ
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1407
    functionName: flask.app.Flask.request_context
    functionSourceFile: flask.app
    functionUses: 6
    functionsReached:
    - flask.ctx.RequestContext.__init__
    - flask.app.Flask.create_url_adapter
    - werkzeug.wsgi.get_host
    - app.request_class
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: builder.get_environ
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - environ
    - start_response
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1479
    functionName: flask.app.Flask.wsgi_app
    functionSourceFile: flask.app
    functionUses: 1
    functionsReached:
    - adapter.allowed_methods
    - flask.ctx.RequestContext.__init__
    - typing.cast
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - _cv_app.get
    - _cv_request.set
    - flask.app.Flask.async_to_sync
    - flask.sansio.app.App._find_error_handler
    - flask.app.Flask.handle_exception
    - flask.app.Flask.do_teardown_request
    - got_request_exception.send
    - itertools.chain
    - _cv_app.set
    - flask.app.Flask.process_response
    - flask.app.Flask.app_context
    - werkzeug.wsgi.get_host
    - request_started.send
    - request_tearing_down.send
    - flask.ctx.RequestContext.match_request
    - flask.app.Flask.handle_user_exception
    - <builtin>.getattr
    - flask.app.Flask.make_response
    - flask.app.Flask.create_url_adapter
    - <builtin>.type
    - session_interface.make_null_session
    - app_ctx.pop
    - flask.ctx.RequestContext.push
    - flask.app.Flask.log_exception
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - werkzeug.exceptions.InternalServerError.headers.update
    - request_ctx._get_current_object
    - flask.ctx.RequestContext.pop
    - handler_map.get
    - <builtin>.issubclass
    - <builtin>.isinstance
    - rv.allow.update
    - flask.app.Flask.raise_routing_exception
    - flask.app.Flask.handle_http_exception
    - werkzeug.exceptions.InternalServerError
    - appcontext_pushed.send
    - flask.ctx.AppContext.push
    - session_interface.open_session
    - sys.exc_info
    - app.request_class
    - flask.ctx.AppContext.__init__
    - flask.app.Flask.make_default_options_response
    - flask.app.Flask.finalize_request
    - flask.app.Flask.preprocess_request
    - flask.sansio.app.App.trap_http_exception
    - _cv_request.get
    - <builtin>.callable
    - <builtin>.reversed
    - flask.app.Flask.dispatch_request
    - asgiref.sync.async_to_sync
    - flask.sansio.app.App.should_ignore_error
    - flask.app.Flask.full_dispatch_request
    - _cv_request.reset
    - request_finished.send
    - <builtin>.len
    - flask.app.Flask.request_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - environ
    - start_response
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1529
    functionName: flask.app.Flask.__call__
    functionSourceFile: flask.app
    functionUses: 0
    functionsReached:
    - adapter.allowed_methods
    - flask.ctx.RequestContext.__init__
    - typing.cast
    - inspect.iscoroutinefunction
    - flask.app.Flask.ensure_sync
    - _cv_app.get
    - _cv_request.set
    - flask.app.Flask.async_to_sync
    - flask.sansio.app.App._find_error_handler
    - flask.app.Flask.handle_exception
    - flask.app.Flask.do_teardown_request
    - got_request_exception.send
    - itertools.chain
    - _cv_app.set
    - flask.app.Flask.process_response
    - flask.app.Flask.app_context
    - werkzeug.wsgi.get_host
    - request_started.send
    - request_tearing_down.send
    - flask.ctx.RequestContext.match_request
    - flask.app.Flask.handle_user_exception
    - <builtin>.getattr
    - flask.app.Flask.make_response
    - flask.app.Flask.create_url_adapter
    - <builtin>.type
    - session_interface.make_null_session
    - app_ctx.pop
    - flask.ctx.RequestContext.push
    - flask.app.Flask.log_exception
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - werkzeug.exceptions.InternalServerError.headers.update
    - request_ctx._get_current_object
    - flask.ctx.RequestContext.pop
    - handler_map.get
    - <builtin>.issubclass
    - <builtin>.isinstance
    - rv.allow.update
    - flask.app.Flask.raise_routing_exception
    - flask.app.Flask.handle_http_exception
    - werkzeug.exceptions.InternalServerError
    - appcontext_pushed.send
    - flask.ctx.AppContext.push
    - session_interface.open_session
    - sys.exc_info
    - app.request_class
    - flask.ctx.AppContext.__init__
    - flask.app.Flask.make_default_options_response
    - flask.app.Flask.finalize_request
    - flask.app.Flask.preprocess_request
    - flask.sansio.app.App.trap_http_exception
    - _cv_request.get
    - <builtin>.callable
    - flask.app.Flask.wsgi_app
    - <builtin>.reversed
    - flask.app.Flask.dispatch_request
    - asgiref.sync.async_to_sync
    - flask.sansio.app.App.should_ignore_error
    - flask.app.Flask.full_dispatch_request
    - _cv_request.reset
    - request_finished.send
    - <builtin>.len
    - flask.app.Flask.request_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: flask.cli
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - click.make_pass_decorator
    - click.Group.add_command
    - <builtin>.list
    - <builtin>.super
    - flask.cli.FlaskGroup.__init__
    - click.Option
    - functools.update_wrapper
    - click.option
    - flask.cli.main
    - flask.cli.with_appcontext
    - click.Path.__init__
    - typing.TypeVar
    - extra.pop
    - flask.cli.pass_script_info
    - click.Group.main
    - click.command
    - click.Choice
    - flask.cli.CertParamType.__init__
    - params.extend
    - run_command.params.insert
    - params.append
    - click.pass_context
    - click.Path
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - module
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 41
    functionName: flask.cli.find_best_app
    functionSourceFile: flask.cli
    functionUses: 2
    functionsReached:
    - module.__dict__.values
    - flask.cli._called_with_wrong_args
    - <builtin>.isinstance
    - <builtin>.getattr
    - inspect.isfunction
    - <builtin>.len
    - sys.exc_info
    linkageType: pythonLinkage
    raised:
    - NoAppException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: module.__dict__.values
    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: inspect.isfunction
    functionSourceFile: inspect
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 94
    functionName: flask.cli._called_with_wrong_args
    functionSourceFile: flask.cli
    functionUses: 4
    functionsReached:
    - sys.exc_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - module
    - app_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 120
    functionName: flask.cli.find_app_by_string
    functionSourceFile: flask.cli
    functionUses: 2
    functionsReached:
    - app_name.strip
    - ast.parse
    - ast.literal_eval
    - flask.cli._called_with_wrong_args
    - <builtin>.isinstance
    - <builtin>.getattr
    - inspect.isfunction
    - sys.exc_info
    linkageType: pythonLinkage
    raised:
    - NoAppException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: app_name.strip
    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: ast.parse
    functionSourceFile: ast
    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: ast.literal_eval
    functionSourceFile: ast
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 200
    functionName: flask.cli.prepare_import
    functionSourceFile: flask.cli
    functionUses: 1
    functionsReached:
    - os.path.splitext
    - os.path.dirname
    - os.path.exists
    - os.path.join
    - module_name.append
    - sys.path.insert
    - os.path.basename
    - os.path.realpath
    - os.path.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.realpath
    functionSourceFile: os
    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: module_name.append
    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: os.path.exists
    functionSourceFile: os
    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: sys.path.insert
    functionSourceFile: sys
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdb32190>
    argNames:
    - module_name
    - app_name
    - raise_if_not_found
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 241
    functionName: flask.cli.locate_app
    functionSourceFile: flask.cli
    functionUses: 1
    functionsReached:
    - flask.cli.find_best_app
    - module.__dict__.values
    - app_name.strip
    - ast.parse
    - ast.literal_eval
    - flask.cli._called_with_wrong_args
    - <builtin>.isinstance
    - <builtin>.getattr
    - inspect.isfunction
    - <builtin>.len
    - sys.exc_info
    - <builtin>.__import__
    - flask.cli.find_app_by_string
    linkageType: pythonLinkage
    raised:
    - NoAppException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - ctx
    - param
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 267
    functionName: flask.cli.get_version
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - platform.python_version
    - click.echo
    - ctx.exit
    - importlib.metadata.version
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: platform.python_version
    functionSourceFile: platform
    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: click.echo
    functionSourceFile: click
    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: ctx.exit
    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: click.Option
    functionSourceFile: click
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 333
    functionName: flask.cli.ScriptInfo.load_app
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - flask.cli.find_best_app
    - ast.parse
    - os.path.dirname
    - sys.path.insert
    - module_name.append
    - val.lower
    - inspect.isfunction
    - flask.helpers.get_debug_flag
    - os.path.join
    - flask.cli.prepare_import
    - <builtin>.getattr
    - os.path.splitext
    - os.environ.get
    - <builtin>.bool
    - module.__dict__.values
    - os.path.exists
    - flask.cli._called_with_wrong_args
    - <builtin>.isinstance
    - flask.cli.locate_app
    - os.path.realpath
    - sys.exc_info
    - <builtin>.__import__
    - flask.cli.find_app_by_string
    - app_name.strip
    - ast.literal_eval
    - re.split
    - os.path.basename
    - <builtin>.len
    - os.path.split
    linkageType: pythonLinkage
    raised:
    - NoAppException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.split
    functionSourceFile: re
    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: click.make_pass_decorator
    functionSourceFile: click
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 380
    functionName: flask.cli.with_appcontext
    functionSourceFile: flask.cli
    functionUses: 2
    functionsReached:
    - functools.update_wrapper
    - click.pass_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: click.pass_context
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 395
    functionName: flask.cli.with_appcontext.decorator
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - ctx.ensure_object
    - ctx.invoke
    - ctx.with_resource
    - app.app_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctx.ensure_object
    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: app.app_context
    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: ctx.with_resource
    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: ctx.invoke
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 413
    functionName: flask.cli.AppGroup.command
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - kwargs.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 422
    functionName: flask.cli.AppGroup.command.decorator
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - flask.cli.with_appcontext
    - functools.update_wrapper
    - <builtin>.super
    - click.pass_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 429
    functionName: flask.cli.AppGroup.group
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - kwargs.setdefault
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - ctx
    - param
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 440
    functionName: flask.cli._set_app
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - ctx.ensure_object
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - ctx
    - param
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 468
    functionName: flask.cli._set_debug
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - ctx.get_parameter_source
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctx.get_parameter_source
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - ctx
    - param
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 493
    functionName: flask.cli._env_file_callback
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    - click.secho
    - dotenv.find_dotenv
    - flask.cli.load_dotenv
    - data.items
    - dotenv.dotenv_values
    - os.path.isfile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdb35dc0>
    - <ast.Constant object at 0x7f68cd7c9bb0>
    argNames:
    - path
    - load_defaults
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 706
    functionName: flask.cli.load_dotenv
    functionSourceFile: flask.cli
    functionUses: 1
    functionsReached:
    - <builtin>.bool
    - click.secho
    - dotenv.find_dotenv
    - data.items
    - dotenv.dotenv_values
    - os.path.isfile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: click.Path
    functionSourceFile: click
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 7
    IfCount: 3
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7a8490>
    - <ast.Constant object at 0x7f68cd7a85b0>
    - <ast.Constant object at 0x7f68cd7a84f0>
    - <ast.Constant object at 0x7f68cd7a86d0>
    - <ast.Constant object at 0x7f68cd7a81f0>
    argNames:
    - self
    - add_default_commands
    - create_app
    - add_version_option
    - load_dotenv
    - set_debug_flag
    - extra
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 563
    functionName: flask.cli.FlaskGroup.__init__
    functionSourceFile: flask.cli
    functionUses: 1
    functionsReached:
    - extra.pop
    - click.Group.add_command
    - params.append
    - <builtin>.list
    - <builtin>.super
    - params.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: extra.pop
    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: params.extend
    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: params.append
    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: click.Group.add_command
    functionSourceFile: click
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 600
    functionName: flask.cli.FlaskGroup._load_plugin_commands
    functionSourceFile: flask.cli
    functionUses: 2
    functionsReached:
    - importlib_metadata.entry_points
    - ep.load
    - click.Group.add_command
    - importlib.metadata.entry_points
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib_metadata.entry_points
    functionSourceFile: importlib_metadata
    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: importlib.metadata.entry_points
    functionSourceFile: importlib
    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: ep.load
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - ctx
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 617
    functionName: flask.cli.FlaskGroup.get_command
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - current_app._get_current_object
    - click.Group.add_command
    - flask.cli.FlaskGroup._load_plugin_commands
    - e.format_message
    - app.app_context
    - importlib_metadata.entry_points
    - ctx.with_resource
    - app.cli.get_command
    - info.load_app
    - click.secho
    - <builtin>.super
    - importlib.metadata.entry_points
    - ctx.ensure_object
    - ep.load
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: info.load_app
    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: e.format_message
    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: app.cli.get_command
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ctx
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 644
    functionName: flask.cli.FlaskGroup.list_commands
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - click.Group.add_command
    - importlib_metadata.entry_points
    - e.format_message
    - flask.cli.FlaskGroup._load_plugin_commands
    - traceback.format_exc
    - info.load_app
    - click.secho
    - <builtin>.super
    - importlib.metadata.entry_points
    - rv.update
    - ctx.ensure_object
    - ep.load
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: traceback.format_exc
    functionSourceFile: traceback
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd6f0af0>
    argNames:
    - self
    - info_name
    - args
    - parent
    - extra
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 665
    functionName: flask.cli.FlaskGroup.make_context
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - os.environ.get
    - flask.helpers.get_load_dotenv
    - flask.cli.ScriptInfo.__init__
    - <builtin>.super
    - val.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - ctx
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 686
    functionName: flask.cli.FlaskGroup.parse_args
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - _env_file_option.handle_parse_result
    - <builtin>.super
    - click.Group.get_help_option_names
    - _app_option.handle_parse_result
    - <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: click.Group.get_help_option_names
    functionSourceFile: click
    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: _env_file_option.handle_parse_result
    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: _app_option.handle_parse_result
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 699
    functionName: flask.cli._path_is_ancestor
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: dotenv.find_dotenv
    functionSourceFile: dotenv
    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: dotenv.dotenv_values
    functionSourceFile: dotenv
    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: data.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - debug
    - app_import_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 774
    functionName: flask.cli.show_server_banner
    functionSourceFile: flask.cli
    functionUses: 1
    functionsReached:
    - click.echo
    - werkzeug.serving.is_running_from_reloader
    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: 796
    functionName: flask.cli.CertParamType.__init__
    functionSourceFile: flask.cli
    functionUses: 1
    functionsReached:
    - click.Path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - value
    - param
    - ctx
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 799
    functionName: flask.cli.CertParamType.convert
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - click.STRING
    - werkzeug.utils.import_string
    - <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: click.STRING
    functionSourceFile: click
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - ctx
    - param
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 836
    functionName: flask.cli._validate_key
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - ctx.params.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctx.params.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: 4
    argDefaultValues: []
    argNames:
    - self
    - value
    - param
    - ctx
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 881
    functionName: flask.cli.SeparatedPathType.convert
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - click.Path.split_envvar_value
    - <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: click.Path.split_envvar_value
    functionSourceFile: click
    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: click.command
    functionSourceFile: click
    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: click.option
    functionSourceFile: click
    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: click.Path.__init__
    functionSourceFile: ''
    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: flask.cli.pass_script_info
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 9
    argDefaultValues: []
    argNames:
    - info
    - host
    - port
    - reload
    - debugger
    - with_threads
    - cert
    - extra_files
    - exclude_patterns
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 943
    functionName: flask.cli.run_command
    functionSourceFile: flask.cli
    functionUses: 0
    functionsReached:
    - flask.helpers.get_debug_flag
    - os.environ.get
    - <builtin>.bool
    - werkzeug.run_simple
    - traceback.print_exc
    - flask.cli.show_server_banner
    - info.load_app
    - val.lower
    - click.echo
    - werkzeug.serving.is_running_from_reloader
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: traceback.print_exc
    functionSourceFile: traceback
    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:
    - environ
    - start_response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 971
    functionName: flask.cli.run_command.app
    functionSourceFile: flask.cli
    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: werkzeug.run_simple
    functionSourceFile: werkzeug
    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: run_command.params.insert
    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: f.read
    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>.eval
    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: current_app.make_shell_context
    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: ctx.update
    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: rlcompleter.Completer
    functionSourceFile: rlcompleter
    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: readline.set_completer
    functionSourceFile: readline
    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.interact
    functionSourceFile: code
    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: click.Choice
    functionSourceFile: click
    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: current_app.url_map.iter_rules
    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: row.append
    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: rows.append
    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: headers.append
    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: sorts.append
    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: sorts.index
    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: operator.itemgetter
    functionSourceFile: operator
    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: rows.sort
    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: rows.insert
    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>.max
    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>.range
    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: template.format
    functionSourceFile: <builtin>
    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: 1
    functionLinenumber: 1130
    functionName: flask.cli.main
    functionSourceFile: flask.cli
    functionUses: 2
    functionsReached:
    - click.Group.main
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: click.Group.main
    functionSourceFile: click
    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: flask_jwt_extended
    functionSourceFile: flask_jwt_extended
    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: flask_jwt_extended.view_decorators
    functionSourceFile: flask_jwt_extended.view_decorators
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - jwt_header
    - jwt_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 34
    functionName: flask_jwt_extended.view_decorators._verify_token_is_fresh
    functionSourceFile: flask_jwt_extended.view_decorators
    functionUses: 4
    functionsReached:
    - datetime.datetime.timestamp
    - datetime.datetime.now
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - FreshTokenRequired
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: datetime.datetime.timestamp
    functionSourceFile: datetime
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 9
    IfCount: 11
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7a85b0>
    - <ast.Constant object at 0x7f68cd7a8490>
    - <ast.Constant object at 0x7f68cd7a8430>
    argNames:
    - locations
    - fresh
    - refresh
    - verify_type
    - skip_revocation_check
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 298
    functionName: flask_jwt_extended.view_decorators._decode_jwt_from_request
    functionSourceFile: flask_jwt_extended.view_decorators
    functionUses: 3
    functionsReached:
    - flask_jwt_extended.utils.decode_token
    - datetime.datetime.now
    - flask_jwt_extended.internal_utils.verify_token_type
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._decode_jwt_from_config
    - <builtin>.isinstance
    - <builtin>.str
    - get_encoded_token_functions.append
    - errors.append
    - jwt_manager._token_in_blocklist_callback
    - flask_jwt_extended.utils.get_unverified_jwt_headers
    - flask_jwt_extended.internal_utils.verify_token_not_blocklisted
    - flask_jwt_extended.internal_utils.custom_verification_for_token
    - flask_jwt_extended.view_decorators._verify_token_is_fresh
    - <builtin>.len
    - datetime.datetime.timestamp
    - jwt_manager._token_verification_callback
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    - NoAuthorizationError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - jwt_header
    - jwt_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 177
    functionName: flask_jwt_extended.view_decorators._load_user
    functionSourceFile: flask_jwt_extended.view_decorators
    functionUses: 3
    functionsReached:
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - flask_jwt_extended.internal_utils.user_lookup
    - flask_jwt_extended.internal_utils.has_user_lookup
    - jwt_manager._user_lookup_callback
    linkageType: pythonLinkage
    raised:
    - UserLookupError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: functools.wraps
    functionSourceFile: functools
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 166
    functionName: flask_jwt_extended.view_decorators.jwt_required.wrapper.decorator
    functionSourceFile: flask_jwt_extended.view_decorators
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.view_decorators._decode_jwt_from_request
    - current_app.ensure_sync
    - flask_jwt_extended.internal_utils.verify_token_not_blocklisted
    - flask_jwt_extended.internal_utils.custom_verification_for_token
    - flask_jwt_extended.view_decorators._verify_token_is_fresh
    - jwt_manager._token_in_blocklist_callback
    - flask_jwt_extended.view_decorators._load_user
    - flask_jwt_extended.utils.decode_token
    - flask_jwt_extended.internal_utils.has_user_lookup
    - flask_jwt_extended.internal_utils.verify_token_type
    - flask_jwt_extended.utils.get_unverified_jwt_headers
    - jwt_manager._token_verification_callback
    - flask_jwt_extended.view_decorators.verify_jwt_in_request
    - datetime.datetime.now
    - jwt_manager._user_lookup_callback
    - <builtin>.isinstance
    - <builtin>.str
    - flask_jwt_extended.internal_utils.user_lookup
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._decode_jwt_from_config
    - get_encoded_token_functions.append
    - errors.append
    - <builtin>.len
    - datetime.datetime.timestamp
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_app.ensure_sync
    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: 1
    functionLinenumber: 37
    functionName: flask_jwt_extended.internal_utils.has_user_lookup
    functionSourceFile: flask_jwt_extended.internal_utils
    functionUses: 4
    functionsReached:
    - flask_jwt_extended.internal_utils.get_jwt_manager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: flask_jwt_extended.internal_utils.user_lookup
    functionSourceFile: flask_jwt_extended.internal_utils
    functionUses: 4
    functionsReached:
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._user_lookup_callback
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 189
    functionName: flask_jwt_extended.view_decorators._decode_jwt_from_headers
    functionSourceFile: flask_jwt_extended.view_decorators
    functionUses: 0
    functionsReached:
    - s.split
    - re.split
    - <builtin>.len
    - auth_header.split
    - request.headers.get
    linkageType: pythonLinkage
    raised:
    - NoAuthorizationError
    - InvalidHeaderError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.headers.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: s.split
    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: auth_header.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - refresh
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 233
    functionName: flask_jwt_extended.view_decorators._decode_jwt_from_cookies
    functionSourceFile: flask_jwt_extended.view_decorators
    functionUses: 1
    functionsReached:
    - request.form.get
    - request.cookies.get
    - request.headers.get
    linkageType: pythonLinkage
    raised:
    - NoAuthorizationError
    - CSRFError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.form.get
    functionSourceFile: <builtin>
    functionUses: 2
    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: 259
    functionName: flask_jwt_extended.view_decorators._decode_jwt_from_query_string
    functionSourceFile: flask_jwt_extended.view_decorators
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - value.startswith
    - request.args.get
    linkageType: pythonLinkage
    raised:
    - NoAuthorizationError
    - InvalidQueryParamError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.args.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: value.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - refresh
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 277
    functionName: flask_jwt_extended.view_decorators._decode_jwt_from_json
    functionSourceFile: flask_jwt_extended.view_decorators
    functionUses: 1
    functionsReached:
    - request.json.get
    linkageType: pythonLinkage
    raised:
    - NoAuthorizationError
    - BadRequest
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.json.get
    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: 2
    functionLinenumber: -1
    functionName: flask_jwt_extended.view_decorators._decode_jwt_from_request.<lambda1>
    functionSourceFile: flask_jwt_extended.view_decorators
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.view_decorators._decode_jwt_from_cookies
    - request.cookies.get
    - request.headers.get
    - request.form.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: get_encoded_token_functions.append
    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: 2
    functionLinenumber: -1
    functionName: flask_jwt_extended.view_decorators._decode_jwt_from_request.<lambda2>
    functionSourceFile: flask_jwt_extended.view_decorators
    functionUses: 0
    functionsReached:
    - request.json.get
    - flask_jwt_extended.view_decorators._decode_jwt_from_json
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - encoded_token
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 229
    functionName: flask_jwt_extended.utils.get_unverified_jwt_headers
    functionSourceFile: ''
    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: errors.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - decoded_token
    - refresh
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 49
    functionName: flask_jwt_extended.internal_utils.verify_token_type
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - WrongTokenError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - jwt_header
    - jwt_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 56
    functionName: flask_jwt_extended.internal_utils.verify_token_not_blocklisted
    functionSourceFile: flask_jwt_extended.internal_utils
    functionUses: 4
    functionsReached:
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._token_in_blocklist_callback
    linkageType: pythonLinkage
    raised:
    - RevokedTokenError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - jwt_header
    - jwt_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: flask_jwt_extended.internal_utils.custom_verification_for_token
    functionSourceFile: flask_jwt_extended.internal_utils
    functionUses: 4
    functionsReached:
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._token_verification_callback
    linkageType: pythonLinkage
    raised:
    - UserClaimsVerificationError
    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: flask_jwt_extended.utils
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 0
    functionsReached:
    - werkzeug.local.LocalProxy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: flask_jwt_extended.utils.<lambda1>
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.utils.get_jwt
    - g.get
    - flask_jwt_extended.utils.get_current_user
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 80
    functionName: flask_jwt_extended.utils.get_current_user
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 2
    functionsReached:
    - flask_jwt_extended.utils.get_jwt
    - g.get
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 18
    functionName: flask_jwt_extended.utils.get_jwt
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 4
    functionsReached:
    - g.get
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: g.get
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: flask_jwt_extended.utils.get_jwt_header
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 0
    functionsReached:
    - g.get
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 54
    functionName: flask_jwt_extended.utils.get_jwt_identity
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.utils.get_jwt
    - g.get
    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: 66
    functionName: flask_jwt_extended.utils.get_jwt_request_location
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 0
    functionsReached:
    - g.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: flask_jwt_extended.internal_utils.get_jwt_manager
    functionSourceFile: ''
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt_manager._decode_jwt_from_config
    functionSourceFile: <builtin>
    functionUses: 11
    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: jwt_manager._encode_jwt_from_config
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd5684f0>
    - <ast.Constant object at 0x7f68cd5689a0>
    - <ast.Constant object at 0x7f68cd5689d0>
    argNames:
    - identity
    - expires_delta
    - additional_claims
    - additional_headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 184
    functionName: flask_jwt_extended.utils.create_refresh_token
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._encode_jwt_from_config
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - encoded_token
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 242
    functionName: flask_jwt_extended.utils.get_jti
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._decode_jwt_from_config
    - flask_jwt_extended.utils.decode_token
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - encoded_token
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 255
    functionName: flask_jwt_extended.utils.get_csrf_token
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 2
    functionsReached:
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._decode_jwt_from_config
    - flask_jwt_extended.utils.decode_token
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdee6550>
    - <ast.Constant object at 0x7f68cdee6df0>
    argNames:
    - response
    - encoded_access_token
    - max_age
    - domain
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 269
    functionName: flask_jwt_extended.utils.set_access_cookies
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.utils.decode_token
    - flask_jwt_extended.utils.get_csrf_token
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._decode_jwt_from_config
    - response.set_cookie
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd7d3970>
    - <ast.Constant object at 0x7f68cd7d3130>
    argNames:
    - response
    - encoded_refresh_token
    - max_age
    - domain
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 319
    functionName: flask_jwt_extended.utils.set_refresh_cookies
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.utils.decode_token
    - flask_jwt_extended.utils.get_csrf_token
    - flask_jwt_extended.internal_utils.get_jwt_manager
    - jwt_manager._decode_jwt_from_config
    - response.set_cookie
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdb32700>
    argNames:
    - response
    - domain
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 372
    functionName: flask_jwt_extended.utils.unset_jwt_cookies
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.utils.unset_access_cookies
    - response.set_cookie
    - flask_jwt_extended.utils.unset_refresh_cookies
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68cdb32910>
    argNames:
    - response
    - domain
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 384
    functionName: flask_jwt_extended.utils.unset_access_cookies
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 1
    functionsReached:
    - response.set_cookie
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd9c1460>
    argNames:
    - response
    - domain
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 422
    functionName: flask_jwt_extended.utils.unset_refresh_cookies
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 1
    functionsReached:
    - response.set_cookie
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 460
    functionName: flask_jwt_extended.utils.current_user_context_processor
    functionSourceFile: flask_jwt_extended.utils
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.utils.get_jwt
    - g.get
    - flask_jwt_extended.utils.get_current_user
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: flask_jwt_extended.typing
    functionSourceFile: flask_jwt_extended.typing
    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: flask_jwt_extended.config
    functionSourceFile: flask_jwt_extended.config
    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: 31
    functionName: flask_jwt_extended.config._Config.is_asymmetric
    functionSourceFile: flask_jwt_extended.config
    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: 35
    functionName: flask_jwt_extended.config._Config.encode_key
    functionSourceFile: flask_jwt_extended.config
    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: 39
    functionName: flask_jwt_extended.config._Config.decode_key
    functionSourceFile: flask_jwt_extended.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 43
    functionName: flask_jwt_extended.config._Config.token_location
    functionSourceFile: flask_jwt_extended.config
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    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: 63
    functionName: flask_jwt_extended.config._Config.jwt_in_cookies
    functionSourceFile: flask_jwt_extended.config
    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: 67
    functionName: flask_jwt_extended.config._Config.jwt_in_headers
    functionSourceFile: flask_jwt_extended.config
    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: 71
    functionName: flask_jwt_extended.config._Config.jwt_in_query_string
    functionSourceFile: flask_jwt_extended.config
    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: 75
    functionName: flask_jwt_extended.config._Config.jwt_in_json
    functionSourceFile: flask_jwt_extended.config
    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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 79
    functionName: flask_jwt_extended.config._Config.header_name
    functionSourceFile: flask_jwt_extended.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    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: 86
    functionName: flask_jwt_extended.config._Config.header_type
    functionSourceFile: flask_jwt_extended.config
    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: 90
    functionName: flask_jwt_extended.config._Config.query_string_name
    functionSourceFile: flask_jwt_extended.config
    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: 94
    functionName: flask_jwt_extended.config._Config.query_string_value_prefix
    functionSourceFile: flask_jwt_extended.config
    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: 98
    functionName: flask_jwt_extended.config._Config.access_cookie_name
    functionSourceFile: flask_jwt_extended.config
    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: 102
    functionName: flask_jwt_extended.config._Config.refresh_cookie_name
    functionSourceFile: flask_jwt_extended.config
    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: 106
    functionName: flask_jwt_extended.config._Config.access_cookie_path
    functionSourceFile: flask_jwt_extended.config
    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: 110
    functionName: flask_jwt_extended.config._Config.refresh_cookie_path
    functionSourceFile: flask_jwt_extended.config
    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: 114
    functionName: flask_jwt_extended.config._Config.cookie_secure
    functionSourceFile: flask_jwt_extended.config
    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: 118
    functionName: flask_jwt_extended.config._Config.cookie_domain
    functionSourceFile: flask_jwt_extended.config
    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: 122
    functionName: flask_jwt_extended.config._Config.session_cookie
    functionSourceFile: flask_jwt_extended.config
    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: 126
    functionName: flask_jwt_extended.config._Config.cookie_samesite
    functionSourceFile: flask_jwt_extended.config
    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: 130
    functionName: flask_jwt_extended.config._Config.json_key
    functionSourceFile: flask_jwt_extended.config
    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: 134
    functionName: flask_jwt_extended.config._Config.refresh_json_key
    functionSourceFile: flask_jwt_extended.config
    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: 138
    functionName: flask_jwt_extended.config._Config.cookie_csrf_protect
    functionSourceFile: flask_jwt_extended.config
    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: 142
    functionName: flask_jwt_extended.config._Config.csrf_request_methods
    functionSourceFile: flask_jwt_extended.config
    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: 146
    functionName: flask_jwt_extended.config._Config.csrf_in_cookies
    functionSourceFile: flask_jwt_extended.config
    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: 150
    functionName: flask_jwt_extended.config._Config.access_csrf_cookie_name
    functionSourceFile: flask_jwt_extended.config
    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: 154
    functionName: flask_jwt_extended.config._Config.refresh_csrf_cookie_name
    functionSourceFile: flask_jwt_extended.config
    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: 158
    functionName: flask_jwt_extended.config._Config.access_csrf_cookie_path
    functionSourceFile: flask_jwt_extended.config
    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: 162
    functionName: flask_jwt_extended.config._Config.refresh_csrf_cookie_path
    functionSourceFile: flask_jwt_extended.config
    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: 166
    functionName: flask_jwt_extended.config._Config.access_csrf_header_name
    functionSourceFile: flask_jwt_extended.config
    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: 170
    functionName: flask_jwt_extended.config._Config.refresh_csrf_header_name
    functionSourceFile: flask_jwt_extended.config
    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: 174
    functionName: flask_jwt_extended.config._Config.csrf_check_form
    functionSourceFile: flask_jwt_extended.config
    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: 178
    functionName: flask_jwt_extended.config._Config.access_csrf_field_name
    functionSourceFile: flask_jwt_extended.config
    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: 182
    functionName: flask_jwt_extended.config._Config.refresh_csrf_field_name
    functionSourceFile: flask_jwt_extended.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 186
    functionName: flask_jwt_extended.config._Config.access_expires
    functionSourceFile: flask_jwt_extended.config
    functionUses: 0
    functionsReached:
    - datetime.timedelta
    - datetime.datetime.now
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 203
    functionName: flask_jwt_extended.config._Config.refresh_expires
    functionSourceFile: flask_jwt_extended.config
    functionUses: 0
    functionsReached:
    - datetime.timedelta
    - datetime.datetime.now
    - <builtin>.type
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    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: 220
    functionName: flask_jwt_extended.config._Config.algorithm
    functionSourceFile: flask_jwt_extended.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 224
    functionName: flask_jwt_extended.config._Config.decode_algorithms
    functionSourceFile: flask_jwt_extended.config
    functionUses: 0
    functionsReached:
    - algorithms.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: algorithms.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: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 233
    functionName: flask_jwt_extended.config._Config._secret_key
    functionSourceFile: flask_jwt_extended.config
    functionUses: 0
    functionsReached:
    - current_app.config.get
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_app.config.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 246
    functionName: flask_jwt_extended.config._Config._public_key
    functionSourceFile: flask_jwt_extended.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    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: 257
    functionName: flask_jwt_extended.config._Config._private_key
    functionSourceFile: flask_jwt_extended.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    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: 268
    functionName: flask_jwt_extended.config._Config.cookie_max_age
    functionSourceFile: flask_jwt_extended.config
    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: 275
    functionName: flask_jwt_extended.config._Config.identity_claim_key
    functionSourceFile: flask_jwt_extended.config
    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: 279
    functionName: flask_jwt_extended.config._Config.exempt_methods
    functionSourceFile: flask_jwt_extended.config
    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: 283
    functionName: flask_jwt_extended.config._Config.error_msg_key
    functionSourceFile: flask_jwt_extended.config
    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: 287
    functionName: flask_jwt_extended.config._Config.json_encoder
    functionSourceFile: flask_jwt_extended.config
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.internal_utils.get_json_encoder
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - app
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 81
    functionName: flask_jwt_extended.internal_utils.get_json_encoder
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 291
    functionName: flask_jwt_extended.config._Config.decode_audience
    functionSourceFile: flask_jwt_extended.config
    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: 295
    functionName: flask_jwt_extended.config._Config.encode_audience
    functionSourceFile: flask_jwt_extended.config
    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: 299
    functionName: flask_jwt_extended.config._Config.encode_issuer
    functionSourceFile: flask_jwt_extended.config
    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: 303
    functionName: flask_jwt_extended.config._Config.decode_issuer
    functionSourceFile: flask_jwt_extended.config
    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: 307
    functionName: flask_jwt_extended.config._Config.leeway
    functionSourceFile: flask_jwt_extended.config
    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: 311
    functionName: flask_jwt_extended.config._Config.verify_sub
    functionSourceFile: flask_jwt_extended.config
    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: 315
    functionName: flask_jwt_extended.config._Config.encode_nbf
    functionSourceFile: flask_jwt_extended.config
    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: flask_jwt_extended.internal_utils
    functionSourceFile: flask_jwt_extended.internal_utils
    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: jwt_manager._user_lookup_callback
    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: jwt_manager._token_in_blocklist_callback
    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: jwt_manager._token_verification_callback
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - o
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 72
    functionName: flask_jwt_extended.internal_utils.JSONEncoder.default
    functionSourceFile: flask_jwt_extended.internal_utils
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: flask_jwt_extended.exceptions
    functionSourceFile: flask_jwt_extended.exceptions
    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
    - jwt_header
    - jwt_data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 63
    functionName: flask_jwt_extended.exceptions.RevokedTokenError.__init__
    functionSourceFile: flask_jwt_extended.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - message
    - jwt_header
    - jwt_data
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: flask_jwt_extended.exceptions.FreshTokenRequired.__init__
    functionSourceFile: flask_jwt_extended.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - message
    - jwt_header
    - jwt_data
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 87
    functionName: flask_jwt_extended.exceptions.UserLookupError.__init__
    functionSourceFile: flask_jwt_extended.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - message
    - jwt_header
    - jwt_data
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 99
    functionName: flask_jwt_extended.exceptions.UserClaimsVerificationError.__init__
    functionSourceFile: flask_jwt_extended.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: flask_jwt_extended.jwt_manager
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd954610>
    argNames:
    - self
    - app
    - add_context_processor
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 98
    functionName: flask_jwt_extended.jwt_manager.JWTManager.init_app
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 5
    functionsReached:
    - flask.sansio.scaffold.Scaffold.errorhandler.decorator
    - app.config.setdefault
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - flask.sansio.scaffold.Scaffold.errorhandler
    - datetime.timedelta
    - <builtin>.hasattr
    - <builtin>.issubclass
    - <builtin>.isinstance
    - flask.sansio.scaffold.Scaffold.context_processor
    - flask_jwt_extended.jwt_manager.JWTManager._set_default_configuration_options
    - flask.sansio.scaffold.Scaffold.register_error_handler
    - flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 43
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - app
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 187
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_default_configuration_options
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 6
    functionsReached:
    - app.config.setdefault
    - datetime.timedelta
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 121
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 6
    functionsReached:
    - flask.sansio.scaffold.Scaffold.errorhandler.decorator
    - flask.sansio.scaffold.Scaffold._get_exc_class_and_code
    - flask.sansio.scaffold.Scaffold.errorhandler
    - <builtin>.issubclass
    - <builtin>.isinstance
    - flask.sansio.scaffold.Scaffold.register_error_handler
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 123
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_csrf_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - <builtin>.str
    - flask.json.jsonify
    - flask_jwt_extended.default_callbacks.default_unauthorized_callback
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - error_string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 79
    functionName: flask_jwt_extended.default_callbacks.default_unauthorized_callback
    functionSourceFile: flask_jwt_extended.default_callbacks
    functionUses: 2
    functionsReached:
    - current_app.json.response
    - flask.json.jsonify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 127
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_decode_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - flask_jwt_extended.default_callbacks.default_invalid_token_callback
    - flask.json.jsonify
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - error_string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 66
    functionName: flask_jwt_extended.default_callbacks.default_invalid_token_callback
    functionSourceFile: flask_jwt_extended.default_callbacks
    functionUses: 9
    functionsReached:
    - current_app.json.response
    - flask.json.jsonify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 131
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_expired_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.default_callbacks.default_expired_token_callback
    - current_app.json.response
    - flask.json.jsonify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - _expired_jwt_header
    - _expired_jwt_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 56
    functionName: flask_jwt_extended.default_callbacks.default_expired_token_callback
    functionSourceFile: flask_jwt_extended.default_callbacks
    functionUses: 1
    functionsReached:
    - current_app.json.response
    - flask.json.jsonify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 135
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_fresh_token_required
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.default_callbacks.default_needs_fresh_token_callback
    - current_app.json.response
    - flask.json.jsonify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - jwt_header
    - jwt_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 89
    functionName: flask_jwt_extended.default_callbacks.default_needs_fresh_token_callback
    functionSourceFile: flask_jwt_extended.default_callbacks
    functionUses: 1
    functionsReached:
    - current_app.json.response
    - flask.json.jsonify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 139
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_missing_required_claim_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - flask_jwt_extended.default_callbacks.default_invalid_token_callback
    - flask.json.jsonify
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 143
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_invalid_audience_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - flask_jwt_extended.default_callbacks.default_invalid_token_callback
    - flask.json.jsonify
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 147
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_invalid_issuer_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - flask_jwt_extended.default_callbacks.default_invalid_token_callback
    - flask.json.jsonify
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 151
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_invalid_header_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - flask_jwt_extended.default_callbacks.default_invalid_token_callback
    - flask.json.jsonify
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 155
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_invalid_token_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - flask_jwt_extended.default_callbacks.default_invalid_token_callback
    - flask.json.jsonify
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 159
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_jwt_decode_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - flask_jwt_extended.default_callbacks.default_invalid_token_callback
    - flask.json.jsonify
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 163
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_auth_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - <builtin>.str
    - flask.json.jsonify
    - flask_jwt_extended.default_callbacks.default_unauthorized_callback
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 167
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_invalid_query_param_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - flask_jwt_extended.default_callbacks.default_invalid_token_callback
    - flask.json.jsonify
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 171
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_revoked_token_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - flask_jwt_extended.default_callbacks.default_revoked_token_callback
    - flask.json.jsonify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - jwt_header
    - jwt_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 102
    functionName: flask_jwt_extended.default_callbacks.default_revoked_token_callback
    functionSourceFile: flask_jwt_extended.default_callbacks
    functionUses: 1
    functionsReached:
    - current_app.json.response
    - flask.json.jsonify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 175
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_failed_token_verification
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - flask_jwt_extended.default_callbacks.default_token_verification_failed_callback
    - flask.json.jsonify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - _jwt_header
    - _jwt_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 135
    functionName: flask_jwt_extended.default_callbacks.default_token_verification_failed_callback
    functionSourceFile: flask_jwt_extended.default_callbacks
    functionUses: 1
    functionsReached:
    - current_app.json.response
    - flask.json.jsonify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 179
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handler_user_lookup_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - flask_jwt_extended.default_callbacks.default_user_lookup_error_callback
    - flask.json.jsonify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - _jwt_header
    - jwt_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 115
    functionName: flask_jwt_extended.default_callbacks.default_user_lookup_error_callback
    functionSourceFile: flask_jwt_extended.default_callbacks
    functionUses: 1
    functionsReached:
    - current_app.json.response
    - flask.json.jsonify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 183
    functionName: flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_wrong_token_error
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - current_app.json.response
    - flask_jwt_extended.default_callbacks.default_invalid_token_callback
    - flask.json.jsonify
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: app.config.setdefault
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 234
    functionName: flask_jwt_extended.jwt_manager.JWTManager.additional_claims_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 251
    functionName: flask_jwt_extended.jwt_manager.JWTManager.additional_headers_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 268
    functionName: flask_jwt_extended.jwt_manager.JWTManager.decode_key_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 289
    functionName: flask_jwt_extended.jwt_manager.JWTManager.encode_key_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 305
    functionName: flask_jwt_extended.jwt_manager.JWTManager.expired_token_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 321
    functionName: flask_jwt_extended.jwt_manager.JWTManager.invalid_token_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 338
    functionName: flask_jwt_extended.jwt_manager.JWTManager.needs_fresh_token_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 355
    functionName: flask_jwt_extended.jwt_manager.JWTManager.revoked_token_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 371
    functionName: flask_jwt_extended.jwt_manager.JWTManager.token_in_blocklist_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 388
    functionName: flask_jwt_extended.jwt_manager.JWTManager.token_verification_failed_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 404
    functionName: flask_jwt_extended.jwt_manager.JWTManager.token_verification_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 421
    functionName: flask_jwt_extended.jwt_manager.JWTManager.unauthorized_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 435
    functionName: flask_jwt_extended.jwt_manager.JWTManager.user_identity_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 450
    functionName: flask_jwt_extended.jwt_manager.JWTManager.user_lookup_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    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
    - callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 475
    functionName: flask_jwt_extended.jwt_manager.JWTManager.user_lookup_error_loader
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd456370>
    - <ast.Constant object at 0x7f68cd456430>
    - <ast.Constant object at 0x7f68cd456400>
    - <ast.Constant object at 0x7f68cd456070>
    argNames:
    - self
    - identity
    - token_type
    - claims
    - fresh
    - expires_delta
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 492
    functionName: flask_jwt_extended.jwt_manager.JWTManager._encode_jwt_from_config
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.default_callbacks.default_encode_key_callback
    - uuid.uuid4
    - datetime.datetime.now
    - claim_overrides.update
    - token_data.update
    - <builtin>.isinstance
    - <builtin>.str
    - header_overrides.update
    - flask_jwt_extended.default_callbacks.default_additional_claims_callback
    - flask_jwt_extended.default_callbacks.default_user_identity_callback
    - flask_jwt_extended.default_callbacks.default_jwt_headers_callback
    - flask_jwt_extended.tokens._encode_jwt
    - datetime.datetime.timestamp
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - default_headers
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 33
    functionName: flask_jwt_extended.default_callbacks.default_jwt_headers_callback
    functionSourceFile: ''
    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: header_overrides.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - userdata
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 18
    functionName: flask_jwt_extended.default_callbacks.default_additional_claims_callback
    functionSourceFile: ''
    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: claim_overrides.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - userdata
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 44
    functionName: flask_jwt_extended.default_callbacks.default_user_identity_callback
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - identity
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 156
    functionName: flask_jwt_extended.default_callbacks.default_encode_key_callback
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 14
    argDefaultValues: []
    argNames:
    - algorithm
    - audience
    - claim_overrides
    - csrf
    - expires_delta
    - fresh
    - header_overrides
    - identity
    - identity_claim_key
    - issuer
    - json_encoder
    - secret
    - token_type
    - nbf
    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
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 21
    functionName: flask_jwt_extended.tokens._encode_jwt
    functionSourceFile: flask_jwt_extended.tokens
    functionUses: 1
    functionsReached:
    - uuid.uuid4
    - datetime.datetime.now
    - token_data.update
    - <builtin>.isinstance
    - <builtin>.str
    - datetime.datetime.timestamp
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f68cd430c40>
    - <ast.Constant object at 0x7f68cd4300a0>
    argNames:
    - self
    - encoded_token
    - csrf_value
    - allow_expired
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 532
    functionName: flask_jwt_extended.jwt_manager.JWTManager._decode_jwt_from_config
    functionSourceFile: flask_jwt_extended.jwt_manager
    functionUses: 0
    functionsReached:
    - flask_jwt_extended.default_callbacks.default_decode_key_callback
    - flask_jwt_extended.tokens._decode_jwt
    - hmac.compare_digest
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - jwt_header
    - jwt_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 148
    functionName: flask_jwt_extended.default_callbacks.default_decode_key_callback
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 0
    IfCount: 8
    argCount: 11
    argDefaultValues: []
    argNames:
    - algorithms
    - allow_expired
    - audience
    - csrf_value
    - encoded_token
    - identity_claim_key
    - issuer
    - leeway
    - secret
    - verify_aud
    - verify_sub
    argTypes:
    - 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: 77
    functionName: flask_jwt_extended.tokens._decode_jwt
    functionSourceFile: flask_jwt_extended.tokens
    functionUses: 1
    functionsReached:
    - hmac.compare_digest
    linkageType: pythonLinkage
    raised:
    - JWTDecodeError
    - CSRFError
    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: flask_jwt_extended.default_callbacks
    functionSourceFile: flask_jwt_extended.default_callbacks
    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:
    - jwt_headers
    - jwt_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 29
    functionName: flask_jwt_extended.default_callbacks.default_blocklist_callback
    functionSourceFile: flask_jwt_extended.default_callbacks
    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:
    - _jwt_header
    - _jwt_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 128
    functionName: flask_jwt_extended.default_callbacks.default_token_verification_callback
    functionSourceFile: flask_jwt_extended.default_callbacks
    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: flask_jwt_extended.tokens
    functionSourceFile: flask_jwt_extended.tokens
    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: uuid.uuid4
    functionSourceFile: uuid
    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: token_data.update
    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: 1
    functionLinenumber: -1
    functionName: flask.views
    functionSourceFile: flask.views
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    - <builtin>.frozenset
    linkageType: pythonLinkage
    raised: []
    returnType: N/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>.frozenset
    functionSourceFile: <builtin>
    functionUses: 1
    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: 78
    functionName: flask.views.View.dispatch_request
    functionSourceFile: flask.views
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - name
    - class_args
    - class_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 86
    functionName: flask.views.View.as_view
    functionSourceFile: flask.views
    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:
    - kwargs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 115
    functionName: flask.views.View.as_view.view
    functionSourceFile: flask.views
    functionUses: 0
    functionsReached:
    - current_app.ensure_sync
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 165
    functionName: flask.views.MethodView.__init_subclass__
    functionSourceFile: flask.views
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - methods.update
    - <builtin>.super
    - <builtin>.hasattr
    - methods.add
    - key.upper
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: methods.update
    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: key.upper
    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: methods.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 182
    functionName: flask.views.MethodView.dispatch_request
    functionSourceFile: flask.views
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - current_app.ensure_sync
    - request.method.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: request.method.lower
    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: 2
    functionLinenumber: -1
    functionName: flask.__main__
    functionSourceFile: flask.__main__
    functionUses: 0
    functionsReached:
    - click.Group.main
    - flask.cli.main
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: jwt.help
    functionSourceFile: jwt.help
    functionUses: 0
    functionsReached:
    - platform.system
    - <builtin>.print
    - jwt.help.info
    - platform.python_implementation
    - jwt.help.main
    - json.dumps
    - platform.python_version
    - platform.release
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 16
    functionName: jwt.help.info
    functionSourceFile: jwt.help
    functionUses: 2
    functionsReached:
    - platform.system
    - platform.python_version
    - platform.python_implementation
    - platform.release
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: platform.system
    functionSourceFile: platform
    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: platform.release
    functionSourceFile: platform
    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: platform.python_implementation
    functionSourceFile: platform
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 61
    functionName: jwt.help.main
    functionSourceFile: jwt.help
    functionUses: 1
    functionsReached:
    - platform.system
    - <builtin>.print
    - jwt.help.info
    - platform.python_implementation
    - json.dumps
    - platform.python_version
    - platform.release
    linkageType: pythonLinkage
    raised: []
    returnType: N/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
  Function list name: All functions
Function coverage:
  '...fuzz_jwt':
  - 98
  - 99
  '...fuzz_jwt.TestOneInput':
  - 89
  - 85
  - 86
  - 87
  '...fuzz_jwt.get_app':
  - 34
  - 36
  - 37
  - 30
  - 31
  '...fuzz_jwt.get_app.access_protected':
  - 39
  '...fuzz_jwt.main':
  - 93
  - 94
  - 95
  '...fuzz_jwt.test_encodings':
  - 45
  - 46
  - 47
  - 48
  - 49
  '...fuzz_jwt.test_get':
  - 70
  - 71
  - 73
  - 77
  - 78
  - 81
  - 53
  - 54
  - 56
  '...fuzz_jwt.test_get.custom':
  - 65
  - 66
  - 58
  - 59
  - 60
  - 61
  - 62
  flask:
  - 45
  flask.__getattr__:
  - 48
  - 59
  - 52
  flask.__main__:
  - 3
  flask.app:
  - 65
  - 68
  - 69
  - 70
  - 71
  - 57
  flask.app.Flask:
  - 178
  - 185
  - 82
  - 224
  flask.app.Flask.__call__:
  - 1536
  - 1532
  flask.app.Flask.__init__:
  - 256
  - 267
  - 268
  - 239
  - 273
  - 274
  - 278
  flask.app.Flask.__init__.<lambda1>:
  - 278
  flask.app.Flask.app_context:
  - 1387
  - 1405
  flask.app.Flask.async_to_sync:
  - 1001
  - 983
  flask.app.Flask.create_jinja_environment:
  - 386
  - 397
  - 399
  - 402
  - 405
  - 410
  - 411
  flask.app.Flask.create_url_adapter:
  - 450
  - 454
  - 426
  - 458
  - 464
  - 469
  - 470
  - 445
  - 446
  flask.app.Flask.dispatch_request:
  - 896
  - 899
  - 902
  - 880
  - 890
  - 891
  - 895
  flask.app.Flask.do_teardown_appcontext:
  - 1378
  - 1379
  - 1381
  - 1382
  - 1384
  - 1364
  flask.app.Flask.do_teardown_request:
  - 1350
  - 1351
  - 1353
  - 1354
  - 1355
  - 1356
  - 1358
  - 1330
  flask.app.Flask.ensure_sync:
  - 976
  - 975
  - 967
  flask.app.Flask.finalize_request:
  - 939
  - 941
  - 942
  - 946
  - 948
  - 927
  flask.app.Flask.full_dispatch_request:
  - 905
  - 914
  - 915
  - 916
  - 917
  - 919
  - 920
  flask.app.Flask.get_send_file_max_age:
  - 304
  - 282
  - 300
  - 303
  flask.app.Flask.handle_exception:
  - 839
  - 840
  - 843
  - 812
  - 846
  - 849
  - 854
  - 856
  - 857
  - 859
  - 860
  - 862
  flask.app.Flask.handle_http_exception:
  - 771
  - 774
  - 775
  - 777
  - 747
  - 765
  flask.app.Flask.handle_user_exception:
  - 801
  - 802
  - 804
  - 806
  - 809
  - 782
  - 796
  flask.app.Flask.log_exception:
  - 875
  - 868
  flask.app.Flask.make_default_options_response:
  - 961
  - 954
  - 963
  - 962
  flask.app.Flask.make_response:
  - 1190
  - 1191
  - 1194
  - 1197
  - 1198
  - 1211
  - 1219
  - 1220
  - 1224
  - 1230
  - 1231
  - 1232
  - 1236
  - 1257
  - 1130
  - 1259
  - 1260
  - 1266
  - 1267
  flask.app.Flask.make_shell_context:
  - 543
  - 542
  - 535
  flask.app.Flask.open_instance_resource:
  - 366
  - 378
  - 380
  - 381
  - 383
  flask.app.Flask.open_resource:
  - 353
  - 356
  - 358
  - 359
  - 361
  - 333
  flask.app.Flask.preprocess_request:
  - 1281
  - 1283
  - 1284
  - 1285
  - 1286
  - 1288
  - 1289
  - 1290
  - 1291
  - 1293
  - 1272
  flask.app.Flask.process_response:
  - 1313
  - 1314
  - 1316
  - 1317
  - 1318
  - 1319
  - 1321
  - 1322
  - 1299
  - 1311
  flask.app.Flask.raise_routing_exception:
  - 496
  - 494
  - 479
  flask.app.Flask.request_context:
  - 1408
  - 1421
  flask.app.Flask.run:
  - 640
  - 641
  - 646
  - 647
  - 648
  - 649
  - 653
  - 654
  - 655
  - 657
  - 662
  - 554
  - 611
  - 612
  - 613
  - 623
  - 624
  - 627
  - 628
  - 631
  - 632
  - 634
  - 637
  - 638
  flask.app.Flask.send_static_file:
  - 320
  - 325
  - 326
  - 327
  - 309
  flask.app.Flask.test_cli_runner:
  - 728
  - 739
  - 742
  flask.app.Flask.test_client:
  - 721
  - 723
  - 670
  flask.app.Flask.test_request_context:
  - 1424
  - 1475
  - 1477
  - 1472
  flask.app.Flask.update_template_context:
  - 520
  - 521
  - 525
  - 527
  - 528
  - 529
  - 530
  - 532
  - 507
  flask.app.Flask.url_for:
  - 1089
  - 1121
  - 1123
  - 1060
  - 1124
  - 1062
  - 1099
  - 1068
  - 1069
  - 1104
  - 1107
  - 1076
  - 1014
  - 1079
  - 1110
  - 1084
  - 1118
  - 1087
  flask.app.Flask.wsgi_app:
  - 1506
  - 1510
  - 1511
  - 1482
  - 1514
  - 1516
  - 1518
  - 1520
  - 1521
  - 1522
  - 1524
  - 1527
  flask.app._make_timedelta:
  - 75
  - 78
  flask.blueprints:
  - 14
  flask.blueprints.Blueprint.__init__:
  - 32
  - 49
  flask.blueprints.Blueprint.get_send_file_max_age:
  - 56
  - 74
  - 77
  - 78
  flask.blueprints.Blueprint.open_resource:
  - 128
  - 107
  - 120
  - 123
  - 125
  - 126
  flask.blueprints.Blueprint.send_static_file:
  - 99
  - 100
  - 101
  - 83
  - 94
  flask.cli:
  - 899
  - 517
  - 901
  - 519
  - 906
  - 912
  - 918
  - 27
  - 923
  - 283
  - 926
  - 1056
  - 1057
  - 932
  - 1060
  - 935
  - 1067
  - 453
  - 1118
  - 485
  - 1004
  - 1134
  - 1007
  - 1135
  - 375
  - 377
  - 890
  - 891
  - 892
  - 893
  - 895
  flask.cli.AppGroup:
  - 406
  flask.cli.AppGroup.command:
  - 416
  - 420
  flask.cli.AppGroup.command.decorator:
  - 424
  - 425
  - 423
  flask.cli.AppGroup.group:
  - 432
  - 436
  - 437
  flask.cli.CertParamType:
  - 789
  flask.cli.CertParamType.__init__:
  - 797
  flask.cli.CertParamType.convert:
  - 812
  - 814
  - 816
  - 828
  - 830
  flask.cli.FlaskGroup:
  - 532
  flask.cli.FlaskGroup.__init__:
  - 577
  - 579
  - 580
  - 582
  - 585
  - 587
  - 593
  - 594
  - 595
  - 596
  - 572
  flask.cli.FlaskGroup._load_plugin_commands:
  - 612
  - 601
  - 604
  - 613
  flask.cli.FlaskGroup.get_command:
  - 640
  - 642
  - 618
  - 621
  - 623
  - 626
  - 631
  - 633
  - 639
  flask.cli.FlaskGroup.list_commands:
  - 645
  - 647
  - 648
  - 653
  - 657
  - 661
  - 663
  flask.cli.FlaskGroup.make_context:
  - 684
  - 677
  - 678
  flask.cli.FlaskGroup.parse_args:
  - 687
  - 688
  - 693
  - 694
  - 696
  flask.cli.NoAppException:
  - 38
  flask.cli.ScriptInfo:
  - 294
  flask.cli.ScriptInfo.__init__:
  - 322
  - 323
  flask.cli.ScriptInfo.load_app:
  - 352
  - 353
  - 355
  - 358
  - 334
  - 366
  - 369
  - 338
  - 341
  - 342
  - 344
  - 346
  - 348
  - 349
  - 351
  flask.cli.SeparatedPathType:
  - 876
  flask.cli.SeparatedPathType.convert:
  - 884
  - 886
  - 887
  flask.cli._called_with_wrong_args:
  - 106
  - 102
  - 95
  flask.cli._env_file_callback:
  - 509
  - 501
  - 510
  flask.cli._path_is_ancestor:
  - 700
  - 703
  flask.cli._set_app:
  - 441
  - 444
  flask.cli._set_debug:
  - 473
  - 471
  flask.cli._validate_key:
  - 837
  - 869
  - 840
  - 848
  - 850
  - 851
  - 856
  - 863
  flask.cli.find_app_by_string:
  - 129
  - 135
  - 168
  - 139
  - 141
  - 176
  - 178
  - 180
  - 150
  - 152
  - 121
  - 191
  flask.cli.find_best_app:
  - 67
  - 68
  - 70
  - 72
  - 42
  - 74
  - 77
  - 48
  - 49
  - 51
  - 55
  - 57
  - 59
  flask.cli.get_version:
  - 268
  - 271
  - 272
  - 274
  - 275
  - 280
  flask.cli.load_dotenv:
  - 771
  - 709
  - 743
  - 744
  - 755
  - 756
  - 757
  - 760
  - 762
  - 763
  - 765
  - 766
  flask.cli.locate_app:
  - 261
  - 262
  - 232
  - 264
  - 238
  - 245
  - 249
  - 254
  flask.cli.main:
  - 1131
  flask.cli.prepare_import:
  - 224
  - 226
  - 201
  - 204
  - 206
  - 207
  - 210
  - 211
  - 217
  - 218
  - 220
  - 223
  flask.cli.routes_command:
  - 1070
  - 1071
  - 1073
  - 1074
  - 1077
  - 1079
  - 1082
  - 1085
  - 1088
  - 1089
  - 1091
  - 1092
  - 1097
  - 1098
  - 1099
  - 1101
  - 1102
  - 1105
  - 1109
  - 1110
  - 1111
  - 1112
  - 1114
  - 1115
  flask.cli.run_command:
  - 986
  - 963
  - 965
  - 968
  - 981
  - 983
  - 954
  - 989
  - 991
  flask.cli.shell_command:
  - 1028
  - 1029
  - 1030
  - 1031
  - 1033
  - 1038
  - 1040
  - 1010
  - 1049
  - 1051
  - 1053
  flask.cli.show_server_banner:
  - 775
  - 778
  - 781
  - 782
  - 784
  - 785
  flask.cli.with_appcontext:
  - 402
  - 381
  flask.cli.with_appcontext.decorator:
  - 400
  - 396
  - 397
  - 398
  flask.config:
  - 17
  - 11
  flask.config.Config:
  - 51
  flask.config.Config.__init__:
  - 99
  flask.config.Config.__repr__:
  - 367
  flask.config.Config.from_envvar:
  - 103
  - 114
  - 115
  - 116
  - 124
  flask.config.Config.from_file:
  - 290
  - 293
  - 294
  - 263
  - 296
  - 302
  flask.config.Config.from_mapping:
  - 307
  - 315
  - 316
  - 317
  - 318
  - 319
  flask.config.Config.from_object:
  - 251
  - 250
  - 219
  - 252
  - 253
  - 254
  flask.config.Config.from_prefixed_env:
  - 129
  - 162
  - 167
  - 174
  - 176
  - 178
  - 154
  - 155
  - 159
  flask.config.Config.from_pyfile:
  - 204
  - 205
  - 208
  - 209
  - 211
  - 215
  - 190
  flask.config.Config.get_namespace:
  - 354
  - 355
  - 357
  - 358
  - 326
  - 361
  - 362
  flask.config.ConfigAttribute:
  - 21
  flask.config.ConfigAttribute.__get__:
  - 33
  - 36
  - 41
  - 42
  - 30
  flask.ctx:
  - 152
  - 17
  - 26
  flask.ctx.AppContext:
  - 239
  flask.ctx.AppContext.__enter__:
  - 275
  flask.ctx.AppContext.__exit__:
  - 284
  flask.ctx.AppContext.__init__:
  - 248
  - 247
  flask.ctx.AppContext.pop:
  - 257
  - 259
  - 260
  - 261
  - 262
  - 264
  - 265
  - 267
  - 272
  flask.ctx.AppContext.push:
  - 252
  - 253
  - 254
  flask.ctx.RequestContext:
  - 288
  flask.ctx.RequestContext.__enter__:
  - 434
  flask.ctx.RequestContext.__exit__:
  - 443
  flask.ctx.RequestContext.__init__:
  - 323
  - 317
  - 318
  flask.ctx.RequestContext.__repr__:
  - 447
  flask.ctx.RequestContext.copy:
  - 338
  - 350
  flask.ctx.RequestContext.match_request:
  - 362
  - 358
  flask.ctx.RequestContext.pop:
  - 416
  - 417
  - 418
  - 422
  - 425
  - 426
  - 428
  - 397
  - 404
  - 407
  - 408
  - 409
  - 410
  - 412
  - 413
  - 414
  flask.ctx.RequestContext.push:
  - 384
  - 386
  - 388
  - 389
  - 393
  - 394
  - 370
  - 372
  - 373
  - 374
  - 378
  flask.ctx._AppCtxGlobals:
  - 30
  flask.ctx._AppCtxGlobals.__iter__:
  - 108
  flask.ctx._AppCtxGlobals.__repr__:
  - 112
  - 114
  - 111
  flask.ctx._AppCtxGlobals.get:
  - 68
  - 76
  flask.ctx._AppCtxGlobals.pop:
  - 88
  - 90
  - 87
  - 79
  flask.ctx._AppCtxGlobals.setdefault:
  - 93
  - 102
  flask.ctx.after_this_request:
  - 120
  - 148
  - 140
  - 142
  flask.ctx.copy_current_request_context:
  - 193
  - 179
  - 181
  - 187
  - 156
  flask.ctx.copy_current_request_context.wrapper:
  - 191
  flask.ctx.has_app_context:
  - 235
  - 229
  flask.ctx.has_request_context:
  - 225
  - 197
  flask.debughelpers:
  - 12
  flask.debughelpers.DebugFilesKeyError:
  - 24
  flask.debughelpers.DebugFilesKeyError.__init__:
  - 38
  - 39
  - 40
  - 44
  - 29
  flask.debughelpers.FormDataRoutingRedirect:
  - 51
  flask.debughelpers.FormDataRoutingRedirect.__init__:
  - 65
  - 66
  - 72
  - 78
  - 59
  flask.debughelpers.UnexpectedUnicodeError:
  - 18
  flask.debughelpers._dump_loader_info:
  - 108
  - 109
  - 110
  - 112
  - 113
  - 115
  - 116
  - 117
  - 119
  - 121
  flask.debughelpers.attach_enctype_error_multidict:
  - 82
  flask.debughelpers.attach_enctype_error_multidict.newcls.__getitem__:
  - 93
  - 95
  flask.debughelpers.explain_template_loading_attempts:
  - 135
  - 139
  - 142
  - 143
  - 145
  - 148
  - 150
  - 152
  - 153
  - 155
  - 160
  - 163
  - 164
  - 166
  - 167
  - 170
  - 171
  - 175
  - 176
  - 178
  flask.globals:
  - 8
  - 42
  - 43
  - 46
  - 49
  - 24
  - 25
  - 28
  - 31
  flask.helpers:
  - 24
  flask.helpers._prepare_send_file_kwargs:
  - 395
  - 398
  flask.helpers._split_blueprint_path:
  - 638
  - 639
  flask.helpers.abort:
  - 274
  - 291
  - 290
  - 293
  flask.helpers.flash:
  - 340
  - 341
  - 343
  - 344
  - 319
  flask.helpers.get_debug_flag:
  - 32
  - 33
  - 29
  flask.helpers.get_flashed_messages:
  - 384
  - 385
  - 355
  - 387
  - 388
  - 389
  flask.helpers.get_load_dotenv:
  - 45
  - 48
  - 43
  - 37
  flask.helpers.get_root_path:
  - 609
  - 578
  - 610
  - 613
  - 615
  - 587
  - 620
  - 589
  - 590
  - 594
  - 596
  - 631
  - 606
  - 607
  flask.helpers.get_template_attribute:
  - 297
  - 315
  flask.helpers.make_response:
  - 192
  - 147
  - 188
  - 189
  - 190
  flask.helpers.redirect:
  - 267
  - 252
  - 268
  - 270
  flask.helpers.send_file:
  - 417
  - 518
  - 519
  flask.helpers.send_from_directory:
  - 538
  - 572
  - 573
  flask.helpers.stream_with_context:
  - 66
  - 105
  - 141
  - 142
  - 112
  - 54
  - 60
  flask.helpers.stream_with_context.decorator:
  - 109
  - 110
  flask.helpers.stream_with_context.generator:
  - 132
  - 135
  - 136
  - 115
  - 121
  - 126
  flask.helpers.url_for:
  - 204
  - 239
  flask.json:
  - 9
  flask.json.dump:
  - 70
  - 71
  - 73
  - 74
  - 48
  flask.json.dumps:
  - 40
  - 41
  - 43
  - 44
  - 14
  flask.json.jsonify:
  - 170
  - 139
  flask.json.load:
  - 132
  - 109
  - 133
  - 135
  flask.json.loads:
  - 105
  - 102
  - 78
  - 103
  flask.json.provider:
  - 13
  flask.json.provider.DefaultJSONProvider:
  - 164
  - 138
  - 139
  - 145
  - 151
  - 125
  - 158
  flask.json.provider.DefaultJSONProvider.dumps:
  - 167
  - 176
  - 177
  - 178
  - 179
  flask.json.provider.DefaultJSONProvider.loads:
  - 187
  - 182
  flask.json.provider.DefaultJSONProvider.response:
  - 205
  - 208
  - 209
  - 211
  - 213
  - 214
  - 190
  flask.json.provider.JSONProvider:
  - 20
  flask.json.provider.JSONProvider.__init__:
  - 39
  flask.json.provider.JSONProvider._prepare_response_obj:
  - 81
  - 84
  - 78
  flask.json.provider.JSONProvider.dump:
  - 57
  - 50
  flask.json.provider.JSONProvider.dumps:
  - 42
  flask.json.provider.JSONProvider.load:
  - 73
  - 68
  flask.json.provider.JSONProvider.loads:
  - 60
  flask.json.provider.JSONProvider.response:
  - 104
  - 105
  - 90
  flask.json.provider._default:
  - 109
  - 110
  - 112
  - 113
  - 115
  - 116
  - 118
  - 119
  flask.json.tag:
  - 1
  flask.json.tag.JSONTag:
  - 61
  flask.json.tag.JSONTag.__init__:
  - 70
  flask.json.tag.JSONTag.check:
  - 74
  flask.json.tag.JSONTag.tag:
  - 88
  - 90
  flask.json.tag.JSONTag.to_json:
  - 78
  flask.json.tag.JSONTag.to_python:
  - 83
  flask.json.tag.PassDict.check:
  - 123
  flask.json.tag.PassDict.to_json:
  - 128
  flask.json.tag.PassList.check:
  - 151
  flask.json.tag.PassList.to_json:
  - 154
  flask.json.tag.TagBytes.check:
  - 164
  flask.json.tag.TagBytes.to_json:
  - 167
  flask.json.tag.TagBytes.to_python:
  - 170
  flask.json.tag.TagDateTime.check:
  - 210
  flask.json.tag.TagDateTime.to_json:
  - 213
  flask.json.tag.TagDateTime.to_python:
  - 216
  flask.json.tag.TagDict:
  - 94
  flask.json.tag.TagDict.check:
  - 105
  - 106
  - 107
  flask.json.tag.TagDict.to_json:
  - 112
  - 111
  flask.json.tag.TagDict.to_python:
  - 115
  flask.json.tag.TagMarkup:
  - 174
  flask.json.tag.TagMarkup.check:
  - 182
  flask.json.tag.TagMarkup.to_json:
  - 185
  flask.json.tag.TagMarkup.to_python:
  - 188
  flask.json.tag.TagTuple.check:
  - 138
  flask.json.tag.TagTuple.to_json:
  - 141
  flask.json.tag.TagTuple.to_python:
  - 144
  flask.json.tag.TagUUID.check:
  - 196
  flask.json.tag.TagUUID.to_python:
  - 202
  flask.json.tag.TaggedJSONSerializer:
  - 220
  flask.json.tag.TaggedJSONSerializer.__init__:
  - 253
  - 254
  flask.json.tag.TaggedJSONSerializer._untag_scan:
  - 310
  - 312
  - 314
  - 315
  - 317
  flask.json.tag.TaggedJSONSerializer.dumps:
  - 322
  - 323
  flask.json.tag.TaggedJSONSerializer.loads:
  - 326
  - 327
  flask.json.tag.TaggedJSONSerializer.register:
  - 262
  - 275
  - 278
  - 279
  - 284
  - 285
  - 287
  flask.json.tag.TaggedJSONSerializer.tag:
  - 290
  - 291
  - 292
  - 293
  flask.json.tag.TaggedJSONSerializer.untag:
  - 298
  - 299
  - 302
  - 304
  - 307
  flask.logging:
  - 11
  - 52
  - 53
  - 54
  flask.logging.create_logger:
  - 71
  - 73
  - 74
  - 76
  - 77
  - 59
  flask.logging.has_level_handler:
  - 32
  - 42
  - 35
  - 39
  flask.logging.wsgi_errors_stream:
  - 17
  - 25
  flask.sansio.app:
  - 36
  - 43
  - 46
  - 47
  - 48
  - 49
  flask.sansio.app.App:
  - 225
  - 231
  - 208
  - 216
  - 60
  flask.sansio.app.App.__init__:
  - 295
  - 327
  - 329
  - 330
  - 303
  - 304
  - 305
  - 405
  - 319
  flask.sansio.app.App._check_setup_finished:
  - 414
  flask.sansio.app.App._find_error_handler:
  - 834
  - 835
  - 838
  - 841
  - 842
  - 844
  - 826
  - 831
  flask.sansio.app.App.add_template_filter:
  - 689
  flask.sansio.app.App.add_template_global:
  - 768
  flask.sansio.app.App.add_template_test:
  - 730
  flask.sansio.app.App.add_url_rule:
  - 640
  - 641
  - 643
  - 613
  - 614
  - 616
  - 650
  - 621
  - 622
  - 623
  - 653
  - 654
  - 655
  - 656
  - 628
  - 631
  - 635
  - 636
  flask.sansio.app.App.auto_find_instance_path:
  - 518
  - 519
  - 520
  - 521
  - 511
  flask.sansio.app.App.create_global_jinja_loader:
  - 524
  - 534
  flask.sansio.app.App.debug:
  - 566
  - 551
  flask.sansio.app.App.handle_url_build_error:
  - 961
  - 935
  - 949
  - 951
  - 956
  flask.sansio.app.App.inject_url_defaults:
  - 928
  - 929
  - 930
  - 912
  - 922
  - 923
  - 924
  - 927
  flask.sansio.app.App.iter_blueprints:
  - 602
  - 598
  flask.sansio.app.App.jinja_env:
  - 477
  - 471
  flask.sansio.app.App.logger:
  - 467
  - 444
  flask.sansio.app.App.make_aborter:
  - 499
  - 508
  flask.sansio.app.App.make_config:
  - 483
  - 492
  - 494
  - 495
  - 496
  flask.sansio.app.App.name:
  - 427
  - 435
  - 436
  - 437
  - 439
  flask.sansio.app.App.redirect:
  - 905
  - 894
  flask.sansio.app.App.register_blueprint:
  - 595
  - 571
  flask.sansio.app.App.select_jinja_autoescape:
  - 537
  - 547
  - 545
  flask.sansio.app.App.shell_context_processor:
  - 816
  - 820
  flask.sansio.app.App.should_ignore_error:
  - 884
  flask.sansio.app.App.teardown_appcontext:
  - 809
  - 780
  flask.sansio.app.App.template_filter:
  - 667
  flask.sansio.app.App.template_filter.decorator:
  - 680
  flask.sansio.app.App.template_global:
  - 744
  flask.sansio.app.App.template_global.decorator:
  - 759
  flask.sansio.app.App.template_test:
  - 701
  flask.sansio.app.App.template_test.decorator:
  - 721
  flask.sansio.app.App.trap_http_exception:
  - 865
  - 871
  - 874
  - 878
  - 879
  - 849
  flask.sansio.app._make_timedelta:
  - 56
  - 53
  flask.sansio.blueprints:
  - 14
  - 18
  - 19
  - 20
  - 21
  - 22
  - 25
  - 26
  - 27
  - 28
  - 29
  flask.sansio.blueprints.Blueprint:
  - 120
  flask.sansio.blueprints.Blueprint.__init__:
  - 206
  - 187
  - 198
  - 195
  flask.sansio.blueprints.Blueprint._check_setup_finished:
  - 214
  flask.sansio.blueprints.Blueprint._merge_blueprint_funcs:
  - 388
  - 390
  - 393
  - 394
  - 399
  - 402
  - 403
  - 404
  - 408
  - 409
  - 410
  flask.sansio.blueprints.Blueprint._merge_blueprint_funcs.extend:
  - 384
  - 386
  flask.sansio.blueprints.Blueprint.add_app_template_filter:
  - 464
  - 475
  flask.sansio.blueprints.Blueprint.add_app_template_global:
  - 538
  - 551
  flask.sansio.blueprints.Blueprint.add_app_template_test:
  - 513
  - 500
  flask.sansio.blueprints.Blueprint.add_url_rule:
  - 421
  - 427
  - 430
  - 433
  - 434
  flask.sansio.blueprints.Blueprint.add_url_rule.<lambda1>:
  - 434
  flask.sansio.blueprints.Blueprint.after_app_request:
  - 568
  - 569
  - 565
  flask.sansio.blueprints.Blueprint.after_app_request.<lambda1>:
  - 569
  flask.sansio.blueprints.Blueprint.app_context_processor:
  - 587
  - 590
  - 591
  flask.sansio.blueprints.Blueprint.app_context_processor.<lambda1>:
  - 591
  flask.sansio.blueprints.Blueprint.app_errorhandler:
  - 599
  flask.sansio.blueprints.Blueprint.app_errorhandler.decorator:
  - 607
  flask.sansio.blueprints.Blueprint.app_errorhandler.decorator.from_blueprint:
  - 605
  flask.sansio.blueprints.Blueprint.app_template_filter:
  - 447
  flask.sansio.blueprints.Blueprint.app_template_filter.decorator:
  - 455
  flask.sansio.blueprints.Blueprint.app_template_global:
  - 519
  flask.sansio.blueprints.Blueprint.app_template_global.decorator:
  - 529
  flask.sansio.blueprints.Blueprint.app_template_test:
  - 481
  flask.sansio.blueprints.Blueprint.app_template_test.decorator:
  - 491
  flask.sansio.blueprints.Blueprint.app_url_defaults:
  - 626
  - 629
  - 630
  flask.sansio.blueprints.Blueprint.app_url_defaults.<lambda1>:
  - 630
  flask.sansio.blueprints.Blueprint.app_url_value_preprocessor:
  - 616
  - 619
  - 620
  flask.sansio.blueprints.Blueprint.app_url_value_preprocessor.<lambda1>:
  - 620
  flask.sansio.blueprints.Blueprint.before_app_request:
  - 555
  - 558
  - 559
  flask.sansio.blueprints.Blueprint.before_app_request.<lambda1>:
  - 559
  flask.sansio.blueprints.Blueprint.make_setup_state:
  - 249
  - 253
  flask.sansio.blueprints.Blueprint.record:
  - 225
  - 230
  flask.sansio.blueprints.Blueprint.record_once:
  - 234
  - 244
  flask.sansio.blueprints.Blueprint.record_once.wrapper:
  - 241
  - 242
  flask.sansio.blueprints.Blueprint.register:
  - 274
  - 302
  - 303
  - 304
  - 306
  - 316
  - 321
  - 323
  - 324
  - 331
  - 332
  - 334
  - 335
  - 337
  - 339
  - 340
  - 341
  - 342
  - 344
  - 347
  - 349
  - 350
  - 351
  - 352
  - 354
  - 357
  - 359
  - 361
  - 364
  - 367
  - 369
  - 371
  - 373
  - 377
  flask.sansio.blueprints.Blueprint.register_blueprint:
  - 257
  - 269
  - 271
  flask.sansio.blueprints.Blueprint.teardown_app_request:
  - 578
  - 579
  - 575
  flask.sansio.blueprints.Blueprint.teardown_app_request.<lambda1>:
  - 579
  flask.sansio.blueprints.BlueprintSetupState:
  - 35
  flask.sansio.blueprints.BlueprintSetupState.__init__:
  - 64
  - 65
  - 72
  - 73
  - 79
  - 80
  - 84
  - 85
  flask.sansio.blueprints.BlueprintSetupState.add_url_rule:
  - 98
  - 99
  - 100
  - 103
  - 104
  - 105
  - 107
  - 108
  - 110
  - 112
  - 94
  flask.sansio.scaffold:
  - 32
  - 35
  - 36
  - 39
  - 21
  - 25
  - 27
  - 28
  - 29
  - 30
  - 31
  flask.sansio.scaffold.Scaffold:
  - 53
  flask.sansio.scaffold.Scaffold.__init__:
  - 96
  - 200
  - 169
  - 140
  - 215
  - 184
  - 154
  - 126
  - 95
  flask.sansio.scaffold.Scaffold.__init__.<lambda1>:
  - 126
  flask.sansio.scaffold.Scaffold.__repr__:
  - 218
  flask.sansio.scaffold.Scaffold._get_exc_class_and_code:
  - 681
  - 688
  - 660
  - 695
  - 669
  flask.sansio.scaffold.Scaffold._method_route:
  - 290
  - 293
  flask.sansio.scaffold.Scaffold.add_url_rule:
  - 376
  flask.sansio.scaffold.Scaffold.after_request:
  - 488
  - 504
  flask.sansio.scaffold.Scaffold.before_request:
  - 483
  - 461
  flask.sansio.scaffold.Scaffold.context_processor:
  - 546
  - 555
  flask.sansio.scaffold.Scaffold.delete:
  - 321
  - 325
  flask.sansio.scaffold.Scaffold.endpoint:
  - 437
  flask.sansio.scaffold.Scaffold.errorhandler:
  - 601
  flask.sansio.scaffold.Scaffold.errorhandler.decorator:
  - 636
  flask.sansio.scaffold.Scaffold.get:
  - 297
  - 301
  flask.sansio.scaffold.Scaffold.has_static_folder:
  - 242
  flask.sansio.scaffold.Scaffold.jinja_loader:
  - 280
  - 273
  - 279
  flask.sansio.scaffold.Scaffold.patch:
  - 329
  - 333
  flask.sansio.scaffold.Scaffold.post:
  - 305
  - 309
  flask.sansio.scaffold.Scaffold.put:
  - 313
  - 317
  flask.sansio.scaffold.Scaffold.register_error_handler:
  - 653
  - 647
  flask.sansio.scaffold.Scaffold.route:
  - 337
  flask.sansio.scaffold.Scaffold.route.decorator:
  - 361
  - 362
  flask.sansio.scaffold.Scaffold.static_folder:
  - 225
  - 228
  - 229
  - 235
  - 236
  flask.sansio.scaffold.Scaffold.static_url_path:
  - 258
  - 259
  - 260
  - 266
  - 267
  - 250
  - 255
  flask.sansio.scaffold.Scaffold.teardown_request:
  - 538
  - 509
  flask.sansio.scaffold.Scaffold.url_defaults:
  - 585
  - 594
  flask.sansio.scaffold.Scaffold.url_value_preprocessor:
  - 563
  - 580
  flask.sansio.scaffold._endpoint_from_view_func:
  - 702
  flask.sansio.scaffold._find_package_path:
  - 736
  - 739
  - 710
  - 711
  - 745
  - 714
  - 716
  - 748
  - 751
  - 724
  - 726
  - 727
  - 729
  - 731
  - 733
  - 734
  flask.sansio.scaffold.find_package:
  - 768
  - 771
  - 774
  - 777
  - 778
  - 781
  - 785
  - 786
  - 755
  - 767
  flask.sansio.scaffold.setupmethod:
  - 49
  flask.sansio.scaffold.setupmethod.wrapper_func:
  - 46
  - 47
  flask.sessions:
  - 16
  - 287
  flask.sessions.NullSession:
  - 98
  flask.sessions.SecureCookieSession:
  - 53
  flask.sessions.SecureCookieSession.__getitem__:
  - 86
  flask.sessions.SecureCookieSession.__init__:
  - 82
  flask.sessions.SecureCookieSession.get:
  - 90
  flask.sessions.SecureCookieSession.setdefault:
  - 94
  flask.sessions.SecureCookieSessionInterface:
  - 307
  - 299
  flask.sessions.SecureCookieSessionInterface.get_signing_serializer:
  - 323
  - 324
  - 326
  - 327
  - 318
  flask.sessions.SecureCookieSessionInterface.open_session:
  - 338
  - 339
  - 341
  - 342
  - 343
  - 344
  - 346
  - 347
  - 349
  flask.sessions.SecureCookieSessionInterface.save_session:
  - 354
  - 355
  - 356
  - 357
  - 358
  - 359
  - 360
  - 386
  - 387
  - 363
  - 364
  - 388
  - 399
  - 368
  - 369
  - 370
  - 379
  - 383
  flask.sessions.SessionInterface:
  - 115
  flask.sessions.SessionInterface.get_cookie_domain:
  - 190
  flask.sessions.SessionInterface.get_cookie_httponly:
  - 210
  flask.sessions.SessionInterface.get_cookie_name:
  - 186
  flask.sessions.SessionInterface.get_cookie_partitioned:
  - 230
  flask.sessions.SessionInterface.get_cookie_path:
  - 202
  flask.sessions.SessionInterface.get_cookie_samesite:
  - 223
  flask.sessions.SessionInterface.get_cookie_secure:
  - 217
  flask.sessions.SessionInterface.get_expiration_time:
  - 243
  - 244
  - 238
  flask.sessions.SessionInterface.is_null_session:
  - 177
  - 183
  flask.sessions.SessionInterface.make_null_session:
  - 165
  - 174
  flask.sessions.SessionInterface.open_session:
  - 264
  flask.sessions.SessionInterface.save_session:
  - 280
  flask.sessions.SessionInterface.should_set_cookie:
  - 248
  flask.sessions.SessionMixin:
  - 25
  flask.sessions.SessionMixin.permanent:
  - 34
  - 29
  - 30
  flask.sessions._lazy_sha1:
  - 291
  - 295
  flask.signals:
  - 6
  - 8
  - 9
  - 10
  - 11
  - 12
  - 13
  - 14
  - 15
  - 16
  - 17
  flask.templating:
  - 18
  flask.templating.DispatchingJinjaLoader:
  - 53
  flask.templating.DispatchingJinjaLoader._get_source_explained:
  - 74
  - 76
  - 77
  - 81
  - 85
  - 87
  flask.templating.DispatchingJinjaLoader._get_source_fast:
  - 96
  - 94
  flask.templating.DispatchingJinjaLoader._iter_loaders:
  - 103
  - 104
  - 106
  - 108
  - 109
  flask.templating.DispatchingJinjaLoader.get_source:
  - 64
  - 65
  - 63
  flask.templating.DispatchingJinjaLoader.list_templates:
  - 112
  - 114
  - 115
  - 117
  - 119
  - 120
  - 121
  - 123
  flask.templating.Environment:
  - 40
  flask.templating.Environment.__init__:
  - 48
  - 46
  - 47
  flask.templating._default_template_ctx_processor:
  - 33
  - 25
  - 28
  - 29
  - 31
  flask.templating._render:
  - 128
  - 131
  - 132
  - 127
  flask.templating._stream:
  - 168
  - 169
  - 179
  - 182
  - 183
  flask.templating._stream.generate:
  - 174
  - 175
  flask.templating.render_template:
  - 150
  - 148
  - 149
  - 142
  flask.templating.render_template_string:
  - 160
  - 161
  - 154
  - 162
  flask.templating.stream_template:
  - 192
  - 202
  - 203
  - 204
  flask.templating.stream_template_string:
  - 208
  - 217
  - 218
  - 219
  flask.testing:
  - 20
  flask.testing.EnvironBuilder:
  - 28
  flask.testing.EnvironBuilder.__init__:
  - 65
  - 66
  - 69
  - 72
  - 75
  - 78
  - 82
  - 86
  - 61
  flask.testing.EnvironBuilder.json_dumps:
  - 89
  - 94
  flask.testing.FlaskCliRunner:
  - 266
  flask.testing.FlaskCliRunner.__init__:
  - 273
  flask.testing.FlaskCliRunner.invoke:
  - 292
  - 295
  - 296
  - 298
  - 278
  flask.testing.FlaskClient:
  - 110
  flask.testing.FlaskClient.__enter__:
  - 250
  flask.testing.FlaskClient.__exit__:
  - 262
  flask.testing.FlaskClient.__init__:
  - 129
  - 132
  - 126
  flask.testing.FlaskClient._copy_environ:
  - 188
  flask.testing.FlaskClient._request_from_builder_args:
  - 200
  - 202
  - 196
  - 197
  flask.testing.FlaskClient.open:
  - 224
  - 225
  - 228
  - 233
  - 235
  - 211
  - 243
  - 244
  - 214
  - 215
  - 216
  - 217
  - 218
  - 219
  - 220
  - 246
  flask.testing.FlaskClient.session_transaction:
  - 161
  - 162
  - 165
  - 167
  - 170
  - 139
  - 171
  - 173
  - 177
  - 179
  - 180
  - 182
  - 155
  flask.testing._get_werkzeug_version:
  - 104
  - 103
  flask.typing:
  - 48
  - 6
  flask.views:
  - 9
  - 11
  flask.views.MethodView:
  - 139
  flask.views.MethodView.__init_subclass__:
  - 166
  - 168
  - 169
  - 171
  - 172
  - 173
  - 175
  - 176
  - 177
  - 179
  flask.views.MethodView.dispatch_request:
  - 191
  - 187
  - 188
  - 183
  flask.views.View:
  - 17
  flask.views.View.as_view:
  - 121
  - 104
  - 113
  - 118
  - 89
  - 122
  flask.views.View.as_view.view:
  - 107
  - 116
  - 110
  flask.views.View.dispatch_request:
  - 79
  flask.wrappers:
  - 14
  flask.wrappers.Request:
  - 19
  flask.wrappers.Request._load_form_data:
  - 210
  - 202
  - 198
  flask.wrappers.Request.blueprint:
  - 176
  - 163
  - 175
  flask.wrappers.Request.blueprints:
  - 192
  - 195
  - 182
  flask.wrappers.Request.endpoint:
  - 156
  - 148
  flask.wrappers.Request.max_content_length:
  - 80
  - 83
  - 84
  - 61
  flask.wrappers.Request.max_form_memory_size:
  - 110
  - 107
  - 94
  - 111
  flask.wrappers.Request.max_form_parts:
  - 121
  - 137
  - 134
  - 138
  flask.wrappers.Request.on_json_loading_failed:
  - 216
  - 214
  flask.wrappers.Response:
  - 223
  flask.wrappers.Response.max_cookie_size:
  - 248
  - 257
  - 253
  flask_jwt_extended.config:
  - 319
  flask_jwt_extended.config._Config:
  - 20
  flask_jwt_extended.config._Config._private_key:
  - 259
  flask_jwt_extended.config._Config._public_key:
  - 248
  flask_jwt_extended.config._Config._secret_key:
  - 235
  - 236
  - 237
  flask_jwt_extended.config._Config.access_expires:
  - 194
  - 188
  - 189
  - 190
  flask_jwt_extended.config._Config.decode_algorithms:
  - 226
  - 228
  - 229
  flask_jwt_extended.config._Config.header_name:
  - 81
  flask_jwt_extended.config._Config.json_encoder:
  - 288
  flask_jwt_extended.config._Config.refresh_expires:
  - 211
  - 205
  - 206
  - 207
  flask_jwt_extended.config._Config.token_location:
  - 45
  - 47
  - 49
  - 54
  - 55
  flask_jwt_extended.default_callbacks:
  - 1
  flask_jwt_extended.default_callbacks.default_additional_claims_callback:
  - 19
  flask_jwt_extended.default_callbacks.default_decode_key_callback:
  - 149
  flask_jwt_extended.default_callbacks.default_encode_key_callback:
  - 157
  flask_jwt_extended.default_callbacks.default_expired_token_callback:
  - 59
  - 63
  flask_jwt_extended.default_callbacks.default_invalid_token_callback:
  - 74
  - 67
  flask_jwt_extended.default_callbacks.default_jwt_headers_callback:
  - 34
  flask_jwt_extended.default_callbacks.default_needs_fresh_token_callback:
  - 97
  - 92
  flask_jwt_extended.default_callbacks.default_revoked_token_callback:
  - 105
  - 110
  flask_jwt_extended.default_callbacks.default_token_verification_callback:
  - 129
  flask_jwt_extended.default_callbacks.default_token_verification_failed_callback:
  - 138
  - 143
  flask_jwt_extended.default_callbacks.default_unauthorized_callback:
  - 80
  - 86
  flask_jwt_extended.default_callbacks.default_user_identity_callback:
  - 45
  flask_jwt_extended.default_callbacks.default_user_lookup_error_callback:
  - 125
  - 118
  flask_jwt_extended.exceptions.CSRFError:
  - 42
  flask_jwt_extended.exceptions.FreshTokenRequired:
  - 70
  flask_jwt_extended.exceptions.FreshTokenRequired.__init__:
  - 76
  flask_jwt_extended.exceptions.InvalidHeaderError:
  - 18
  flask_jwt_extended.exceptions.InvalidQueryParamError:
  - 26
  flask_jwt_extended.exceptions.JWTDecodeError:
  - 10
  flask_jwt_extended.exceptions.JWTExtendedException:
  - 2
  flask_jwt_extended.exceptions.NoAuthorizationError:
  - 34
  flask_jwt_extended.exceptions.RevokedTokenError:
  - 59
  flask_jwt_extended.exceptions.RevokedTokenError.__init__:
  - 64
  flask_jwt_extended.exceptions.UserClaimsVerificationError:
  - 94
  flask_jwt_extended.exceptions.UserClaimsVerificationError.__init__:
  - 100
  flask_jwt_extended.exceptions.UserLookupError:
  - 82
  flask_jwt_extended.exceptions.UserLookupError.__init__:
  - 88
  flask_jwt_extended.exceptions.WrongTokenError:
  - 50
  flask_jwt_extended.internal_utils:
  - 23
  flask_jwt_extended.internal_utils.JSONEncoder:
  - 70
  flask_jwt_extended.internal_utils.JSONEncoder.default:
  - 75
  - 78
  flask_jwt_extended.internal_utils.custom_verification_for_token:
  - 64
  - 63
  flask_jwt_extended.internal_utils.get_json_encoder:
  - 82
  - 95
  flask_jwt_extended.internal_utils.has_user_lookup:
  - 38
  flask_jwt_extended.internal_utils.user_lookup:
  - 43
  - 44
  flask_jwt_extended.internal_utils.verify_token_not_blocklisted:
  - 57
  - 58
  flask_jwt_extended.internal_utils.verify_token_type:
  - 50
  - 52
  flask_jwt_extended.jwt_manager.JWTManager:
  - 50
  flask_jwt_extended.jwt_manager.JWTManager.__init__:
  - 96
  - 62
  - 95
  flask_jwt_extended.jwt_manager.JWTManager._decode_jwt_from_config:
  - 557
  - 563
  - 535
  - 540
  - 541
  flask_jwt_extended.jwt_manager.JWTManager._encode_jwt_from_config:
  - 515
  - 523
  - 527
  - 501
  - 502
  - 503
  - 505
  - 506
  - 507
  - 509
  - 510
  flask_jwt_extended.jwt_manager.JWTManager._set_default_configuration_options:
  - 188
  - 189
  - 191
  - 192
  - 193
  - 194
  - 195
  - 196
  - 197
  - 198
  - 199
  - 200
  - 201
  - 202
  - 203
  - 204
  - 205
  - 206
  - 207
  - 208
  - 209
  - 210
  - 211
  - 212
  - 213
  - 214
  - 215
  - 216
  - 217
  - 218
  - 219
  - 220
  - 221
  - 222
  - 223
  - 224
  - 225
  - 226
  - 227
  - 228
  - 229
  - 230
  - 231
  - 232
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks:
  - 130
  - 162
  - 134
  - 154
  - 166
  - 138
  - 170
  - 142
  - 174
  - 146
  - 178
  - 150
  - 182
  - 122
  - 158
  - 126
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_auth_error:
  - 164
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_csrf_error:
  - 124
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_decode_error:
  - 128
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_expired_error:
  - 132
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_failed_token_verification:
  - 176
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_fresh_token_required:
  - 136
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_invalid_audience_error:
  - 144
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_invalid_header_error:
  - 152
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_invalid_issuer_error:
  - 148
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_invalid_query_param_error:
  - 168
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_invalid_token_error:
  - 156
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_jwt_decode_error:
  - 160
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_missing_required_claim_error:
  - 140
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_revoked_token_error:
  - 172
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handle_wrong_token_error:
  - 184
  flask_jwt_extended.jwt_manager.JWTManager._set_error_handler_callbacks.handler_user_lookup_error:
  - 180
  flask_jwt_extended.jwt_manager.JWTManager.additional_claims_loader:
  - 235
  flask_jwt_extended.jwt_manager.JWTManager.additional_headers_loader:
  - 252
  flask_jwt_extended.jwt_manager.JWTManager.decode_key_loader:
  - 269
  flask_jwt_extended.jwt_manager.JWTManager.encode_key_loader:
  - 290
  flask_jwt_extended.jwt_manager.JWTManager.expired_token_loader:
  - 306
  flask_jwt_extended.jwt_manager.JWTManager.init_app:
  - 99
  - 110
  - 114
  - 115
  - 118
  - 119
  flask_jwt_extended.jwt_manager.JWTManager.invalid_token_loader:
  - 322
  flask_jwt_extended.jwt_manager.JWTManager.needs_fresh_token_loader:
  - 339
  flask_jwt_extended.jwt_manager.JWTManager.revoked_token_loader:
  - 356
  flask_jwt_extended.jwt_manager.JWTManager.token_in_blocklist_loader:
  - 372
  flask_jwt_extended.jwt_manager.JWTManager.token_verification_failed_loader:
  - 389
  flask_jwt_extended.jwt_manager.JWTManager.token_verification_loader:
  - 405
  flask_jwt_extended.jwt_manager.JWTManager.unauthorized_loader:
  - 422
  flask_jwt_extended.jwt_manager.JWTManager.user_identity_loader:
  - 436
  flask_jwt_extended.jwt_manager.JWTManager.user_lookup_error_loader:
  - 476
  flask_jwt_extended.jwt_manager.JWTManager.user_lookup_loader:
  - 451
  flask_jwt_extended.tokens._decode_jwt:
  - 96
  - 107
  - 110
  - 113
  - 116
  - 119
  - 120
  - 122
  - 91
  flask_jwt_extended.tokens._encode_jwt:
  - 65
  - 66
  - 68
  - 37
  - 39
  - 40
  - 45
  - 50
  - 53
  - 54
  - 56
  - 59
  - 62
  flask_jwt_extended.utils:
  - 15
  flask_jwt_extended.utils.<lambda1>:
  - 15
  flask_jwt_extended.utils.create_access_token:
  - 138
  - 173
  - 174
  flask_jwt_extended.utils.create_refresh_token:
  - 218
  - 219
  - 190
  flask_jwt_extended.utils.current_user_context_processor:
  - 461
  flask_jwt_extended.utils.decode_token:
  - 128
  - 107
  - 127
  flask_jwt_extended.utils.get_csrf_token:
  - 256
  - 265
  flask_jwt_extended.utils.get_current_user:
  - 96
  - 81
  - 94
  - 95
  flask_jwt_extended.utils.get_jti:
  - 243
  - 252
  flask_jwt_extended.utils.get_jwt:
  - 27
  - 19
  - 28
  flask_jwt_extended.utils.get_jwt_header:
  - 45
  - 37
  - 46
  flask_jwt_extended.utils.get_jwt_identity:
  - 63
  - 55
  flask_jwt_extended.utils.get_jwt_request_location:
  - 67
  - 77
  flask_jwt_extended.utils.get_unverified_jwt_headers:
  - 230
  - 239
  flask_jwt_extended.utils.set_access_cookies:
  - 295
  - 272
  - 306
  - 307
  - 309
  flask_jwt_extended.utils.set_refresh_cookies:
  - 325
  - 359
  - 360
  - 362
  - 348
  flask_jwt_extended.utils.unset_access_cookies:
  - 385
  - 409
  - 398
  - 410
  flask_jwt_extended.utils.unset_jwt_cookies:
  - 381
  - 380
  - 373
  flask_jwt_extended.utils.unset_refresh_cookies:
  - 448
  - 447
  - 436
  - 423
  flask_jwt_extended.view_decorators._decode_jwt_from_cookies:
  - 234
  - 243
  - 244
  - 247
  - 248
  - 249
  - 250
  - 251
  flask_jwt_extended.view_decorators._decode_jwt_from_headers:
  - 224
  - 194
  - 195
  - 203
  - 204
  - 205
  - 206
  - 213
  - 214
  - 223
  flask_jwt_extended.view_decorators._decode_jwt_from_json:
  - 288
  - 281
  - 278
  - 287
  flask_jwt_extended.view_decorators._decode_jwt_from_query_string:
  - 264
  - 273
  - 267
  - 263
  flask_jwt_extended.view_decorators._decode_jwt_from_request:
  - 306
  - 309
  - 315
  - 316
  - 317
  - 318
  - 320
  - 321
  - 324
  - 325
  - 326
  - 327
  - 328
  - 337
  - 339
  - 340
  - 342
  - 345
  - 349
  - 350
  - 351
  - 352
  - 354
  - 361
  - 362
  - 364
  - 365
  - 367
  - 368
  - 370
  flask_jwt_extended.view_decorators._decode_jwt_from_request.<lambda1>:
  - 318
  flask_jwt_extended.view_decorators._decode_jwt_from_request.<lambda2>:
  - 328
  flask_jwt_extended.view_decorators._load_user:
  - 184
  - 178
  - 182
  - 183
  flask_jwt_extended.view_decorators._verify_token_is_fresh:
  - 40
  - 41
  - 36
  - 37
  flask_jwt_extended.view_decorators.jwt_required:
  - 129
  flask_jwt_extended.view_decorators.jwt_required.wrapper:
  - 165
  flask_jwt_extended.view_decorators.jwt_required.wrapper.decorator:
  - 170
  - 167
  flask_jwt_extended.view_decorators.verify_jwt_in_request:
  - 103
  - 113
  - 53
  - 90
  - 94
  jwt.algorithms:
  - 73
  - 314
  jwt.algorithms.Algorithm:
  - 140
  jwt.algorithms.Algorithm.compute_hash_digest:
  - 160
  - 161
  - 162
  - 164
  - 145
  - 151
  - 152
  - 155
  - 157
  - 158
  jwt.algorithms.Algorithm.from_jwk:
  - 207
  jwt.algorithms.Algorithm.prepare_key:
  - 168
  jwt.algorithms.Algorithm.sign:
  - 175
  jwt.algorithms.Algorithm.to_jwk:
  - 200
  - 195
  - 190
  jwt.algorithms.Algorithm.verify:
  - 182
  jwt.algorithms.ECAlgorithm:
  - 487
  jwt.algorithms.ECAlgorithm.from_jwk:
  - 640
  - 645
  - 646
  - 647
  - 652
  - 653
  - 654
  - 662
  - 663
  - 664
  - 668
  - 669
  - 671
  - 672
  - 677
  - 678
  - 610
  - 611
  - 612
  - 619
  - 622
  - 625
  - 626
  - 628
  - 631
  - 632
  - 633
  - 638
  - 639
  jwt.algorithms.ECAlgorithm.prepare_key:
  - 512
  - 513
  - 515
  - 517
  - 520
  - 500
  - 503
  - 506
  jwt.algorithms.ECAlgorithm.sign:
  - 530
  - 532
  jwt.algorithms.ECAlgorithm.to_jwk:
  - 576
  - 578
  - 586
  - 555
  - 590
  - 561
  - 596
  - 565
  - 566
  - 567
  - 568
  - 597
  - 598
  - 602
  - 572
  - 605
  - 574
  jwt.algorithms.ECAlgorithm.verify:
  - 536
  - 546
  - 542
  - 543
  jwt.algorithms.HMACAlgorithm:
  - 243
  jwt.algorithms.HMACAlgorithm.from_jwk:
  - 293
  - 294
  - 295
  - 302
  - 305
  jwt.algorithms.HMACAlgorithm.prepare_key:
  - 256
  - 258
  jwt.algorithms.HMACAlgorithm.sign:
  - 308
  jwt.algorithms.HMACAlgorithm.to_jwk:
  - 288
  - 270
  - 276
  - 281
  - 285
  jwt.algorithms.HMACAlgorithm.verify:
  - 311
  jwt.algorithms.NoneAlgorithm:
  - 213
  jwt.algorithms.NoneAlgorithm.prepare_key:
  - 219
  - 222
  jwt.algorithms.OKPAlgorithm:
  - 712
  jwt.algorithms.OKPAlgorithm.from_jwk:
  - 866
  - 867
  - 868
  - 869
  - 870
  - 871
  - 872
  - 873
  - 845
  - 846
  - 847
  - 854
  - 857
  - 858
  - 861
  - 863
  jwt.algorithms.OKPAlgorithm.prepare_key:
  - 722
  - 723
  - 724
  - 726
  - 727
  - 728
  - 729
  - 730
  - 731
  - 734
  jwt.algorithms.OKPAlgorithm.sign:
  - 754
  - 747
  - 755
  jwt.algorithms.OKPAlgorithm.to_jwk:
  - 802
  - 835
  - 805
  - 838
  - 810
  - 829
  - 813
  - 815
  - 816
  - 830
  - 787
  - 819
  - 822
  - 793
  - 827
  - 797
  - 798
  jwt.algorithms.OKPAlgorithm.verify:
  - 770
  - 771
  - 774
  - 775
  - 778
  - 760
  jwt.algorithms.RSAAlgorithm:
  - 317
  jwt.algorithms.RSAAlgorithm.from_jwk:
  - 407
  - 408
  - 409
  - 416
  - 419
  - 421
  - 428
  - 430
  - 435
  - 436
  - 437
  - 440
  - 441
  - 442
  - 443
  - 444
  - 445
  - 446
  - 447
  - 451
  - 452
  - 456
  - 460
  - 461
  - 462
  - 466
  - 467
  - 469
  - 470
  - 471
  jwt.algorithms.RSAAlgorithm.prepare_key:
  - 330
  - 333
  - 336
  - 339
  - 340
  - 342
  - 343
  - 347
  jwt.algorithms.RSAAlgorithm.sign:
  - 477
  jwt.algorithms.RSAAlgorithm.to_jwk:
  - 386
  - 388
  - 357
  - 393
  - 394
  - 363
  - 399
  - 369
  - 402
  - 371
  - 376
  - 377
  - 378
  - 379
  - 380
  - 381
  - 382
  - 383
  jwt.algorithms.RSAAlgorithm.verify:
  - 481
  jwt.algorithms.RSAPSSAlgorithm:
  - 682
  jwt.algorithms.RSAPSSAlgorithm.sign:
  - 687
  - 689
  - 690
  - 691
  - 693
  jwt.algorithms.RSAPSSAlgorithm.verify:
  - 705
  - 698
  - 701
  - 702
  - 703
  jwt.algorithms.get_default_algorithms:
  - 106
  - 110
  - 111
  - 112
  - 113
  - 116
  - 117
  jwt.api_jwk.PyJWK.__init__:
  - 20
  - 23
  - 24
  - 27
  - 28
  - 30
  - 32
  - 33
  - 34
  - 36
  - 38
  - 40
  - 44
  - 46
  - 48
  - 49
  - 51
  - 58
  - 65
  - 70
  jwt.api_jwk.PyJWK.from_dict:
  - 74
  jwt.api_jwk.PyJWK.from_json:
  - 78
  - 79
  jwt.api_jwk.PyJWK.key_id:
  - 87
  jwt.api_jwk.PyJWK.key_type:
  - 83
  jwt.api_jwk.PyJWK.public_key_use:
  - 91
  jwt.api_jwk.PyJWKSet.__getitem__:
  - 129
  - 130
  jwt.api_jwk.PyJWKSet.__init__:
  - 98
  - 101
  - 104
  - 106
  - 108
  - 113
  jwt.api_jwk.PyJWKSet.from_dict:
  - 120
  - 121
  jwt.api_jwk.PyJWKSet.from_json:
  - 125
  - 126
  jwt.api_jwk.PyJWTSetWithTimestamp.__init__:
  - 138
  jwt.api_jws:
  - 25
  - 339
  jwt.api_jws.PyJWS.__init__:
  - 37
  - 39
  - 43
  - 44
  - 47
  - 49
  jwt.api_jws.PyJWS._load:
  - 288
  - 293
  - 262
  - 263
  - 265
  - 269
  - 270
  - 275
  - 280
  - 284
  jwt.api_jws.PyJWS._validate_headers:
  - 331
  - 332
  jwt.api_jws.PyJWS._validate_kid:
  - 335
  jwt.api_jws.PyJWS._verify_signature:
  - 322
  - 325
  - 327
  - 307
  - 314
  - 317
  jwt.api_jws.PyJWS.decode:
  - 241
  - 237
  - 238
  - 245
  jwt.api_jws.PyJWS.decode_complete:
  - 192
  - 195
  - 199
  - 204
  - 209
  - 211
  - 212
  - 217
  - 219
  - 220
  - 191
  jwt.api_jws.PyJWS.encode:
  - 128
  - 129
  - 132
  - 133
  - 139
  - 140
  - 141
  - 143
  - 146
  - 148
  - 152
  - 156
  - 158
  - 161
  - 162
  - 165
  - 167
  - 168
  - 170
  - 171
  - 173
  - 176
  - 178
  - 180
  - 118
  - 119
  - 127
  jwt.api_jws.PyJWS.get_algorithm_by_name:
  - 89
  - 99
  jwt.api_jws.PyJWS.get_algorithms:
  - 83
  - 86
  jwt.api_jws.PyJWS.get_unverified_header:
  - 256
  - 257
  - 251
  jwt.api_jws.PyJWS.register_algorithm:
  - 56
  - 66
  - 59
  - 62
  jwt.api_jws.PyJWS.unregister_algorithm:
  - 80
  - 73
  - 69
  jwt.api_jwt:
  - 24
  - 430
  jwt.api_jwt.PyJWT.__init__:
  - 33
  - 31
  jwt.api_jwt.PyJWT._decode_payload:
  - 188
  - 180
  - 191
  jwt.api_jwt.PyJWT._encode_payload:
  - 99
  - 93
  jwt.api_jwt.PyJWT._validate_aud:
  - 388
  - 390
  - 394
  - 397
  - 402
  - 372
  - 373
  - 404
  - 406
  - 409
  - 379
  - 412
  jwt.api_jwt.PyJWT._validate_claims:
  - 256
  - 258
  - 259
  - 261
  - 262
  - 264
  - 265
  - 267
  - 268
  - 269
  - 272
  - 273
  - 275
  - 276
  - 245
  - 246
  - 248
  - 251
  - 253
  - 255
  jwt.api_jwt.PyJWT._validate_exp:
  - 362
  - 356
  jwt.api_jwt.PyJWT._validate_iat:
  - 332
  - 327
  jwt.api_jwt.PyJWT._validate_iss:
  - 416
  - 419
  - 422
  - 423
  - 426
  jwt.api_jwt.PyJWT._validate_jti:
  - 314
  - 307
  - 317
  jwt.api_jwt.PyJWT._validate_nbf:
  - 346
  - 342
  jwt.api_jwt.PyJWT._validate_required_claims:
  - 283
  - 284
  jwt.api_jwt.PyJWT._validate_sub:
  - 288
  - 296
  - 299
  - 302
  - 303
  jwt.api_jwt.PyJWT.decode:
  - 218
  - 222
  - 214
  - 215
  jwt.api_jwt.PyJWT.decode_complete:
  - 128
  - 132
  - 133
  - 164
  - 167
  - 138
  - 139
  - 156
  - 147
  - 148
  - 149
  - 150
  - 151
  - 152
  - 153
  - 154
  - 124
  - 125
  jwt.api_jwt.PyJWT.encode:
  - 66
  - 67
  - 69
  - 70
  - 72
  - 78
  - 59
  jwt.exceptions.PyJWTError:
  - 2
  jwt.help:
  - 66
  - 67
  jwt.help.info:
  - 32
  - 33
  - 40
  - 41
  - 17
  - 23
  - 24
  - 29
  - 31
  jwt.help.main:
  - 62
  - 63
  jwt.jwk_set_cache.JWKSetCache.get:
  - 20
  - 23
  jwt.jwk_set_cache.JWKSetCache.is_expired:
  - 29
  - 30
  jwt.jwk_set_cache.JWKSetCache.put:
  - 13
  - 14
  jwt.jwks_client.PyJWKClient.__init__:
  - 34
  - 37
  - 41
  - 45
  - 48
  - 26
  jwt.jwks_client.PyJWKClient.fetch_data:
  - 67
  - 68
  - 55
  - 56
  - 59
  jwt.jwks_client.PyJWKClient.get_jwk_set:
  - 72
  - 73
  - 75
  - 76
  - 78
  - 81
  jwt.jwks_client.PyJWKClient.get_signing_key:
  - 97
  - 98
  - 100
  - 102
  - 103
  - 105
  jwt.jwks_client.PyJWKClient.get_signing_key_from_jwt:
  - 113
  - 115
  jwt.jwks_client.PyJWKClient.get_signing_keys:
  - 91
  - 84
  jwt.jwks_client.PyJWKClient.match_kid:
  - 121
  - 122
  jwt.utils:
  - 116
  - 118
  jwt.utils.base64url_decode:
  - 33
  - 26
  - 28
  - 30
  jwt.utils.base64url_encode:
  - 37
  jwt.utils.bytes_from_int:
  - 67
  - 68
  - 71
  jwt.utils.bytes_to_number:
  - 63
  jwt.utils.der_to_raw_signature:
  - 80
  - 78
  jwt.utils.force_bytes:
  - 17
  - 18
  - 19
  jwt.utils.from_base64url_uint:
  - 53
  - 54
  jwt.utils.is_pem_format:
  - 127
  jwt.utils.is_ssh_key:
  - 142
  jwt.utils.number_to_bytes:
  - 59
  jwt.utils.raw_to_der_signature:
  - 90
  - 91
  - 93
  - 87
  jwt.utils.to_base64url_uint:
  - 41
  - 44
  - 46
  - 49
Fuzzer filename: /src/fuzz_jwt.py
Inheritance:
  flask.app.Flask:
  - App
  flask.blueprints.Blueprint:
  - SansioBlueprint
  flask.cli.AppGroup: []
  flask.cli.CertParamType: []
  flask.cli.FlaskGroup:
  - AppGroup
  flask.cli.NoAppException: []
  flask.cli.ScriptInfo: []
  flask.cli.SeparatedPathType: []
  flask.config.Config:
  - dict
  flask.config.ConfigAttribute: []
  flask.ctx.AppContext: []
  flask.ctx.RequestContext: []
  flask.ctx._AppCtxGlobals: []
  flask.debughelpers.DebugFilesKeyError:
  - KeyError
  - AssertionError
  flask.debughelpers.FormDataRoutingRedirect:
  - AssertionError
  flask.debughelpers.UnexpectedUnicodeError:
  - AssertionError
  - UnicodeError
  flask.debughelpers.attach_enctype_error_multidict.newcls:
  - oldcls
  flask.json.provider.DefaultJSONProvider:
  - JSONProvider
  flask.json.provider.JSONProvider: []
  flask.json.tag.JSONTag: []
  flask.json.tag.PassDict:
  - JSONTag
  flask.json.tag.PassList:
  - JSONTag
  flask.json.tag.TagBytes:
  - JSONTag
  flask.json.tag.TagDateTime:
  - JSONTag
  flask.json.tag.TagDict:
  - JSONTag
  flask.json.tag.TagMarkup:
  - JSONTag
  flask.json.tag.TagTuple:
  - JSONTag
  flask.json.tag.TagUUID:
  - JSONTag
  flask.json.tag.TaggedJSONSerializer: []
  flask.sansio.app.App:
  - Scaffold
  flask.sansio.blueprints.Blueprint:
  - Scaffold
  flask.sansio.blueprints.BlueprintSetupState: []
  flask.sansio.scaffold.Scaffold: []
  flask.sessions.NullSession:
  - SecureCookieSession
  flask.sessions.SecureCookieSession:
  - SessionMixin
  flask.sessions.SecureCookieSessionInterface:
  - SessionInterface
  flask.sessions.SessionInterface: []
  flask.sessions.SessionMixin: []
  flask.templating.DispatchingJinjaLoader:
  - BaseLoader
  flask.templating.Environment:
  - BaseEnvironment
  flask.testing.EnvironBuilder: []
  flask.testing.FlaskCliRunner:
  - CliRunner
  flask.testing.FlaskClient:
  - Client
  flask.views.MethodView:
  - View
  flask.views.View: []
  flask.wrappers.Request:
  - RequestBase
  flask.wrappers.Response:
  - ResponseBase
  flask_jwt_extended.config._Config:
  - object
  flask_jwt_extended.exceptions.CSRFError:
  - JWTExtendedException
  flask_jwt_extended.exceptions.FreshTokenRequired:
  - JWTExtendedException
  flask_jwt_extended.exceptions.InvalidHeaderError:
  - JWTExtendedException
  flask_jwt_extended.exceptions.InvalidQueryParamError:
  - JWTExtendedException
  flask_jwt_extended.exceptions.JWTDecodeError:
  - JWTExtendedException
  flask_jwt_extended.exceptions.JWTExtendedException:
  - Exception
  flask_jwt_extended.exceptions.NoAuthorizationError:
  - JWTExtendedException
  flask_jwt_extended.exceptions.RevokedTokenError:
  - JWTExtendedException
  flask_jwt_extended.exceptions.UserClaimsVerificationError:
  - JWTExtendedException
  flask_jwt_extended.exceptions.UserLookupError:
  - JWTExtendedException
  flask_jwt_extended.exceptions.WrongTokenError:
  - JWTExtendedException
  flask_jwt_extended.internal_utils.JSONEncoder: []
  flask_jwt_extended.jwt_manager.JWTManager:
  - object
  jwt.algorithms.Algorithm:
  - ABC
  jwt.algorithms.ECAlgorithm:
  - Algorithm
  jwt.algorithms.HMACAlgorithm:
  - Algorithm
  jwt.algorithms.NoneAlgorithm:
  - Algorithm
  jwt.algorithms.OKPAlgorithm:
  - Algorithm
  jwt.algorithms.RSAAlgorithm:
  - Algorithm
  jwt.algorithms.RSAPSSAlgorithm:
  - RSAAlgorithm
  jwt.api_jwk.PyJWK: []
  jwt.api_jwk.PyJWKSet: []
  jwt.api_jwk.PyJWTSetWithTimestamp: []
  jwt.api_jws.PyJWS: []
  jwt.api_jwt.PyJWT: []
  jwt.exceptions.DecodeError:
  - InvalidTokenError
  jwt.exceptions.ExpiredSignatureError:
  - InvalidTokenError
  jwt.exceptions.ImmatureSignatureError:
  - InvalidTokenError
  jwt.exceptions.InvalidAlgorithmError:
  - InvalidTokenError
  jwt.exceptions.InvalidAudienceError:
  - InvalidTokenError
  jwt.exceptions.InvalidIssuedAtError:
  - InvalidTokenError
  jwt.exceptions.InvalidIssuerError:
  - InvalidTokenError
  jwt.exceptions.InvalidJTIError:
  - InvalidTokenError
  jwt.exceptions.InvalidKeyError:
  - PyJWTError
  jwt.exceptions.InvalidSignatureError:
  - DecodeError
  jwt.exceptions.InvalidSubjectError:
  - InvalidTokenError
  jwt.exceptions.InvalidTokenError:
  - PyJWTError
  jwt.exceptions.MissingCryptographyError:
  - PyJWKError
  jwt.exceptions.MissingRequiredClaimError:
  - InvalidTokenError
  jwt.exceptions.PyJWKClientConnectionError:
  - PyJWKClientError
  jwt.exceptions.PyJWKClientError:
  - PyJWTError
  jwt.exceptions.PyJWKError:
  - PyJWTError
  jwt.exceptions.PyJWKSetError:
  - PyJWTError
  jwt.exceptions.PyJWTError:
  - Exception
  jwt.jwk_set_cache.JWKSetCache: []
  jwt.jwks_client.PyJWKClient: []
  jwt.warnings.RemovedInPyjwt3Warning:
  - DeprecationWarning
ep:
  func_name: TestOneInput
  module: '...fuzz_jwt'
