././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0750976 pyfuse3-3.5.0/0000755000175000017500000000000015201114625013374 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0590982 pyfuse3-3.5.0/.claude/0000755000175000017500000000000015201114625014707 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767474047.0 pyfuse3-3.5.0/.claude/settings.local.json0000600000175000017500000000033715126301577020540 0ustar00nikrationikratio{ "permissions": { "allow": [ "Bash(pyright:*)", "mcp__plugin_serena_serena__read_file", "mcp__plugin_serena_serena__create_text_file", "mcp__plugin_serena_serena__replace_content" ] } } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677256.0 pyfuse3-3.5.0/AGENTS.md0000600000175000017500000001260415201073010014662 0ustar00nikrationikratio# CLAUDE.md This file provides guidance to AI Agents when working with code in this repository. ## Project Overview pyfuse3 is a Python 3 binding for libfuse 3 that provides an asynchronous API compatible with Trio and asyncio. It enables writing full-featured Linux filesystems in Python. **Development Status**: Stable when used with Trio. The project is in maintenance mode - bugs are fixed and compatibility with new Python/libfuse versions is maintained, but no new features are planned. Pull requests for improvements may be accepted. ## Build System This project uses a **custom build backend** (`util/build_backend.py`) that wraps setuptools.build_meta. The build system: - Dynamically configures Cython extensions based on pkg-config output and platform detection - Requires libfuse3 >= 3.2.0 (checked via pkg-config) - Platform-specific: adds darwin_compat.c on macOS, -lrt on Linux - Uses Cython to compile `.pyx` files to C extensions ## Development Setup Install development environment: ```bash uv sync . .venv/bin/activate ``` ## Essential Commands ### Testing ```bash # Run all tests pytest test/ # Run specific test file pytest test/test_api.py # Run specific test pytest test/test_api.py::test_something # Enable debug logging from specific module pytest --logdebug=pyfuse3 test/ # Enable all debug logging pytest --logdebug=all test/ ``` ### Pre-completion checks ```bash # Run in this order, fixing issues before proceeding to next tool: pyright mypy ruff check --fix ruff format pytest --tb=short - test/ sphinx-build -W --keep-going -b html rst doc/html ``` ### Documentation ```bash # Build HTML documentation sphinx-build -b html rst doc/html ``` ## Code Architecture ### Hybrid Cython/Python Implementation The core is split between Cython (performance-critical FUSE bindings) and pure Python (high-level operations): - **`src/pyfuse3/__init__.pyx`**: Main Cython module containing C bindings to libfuse3 - Includes `.pxi` files: `handlers.pxi` (FUSE request handlers), `internal.pxi`, `macros.pxd` - Compiled to `__init__.cpython-*.so` C extension - Exports classes: `FUSEError`, `EntryAttributes`, `FileInfo`, `RequestContext`, `SetattrFields`, `StatvfsData` - Core functions: `init()`, `main()`, `close()`, `invalidate_inode()`, `readdir_reply()` - **`src/pyfuse3/_pyfuse3.py`**: Pure-Python components - Defines `Operations` base class with all FUSE handler methods (lookup, getattr, read, write, etc.) - Type definitions: `FileHandleT`, `FileNameT`, `InodeT`, `ModeT`, `XAttrNameT` - `async_wrapper()` function ensures Trio coroutines are pure-Python - **`src/pyfuse3/asyncio.py`**: asyncio compatibility layer (less tested than Trio) - **`src/pyfuse3/__init__.pyi`**: Type stubs for external API ### FUSE Operations Pattern Filesystems are implemented by subclassing `Operations` and overriding async handler methods: - All handlers are async (Trio-based by default) - Handlers must raise `FUSEError(errno)` for errors, never return `None` for errors - Unimplemented handlers should raise `FUSEError(errno.ENOSYS)` to let kernel handle them - The `Operations` class has configuration flags: `supports_dot_lookup`, `enable_writeback_cache`, `enable_acl` ### Request Flow 1. FUSE kernel module calls C handlers in `handlers.pxi` 2. C handlers queue requests and pass to Python via Trio 3. Python `Operations` handlers process requests asynchronously 4. Results flow back through C bindings to FUSE kernel ### Testing Architecture - **`test/conftest.py`**: pytest configuration with custom plugin `pytest_checklogs` - Validates no unexpected warnings/errors in logs - `--installed` flag to test installed vs development version - `--logdebug` for module-specific debug output - Adds 1-second delay after test failure to capture server output - **`test/util.py`**: Test utilities for mounting/unmounting filesystems - **Filesystem tests**: Run filesystem in separate process using multiprocessing (fork context required) ## Project Structure ``` src/pyfuse3/ __init__.pyx # Main Cython module (FUSE bindings) __init__.pyi # Type stubs _pyfuse3.py # Pure-Python Operations class asyncio.py # asyncio compatibility handlers.pxi # FUSE request handlers (included by __init__.pyx) internal.pxi # Internal Cython utilities macros.pxd # Cython macro definitions *.c, *.h # C compatibility code (darwin_compat, etc.) examples/ hello.py # Simple example with Trio hello_asyncio.py # Simple example with asyncio tmpfs.py # In-memory filesystem passthroughfs.py # Passthrough filesystem proxy test/ conftest.py # pytest configuration pytest_checklogs.py # Custom pytest plugin for log validation util.py # Test utilities test_*.py # Test files util/ build_backend.py # Custom PEP 517 build backend developer-notes/ setup.md # Development setup instructions ``` ## Type Annotations - Type hints are mandatory for all functions and methods - The project includes `py.typed` marker for external type checking - Uses `NewType` for semantic types: `InodeT`, `FileHandleT` - Pyright mode: `standard` - Mypy: `check_untyped_defs = true` ## Platform Support - **Linux**: Primary platform, fully supported - **macOS**: Supported with darwin_compat.c compatibility layer - **FreeBSD**: Limited support via PLATFORM_BSD detection ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677256.0 pyfuse3-3.5.0/CLAUDE.md0000600000175000017500000001260415201073010014636 0ustar00nikrationikratio# CLAUDE.md This file provides guidance to AI Agents when working with code in this repository. ## Project Overview pyfuse3 is a Python 3 binding for libfuse 3 that provides an asynchronous API compatible with Trio and asyncio. It enables writing full-featured Linux filesystems in Python. **Development Status**: Stable when used with Trio. The project is in maintenance mode - bugs are fixed and compatibility with new Python/libfuse versions is maintained, but no new features are planned. Pull requests for improvements may be accepted. ## Build System This project uses a **custom build backend** (`util/build_backend.py`) that wraps setuptools.build_meta. The build system: - Dynamically configures Cython extensions based on pkg-config output and platform detection - Requires libfuse3 >= 3.2.0 (checked via pkg-config) - Platform-specific: adds darwin_compat.c on macOS, -lrt on Linux - Uses Cython to compile `.pyx` files to C extensions ## Development Setup Install development environment: ```bash uv sync . .venv/bin/activate ``` ## Essential Commands ### Testing ```bash # Run all tests pytest test/ # Run specific test file pytest test/test_api.py # Run specific test pytest test/test_api.py::test_something # Enable debug logging from specific module pytest --logdebug=pyfuse3 test/ # Enable all debug logging pytest --logdebug=all test/ ``` ### Pre-completion checks ```bash # Run in this order, fixing issues before proceeding to next tool: pyright mypy ruff check --fix ruff format pytest --tb=short - test/ sphinx-build -W --keep-going -b html rst doc/html ``` ### Documentation ```bash # Build HTML documentation sphinx-build -b html rst doc/html ``` ## Code Architecture ### Hybrid Cython/Python Implementation The core is split between Cython (performance-critical FUSE bindings) and pure Python (high-level operations): - **`src/pyfuse3/__init__.pyx`**: Main Cython module containing C bindings to libfuse3 - Includes `.pxi` files: `handlers.pxi` (FUSE request handlers), `internal.pxi`, `macros.pxd` - Compiled to `__init__.cpython-*.so` C extension - Exports classes: `FUSEError`, `EntryAttributes`, `FileInfo`, `RequestContext`, `SetattrFields`, `StatvfsData` - Core functions: `init()`, `main()`, `close()`, `invalidate_inode()`, `readdir_reply()` - **`src/pyfuse3/_pyfuse3.py`**: Pure-Python components - Defines `Operations` base class with all FUSE handler methods (lookup, getattr, read, write, etc.) - Type definitions: `FileHandleT`, `FileNameT`, `InodeT`, `ModeT`, `XAttrNameT` - `async_wrapper()` function ensures Trio coroutines are pure-Python - **`src/pyfuse3/asyncio.py`**: asyncio compatibility layer (less tested than Trio) - **`src/pyfuse3/__init__.pyi`**: Type stubs for external API ### FUSE Operations Pattern Filesystems are implemented by subclassing `Operations` and overriding async handler methods: - All handlers are async (Trio-based by default) - Handlers must raise `FUSEError(errno)` for errors, never return `None` for errors - Unimplemented handlers should raise `FUSEError(errno.ENOSYS)` to let kernel handle them - The `Operations` class has configuration flags: `supports_dot_lookup`, `enable_writeback_cache`, `enable_acl` ### Request Flow 1. FUSE kernel module calls C handlers in `handlers.pxi` 2. C handlers queue requests and pass to Python via Trio 3. Python `Operations` handlers process requests asynchronously 4. Results flow back through C bindings to FUSE kernel ### Testing Architecture - **`test/conftest.py`**: pytest configuration with custom plugin `pytest_checklogs` - Validates no unexpected warnings/errors in logs - `--installed` flag to test installed vs development version - `--logdebug` for module-specific debug output - Adds 1-second delay after test failure to capture server output - **`test/util.py`**: Test utilities for mounting/unmounting filesystems - **Filesystem tests**: Run filesystem in separate process using multiprocessing (fork context required) ## Project Structure ``` src/pyfuse3/ __init__.pyx # Main Cython module (FUSE bindings) __init__.pyi # Type stubs _pyfuse3.py # Pure-Python Operations class asyncio.py # asyncio compatibility handlers.pxi # FUSE request handlers (included by __init__.pyx) internal.pxi # Internal Cython utilities macros.pxd # Cython macro definitions *.c, *.h # C compatibility code (darwin_compat, etc.) examples/ hello.py # Simple example with Trio hello_asyncio.py # Simple example with asyncio tmpfs.py # In-memory filesystem passthroughfs.py # Passthrough filesystem proxy test/ conftest.py # pytest configuration pytest_checklogs.py # Custom pytest plugin for log validation util.py # Test utilities test_*.py # Test files util/ build_backend.py # Custom PEP 517 build backend developer-notes/ setup.md # Development setup instructions ``` ## Type Annotations - Type hints are mandatory for all functions and methods - The project includes `py.typed` marker for external type checking - Uses `NewType` for semantic types: `InodeT`, `FileHandleT` - Pyright mode: `standard` - Mypy: `check_untyped_defs = true` ## Platform Support - **Linux**: Primary platform, fully supported - **macOS**: Supported with darwin_compat.c compatibility layer - **FreeBSD**: Limited support via PLATFORM_BSD detection ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686319.0 pyfuse3-3.5.0/Changes.rst0000644000175000017500000001360115201114557015503 0ustar00nikrationikratio=========== Changelog =========== .. currentmodule:: pyfuse3 pyfuse 3.5.0 (2026-05-13) ========================= * Filesystems may now define a `~Operations.poll` method to support the ``epoll`` and `select` system calls. * The `FileHandleT` and `InodeT` types are no longer declared as *NewTypes* but are now simply aliases for *int*. This should make it easier to write type annotations. * Future releases of pyfuse will be signed with signify rather than GPG. The public key to verify the signature of a the next version will always be included in the previous versions, so this version already ships the public key that will be used to sign the next versions, :file:`signify/pyfuse-3.5.pub` for any bugfix releases and :file:`signify/pyfuse-next.pub` for the next minor (or major) release. pyfuse 3.4.2 (2026-01-06) ========================= * Removed the ``pyfuse3_asyncio`` module. This has been renamed to :mod:`pyfuse3.asyncio` for quite some time. * Fixed a test failure in test_examples.py * Many internal changes, modernizing build process and adding more type annotations. Release 3.4.1 (2025-12-22) ========================== * Cythonized with latest Cython 3.2.3. * CI: also test on Python 3.14, on Ubuntu 24.04. * asyncio: - use .run and .get_running_loop, #106. - replace deprecated Future() with create_future; fix lazy trio.Lock init. * use SPDX license identifier, #107 * fix LICENSE text: LGPL v2.1, #102 Release 3.4.0 (2024-08-28) ========================== * Cythonized with latest Cython 3.0.11 to support Python 3.13. * CI: also test python 3.13, run mypy. * Move ``_pyfuse3`` to ``pyfuse3._pyfuse3`` and add a compatibility wrapper for the old name. * Move ``pyfuse3_asyncio`` to ``pyfuse3.asyncio`` and add a compatibility wrapper for the old name. * Add `bytes` subclass `XAttrNameT` as the type of extended attribute names. * Various fixes to type annotations. * Add ``py.typed`` marker to enable external use of type annotations. Release 3.3.0 (2023-08-06) ========================== * Note: This is the first pyfuse3 release compatible with Cython 3.0.0 release. Cython 0.29.x is also still supported. * Cythonized with latest Cython 3.0.0. * Drop Python 3.6 and 3.7 support and testing, #71. * CI: also test python 3.12. test on cython 0.29 and cython 3.0. * Tell Cython that callbacks may raise exceptions, #80. * Fix lookup in examples/hello.py, similar to #16. * Misc. CI, testing, build and sphinx related fixes. Release 3.2.3 (2023-05-09) ========================== * cythonize with latest Cython 0.29.34 (brings Python 3.12 support) * add a minimal pyproject.toml, require setuptools * tests: fix integer overflow on 32-bit arches, fixes #47 * test: Use shutil.which() instead of external which(1) program * setup.py: catch more generic OSError when searching Cython, fixes #63 * setup.py: require Cython >= 0.29 * fix basedir computation in setup.py (fix pip install -e .) * use sphinx < 6.0 due to compatibility issues with more recent versions Release 3.2.2 (2022-09-28) ========================== * remove support for python 3.5 (broken, out of support by python devs) * cythonize with latest Cython 0.29.x (brings Python 3.11 support) * use github actions for CI, remove travis-ci * update README: minimal maintenance, not developed * update setup.py with tested python versions * examples/tmpfs.py: work around strange kernel behaviour (calling SETATTR after UNLINK of a (not open) file): respond with ENOENT instead of crashing. Release 3.2.1 (2021-09-17) ========================== * Add type annotations * Passing a XATTR_CREATE or XATTR_REPLACE to `setxattr` is now working correctly. Release 3.2.0 (2020-12-30) ========================== * Fix long-standing rounding error in file date handling when the nanosecond part of file dates were > 999999500. * There is a new `pyfuse3.terminate()` function to gracefully end the main loop. Release 3.1.1 (2020-10-06) ========================== * No source changes. Regenerated Cython files with Cython 0.29.21 for Python 3.9 compatibility. Release 3.1.0 (2020-05-31) ========================== * Made compatible with newest Trio module. Release 3.0.0 (2020-05-08) ========================== * Changed `~Operations.create` handler to return a `FileInfo` struct to allow for modification of certain kernel file attributes, e.g. ``direct_io``. Note that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed. Release 2.0.0 ============= * Changed `~Operations.open` handler to return the new `FileInfo` struct to allow for modification of certain kernel file attributes, e.g. ``direct_io``. Note that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed. Release 1.3.1 (2019-07-17) ========================== * Fixed a bug in the :file:`hello_asyncio.py` example. Release 1.3 (2019-06-02) ======================== * Fixed a bug in the :file:`tmpfs.py` and :file:`passthroughfs.py` example file systems (so rename operations no longer fail). Release 1.2 (2018-12-22) ======================== * Clarified that `invalidate_inode` may block in some circumstances. * Added support for using the asyncio module instead of Trio. Release 1.1 (2018-11-02) ======================== * Fixed :file:`examples/passthroughfs.py` - was not handling readdir() correctly. * `invalidate_entry_async` now accepts an additional *ignore_enoent* parameter. When this is set, no errors are logged if the kernel is not actually aware of the entry that should have been removed. Release 1.0 (2018-10-08) ======================== * Added a new `syncfs` function. Release 0.9 (2018-09-27) ======================== * First release * pyfuse3 was forked from python-llfuse - thanks for all the work! * If you need compatibility with Python 2.x or libfuse 2.x, you may want to take a look at python-llfuse instead. ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0600982 pyfuse3-3.5.0/Include/0000755000175000017500000000000015201114625014757 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778335858.0 pyfuse3-3.5.0/Include/fuse_common.pxd0000644000175000017500000000532515177640162020027 0ustar00nikrationikratio''' fuse_common.pxd This file contains Cython definitions for fuse_common.h Copyright © 2010 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' from fuse_opt cimport * from posix.types cimport off_t from libc.stdint cimport uint64_t # Based on fuse sources, revision tag fuse_2_9_4 cdef extern from * nogil: # fuse_common.h should not be included struct fuse_file_info: int flags unsigned int direct_io unsigned int keep_cache unsigned int nonseekable uint64_t fh uint64_t lock_owner struct fuse_conn_info: unsigned proto_major unsigned proto_minor unsigned max_write unsigned max_read unsigned max_readahead unsigned capable unsigned want unsigned max_background unsigned congestion_threshold unsigned time_gran struct fuse_session: pass struct fuse_chan: pass struct fuse_pollhandle: pass void fuse_pollhandle_destroy(fuse_pollhandle *ph) struct fuse_loop_config: int clone_fd unsigned max_idle_threads # Capability bits for fuse_conn_info.{capable,want} enum: FUSE_CAP_ASYNC_READ FUSE_CAP_POSIX_LOCKS FUSE_CAP_ATOMIC_O_TRUNC FUSE_CAP_EXPORT_SUPPORT FUSE_CAP_DONT_MASK FUSE_CAP_SPLICE_WRITE FUSE_CAP_SPLICE_MOVE FUSE_CAP_SPLICE_READ FUSE_CAP_FLOCK_LOCKS FUSE_CAP_IOCTL_DIR FUSE_CAP_AUTO_INVAL_DATA FUSE_CAP_READDIRPLUS FUSE_CAP_READDIRPLUS_AUTO FUSE_CAP_ASYNC_DIO FUSE_CAP_WRITEBACK_CACHE FUSE_CAP_NO_OPEN_SUPPORT FUSE_CAP_PARALLEL_DIROPS FUSE_CAP_POSIX_ACL FUSE_CAP_HANDLE_KILLPRIV int fuse_set_signal_handlers(fuse_session *se) void fuse_remove_signal_handlers(fuse_session *se) # fuse_common.h declares these as enums, but they are # actually flags (i.e., FUSE_BUF_IS_FD|FUSE_BUF_FD_SEEK) # is a valid variable. Therefore, we declare the type # as integer instead. ctypedef int fuse_buf_flags enum: FUSE_BUF_IS_FD FUSE_BUF_FD_SEEK FUSE_BUF_FD_RETRY ctypedef int fuse_buf_copy_flags enum: FUSE_BUF_NO_SPLICE FUSE_BUF_FORCE_SPLICE FUSE_BUF_SPLICE_MOVE FUSE_BUF_SPLICE_NONBLOCK struct fuse_buf: size_t size fuse_buf_flags flags void *mem int fd off_t pos struct fuse_bufvec: size_t count size_t idx size_t off fuse_buf buf[1] size_t fuse_buf_size(fuse_bufvec *bufv) ssize_t fuse_buf_copy(fuse_bufvec *dst, fuse_bufvec *src, fuse_buf_copy_flags flags) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778335858.0 pyfuse3-3.5.0/Include/fuse_lowlevel.pxd0000644000175000017500000002145015177640162020365 0ustar00nikrationikratio''' fuse_lowlevel.pxd This file contains Cython definitions for fuse_lowlevel.h Copyright © 2010 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' from fuse_common cimport * from posix.stat cimport * from posix.types cimport * from libc_extra cimport statvfs from libc.stdlib cimport const_char from libc.stdint cimport uint32_t # Based on fuse sources, revision tag fuse-3.2.6 cdef extern from "" nogil: enum: FUSE_ROOT_ID ctypedef unsigned fuse_ino_t ctypedef struct fuse_req: pass ctypedef fuse_req* fuse_req_t struct fuse_entry_param: fuse_ino_t ino uint64_t generation struct_stat attr double attr_timeout double entry_timeout struct fuse_ctx: uid_t uid gid_t gid pid_t pid mode_t umask struct fuse_forget_data: fuse_ino_t ino uint64_t nlookup ctypedef fuse_ctx const_fuse_ctx "const struct fuse_ctx" int FUSE_SET_ATTR_MODE int FUSE_SET_ATTR_UID int FUSE_SET_ATTR_GID int FUSE_SET_ATTR_SIZE int FUSE_SET_ATTR_ATIME int FUSE_SET_ATTR_MTIME int FUSE_SET_ATTR_ATIME_NOW int FUSE_SET_ATTR_MTIME_NOW int FUSE_SET_ATTR_CTIME # Request handlers # We allow these functions to raise exceptions because we will catch them # when checking exception status on return from fuse_session_process_buf(). struct fuse_lowlevel_ops: void (*init) (void *userdata, fuse_conn_info *conn) except * void (*destroy) (void *userdata) except * void (*lookup) (fuse_req_t req, fuse_ino_t parent, const_char *name) except * void (*forget) (fuse_req_t req, fuse_ino_t ino, uint64_t nlookup) except * void (*getattr) (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) except * void (*setattr) (fuse_req_t req, fuse_ino_t ino, struct_stat *attr, int to_set, fuse_file_info *fi) except * void (*readlink) (fuse_req_t req, fuse_ino_t ino) except * void (*mknod) (fuse_req_t req, fuse_ino_t parent, const_char *name, mode_t mode, dev_t rdev) except * void (*mkdir) (fuse_req_t req, fuse_ino_t parent, const_char *name, mode_t mode) except * void (*unlink) (fuse_req_t req, fuse_ino_t parent, const_char *name) except * void (*rmdir) (fuse_req_t req, fuse_ino_t parent, const_char *name) except * void (*symlink) (fuse_req_t req, const_char *link, fuse_ino_t parent, const_char *name) except * void (*rename) (fuse_req_t req, fuse_ino_t parent, const_char *name, fuse_ino_t newparent, const_char *newname, unsigned flags) except * void (*link) (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent, const_char *newname) except * void (*open) (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) except * void (*read) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, fuse_file_info *fi) except * void (*write) (fuse_req_t req, fuse_ino_t ino, const_char *buf, size_t size, off_t off, fuse_file_info *fi) except * void (*flush) (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) except * void (*release) (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) except * void (*fsync) (fuse_req_t req, fuse_ino_t ino, int datasync, fuse_file_info *fi) except * void (*opendir) (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) except * void (*readdir) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, fuse_file_info *fi) except * void (*releasedir) (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) except * void (*fsyncdir) (fuse_req_t req, fuse_ino_t ino, int datasync, fuse_file_info *fi) except * void (*statfs) (fuse_req_t req, fuse_ino_t ino) except * void (*setxattr) (fuse_req_t req, fuse_ino_t ino, const_char *name, const_char *value, size_t size, int flags) except * void (*getxattr) (fuse_req_t req, fuse_ino_t ino, const_char *name, size_t size) except * void (*listxattr) (fuse_req_t req, fuse_ino_t ino, size_t size) except * void (*removexattr) (fuse_req_t req, fuse_ino_t ino, const_char *name) except * void (*access) (fuse_req_t req, fuse_ino_t ino, int mask) except * void (*create) (fuse_req_t req, fuse_ino_t parent, const_char *name, mode_t mode, fuse_file_info *fi) except * void (*write_buf) (fuse_req_t req, fuse_ino_t ino, fuse_bufvec *bufv, off_t off, fuse_file_info *fi) except * void (*retrieve_reply) (fuse_req_t req, void *cookie, fuse_ino_t ino, off_t offset, fuse_bufvec *bufv) except * void (*forget_multi) (fuse_req_t req, size_t count, fuse_forget_data *forgets) except * void (*fallocate) (fuse_req_t req, fuse_ino_t ino, int mode, off_t offset, off_t length, fuse_file_info *fi) except * void (*readdirplus) (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, fuse_file_info *fi) except * void (*poll) (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi, fuse_pollhandle *ph) except * # Reply functions int fuse_reply_err(fuse_req_t req, int err) void fuse_reply_none(fuse_req_t req) int fuse_reply_entry(fuse_req_t req, fuse_entry_param *e) int fuse_reply_create(fuse_req_t req, fuse_entry_param *e, fuse_file_info *fi) int fuse_reply_attr(fuse_req_t req, struct_stat *attr, double attr_timeout) int fuse_reply_readlink(fuse_req_t req, const_char *link) int fuse_reply_open(fuse_req_t req, fuse_file_info *fi) int fuse_reply_write(fuse_req_t req, size_t count) int fuse_reply_buf(fuse_req_t req, const_char *buf, size_t size) int fuse_reply_data(fuse_req_t req, fuse_bufvec *bufv, fuse_buf_copy_flags flags) int fuse_reply_statfs(fuse_req_t req, statvfs *stbuf) int fuse_reply_xattr(fuse_req_t req, size_t count) int fuse_reply_poll(fuse_req_t req, unsigned revents) size_t fuse_add_direntry(fuse_req_t req, const_char *buf, size_t bufsize, const_char *name, struct_stat *stbuf, off_t off) size_t fuse_add_direntry_plus(fuse_req_t req, char *buf, size_t bufsize, char *name, fuse_entry_param *e, off_t off) # Notification int fuse_lowlevel_notify_inval_inode(fuse_session *se, fuse_ino_t ino, off_t off, off_t len) int fuse_lowlevel_notify_inval_entry(fuse_session *se, fuse_ino_t parent, const_char *name, size_t namelen) int fuse_lowlevel_notify_delete(fuse_session *se, fuse_ino_t parent, fuse_ino_t child, const_char *name, size_t namelen) int fuse_lowlevel_notify_store(fuse_session *se, fuse_ino_t ino, off_t offset, fuse_bufvec *bufv, fuse_buf_copy_flags flags) int fuse_lowlevel_notify_retrieve(fuse_session *se, fuse_ino_t ino, size_t size, off_t offset, void *cookie) int fuse_lowlevel_notify_poll(fuse_pollhandle *ph) # Utility functions void *fuse_req_userdata(fuse_req_t req) fuse_ctx *fuse_req_ctx(fuse_req_t req) int fuse_req_getgroups(fuse_req_t req, size_t size, gid_t list[]) # Inquiry functions void fuse_lowlevel_version() void fuse_lowlevel_help() # Filesystem setup & teardown fuse_session *fuse_session_new(fuse_args *args, fuse_lowlevel_ops *op, size_t op_size, void *userdata) int fuse_session_mount(fuse_session *se, char *mountpoint) int fuse_session_loop(fuse_session *se) int fuse_session_loop_mt(fuse_session *se, fuse_loop_config *config); void fuse_session_exit(fuse_session *se) void fuse_session_reset(fuse_session *se) bint fuse_session_exited(fuse_session *se) void fuse_session_unmount(fuse_session *se) void fuse_session_destroy(fuse_session *se) # Custom event loop support int fuse_session_fd(fuse_session *se) int fuse_session_receive_buf(fuse_session *se, fuse_buf *buf) void fuse_session_process_buf(fuse_session *se, fuse_buf *buf) except * ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/Include/fuse_opt.pxd0000644000175000017500000000060315124221126017316 0ustar00nikrationikratio''' fuse_opt.pxd This file contains Cython definitions for fuse_opt.h Copyright © 2010 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' # Based on fuse sources, revision tag fuse_2_8_3 cdef extern from "" nogil: struct fuse_args: int argc char **argv int allocated ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1538331845.0 pyfuse3-3.5.0/Include/libc_extra.pxd0000664000175000017500000000310313354212305017610 0ustar00nikrationikratio''' libc_extra.pxd This file contains Cython definitions libc functions that are not included in the pxd files shipped with Cython. Copyright © 2010 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' from posix.time cimport timespec cdef extern from "" nogil: ctypedef struct DIR: pass cdef struct dirent: char* d_name dirent* readdir(DIR* dirp) int readdir_r(DIR *dirp, dirent *entry, dirent **result) cdef extern from "" nogil: DIR *opendir(char *name) int closedir(DIR* dirp) cdef extern from "" nogil: ctypedef int fsblkcnt_t ctypedef int fsfilcnt_t struct statvfs: unsigned long f_bsize unsigned long f_frsize fsblkcnt_t f_blocks fsblkcnt_t f_bfree fsblkcnt_t f_bavail fsfilcnt_t f_files fsfilcnt_t f_ffree fsfilcnt_t f_favail unsigned long f_namemax cdef extern from "xattr.h" nogil: int setxattr_p (char *path, char *name, void *value, int size, int namespace) ssize_t getxattr_p (char *path, char *name, void *value, int size, int namespace) enum: EXTATTR_NAMESPACE_SYSTEM EXTATTR_NAMESPACE_USER XATTR_CREATE XATTR_REPLACE XATTR_NOFOLLOW XATTR_NODEFAULT XATTR_NOSECURITY cdef extern from "gettime.h" nogil: int gettime_realtime(timespec *tp) cdef extern from "" nogil: int syncfs(int fd) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/LICENSE0000644000175000017500000014712215124221126014407 0ustar00nikrationikratio GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see . Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Moe Ghoul, President of Vice That's all there is to it! GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see . Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Moe Ghoul, President of Vice That's all there is to it!././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0750976 pyfuse3-3.5.0/PKG-INFO0000644000175000017500000000531715201114625014477 0ustar00nikrationikratioMetadata-Version: 2.4 Name: pyfuse3 Version: 3.5.0 Summary: Python 3 bindings for libfuse 3 with async I/O support Author-email: Nikolaus Rath License-Expression: LGPL-2.1-or-later Project-URL: Homepage, https://github.com/libfuse/pyfuse3 Keywords: FUSE,python Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Programming Language :: Python Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: System :: Filesystems Classifier: Operating System :: POSIX :: Linux Classifier: Typing :: Typed Requires-Python: >=3.10 Description-Content-Type: text/x-rst License-File: LICENSE Requires-Dist: trio>=0.15 Dynamic: license-file .. NOTE: We cannot use sophisticated ReST syntax (like e.g. :file:`foo`) here because this isn't rendered correctly by PyPi. The pyfuse3 Module ================== .. start-intro pyfuse3 is a set of Python 3 bindings for `libfuse 3`_. It provides an asynchronous API compatible with Trio_ and asyncio_, and enables you to easily write a full-featured Linux filesystem in Python. pyfuse3 releases can be downloaded from PyPi_. The documentation can be `read online`__ and is also included in the ``doc/html`` directory of the pyfuse3 tarball. Getting Help ------------ Please report any bugs on the `issue tracker`_. For discussion and questions, please use the general `FUSE mailing list`_ or `GitHub Discussions `_. Development Status ------------------ pyfuse3 is stable when used with Trio. The current maintainers ensure that bugs are addressed and pyfuse3 continues to work with new Python and libfuse versions. There is no plan to add new features or other non-bugfix work. However, pull requests for new features or other improvements may be accepted. Using pyfuse3 with asyncio (rather than Trio) support is less well tested, there may be bugs, and some of them may not be easily fixable. If you need a synchronous (non async) implementation, `mfusepy `_ is a maintained alternative. Contributing ------------ The pyfuse3 source code is available on GitHub_. .. __: https://pyfuse3.readthedocs.io/ .. _`libfuse 3`: http://github.com/libfuse/libfuse .. _FUSE mailing list: https://lists.sourceforge.net/lists/listinfo/fuse-devel .. _issue tracker: https://github.com/libfuse/pyfuse3/issues .. _mailing list archive: http://dir.gmane.org/gmane.comp.file-systems.fuse.devel .. _Gmane: http://www.gmane.org/ .. _PyPi: https://pypi.python.org/pypi/pyfuse3/ .. _GitHub: https://github.com/libfuse/pyfuse3 .. _Trio: https://github.com/python-trio/trio .. _asyncio: https://docs.python.org/3/library/asyncio.html ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766949514.0 pyfuse3-3.5.0/README.rst0000644000175000017500000000374415124301212015065 0ustar00nikrationikratio.. NOTE: We cannot use sophisticated ReST syntax (like e.g. :file:`foo`) here because this isn't rendered correctly by PyPi. The pyfuse3 Module ================== .. start-intro pyfuse3 is a set of Python 3 bindings for `libfuse 3`_. It provides an asynchronous API compatible with Trio_ and asyncio_, and enables you to easily write a full-featured Linux filesystem in Python. pyfuse3 releases can be downloaded from PyPi_. The documentation can be `read online`__ and is also included in the ``doc/html`` directory of the pyfuse3 tarball. Getting Help ------------ Please report any bugs on the `issue tracker`_. For discussion and questions, please use the general `FUSE mailing list`_ or `GitHub Discussions `_. Development Status ------------------ pyfuse3 is stable when used with Trio. The current maintainers ensure that bugs are addressed and pyfuse3 continues to work with new Python and libfuse versions. There is no plan to add new features or other non-bugfix work. However, pull requests for new features or other improvements may be accepted. Using pyfuse3 with asyncio (rather than Trio) support is less well tested, there may be bugs, and some of them may not be easily fixable. If you need a synchronous (non async) implementation, `mfusepy `_ is a maintained alternative. Contributing ------------ The pyfuse3 source code is available on GitHub_. .. __: https://pyfuse3.readthedocs.io/ .. _`libfuse 3`: http://github.com/libfuse/libfuse .. _FUSE mailing list: https://lists.sourceforge.net/lists/listinfo/fuse-devel .. _issue tracker: https://github.com/libfuse/pyfuse3/issues .. _mailing list archive: http://dir.gmane.org/gmane.comp.file-systems.fuse.devel .. _Gmane: http://www.gmane.org/ .. _PyPi: https://pypi.python.org/pypi/pyfuse3/ .. _GitHub: https://github.com/libfuse/pyfuse3 .. _Trio: https://github.com/python-trio/trio .. _asyncio: https://docs.python.org/3/library/asyncio.html ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1778686357.061098 pyfuse3-3.5.0/developer-notes/0000755000175000017500000000000015201114625016507 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/developer-notes/FUSEError Performance.html0000644000175000017500000100212015124221126023366 0ustar00nikrationikratio FUSEError Performance
In [1]:
%load_ext cython

Regular class vs extensions class

In [12]:
%%cython
cimport cython

cdef class FUSEErrorExt(Exception):
    '''
    This exception may be raised by request handlers to indicate that
    the requested operation could not be carried out. The system call
    that resulted in the request (if any) will then fail with error
    code *errno_*.
    '''

    # If we call this variable "errno", we will get syntax errors
    # during C compilation (maybe something else declares errno as
    # a macro?)
    cdef int errno_

    property errno:
        '''Error code to return to client process'''
        def __get__(self):
            return self.errno_
        def __set__(self, val):
            self.errno_ = val

    def __init__(self, errno):
        self.errno_ = errno
warning: /home/nikratio/.cache/ipython/cython/_cython_magic_f3365cad4f189403d0322b37c637671e.pyx:8:5: freelists cannot be used on subtypes, only the base class can manage them
In [4]:
class FUSEErrorInt(Exception):
    def __init__(self, errno):
        self.errno = errno
In [5]:
def test_ext():
    a = 0
    for i in range(100):
        try:
            raise FUSEErrorExt(i)
        except FUSEErrorExt as exc:
            a += exc.errno
        except:
            print('This should not happen')
    return a

def test_int():
    a = 0
    for i in range(100):
        try:
            raise FUSEErrorInt(i)
        except FUSEErrorInt as exc:
            a += exc.errno
        except:
            print('This should not happen')
    return a
In [6]:
assert test_ext() == test_int()
%timeit test_ext()
%timeit test_int()
The slowest run took 8.54 times longer than the fastest. This could mean that an intermediate result is being cached.
10000 loops, best of 3: 36 µs per loop
10000 loops, best of 3: 57.9 µs per loop

Instantiation vs Factory Function with Cache

(Unfortunately we cannot use @cython.freelist for derived classes)

In [7]:
cache = dict()
def getError(errno):
    try:
        return cache[errno]
    except KeyError:
        cache[errno] = FUSEErrorExt(errno)
        return cache[errno]
    
def test_ext_cached():
    a = 0
    for i in range(100):
        try:
            raise getError(i)
        except FUSEErrorExt as exc:
            a += exc.errno
        except:
            print('This should not happen')
    return a
In [8]:
assert test_ext() == test_ext_cached()
%timeit test_ext()
%timeit test_ext_cached()
10000 loops, best of 3: 32.7 µs per loop
10000 loops, best of 3: 32.4 µs per loop

Catching Exception vs Ordinary Return

In [9]:
def handler(i):
    return getError(i)

def test_ext_direct():
    a = 0
    for i in range(100):
        res = handler(i)
        if isinstance(res, FUSEErrorExt):
            a += res.errno
    return a
In [10]:
assert test_ext_cached() == test_ext_direct()
%timeit test_ext_cached()
%timeit test_ext_direct()
The slowest run took 5.52 times longer than the fastest. This could mean that an intermediate result is being cached.
10000 loops, best of 3: 32.4 µs per loop
10000 loops, best of 3: 28.4 µs per loop
In [ ]:
 
././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767532698.0 pyfuse3-3.5.0/developer-notes/FUSEError Performance.ipynb0000644000175000017500000001451715126464232023570 0ustar00nikrationikratio{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%load_ext cython" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Regular class vs extensions class" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "warning: /home/nikratio/.cache/ipython/cython/_cython_magic_f3365cad4f189403d0322b37c637671e.pyx:8:5: freelists cannot be used on subtypes, only the base class can manage them\n" ] } ], "source": [ "%%cython\n", "cimport cython\n", "\n", "cdef class FUSEErrorExt(Exception):\n", " '''\n", " This exception may be raised by request handlers to indicate that\n", " the requested operation could not be carried out. The system call\n", " that resulted in the request (if any) will then fail with error\n", " code *errno_*.\n", " '''\n", "\n", " # If we call this variable \"errno\", we will get syntax errors\n", " # during C compilation (maybe something else declares errno as\n", " # a macro?)\n", " cdef int errno_\n", "\n", " property errno:\n", " '''Error code to return to client process'''\n", " def __get__(self):\n", " return self.errno_\n", " def __set__(self, val):\n", " self.errno_ = val\n", "\n", " def __init__(self, errno):\n", " self.errno_ = errno" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "class FUSEErrorInt(Exception):\n", " def __init__(self, errno):\n", " self.errno = errno" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def test_ext():\n", " a = 0\n", " for i in range(100):\n", " try:\n", " raise FUSEErrorExt(i)\n", " except FUSEErrorExt as exc:\n", " a += exc.errno\n", " except:\n", " print(\"This should not happen\")\n", " return a\n", "\n", "\n", "def test_int():\n", " a = 0\n", " for i in range(100):\n", " try:\n", " raise FUSEErrorInt(i)\n", " except FUSEErrorInt as exc:\n", " a += exc.errno\n", " except:\n", " print(\"This should not happen\")\n", " return a" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 8.54 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "10000 loops, best of 3: 36 µs per loop\n", "10000 loops, best of 3: 57.9 µs per loop\n" ] } ], "source": [ "assert test_ext() == test_int()\n", "%timeit test_ext()\n", "%timeit test_int()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Instantiation vs Factory Function with Cache" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(Unfortunately we cannot use @cython.freelist for derived classes)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "cache = dict()\n", "\n", "\n", "def getError(errno):\n", " try:\n", " return cache[errno]\n", " except KeyError:\n", " cache[errno] = FUSEErrorExt(errno)\n", " return cache[errno]\n", "\n", "\n", "def test_ext_cached():\n", " a = 0\n", " for i in range(100):\n", " try:\n", " raise getError(i)\n", " except FUSEErrorExt as exc:\n", " a += exc.errno\n", " except:\n", " print(\"This should not happen\")\n", " return a" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10000 loops, best of 3: 32.7 µs per loop\n", "10000 loops, best of 3: 32.4 µs per loop\n" ] } ], "source": [ "assert test_ext() == test_ext_cached()\n", "%timeit test_ext()\n", "%timeit test_ext_cached()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Catching Exception vs Ordinary Return" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def handler(i):\n", " return getError(i)\n", "\n", "\n", "def test_ext_direct():\n", " a = 0\n", " for i in range(100):\n", " res = handler(i)\n", " if isinstance(res, FUSEErrorExt):\n", " a += res.errno\n", " return a" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 5.52 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "10000 loops, best of 3: 32.4 µs per loop\n", "10000 loops, best of 3: 28.4 µs per loop\n" ] } ], "source": [ "assert test_ext_cached() == test_ext_direct()\n", "%timeit test_ext_cached()\n", "%timeit test_ext_direct()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.3" } }, "nbformat": 4, "nbformat_minor": 0 } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/developer-notes/Namedtuple.html0000644000175000017500000075746415124221126021521 0ustar00nikrationikratio Namedtuple

Namedtuple vs Extension Class

In [1]:
%load_ext Cython
In [2]:
%%cython

cdef class InvalRequestExt:
    cdef int ino
    cdef char attr_only
    
    def __cinit__(self, ino, attr_only):
        self.ino = ino
        self.attr_only = bool(attr_only)
In [3]:
from collections import namedtuple
InvalRequestTup = namedtuple('InvalRequestTup', [ 'inode', 'attr_only' ])
In [4]:
def test(cls):
    inst = []
    for i in range(500):
        inst.append(cls(i, False))
    return inst
In [5]:
assert len(test(InvalRequestExt)) == len(test(InvalRequestTup))
In [6]:
%timeit test(InvalRequestExt)
%timeit test(InvalRequestTup)
10000 loops, best of 3: 63.3 µs per loop
1000 loops, best of 3: 204 µs per loop
In [ ]:
 
././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767532698.0 pyfuse3-3.5.0/developer-notes/Namedtuple.ipynb0000644000175000017500000000463615126464232021671 0ustar00nikrationikratio{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Namedtuple vs Extension Class" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%load_ext Cython" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%%cython\n", "\n", "cdef class InvalRequestExt:\n", " cdef int ino\n", " cdef char attr_only\n", " \n", " def __cinit__(self, ino, attr_only):\n", " self.ino = ino\n", " self.attr_only = bool(attr_only)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from collections import namedtuple\n", "\n", "InvalRequestTup = namedtuple(\"InvalRequestTup\", [\"inode\", \"attr_only\"])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def test(cls):\n", " inst = []\n", " for i in range(500):\n", " inst.append(cls(i, False))\n", " return inst" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "assert len(test(InvalRequestExt)) == len(test(InvalRequestTup))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10000 loops, best of 3: 63.3 µs per loop\n", "1000 loops, best of 3: 204 µs per loop\n" ] } ], "source": [ "%timeit test(InvalRequestExt)\n", "%timeit test(InvalRequestTup)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.3" } }, "nbformat": 4, "nbformat_minor": 0 } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/developer-notes/lookup_counts.rst0000644000175000017500000001037015124221126022145 0ustar00nikrationikratio=========================================== Move Lookup Count Management into PYFUSE3? =========================================== It would be nice if PYFUSE3 could keep track of the lookup count management. That way its users wouldn't need to worry about which handlers increase the lookup count, and `forget` would only be called when the lookup count reaches zero. Unfortunately, this is only possible when serializing all Python request handlers. The reason is the following: If an application wants to distinguish between "active" and forgotten inodes it generally wants to establish some internal lstate that survives as long as the corresponding inode is active. However, in order to maintain that state, it has to be protected by the same lock as the lookup count. This makes it impossible to update the lookup count in PYFUSE3 after the python handler method has returned. Example:: class WontWork: def lookup(self, name): inode = get_inode(name) lookup_count[inode] += 1 # for simplicity, assume this is atomic cache[inode] = get_state(inode) def forget(self, inode): lookup_count[inode] -= 1 # for simplicity, assume this is atomic if lookup_count[inode] == 0: del cache[inode] def open(self, inode): # This works, because lookup() must have returned before # open() can be called. assert lookup_count[inode] > 0 # This won't work, because forget() may have been interrupted by lookup() # between `if` and `del` assert cache[inode] class WouldWork: def lookup(self, name): inode = get_inode(name) with lock(inode): lookup_count[inode] += 1 cache[inode] = get_state(inode) def forget(self, inode): with lock(inode): lookup_count[inode] -= 1 if lookup_count[inode] == 0: del cache[inode] def open(self, inode): assert lookup_count[inode] > 0 assert cache[inode] A slightly less complex situation arises if the application does not want to keep state, but is just using lookup counts to postpone inode removal until `forget`. In this case, one correct implementation is:: class SimpleOps: def lookup(self, name): inode = get_inode(name) with lookup_lock: lookup_count[inode] += 1 def forget(self, inode): with lookup_lock: lookup_count[inode] -= 1 if lookup_count[inode] > 0: return del lookup_count[inode] self.maybe_remove_inode(inode) def maybe_remove_inode(self, inode): with lock(inode): if refcount_of(inode) > 0: return if inode in lookup_count: # may have been looked up before refcount became zero return # Inode is not referenced by any directory entries (so it cannot be # looked up), and it is not known to the kernel (so it cannot be # passed to any other handlers). The lock on inode is required not # just because increment/decrement of the reference count may not be # atomic, but also because an `unlink` handler may have already # decreased the reference count, but still want to do something with # the inode. delete_inode(inode) def unlink_entry(self, name): delete_name(name) inode = get_inode(name) with lock(inode): decr_refcount_for(inode) return inode def unlink(self, name): inode = self.unlink_entry(name) if inode not in lookup_count: self.maybe_remove_inode(inode) Here, the operations that modify lookup_count as well as the complete forget() function could be moved into pyfuse3. The price of this is that the application can no longer tell for sure if an inode is known to the kernel. This is a problem if e.g. inode numbers are generated dynamically - without forget(), how does the file system know when it can re-use an inode? Therefore, I've decided not to implement this feature. Applications have to keep track of the lookup count manually. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778684597.0 pyfuse3-3.5.0/developer-notes/release_process.rst0000644000175000017500000000226515201111265022421 0ustar00nikrationikratioSteps for Releasing a New Version --------------------------------- 1. Start a new changeset 2. Go through commits since last release, and document user-visible changes in `Changes.rst`. Decide on an appropriate version number, and add the corresponding release heading (The version number in this heading is what the release script will use.). 3. Make sure ``$PYFUSE_SIGNING_KEYS_DIR`` points at the directory holding the signify secret keys (containing at minimum ``pyfuse-next.sec`` and ``pyfuse-.sec``). 4. Run ``util/make_release.py``. The script: * rotates the signify keys when the new version starts a new minor or major release (otherwise it reuses the existing key for bugfix releases), * commits ``Changes.rst`` as ``Released `` and tags ``v``, * builds the HTML docs and the sdist via ``uv``, * signs the sdist with ``signify``, * writes an announcement template 5. Upload to PyPI: ``uv run twine upload dist/pyfuse3-.tar.gz``. 6. Push to GitHub: ``git push && git push --tags``. 7. Create a release on GitHub at https://github.com/libfuse/pyfuse3/releases/. 8. Send the announcement to the FUSE mailing list. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767123354.0 pyfuse3-3.5.0/developer-notes/setup.md0000644000175000017500000000150215125024632020172 0ustar00nikrationikratio# How to run/develop pyfuse3 from Git To run unit tests, build the documentation, and make changes to pyfuse3, the recommended procedure is to create a virtual environment and install pyfuse3, build dependencies, and development tools into this environment. You can do this using a tool like [uv](https://docs.astral.sh/uv/getting-started/installation/) or by hand as follows: ```sh $ python3 -m venv .venv # create the venv $ . .venv/bin/activate # activate it $ pip install --upgrade pip # upgrade pip $ pip install ".[dev]" # install build dependencies $ pip install --no-build-isolation --editable . # install pyfuse3 in editable mode ``` As long as the venv is active, you can run tests with ```sh $ pytest test/ ``` and build the HTML documentation and manpages with: ```sh $ sphinx-build -b html rst doc/html ``` ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766949514.0 pyfuse3-3.5.0/developer-notes/valgrind.md0000644000175000017500000000026015124301212020627 0ustar00nikrationikratioTo run tests under valgrind: - Build python `--with-valgrind --with-pydebug`. - Run `valgrind --trace-children=yes "--trace-children-skip=*mount*" python-dbg -m pytest test/` ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1778686357.061098 pyfuse3-3.5.0/doc/0000755000175000017500000000000015201114625014141 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767458291.0 pyfuse3-3.5.0/doc/.placeholder0000644000175000017500000000000015126242763016425 0ustar00nikrationikratio././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1778686357.063098 pyfuse3-3.5.0/doc/html/0000755000175000017500000000000015201114625015105 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/.buildinfo0000644000175000017500000000034715201114623017063 0ustar00nikrationikratio# Sphinx build info version 1 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done. config: 1195b85ff75c9b8fe0f8342d25515a2e tags: 645f666f9bcd5a90fca523b33c5a78b7 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677040.0 pyfuse3-3.5.0/doc/html/.buildinfo.bak0000644000175000017500000000034715201072460017621 0ustar00nikrationikratio# Sphinx build info version 1 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done. config: 202e566fcc6ceadb834c3e2ce91579de tags: 645f666f9bcd5a90fca523b33c5a78b7 ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1778686357.064098 pyfuse3-3.5.0/doc/html/.doctrees/0000755000175000017500000000000015201114625016773 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0650978 pyfuse3-3.5.0/doc/html/.doctrees/__intersphinx_cache__/0000755000175000017500000000000015201114625023265 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677040.0 pyfuse3-3.5.0/doc/html/.doctrees/__intersphinx_cache__/python_objects.inv0000644000175000017500000045321615201072460027050 0ustar00nikrationikratio# Sphinx inventory version 2 # Project: Python # Version: 3.14 # The remainder of this file is compressed using zlib. xÚ̽[s㸖.ø>¿¢#f^›ç”wEwż)mÙ©]¶ì#Ê™Uû…AS�Í�É")_ê×À+îäZ€³'¢{gYÒwÁÂ�Ëûhþ¹½ŒnÖÛõnµ¿ßýGòÿžâ¤*þã—ÿHþ3.Óÿ•¼4§ìÿN‚ÿç?þóÿº¼�.ïw÷�ûÍv½äÇ×�ûÇÝ:Z} ïo÷ëhs÷p¿ÛC�Ûíý~µßÜoCêjómR 2Æ ÷÷àÃn³ÝÓ?¶—{˜âãvsyµŽn7{ª| Iß÷Íþ+õ¹Ú¯ïÖÛEáeñ×U]Ý_†{š´›%€6_n×°Âq·Þ½¿ZòËí:ܯþòûíýåÂhÞ?ì7w›-cþ¶Ú­v7áŸþ¾þóûýîjþç,Ñåí*TZ7Õ9iΩUÀýú�M¸‡@®Wážæ‚1¦Â‚1䪱½×Ö‚¸‡ü˜Õ“Í%aÊj=äáÏ»õ­/w«Í–¦þN��È©¨>Œ�û/ÿ„Bv«ï‹ 4'¶´ñÝDßÖ;m{x*çŒè@PÐn½ºŠ6Ûo«ÛÍU4ü©–ƒæ¥"ñA `tùÇ´Lo5%:®ž¥ß~]}[[šµô¯Å:ƒ?Z&.�Ö××ëKUò•T/éó‹„¥íÊïÑêòÿÞ=8Àou£ŽåpúÙn>Þ9s8æ ýŒ6N»½mï¿»QåùƒuàÏ£ÝýrÆÕõýînµ_þóGÍZ¡íÇ�\c°Ù^mvºuoànõGD1w‹še#ÓOÙ*¾áQÆkJk³p©}"eh‰j¸¹{¸]/ÿù~·¹Z_ArÔB–'úûn³gÏcA€5(ZÄr�¸&ÝŠ„¡]5�“ãK¹Qe$¿!ÍC‘æb%Z’U0Hi›�À›NZÏ‹I©žtS£‹$Åu‚¸‰“Vñ®FÚ£PNEŽ.¤CVì®å¹%^DðÜ¢žÁ”䀣ßèâÀC1í“ mâE4‹xQÅws]%î¼ YUUüÑ>ÑÕ�ØÙ²ÛŸ%åÍ€Ô?Ÿ}¢_Çìk*Z…Ѹ-W- ‹ÑÁøSs,d2½ I ‹æM³îz°³¹Á„HožEΛ�OÚÜp3Kñ3ãªï2?ý⯃©i ˜û¢È“骅1ÒQ'¬¥|òHÉšÙ±îÁ9Á±¡ç ¨Ô]Á]å‡PœÆÂ ,ö&zΩhhNª–+¿Gµ›õ> 7ÿZ£¢2€]›–Ñ„H¿#56¿:¨«¯Þ€–�ÿZRtÁ =$SS, Ëef75ªÏ®Íýu­ùõ|?mG-©Iµ¡ZÓ)׳²ÞÆÐ@rÇ;}4Ó¤Ym ­Ë¸Øˆ°$·)*;­&ÏÍËg±OÿöEmÇh¹dü¢Ç-õ‚1‹Y{ÉXEo@£Ô3㽃~Áþ:#UNÞÊØ¶& £ù{E2D‚: >Y½°�Ö!‰ ña{N×u".+Ï'”¤ªŠ ˜RAÙÀ;×=¢H«ö�ˆäôp;¾DàÑï öB<³œbÊpÀBŠÎŒ¼„"}ø é団™oVûV& ©}NcLᢹŒÖ†4‡©¹<ØE?Üx…»P‹gQ3f–Ξ,®Ô®[¥õG>7AÒ&xœK€2ª£ÂÙymÚ!÷SlvZ-‰©&¥ÉŽ”È?`úßVH¢©O´·ýë\¸’�K|7:…iJÏ<“/¯£Õííý÷ˆ½TÕ¾U­¾¯6 ßÀeðûííŸtžA ïøÃ`û?ØiwíûG‹aCÔ¥Y¢is˸Žëúž6/ܶg�ØòºÐ2¨mߪJ¡*k(ͯ-³4»Ÿv�¯iÂ2}ÁËëÛU{¢ÂÛinò !Ÿ/ÁÚëœNT‰p}{�7ÈЮæZ5i®¥Mc=ÚÉØà@¥žZ#¤·þ¿]í âŠ@H²#Ú;:kõEbÃøyGlëù)Cz6Ÿ‹tµgÂõ;:iëw§ÄQe-e{�ˆwZ·¸)¤° «—Ý6ùÅýi÷sDoÊÁ}– ªÐÁûQíäˆëCû�¡Õr‚IV£œŒUˆã‚Ö¢ì[èàeÞ@,íq–Í¿:¯>Rq¶Â"ãM�ÎPNfL´Å„þa�‡ZŒŒ1ä k’7iN2/„�ÇU—}JÌy¢œ› a,óAªHuLeÝl¡ýKº�eÕöÙFg!Ôr€Ä æI¯HWÞ‹ ” :¢`û„ºW²`ɘ A2˜N^¢Ò66¡�¼q&$�­ø¶Þbc çd©–H-[Lçü ›A],ñ;B5ÔÖ¡¼›S)î,^–Ò†´ÒkêøŠè)+„Ë�³n_ì…§­Ãá³pÖ‘"#¦a4tsÖ¤±>é kú˜ú¤‰—"S©T;$Yˆo„C�p¨o„yjÅ�3µCûúißCcû. ¸@«ª ]û�PÓ‡ ¤¸ºa`ÄöJ¡‡^)Ô÷5ºò¨õ£]}BI–é·f%DäÒO,ƒbËïƒÂ¼•Ç #ÅÍz¤¿ØWA¦0�"G¸i&S_¤—cm=,˜cÏþA¡ ¡ ùP2‚×8;<(3BDf„|f0¸ažÁP÷T¿Y\×Ýšm•ÓõÀ¾KKu’:ÁM%h!t~殩ú2105lÌ+�ð+��rØû©¡ÁÒþ6Zßã&y1´þs 6‡yèAp ƒOö-®Ø†÷0ê�tìiÞ©l>HpL3bŸÂ©&F=]U7¬�É _Œ”ËA¶ 表ïóŒ�ˆÉ®û²IO† g3�ÀºÕXc}ÔÒQåuS{"Ëò¢‰Ÿ"Ûû0B¹ ¸ cr}„Ûöørô-c&ÑúÛš_v¤ÌℬåÍöC²œ" ï‰5ñ‰˜z£•I¨ÛròÖA‚ÙíøZC½žÊf!ÄUÈ»·ñ\"2•Sh*Žo�ƒ3§ƒ ôz*"sL\˜Ì1pUˆÈTN¡á3góœ¦nó@x�d9Ò<©;l5Î0%W…#ã¤ñaWA­¥˜R¢ÂÝ¡);·@¨¿çÅ[¾V½ÏÇ@@"“/ªOÜ·Eñã\¶Åä‰Ã³5Å ¯:q²gø.ZAÃë²j`¢ß‘ç´n€¥w5�K&/ÑQݵºÀÖ(­Ã3N@v¥çFÎ=‘^&̼ØáXL%!l*Ÿv$†¶e<Y�m3¢åZÂ[·xäý^¥ *„Ð)„½¶‰B;/>„:Þ4iµ‚Â+… ;‘>æ¦}œ`n-$'?‘ÿqw{ùW;rÄ7!xÜLf:©S'Íc÷Š2àn#L36©fß… �\®�GÛ²†×ºLAQÆ•¹jÉl63s:ÖÕoBl%èŸçSé!6Uðo‘í|ô¶LÖ[Ö€u}e•N¸^6ê¶Á,Ëœ$ÇèHb¶‡;ê¯@S—”–òô.£3ònzæÙ~©ED«ú²ÿO}ƒ´jÛ[.Qh•yVËË—¹kÒŒ.øç<Ü'æ�Ò³.f7J[­p¥û�ÛÃZ±yă-ïÁ= â2ñUq~ÊLÏfLõØ =ÅÏ8[ƒº‰™W2ÌêsUw߀̃QuEPç™é�6CÛâÁ([‚:ÏlZLךÉ�é³Üf¥yÊžE³¯t?¢ò£nâFÓ@Î!i—õ G=Å5‰È;A•9¦ï ç¦ßHƒ!@«·Çz‘CT7‡´@àÛCÞâ*ï&:@xš¶è%®_hÆ%utêúo( {ôr Oç稊ógRc(Ø?¬N°¡HÊ3ýúœ7pè�¼"“~ ƒ”ˆæ}í�ØãV8Þ©Ô»øc|Κ—8?dºÛ/fÑ4±5m$ȉ?!Ê�d˜µ)ÚB_r@@‹"liû¦FÔ¤(p^—Ýlâ,‹êô9�³¨Ï¶CÔD§ø�ÖÎ*:¤Ïiƒã G¥¯˜ÔE7˜üÊÈsœ|Doi~(Þjlûr¢a,Xë„êÞºW^£~£Œ›?$Q·óHTt�ÙÛý[QF^Û75¡Uúází’]Kè‚­ºîƒn^º¯‡N‘ %©Ž´å-h+„j½JZ޳ôé�"šOlƒOí>Ó±cÔ/¼CÑILÇ èî¦üh^ŠœŸ6úˆLÿëœbŠyuÎé×§Sœp`n#=¾æŽÀÒH×iƒ×ñ‘´MúR¼± vÅ Géðb%ü#-£º8W ‰Ú cîT(k݆=9ª hZ³#TÕnh×Hº^>³YLþšVE~"˜ÌcǪø› å¶Æq8Œ«¼ÕeÅó3ftyf}C[iö²Üœä•TOE�({¬K¡=S;@v(‚Œ†õÐEŽÈƒ7ö$(bóÂ5£yÇ*w;¢µ'P,öS@ó‰*‰¤Ì1^›3ÂÞ³>™¶™_ ÿÜäXéd„)«Œö—£`”úëM?"¿”snqRU—b ñ$i=´ã7¿<‡«[Á§³5íŸ3È¥cq.‰iu9¾WC— Špþu@Ùª›®`ÒÄ l�3ÁZiµõœ¯¾9J�žµ=(Õ!z#Þ)„“ ûëç±»…ÕÊo>xzitû3¨=xäΤ¶i°e¤ÏÕù§H{ ²Å–‡ÐÚØ}Ó~OÙ#öÅmZc{ ‘Ä1¶’#«R{ÝòÏš¹šÅ§’˜ tú³^¤]íÇíÛ~r¦²/ ¯’ÛAûâÉQ Ùm0Ûéq*•ÙŠ"azrk·÷-® Q¡ǘˆ ȈH6$zÓ1 œ±9Þ0EŸ9-bÆ7áãÉ?‰´òIi:·dAüº£´Žh7ã�"å̆p0çŽÔø2Ò‚ƒ¦oTpž:Zb—ÌÔÒ†ø¤†Î%6ÔúqJ¤†×þÍ ²¾ä(s¢ÔCEº�ÝZ÷VÖÐÄ.8VaÎø€›Iõ¨…þ‹¢üÀÙ£À iÞ‘~˜¬Lwy®*’ãòqm<ßlŸ’õtüØðÉ{ŠL:a²<²‡Â¶3/ŽÑUaÚÛ[êogëû ÈzzVÕF2c\µÒ¬g>Vö®Y‘�zãž!w%øëgN$¦R¡$ú\Õ¤f+³iL§CÝC,áö›¤ýÅ ê²ÈÚ׿–Biw.÷¤:±ýÞîi±lÎ^„´n2´º ©!ÜF/Ñêaý}Ô¼X¢]®ÂÇÛu´]Ý­á®öì¡l´z¼ÚH‡ï½oMñ¿ØöªêܾÓÛž§d³ÕÅÿ­ ²•FÒ×qþâ™3ZoW_n×WØÄ—ØPžýîO?,n±“YU~ù)*Ÿ®â-wëýãnë‰ÆS>öžì:¿ü$�‹Ÿ ãš›7—ÑÕývíw˽ÁƒÊë!uá~µÛ»â�Ó×¹Ð0»¦ps÷pOY®7Û«èö~uå”›Z2·´ëý-Ñüå'kzÏ §’§góœJ©ÔÿÂ92[J³½\GWëÛõ~íVD5\ŽQѹ›Qô·¢¢#óµ è~à-*Ûõw?…d ò�Ñ—MËküŒ‘ÉcÌEbüÖ5·|`X·Ô¶êÆ_¼3^xeÄG=nÈ>=í„û@¿d¯'é!lò¼‘×¹æ!æùöÖ´¦±g[)“ñЦJg\²[âevénÎд„7~~µ¢ r{iìý혀·<<°X-èÙ¿Þ?î\Ü1¼£»Ö‚žýns¹»×—÷[§r4Ž^yC&­íã~íæ–18mmèÜ#ê%˜Ö8îÿµÙ^ß»xì=ö6D…õí~Õ~{µú3ÄX�E~®¼ºå‰\ ¦ z><{²«w7ØÕÿ�„îüXFIÖÄP§ ƒRkÏ¡¬òC!h®K Á!þÀäºlĪñRœ«O9¥ù¹!Ÿ/Sä–=Œ¾Tj’ùáÓeÎ?IçƒÄŸ^è?×Evp¯=‘§š1ØZ¢xýÿ IOU"é­¢‚D=U[ˆ¦·Ê=ÿ�¨zªàFIöuëÏ4\P½G<[À¨±N'‚@?¶DX둸�× «0ÞÝo÷_‘nZ,ÞO'­°þ¹^í�†ï§8»gМýæÎi‘BÀã’#Zг#)¼£;u‘büÊm‘BGãèÕ¸HÁý¹H!18U)Æ/Ý#ê%˜Ö8¢)$G�ºE úY~,P³1Ä$=Aeÿó¯"'ÑãþÆ,>cž¥Egô‚³Ób³n¡yg} 0Ä\`’TÙ0ƒQbôe C޳ÜÇXºñ[%ß ,:œšD-Áíƒ+Ãí‡m–…�P'=Œ•áldÐTéºy†OƳJv‹ñ¦¦…*†\GÌã‚öG ‹ˆÙ‰oKÞ¸ëˆá~D|p’i–“|š®kòICÃK]³Iï Á3il—òZmõê:Z|Zu¤w]‡ŒIfm3ç§×Ö‘â©'Ec®cý¨e˹ÔêH¿WqY"³²Ç:8Ôµ´oí¿‡Oc®<0§I³a' Xznú)~"ÈöVÕD2Ã@Û$_1”ÄÕ|ï�¿“î{]Œ¤jàèNXp9-� Zý{eúß>TÅû‡éÕ®Hp¢ÅÐvK’š¼INdƒ$oG^Ñ…§ÇbÊOÅ¡.D< VŒ=‰ëo)y£]/Ø8:™·±õ.@ï`«Nä7¯ÛÏ€�˜½ÅD#+¥|fJd‘�»¶Ä¤Í̓ÚÏL‡3š´Û3a²ã)ŒÓŸð솾9n2¢fz‘7qš×/=$øA>@)•©ôÃc>ˆj&)ýaNÈq9éXK?œú—ú� +? Âýëûí_t2Ì:!€b�€ÆpRxJ,à!à�i‘³Nä,=0¶kä›­  0ýQhâ! °`ôh0!…§ôÁ²ÎêY˜ B¦‚ÉéØJ�\©ÏYã‰\q2JJ18Kߌ¨20B�Òh9¶T,áE—39»’Ðx�²=’#ÉIÚÌ\úáÝHÇÎ¥°ý=L¼“ØÄ È~ÓkFü©ž @¯ý}C; ‰áÉ™¡x%U•Zî×\HÄÖýCò×4ŒQÒÀˆNÚq-¦K ZY¡¿~o€?‡•èV@Â[EYÔ®ö“äfIŠ8úkhƒÊ|鄆w32xô1bI—ÇWé� ™.$ÍUwD' 2h8ß³xú7ħª#Æ{†­ôÇÝ ¸…'¡Z- ƒ%‘2 gé�^dÍ´Àcˆ›1†ò\/ÄÌ�,¯– z<à¶-t™Y…úyPˆŸY-bÄÅJáLÿ† JÙÏ�ia#òð zÌÛUX€½°¯!&%…· ¬Ò•Ón6CBZlÀÛ‹ÈO.Ý3€ñ+"½ÈÈñ˜ëßQyþ]Ì¢ïù­£2éiKƒöz  H¢p¿S6ŧy#+ÙÿôÛjñ¯þt�eiY§¦Ç�u–&Òî¶u~†=p]WUô%>¬ªçóÉp¾-yOHwi˜ºaÇ4æqÆò oe…íݵ5kzäe]¥u™Åëá'®ø€þØXˆU"ƒ‰�}üä®­!à�Èx”;ÅÄÀ~M -†ÍR ÊöòCë³]“�NU¦³m%1ÙGÆ ©Šêƒ«N‡ ˆ¦(.4ÑÉJ|GÙŒÙc^ÅiÝ_#ŽHÜ„w³Åù¾á|}sŽú7…Ñ)�*Ý«u¿øR¶ÒÐêÌÞå€jBºT^N_KŒ©Æ3œ¸ ­'ýÚ^§~@÷”b³£ñ )­¸v ZTß ·c×yfŸzVÚ’7tHylð×ðÂ"¨ki­Ãd<­õ�t4-{NtU$.qì)ÜÃ9x±‰8w‘H‘|º†sv*"Å9uw"ò’uYú7ÁW*…Õ¾hŒXš§O°­þ î“„Ý"r€÷¡Já3³´~G‚š4ì²î(‹k¶|\ÁÇ"ƒ�‰¹x¦¸½áñ™ÝÔ ŽiFP‡×׳ûèóÂ7í¸Ï›àŽÀK²{/f÷H»8&‡ð#oâ÷Û"iO¬ÄEÄÌ$EÇ£íu(“s‹¿Â$?Dÿ£âÈürF—D7ÙOL+©‹s•�ïq•žhXK¦ÇNe&úî¯Ï£oè%£qV>%ÓQVêÏÉûú³3¿Fºøÿ�£O,�p3ŸX$e3˜µñ é06 Õgž%nœ¢çdQ¦ÿ™cB7bщœÔu´Žc-�S ¢w6+é�ºóµ°�QSÈÝ£v.6^ã’®ý†³þÜxÖHÿc>>!gq§Ù˜§©˜y‚äuvôIS£e3ƒO˜-v}Æ«¡@=úÐYá46§²¨ãj39tpªŸ1æxfl Y@]Æ–#’œ¨ÃóSÂŽér‹êÀâ°±Ä`kFÏ=7—*yÈÝ¥Rr[+Åv*Vç3̱ðGj":¨Óçü|B%�óÀ‘o‹ÓÜ3º m592ôðÑq�¦ŽÇzBôlGetÜ£2`ûÙ§`~cÆZÿžÃ‰ÔuüŒ ÷²ƒÈ‰ÍS™PxvN¢€vȈ. ôȇT‹È �„wyRªx1Šx ±MÂK˜�ȶÌó£ië#K¿fáR^2@bO áe¼C”‘<‹;Ÿ–YêU%:ls¨gsy¦ªe,³4I\¨:¬kÀzZjt9œ§F–»yb· ·2‡söÄyNëæ3r÷>ƒÊà§�Io&hd¼¸2¸�0%|^ÄC™œñR>-2¸nZeðSJµ�™ 㥔ÎËx(@ó">šË*îÅt^ÄK1ÕÈàQ�§¦Þ¸·bfR׎Ì\¥ Á¿|&ÁÛA!FW’…–û5΢Uò×9­Èþ¥"±v'wÓ~#ÛR ACƒf¹òO¢Ñª�Ìì.‹ƒ6R¯¤úxIŸ_4†�§}ÈpYQ%{Ί'ñ}^WÆŒÎ|ê§ Eóqõœç¼Áºó*mí™2ÉŠú\߬…gÂ9~F@)­ï€:lë�·ÏHþ�·OÀ�7ߌn5[&½® O>gªv‹ Ž�¤Ê†jbz¤ƒmD(#íMŠ·c?{a¾!Í—sš5†ã¶+rÌHû‘&�7ìÁ¬!›�•o”j ÃßÊev9œØ!.Ø€!�¹¨²hÔeÚ-6;z¬›¥­P�è‡ùƒÌšMž6Ý�ª†�èÚ%/‹SIçvÕ5­^5°Ö«A®ý£ÀŽd$®QÃUŠ®ŠêsûòÎÅšâÕGæ0~E9 »…Íîu¸²ýŠ=³!í5HáP•uœ¶iŽr•e–j²,©‡k¢97v·@dölç/" -�ôNUåC&Ñ@ç”σ[RmÁwÏa­Ä{­èäÿåDš46\IgiW¸®IÕ>`D`›¦JŸÎ A`¿Ð†–ߤ€…ÞTŹâé0þ�ðæã»*~�ü!-Q‰>�¤Â?ROo|�—/iv mCBê!|Yäy7Y=UCNNà9žkG´3% ‚ኔ鞣ra}�P]çIq Z8Éü5­Šœ“‡‘ÆUM¶euýžÖ ¦¬1ð¶h®‹sŽÉå묠”??)*É×çæ\T¬oHÞ�VHÓÞÀ ¨FHÜ^ ¢Ò¸É´(ÅÈjÌÐï(\¿‰Uñ7õê*¥—æÌþ;A¢žŠ¸:ðû7ðÛ¢øq.ºÝa:`ûàÊ¡æ±91V4NÙCñ´ßäuÓ~Ì!r"…íVd«CɉA¢íL<~Ö"{αªžkTúp@Þq)ÕÚËø\´©íäªÓW‰ :–9¨Á»Yë=(ä{Íñ0{#ƒ“Áɇ(ºµÀO²VôõÄèiÊð€‰hLWŒCçúa!v©>HoÚ z¨}6rÇÚz©}¡µöMÍ“/¶*±—㯵O:Ûg‡B’9@ðÔ.¸‹ïŠnx¼(&s± jäxðÀDúu]TlÌV{ ò’°Sa¹6s9�uß9€†¼±íå.Ll“Fª_ÙPðzD�Cd…¥tbÙ’·°9´'“ �,¢æHy_’Ü´å×àb€Øß¯×Xµ*óK3úÝ÷X'܆ûösöâvÿÕ×¢ø0$!ƒ—öŽ bJ¹ÛMäàq¨à(í)šõÂKjm�Ê1|¥6ó ì¶(ÍÞûgòÀ½c®°ÕŽl´š‚®àj³�¥D¸–ìȾÒü:Z…ÑÕýã—Ûµ6b³¨ ühdN)O¡Šr”õUq6¼£aöу�6ɉÐ8á7Zèæ÷%LyšÍs¯ßcCõ¶j·0”�Np¢c],"&Xð sÁ Št–Jls1Ô»¦‚ûà«^ûá ;'E¦£ÑÅÜÅï`Hšƒ t~G–Wà´aétd–ÒÉ»;ɯàüŠŠÀ¯ KéƒäÝ�ä7p~CEà7…¥ôAòîF¢ï�ÉÌKpµé1à  Z*Sé‡èWD2~E&ãW Sé‡è7D2~C&ã7 Sé@4½ÀñPï–‘CûN�˜-Ø>¢æYŒòZrCE1Ø2Œ ¿†'™V9�Ñu\7ûÂüž†QŸZ^�ÒšDõ”ìxHã銋L� .î&“{Û*æV� Ž•uåGgg�É,/]YMô8¬‘AV 5.{XŒ´ë8ÓÊÇðɸ;êb"­LÂ"­ù�)«›†õÒ‹ ”·´,§P-é¢éÒœlÏm« 52"±n&i‘ÞÞ�(¬¹µ£Ÿ}‹Á!¡¤&¦P徘,SM{júÉ&:Mü„S¥Í}±vÙ·/XçJ% éŽô~aíÑ å–¼�RF$Öç!:q¦"r̽ƿ�fæÕõ…,3o0.`Œ‹¿IËrYM+Æ2ôæ ª”†Ê¸l6çanáÌf„[:¿0C‹ –oíRî“eNc°1åÝð‰>ÿTù^Å0Ðï¿Õc¢Õáð½½BYßþ/´ÄgÖÛNd*½�Þ<±Ûê'$+\¡?b-%>F<¶¬úÎqfzka>y<ƒKR'V·,×ù‹þ‡}Ù)ºv8"AkÉ{ -=Oè£k›ÀwmxöLG»=mÿºvœb‡¦—C³³eˆ;}ã:w†6j§nGÀ»¦ÞÔù„ú6;ý·öEt¶f€‹Á„·"d7ȹ°¼ê¼ú�1,ÏÙßNÿ/§ÅÈZO‹]¿’|á"ÑÍetYd™a�êsRŸKvÄ…º2Îl­s8fSw¨¶¹ ÙªyuI{ Û[禶ڎcïR½¤uw T(-í.äè̓Ãýj¿–3}$à>¸½¿ü}}EIH~>õÏ‘T�[81¬o>“\ù¥9oÍ¿¶½sÊ¡x~o\µ6KvëÕ`Ýi©š}d™„j•‡©'ýr¹.?ãdæZA6h·?SSä†�zÿßsct“¬0˜…[PƯ:ÚüSXgGÞ‹™õ�Œ&bM7f‘«WÝTç„ÖTÜÀS~P1 = öL ¬(WcäêÄ´ÕÿÀ¾KKe³ÿ×Uø5ú²i—.Å¿_âúEóÛÍÝêfño·×KÚ®>.vq÷x»ß<ÜnÖ»%úIÔ�6¬”4û¯öµÌ è)mGÈ0¤¾°Ì€jB0¹ñð壮aSAÝ¡b쉙yy(=©£go·D�ªŽÒü6ÓCý;CN¶¸×‡ä¯vú/q¶›JÎÓæ‰Ë’äv°t?AMñØ ¥ÿZ§?&g‚#=*Ñ&êõ;IØUlE°í¢ ƒ-IÝL�IóRrýÁÿ‹“m¿ac‘·þ¤~½{âgØ;�Ÿ+‚j„tαV#½ŒŸ˜,TûiB?'UlÄûÐ+ÕN™.09ç½èk©¨Ÿ˜¡´ÿ‡d?=Å º§°ìx‘b¡ÍFßv[¼:÷š±¢ÅÖÍp•½~/Ò2¤ýÝzCbxe‘ö.~Nó¶j»§¼�ŸHÌHbz6Š)wâ“QùëÜótÿ @¨ôz _ Qnxg‚«ª£7Ñxr¬vWÝ?quލ)–ÝçìV_ Äô"Wƒ­›Ê©8|ºˆùÍ@<úíþÞ¢Âíÿ·+úŠ�]<‰ÁÁ±*NYZ7..Å €$0·9•fs¿+½kšÉo¥;X¡™×â½ä_çÄ*ã!¨Ø¯¥õ¤á\^ˆ¸–šy ‡þVañWˆì=./é«@-WôS¸z~ ÚrA/…Î.·-Ú „Š]ÏàlvpÂËŒËåó·ÉŠ·vÏCƒ4-‚pËÊn 1?(Ï»—]E#Äòv�ˆ…:–”¼yLÙH«{Œ6™§ßEIû¥,=€fž}@‚d°a¥JfpbT˜_¢w×°m,ÿeE {T–Äøº"NX׬iõ5¼tp{›êß›]j­§`ïù�j'ƒƒ‹HFògÛZ ^åfºœ ŠïšS£?©ªèTŽÀ{jÜ<³4=…�0 n,*„þ‡u�¹›Î&obAÑÂÀ<è¹�:+ó+»AÂ?uظT/Šöΰ© Ü®á43;‡ÓHíÒxO ~ÂjhUýô‹${‡EJ‰Nák\ß—¢rs$pÍÌɉQÁ)FþЩ½ ½´·¡¶é =´·Vf·ÂHíÐÞ†^ÚÛPÛt…Ú[+³s8�Ô.ímè­½ �ÍH諽]$áØÞ.ÒðPJ…èÔNïrã­L ÉÙ�TÿÙý®–³³»’èŽ4/ÅÁ¼\pj¿ŸÇZÖ D ƒ´†wx½ik€é kmt ¡gïÜ_?n/ÙyH‡<…ƒKÁ‰Fư§�Áv‡¿m‘cÆÙ°Ý_úX¿}Zï§!UYú¿ãÊ’¸‹ýü”N¿©gÐAœeÅ[tˆÉ©È£f¼ï^ÞŽ!%ï$ñDu,ªž¨|¥1a•4:�³&�:\460îìÏiæÌq®ItŠÓ<*žN,íΙ1œôÝln•ð@ªûï[4á×Õn}åÄ4¼ †ªEýûuÒ s.4A0©¥§4ºÒ*]‘ŒèW©`­­†)ý]ús¸¦1Q Ö�ý®XðM©~^§Ñ+’l¥ä\+ ÓyòRyúw¬žbw[äÏë÷þ=Ki¿qF¿3ý:8¤ÏÚ£\¬ ‡"ÏÔù+†çþ‹0·ñGq^ƒî×;Ì&*éä»MLª `Dg iœç¤®Qðº«``Õ¡]Y5,Hh»‹óg_’ ÈöNèjit¿¶ìÄ^›J±¡vr:U=iþ9¬S-ðB{•ÖI\À‘ëqÁ[e]^3ºt%Úë4Oë°›†6Ó«¤ìªîÛûíÍrÂzã*? M<– ÁMÒÓuàì yþ.ðþÃv;£8ÛªMu=lM›þüÇTõ(Ý\¨<ö½a‹™þëWhþëWTþëW•—‘é¶Ð¿ÚmLûž‚VFbYå‡{:«:Š£Áe8,Î /nãV º  bŽ�».ö®ñ÷’ Âä'/,BÛ¶kýòÑèOJ2�ÃOçãÔIºÚc?×ÞYóèIJ¬^LWd }hïwè3‚MÓ"XÿÕAPŽ{5ž¬F¨ÔŠ…GxgúˆìM•NðÝŸê¹€=ê#²K}TzÂGt§ªáÊëô9'pKÏQÅCP6;¹òâlÎÝ]\ÿprÈ…BgàâdÑÝžlí[‘ôïyõTnz#Ý—U¸^Új›Ÿ£[~o{–­:䞣�šŸ£[dgŸ£´¹çèì³q©m©x¿–EÚ"hõr2°ÈÉ,ì½ipB&61œ,ÇZœÀóæ ¼Â Œb´ß1ð^f’“Ù@æˆA;à;:ö°3 ð ûŒá¤<Þ‚j7…��ˆI„¬m¤O$3#&VnÀÈŸý<öŸ@ðÌ—‡þíg5ÊA�µPë<�ç³YèÇ{¯ÍYfb:O¦“öºÒÕMåƒíÓL?:´Ó�š†úÓR?:4Õ�š¶ú1OÙ)æCËl^x,ªàˆêò³WfÔLL†Âëª~"&ãhËÝšÙ¾[Ó0 »7�—Y)Tw‡RBv³Zðɇ‚ÍUx¹‘­=¹åXô)¢KÍø8€ i4àèdfRxjQN´©·ê#Ú¹TL hB89Ží¡¨S°…·0Êqlÿ"U’g¸t+3²Ü­Âß—Žï›ëýÒöß(?¾»¿Úl7ÝKä ÷Ì9wq Ú,A_ÒñM÷&¸²ß‡ýA£iƒ§2Šë:ªÏOÝu[ªòB–ñÐiÀrÔB÷ ÊvÈ‚–åxª+’™¶:Z-ô¸àù€ÛDu„…W:ólbIêú�»K¹¼ž¼ðIÝïnG¦Z@ãR-0“ž©»³—b\Y–ðè” &l¶>‹ÀÌË~>4ðeLeññù‚1”=Ñ_,æ)'4z_ãúw!lË2 ƒá"ÞKjè �dȒŃ]’g 5¾éZDÌ.82žÕº8å#‹{&CóbÅçI¹ÆÅKDÄGAO¿‘Î:[–ê…±ÒÉñTÔ\Ÿ�0ò­Ot+ŸÃ¶L¿ƒaô‚d qõÓ™xN_Û˜Åfûúzˆ›ØÕ®Ps-Z¶×]ݤ—îÞ5|. ™(:áUÚ—/XaÜ(—éQvaS°?{ó#AªZ<¨Ó—HWf\bÍ3¸D[pbWq‰8DÆ)êË„��”†ÃKT4 ‡VÊKdx1rZ±3%ÙzöUqêjV®OäTTR48T{½ÞDt9œ^©9±Õ†HV‹#-ù¬V-hID9ÉÈÉ…çj­Pi2¥¿»ÎòsËãA�·«þ4öß×»õz±3ÓU7¶ß½�·Ù°?nH3ˆ.�k�}•æ}ÒZÞÃPêIïV··÷—‹óà\îú2 ²z'–ßíúûb‡Ýy!Ë~»[ÃR¿[÷G-üyüoÚcΕ²½`P纽gaÃV*0°¿WŒ+ŽÇš4d£ÝF1‡«ÓiÒíOP¶`´?k7åúS±­’=ÐrS¥Š—EU¶âéßQ|8T~HClÚB‡´…–ED›C¤DRZ=¿¥äÍvùûÍ+ý�,k¾ª�hÄ%V¶ôòEÞo ±5ìwXsœ�@÷§ƒÃîÏ™íž ,öFÌ §Ù‘˜ÿ‚�#RÀ¼Ó{aŒûÙ%”³!ñ³?û·1öxpr)££ ûãõõzçb¯%ð`°3"+v¿Q“>Ÿ‹s�uÉsô›´ûžçVðds(S•þ´+ÿ:¦{xL1g[Ac·œ²8|ã�à‡ew !¡Ðñ_ÅŒÆàp!/ÞR.ÜB^´%_°ÕGdB¸ZËáJ-ÝUZ?Ê%ZÜçáúöá‡ÁÐ^ZMŽp‰öò.éÒ.ަ&ÙÑ‘&)–$€APñkµ8¢å÷�u7¦kÚ¸nï»áÇÁ)êß&“%fPI4=¦mKç@Çn ˆ:�ûô�@}ó9‡ÒŸ 9‹ÊЦFÂè¿ÉŠöê ¾©âáðf2b—7"nl ‚1WI#“bC$iD@%¿Eu¡Ž9µ# µÙˆ‰VíI‘vDÐ}mnz´ %Yïý\N3óøt)ÏÐïÖð�ŒÐà¨!Yêg2`bGGÞD½ÉÙ ˜]AÙÀSÍ�ñÎxfzdIYFŽ-?Vö»vE\Y·Ô2£_€Ãç?…—I‘‘·Qbãmá4ÜÀ±$lìÞ ÇÈ ÷gè¨�âg#v‹¢ÊÜíéÀ·"RɇU\ˆ6Ì 40MÄ^\¿ ð9ÒjjíkI‹éÌó{sšæ 3¨só{îãÑas掳¹˜Ž>5yn³ÑxnñšLLLJ Ÿ\ \à-\èØ:DDÁÑ쎵Åäëw’\�;Š…Ià ¨aÃUF a{|9®òCX’˜6ŒI¢$oæ®Ew^É/œ’}ážî »{Yˆ¹‡Y g—ƒkLBñ^Q¢KÁ ôp/3ÞE*¶Ïô#¶!Xr,´2 ñvFm=1jê àÝí©côöôL̶NñÚª±Ú:Äië!F[S|†›ç�žZÞN§ÊQšÒÍ&Ø 8f >®€�¢òeÄaM¨¹ÒŠ_$–½ýf7<”íɪe’E®&v\ž›¨!ˆyÚ ?YiAtøÚ‹Öìð0)L³A@^IÞDÌ�mµMf4Ù1ëdò«·þ%êö6ô¸ªâ�OÕ™€`5ÞÓÆ%[¯ÓŠ|©â7D9ª±þÈ:6ÊÓ¿Û_K¥ƒ!¢M}[$?ˆöM3ÜvòŒžE10‘²�~丹Èó ï¤ã½ôâŒp{f{ WO ˆ Šâ§ºÈÎ Yx瓊?ÐÐ }*Š ‹=¤¯§­|ÌŠ¸q3�Ч£æ¶>#Áe'Ä%×FŠÜ™ÂO8:®¬~I��+Ë)nªô=:�³&-³g:OŸnûDáñùVN—|"ñ5Ó¹FV¤&Õ+A7ån5Ùµ{¨¹Ð­¦“2úËÛŸXa–Ó�D´*ȳéO€°éAñ X»?n�'¹p%ÉÁÞs”÷ü �\¸’Ô!;Ñ%j )pyOÀFQ-cá…Ïø:¯%UsÇuô§×yû®†9D¼!ÊE¯¦¡ºp§ºî§�”´x;)‘§¨®†Öè`@"ÊëšH/<‘nò6Ђ·‘BNÕ@yá—2Ç&/wI^~0Q^x¥ÄT•Ÿ\{ s+½‹$n‡±"Ÿø^ÛL|á›ø®�(ÜMã|DªE|ê%/óBŸ&ä÷HÌ[sH½™ü¾Â¥ø¾Â§õ¾2^ø$|èçsˆÄµP|ú:e#íÅçÐþÃ3펛Ò"b8ÂñqœXé/>ƒÞ¡KØ9v ;S˽sìŒÄá4ýG¤w@ãS<êÛÈ/ü“ï«3qþLx|Ú9v�‹Ïø£@Vï? ‡ŠýGQ™(/|Qvg`)£øô¯“xúU`˜8aÔ[1މ]z g¸t+ij`ÚLôøYߢGÌ*•ÓÙypl¬:‡-ÔÈÄ:$Óâ“4 ÝvzIԃ׉Q�c±Qckq ŒM‹Óóˆù�Ý((°ÁñØÑ»2ÆŽ×MDÿp&ÂŽÉ]ãÚa²Ëð[Oˆé<Ð#mu$Œ[«TÈÑ´Ã0Z7Äu8ëèöÅ—î"H’:Pð$"yèõT²ÜvØï4Þ×�Ã�FøzJø˜7˜—†Ü¸áû@rÏÎ Ü4äT›n¹a§ æˆé^œ´Ýƒ)ߊӢ~'@�olW(c~–gÂ#81Š/-ŒÝ¯ƒtqÅéé{øéƒ‰'§XG\@ÿýšôIUGwá‡.Ç&+ïŒØ®¶µÉõNð�²^¸Ö âÖý:XÞN×Bq«¡¥U‚ÓÆ´=Y©Šõ]-�Û¼¤5«9KÁë[>hŒGU™S¤ÌdMåÌ…ªú._ª§.•^C•?³Ö´kW‰âáÉ%"² }AÑǬx‹ÈpdاIÕ™s\yÁ·¨JkåÒšÚÈ.<�5E� Ù—àÌúLO$ÂY•§öÂsF…ãì�³l•©vfzEöG¯ŽÒ«Üð¿:uI6:xŒ,l¯±#Ùpí¢kËûË ö¶Ï1ѽf6�l´ËvÜŠNÞãU– [Unhoe×á¢Ux¹ÙèŠRÑù1b,ÿD¨$ÅóÔìN”«ñns��c*ß°`[.ã9Ìâ÷—�†ÔÀ ´xP:)އ㪭Úôs­0°3~-]4udšÙ3|—Sýxóãé:ÍãŒ60ÚÒ‘¥G’|$†""ÀƒÂ\@ƒww=T̪Ÿ£KŽÉƒaÞ—¬8˜„µèPVFmõ\…%¦­ÄB Ks�÷�ôÁ‰$Ô½, ö×ÁÐaëUõ¤Ö{ƒp”´)ô˸-PÙʃ�ÒÙëÛèÒlcÇ–hí”vkIRoçÏ ý›ú̺N´·NÞÆîÚyz—ÀjÙ‘U©/åø†Q_ÈÍwžYÝôciÜ„»ñL¥Ä'Ð@‹+À.EWŸï=£Cú´´ú‘e>Ò�’Y'•"�¬¨Òå$#'lìæ—óñ¨�>µßè“5!­uV¤Ð 󬉫»8�ŸÉÁt¨eÊ"íΠóÅ‚Ìÿ�Ä?vä¨mRÞèwtžl67€ƒBnDs‘ÁÏ^”WqC³±‡R7àL4u„u•øà»Zß*ÛânY@]ê!$C@VMS‹[� bú?‘µ_4”µAVÃYøã2ßl9Ÿ¶þòI×rPjù Ÿ¼¦=öÔÎnê1;™¶Ðˆl…?.lNX‡´£ì�{Þ\SL]I…zr½[¯¡-Ƶ<5]b¶ [G¬÷vœ÷²*'¢§ÓpU„‡7 bY©4ŒDZ!Žåæ²oµéç¤>—eQéÚál K ^ÖÙ6õ°Öt@¹áðhW¼™}_ŦsUxëÑÎ}‘¹Û¢)ÖŸY;ô-®à¸©u{gq­uTàZ$:h�®Èø˜ãÝôX´ŸA›g%9©Òä†4ˆQ�0£IßL^|3b¢!‚ƒ¤ÈòÞàÍÉ ‰¿ðÎü5®µQ_èç¶3œµ¯á ´¢*gèRìB÷b GèXìæ™í[¶Øñ…:ôR¨CcÑ  õ<³cPUöfµi¼€v0LB{A‰M~$§)ø Ö0-¼©V$LenÜfÒÚ]yM\¨Y˜€uN¡:gù Ÿ¼¨•Á�w6!thRÖÒÚ÷õã8_Sá-#'JÄúÃÍ‚—ŠÌù'¯ l…?.ÓÒâ|šÚÅ@¬y5°û¸B9©°.äü½ow¦Æ®�ãÑN­�`â�X°W¤>gÍç `›\•Ã[°µM¥FÏ=ðK•¼d‚VŒ½á‡«û2H²ál6°ž8¿®WWÊZ‚}kb‹‰6ÛÍ ŒkD£Ñ£ðåw�Õpþ¸P5UÀ:§P-Â"ñ9¼ü;ÍèÄ�$ž¢0™šW,>MÉ14þ‚²È$:&öx²_P&^d–mÑlNeFN„Îâ"Δd‚Sжž3�\&ú¶Ú�qats _jmaÖNܼÌÚIòdyª]Ž™³Na¶…^.*ÊTÖ·}�dÝâ=&Eé�(¦«!´n¯ÁQºDK¦¬7yÝÄyB€UqbRœ¬ž3ÍëÆix~J²¸®Á)€¸޲zΩÒWrðÅËŽ/'��à-h/Æ1Ý’ü¹�ö).ß‹)L_Ó¼AY`@šǘÎUPK´œ¾ž¼ðÃx·º½½¿„v3w˜Ý�wýv>èì�²•o»þuL!˜þT÷´w¢{Ö;‡* �"à…€Ép¼€·˜™…Iƒz'§r•žˆ gžÝUvS!z¼FìÔׂ®Ò W �Ã0<ü­Ï’&/—Å©Œ+h¿Ã!m'å™|pº&Ò‹Ï -ÓƒÚ/…þ-ôeách·¶ú6ò‹Ï$w ©L’ìˆX…`˜uÑQRàs{"ú{"Úžˆâ¶7„®OD5»ÐÛ,\¯þ¸P ˆ¡Ÿ§«¡é)hèötu!ï«O^ÄóÇÿü1TŸ†Øç�®W\âÁ¢ÀP"Lˆg�WT5«Õ^\¾X"Ë pÝVHb1#;£>w-¤Åw¦¬Ìg]É�PÒéê‘Ñ7ú?E•@�B˜`ˆwÿ8M=%îݸYÚo¬öm6g8ú%5m’[�íF3—<‘w™IÔ®y3Cÿãí�&Í'‘»e•™q˜€ vÊ2õ�}…Þ±ì/P€¿ ¤wÉ;�@Z§ þ�Nn}CØÐ�+lüˆÉ ˆÿ•}àEá!M~d¤Û�f>µ½l¥Û®§âmeté “6‰» âZ^縉Kß”ˆ†O�{ˆ£Ø\¨ ":+�¨ã þÒ3¹yÓô\Þõ[�“âtŠóÊ·ýXþ]¤8¸oæ�¹æ·–“]6àæ2rt\¨YŒž 311U>x0åÊ5¿�9í2 �cuÈD3)>;mœ•#cHòÃn8ÂHÜñÓÈ›ƒBòWû„ø¼]€Ùö¹©�ÜEEžl+œ·Ð5ù a€ÉñL�'©s&yBº šµgöGñôo+&¨ÿŠâºŽÒîõIv)CRäIÜ8á›8ÍkÃ,Õe3Ÿ¼¤¿ ítÊÒ‹O -üq^Ç5¦´3XpÂØhU®ÂWt³ÞG›ýú™®�+ñ¢ {ñYìáæ_k—´3¼£»Ö‚ÊÎL‡Xk-ØÁW'.ðZŽFžq4hŒ*"ü¡Æ cá“Û(Pd£8*H/>�´ðljl<ðm†Z™ñ-„†+Ç$&GÊç z£r=°ù z�-à‘cmу�þâsèwÃô™ú$Ò8ê°·aQ(¼³È;*݇uÃ$5lEZa4¡7“°Ùcô,>¸£ô¦ÏRÔX�Á�&Ryü†.Ü®¥ZWà\ʱŽ/D�6B—ÑF¨„.£ +ã«OFìø%t¿„ÚaAè6~™!->�óÕ#§á¤š¹Œ°ŸVc³1œX3~²?—ÆC‹Ã™è$;¶±ÄÝŒ{J„Åíš4Ê/£Õá Oœþ·Ö“‘8ÐD΃ép`Ë:«Æg·ºZ.—â×Tû¿ÖïqÒÀ[X¶‰Ø½ÖËeÙ¯aQíFëòªNqX�󘮸îÉ1�J”Bs•ÖI\-/ÃýïaªƒˆLŠ€Lb_4ÑXWI ±—ÖFšèn³í•¥Ã›t²†§{¦ßm«d;±Gñ7=Ðk¢ý¶^­ý-, úmµì¿Í]‹F©íP açú’ÆÐ‚«bésg¬7üÿ çòZ[²É{BÚkê9tp4ïQY´ú-1ëši‹üïsÝÐÉýCßd´ý¿hIE™<÷�ɳèµMÌöçúNĤüÞ¯¹‹4eJÿò ¦Ïõ•íßlQ"&ª8pªZÎZÂû „—­yJh©šg,ü2ê·”.ÈVö‚›SÆö{45¼N™;Cûiž]J��_‚l¬…VÓØÁT|ÚMAðH�ŽGáÄaèòMiÌËØ‚wL}èÅT*xðÍTÐ,03LMܰ^ópWÎú™ü©ýF °c÷u˜OÃ𪤎ï$»ÁR^§9*i‘6NtbÜ‘SñJ0^x$Â� <°¦I·»ËÔ™?’±ó'�ªL 5ìH&=׋‚ë~�ªŠN5ä ±øž6 섯ÉBFEÆ«ñ¹tÎΤyÊaZ„ò3€YKÚåÂÒè@`Ößœ6ï(møüÄØé/=ëÿÞÔèìê¡.ÁÔEVdp:¤£)<Û⮽ãçþuho©1®³7…d;Ÿ›ÛŸU'Ê&èvåz ME_ˆ=¦$;Ôhx¥y4, ãYºW¨Ààkf´†�ZÆ:¶íM[޶,m $fy+yQ½ùéç‚„÷ÑéæŸ/¨ñ©6“³³ M—̧z@‡®mÀ˜Øø­—¸ó_¸%ÿÂGú/ì " U0 yçÏÆ»¦¦�®ü1¾8ö`—Üô5ì¡SËÎ蝹; -MWèÚì.#G7@Vz—fw~—ÈŒ1sË:¶èK¨ñ5“?æ¬ë? #�€siç˜5[aX�ióµ(ôKQµ¼ˆHi±æƒÖ$ëiùÎ5©®l‡Ã.ädŸ,Oûu@^‰m_—¢ÛJˆÇ¢:Ånæ (FçÝÞëzenç‰È… …HvÝF‚ÎXèd}qjx8–‚¢ÂXœ¸ ÂÛ`Šã ·Ig™‡a¿ùD‘Ÿ”8¦?‹Õw¤f�„« l¯|~ÕOkéĵüÏ,=’ä#QZ° ÌJrb™�ëiD} å«_Jý“²Å‰\¿{HæððE¦}ýÚsyˆRÆ–§er`­‘µ"TjÅÄôêBó½Jlå8 ¸uáõd>HÇaІnÿ¯M~,Ì;X¹iÒ“Tx”mW‚Œ–ôd*ãF¾y݆>´•igßþ¥"ñ¡}X¡¬µ_IÂý>èê�fÐ74o%\† šº÷kËŠ,:m™÷Šd¤!(KÔÉS¯®g¾ ï .n¼ ›€å&x<ÿ[\âRN�NE¸UžX»Ê{,€fè,¯]V¾Õ¾-ßdzPœüuN»ÛÙ KF´�¨Š<ý;nŒÏq‘<øÔ²éݘÞâ´a' }ªJÄF†é˜XsREÞl÷öì’Þ²b‘Ú)Mª¢f¡êÏRíîEt+­ ý_J!¾B2[Oí@�²¾²ÂÁu‚ZÂH~Ÿ`¦Ã:XêÅ9r¶G%êZ'h»u¬ˆ[ŽŽn%~òÁq?“mµ(+ÑÒ®&ùQÞ€±Eš�»ï£ôŸ0ñøcùÅþèc€/Ź‚ú5UºSšŸâ‘°›‰{$<ûf¤õäºÈÈ èÑÁQ¤yÉ]2y–Ü-Ëgéݲk–þì™ÿnõ‡æ1©¾ Üm¶Ë[äECûÓÐ쎘 ô_ÜêNz*Ý.~ø 0#Lu$} Õ±=êÙðŒJo…C!œðš:JXXD ›!4¦ÞÀà£máêb[Èþ–ü�T¬œ1¥‘¬â„|¡sló Átœ‰µ]W¡;ËDV)¿’ŠàÌ0dpDZieE¾ö.œ•ŠöÒ ë›'�”ú]ÈÖÄݵ+ûom‰9µoØÍƒCqŠÓÜü2±@¢SÖÓ––‹^°œÖå+8écÞ`C×C]‚7¨›¨±Tx£ËÕí­Z´Êª8¦Û ¦2ºÄ�Ö\®ö›û-¹[ïwPVîv³]!÷—÷WP4Ql+8ø$Ã¥?ËPóÊCûks'cG,#„—‘HŒ³R»öܹ�fÜ„´ýøž§‚:^»”©–¿c%3��gML{F"1ãyýG w˜ X�{óG"RGe<ÐÖ–�î0WvkØÁt’«Ä–oþÈJgªåïIŽ¿g‡ZÁtÇ�\í_1°yb€(ù �Sˆiàï6JbªÒ#´bèÈ5ür¢(¥•ÞˆÀQ©L�a�Ñ`�^¡)Ÿµ¶ê:EúCÃ`€½lømДãcÌ%W»IÈšþßGŽ?��Çv™…>ÅeÙíŽEÁós B¢-ÇkÌãŸâ¬±È4é§Qpt'/Xd–á€ýûpä�àKô�dH\�TýÃd,ºÆ¢»×pÀñyŽŒñ1Íã [‡›yÈn«Hs5nšÊ[`Áؼy‰ë�íÃëèWØÍ¦è–)m�m8æÝpp‡¨‘Øán]Y’ '#-¶S8®"%.[ª4yIŠSW8õCe­]*k�=?%Y\cûõ¦Š_iIÄë•þ[Tè.z‚GݳO‡ÆQã†roqC'–Ä?²î†%<œvvÇ÷Öµþ¡v¼Î�Ú37ŸbËÖZžBÕ)Í«�z s÷2kd¹•ÀñOóB E¶ßšÖæÛÏØ°ò²Î.6À@ðãaAWL«Èöf•& ¼òḪΠûvà‡‡Ö7e4NM=¥ýh¬Å”tœö7$w:\½ÓáhŠÓíÀQåqÁ0CØàe ¬'�/OÌöƒ–±´uI_¤­ÃU~EÎEùÂc‘y#È[Ø‘‘\J�Ѝ™L´ ½ú÷´yù"åÈR#—§¢¼…›Z ù É Ü®Œï èS̼�*A ªzRh»i¥4=2°&Ž=7°žÆev1>=�è~¼|Ò!c$Ñ5¬H|ùØ?HŠœÝ—¤s#(›ˆÉ—7^pðŒ´Æ“6Œ‘cŒƒV‰'ºîžÚ-#Þi Tç,ûø?ç8K�)1nû·XQð(_ª ^Ä|·�ÙX« w¡�øÑ—�+ᎄÅ.Z õ‚›“NÖÄŠN ‰^&Þ�!ÏÃÆôNÛŒ›î'´�N—§…‡%¬bÀåÆÂ¨È†Yl#"¨EØùVI!B¤C!bÿ²SMMO\‹nF›$™y ’ÄGæ¯q}Mâæ\AòwG<NRÇX¸rmÂèæ�šö÷0ÙNbb¨é|¿1vmP0A R¥4LOŽL´õi»@@2¸~ŒZ#Վć€tû{°n§2’„�÷»}}_¯~ß­¯C€ 6£ªOä]õ`ËCûÓ ÔßÁcƒômãBD7g\ä§_•°=™7Á,BMûƒ6ÊüìÈ„`áZnͰÃEÿãǼ]G”½.qƒ’B„[ÈUè¾Óñ•ŠïQd tT—Óƒˆ™òþ˜§ì†¥+Âþ·½¢(º4ž„`zùÁH�œ~$•7ÿ^†ÙÓœØá§èÌ\¶éSª�Ïþ<)ú¿u‘ÿ)ûu�^”èxq­–=LI昬çû-´Í³)|Ø>ø¨½�O‘±é˜نťTìÇ2w�¶þ;¹^!]w<ž\÷¦Ìj¡TE‘¦[Ož;KsZ^Ú–9µÐG ½ÕÐÐZsBo5tVÇKY}–õp®¬Oj~:À%‚>*Wè±r…óÅÝcåÒ©µ]¢—®ÛÀ„ “ɘMñàÃ6ºaÐØ™Ññ›ºëÖòx²¬vÝÒÐÍ™–Ç“kµu‘~€m]t4ž<ÏÕwÇÖ¢ú¨¡¡·ZkNè­†Îêx)ë¡Ï²Εu]7TÐGå =V®p¾¸{¬\:5ËûñçîÚ€è߉³!öUœ×�ó;vµZl]Ö›šWÃåkô5_U"ô\%ÂUÂG—�“õTC¿51\T+üÖD�f{^é�;„åaÑbðÜó‰Èà@eïÖ÷׿µÛ‘Žç iS% ç³xO È´ÆÛ"]Âr°þÙªn„U­›Êöäð“T߆šð‰ªi�ÄÕ[;´«ÑÞƒÊ�æiý‚4×�½õ4ìò Ÿ k-xî–Ð9kÚÈî˜p{ûÏ*¼Ül�‰ŸìgöÍä|Ø5šê³%Ü"=¯rù¢¿†ti°>H^œ ¶lü‚`ÓØuo‹£cÀðl ƒ“ÁÖ„MÀClaã w³`¡÷›ÂùIé‰áQH¬³²ENG;³Rö³w±êgIùÈï9µÇËðW— gx÷®¦uaUpŒú¬€‡X[5èHÑ)Ìï!ÌÌ…UÁ5Ìs>ÂlÑøžœ;ô�Ã=Ü£›Y%ǰ/ò~�VôË—?÷ëèjµ_A#ÏAƒþw`{¼¼JýûfË.Ò>ÅIU,³t�OÍ…‡Ô\èSs�LͯøÔüê!5¿êSó+25«²$9xJÝÂ2ÊÈ>TT5ŒUúüâ“p•®H†L_vLeïÀÈî”byÝÎÏBÔØSDãK©hB`­Ý).Ñ|0�š ¶(±‰8ÄÁ&Ò="> #!àçß°¸�XUp+© ‡pÛDnã&ÍAG›‡»Xlˆw_.C´¿ ì⎳ Òïâ·agC�Ä%AûÔ¹x6Xe13³Œû‚­É“ŽÑv´8‚1)Ê�(?g™OR‡L1P^R›Èl`PWG­¼D½¿þå¿Ð¥™C;yãL(ÿ¸p±7 í�&�ßp¾~s4ô›†’� exÇ~�¡�›©JÌ쎩6 ¸’ß¼”‘ßôEÄK·á¹Ï˜ï0°‹]’´«¯CÂç¨ß0«'ó¼è| œ#jÍj÷be‘ùrN³Ãð"Ä]\‚c!`Ÿô«Nx•˯ëËߣÍv¿Þm×W`“"µ'[èMG¼ÚMõ—ÿáe<ðUøÄxæë¼�áRb¬™éØñãñ€i �à–7U#rQÃBÉŽ tYØÐÓ «�ÁÕEtã²H2ObD±laèbÐjjøÐ…@GØÄi^cRÖƒº}p‡2Ó)kYòRK[~°¾ƒVoRaÒÊÃcUœ0Æ3üîQ1@å¥x‹Nqþñ™Mñ¹ìŸ¥sŽ©ç…ÚIÐ ªdè¤èÐÕTÏçPAeBÔ·g=ÊSžn›$ÜE sX îuuœÈå`3#n€oáÔ'#j3!�uŒ˜²÷Nàv‰Ý 3>Š&âþÉ2˜=Ú1œƒ3?r÷b~ôó«¥9g!§ÿÿ?ìš ý®¤Ÿ -ËÆ‰"_JpÐt,¶E—¶¥çPîæå®Ã+rŒÅƒÃ!%oÄ»øœLX°KÒz§lT<-Ñó³\÷,›ìX•zFv—xÏrãck¦.’8Ö¶ìÑÎ�‘Ý%Õvj·ª&px‰�¥Ü Znc ˜–sôÍBlë2ö êòVÝÀìR‰­¼ø`ZhU<…óØFð3£åžK•\ós±Ž[þZdä-+ȼ–ió@qµ@Ñ%/PzøRT‚vÙY0Ñ»e°�Û%+g˜›Ï ‡cS)pxÊ9K¥å\›f˜š‡r³X˹-Wj>3³þq�/Wÿ¸ðRž¨½sŽZ¸sÐÆÜ|N8Ü[‚‰ÃSÎÍ.Ÿ-@ÍC¹Y¬å\Ž–+5Ÿ™Yÿ�/Vÿíðÿ61;†×ÌëL­{ýoŸUæ¿g²Ü_…Y¬äšŸ‹uÜò×.ó>s�õo&fÇØšy�bi¢u¯+¿ù¬+¿Íd¹¿º²XÉ5?ë¸å¯MÆÃ€ÏÙÿìÜØÛ¼¨ä�F¡îE±áI8ú"Üå¹¥dÄ"‚ÍÝå è�*³øçuÞÕ£þ™]÷òÙ vÌ$Í�Ý1ñ:ú¿Î1¼—iQ– Í>Z9•êÉÕ¾@�A8,zS0¯oâÆçà<9öù—J�lÝ5^ætÜC½PÉGàuR×áe‘¿’J<dYà9,î…^ÜD¬gCnÙÕ“¡k•†q ‡´"áB:5¤%Dí�ÖS¡ƒ­%CîŽÖ³9d�†õ¦äÄø8©j …™]8Ì”…ÄLꔽ*-êÙáx׸zF ‰Õc]£Õ2VÅ©?4Ä|åƒ=�2ƒÃF{ÕÍŒr¶ÕÁõ׳"ØR5Bñ%aR×3spõ̓­oFîWdm²PÿžvGIÅMŒJ6‡GŸ•"û°iüHQ�0@7ÿ™Spha\+¢¡ÞW´¡B,pØ P8 ¾z°LŽ|Íw‚â– 9i=-vŽ­081ÑÉŒŠ[L"èÃ1x°C´§MÜoè”k¹oÖûèv½½Ù'y‚âeœ¼@Mš~9Óvõ§Ýinåù%é�¬Qœ'Þ„î=»ˆ74JK´—÷w«Ë=ìpÍ 7¦†Þ­WWb¢Ð�¢ÐI ´yCªÜ¡m– pm“bC•ØäYœ¤Á”>~‚ A¢ÞHޤDZ~ƃ2—·ÀÓÿ³Hs°' jRRí¦@dg+ª!üËU.,A „n+ÉÓÝ­þˆ.¿®vÑ·ÕíãìF„ã}I6x‰-yÛ¢˜à¿ã9™ L† ÈL֤Ңϲ�HV–áF&a=):ßôĬq'‘�‚ƒ8Å[è¢ÕS¸èD‡¼û"ÃMé´\¢BãÐ]ª}%û¤­o(+-Ò%¼�´žÖ)•b|�Û9Vº�¡rx¨v&ê°ÌRøü½ƒ±³–ðKítºN\àŒtø€i(IŒ{*0Ñ5`֒ⓨ§-QCÍ×v¢ÒY>‹í”Êèr`­è¿¨Áµ�ûôÉÆé�:Ò³2ÓÁÐY{U £CâTÊ4yÁóÇa‘g¼ñê&æ¢ü^ä)r&j\ îÚ€«­£Cóm"C—7a–æ¤Æ…ª…?a—TÔHG�¾�Û-±jìum‘Ûm‘öJ±Èõ6¶YZ|ü´Äû8ÍNq“ÀWG¤Ë#ûI^O�Ê™9RdÎÌÒ"ûÙ9^tŽˆ‡Û±á9> Ñ�¯'m=o?eÄ?->‚zâ�vÛÿ‰œžHµ,tßw›=|©E!§þ�¢Ê†››èpÓÛkœ�‰:ì•¶Âe¶ýžCº›f9jl&ÌТ˹L\·1Z5ëwý +e ååfé‘$I¦ÄR °—`•êCGÍ8?‰ºCû&¿ìŸ­ß›J»iCW4uØÀšÕr>kÕ-äD²ç—Ý^þñì×iU7×!ÈÀŽx\¬½Éƒ*aX²ŸsÆÚãêÙ¾à`³5­·Ë´ É²×ØÒ—#i±eÓFI?ò퓼'¤ddö‘Žü˜f$�Oþiic¡¼ðÍœÅϾ#|¤5á Ø�·"Ï>>©R°à~F�ø„ÂÀ(}Ç6ÏØëf¾YÙÛ8ŸúwòÃúÇKËì'Ä–]ñPÔ÷´ì®ÄÝ �Î@bqîdW‹D]{œ¨C¿‚téuP’~ú$”´k�…uîÏpº.½Nѱ/D‰úé)QÒÎý(Jõ§`§~§èÖC£4Ë¢þ+H®c”¨óÈ¥ê:î˜ BçŇÐ<�Ý–°ãôìëœý³¯>6y²#G]X‹î%}`%¼õU‘ÈbBTx�³hGþ:“ºa i±‘°¤ ˜‰Ú¾ T‹/Qö=‰*RîH§5»^@»®;œj“}•‡�¶ÌuMeœq5+WTéó'ÉÝ\FßÒ:mº7†´s‹ç¤>—eQ™Š¢DÁ&F³ —ÅŠU„ödÙS,ÜéI©ÝÎ]V„þï5%l—ç. 1Ù a1ñ-Èè[ \bkVô6®›Ô‡û–È£ýÎØ¼,z±Oy|ºg¶DÑzs:ѧÃÎÚœOP\KÎI ¼·EþÜÝ%™4ߤçd#kFdð¥àm;x«UbS÷?ÀøÁXs“º@~WÎYÛ�ßlnuÆNí Ötðœš_™iŒ,ìƒW�®mŒ.3WßIüƒŽêmqÙ7»ÚŽâ�þ¬¢c}°…ÃBéTBlVm>²� áš&žËÖø.M‹àM~ Õñ..Û6Ù¡%ÚMItŠKÓH^àØäúM 3û—ŠÄ‡ŽbGjÒ„lÂÿP�²›m¤lZ –1hêFÜx%ÆVb‡x5ú=§KåëJìmʲ”…Né|°Ý}Q|8Tÿ³n¼äõ¬ôªƒãzƒa¥�m�‹Vu�>çßHUS¾}¬Ý™Ëz“3‡½ÛàÙfÝbíΧ¾5Yç�¾o˜iHŽîXYk”)­––¨Y«ŸO5Âþ7²®Æ‚å¾ÅÕxÄJ›ÑSÝTç¤9WDŠý ¥wHº´s}e/Æm¶õt#–ŠŠ-XDlPª]=£Ÿ[Aíz‡ý¡G¡jê(©e¸ §kÎ¥/{×C| ¡€¶±ˆÑɨ*‘nW»›l¥E9;¾é÷Òi2Êïݼ'º|!Âj—}Ö% hq_>­õ.Ú§¼àl´P¼—NYa5tcóvº^ ifèÃä×ï†5ŒE~Z´“©NŸçfgÉÜùçº=Îfk‚9ÂMqÒ-iÌGcÙ H¤ŸQX"Å”¡”¶��͉\‚z>lÂdºM}EǃàTu0œ‹^’§£sn\ƒ1ç×ù�vFm-/¦’™1ŧƒ¹%OÎóž™´‘-=�î°�Û´VÆVtæÝDI‘SiIV„tÀvªÕñÕRøø~.­Ê’èO†1´é°ìæW¸LNÌ YåÏPØä5©—(t 3O¿—˜ì­X$\=«àh^¡ŠiÔ«+R'•áÕ®û.-éˆNŠp5më7Áþ•–!¹ö8&ñ÷ÑêK¨LQR:y*äßÝnn¶ë«…¿ý¾ú3¤ÓŸÛÍv½ ±Ûì¿Þ­÷›Ëh·¹ùº�¯›ëýBènõçt ß@¸]í7ßÖ_þܯCêõöþ;µzµþCA«O”$ð—ÍM´Þ^mV[8öj}½z¼Ý‡päíf¿¿]£…»ÿFÃwk6T‹¶ë›öC8Áã6l‹Rôåñúz½[DðxµÙ'-›NG«Ãá�6x´Vš¦ÓÚ…I gݦ ¬³É¢:Bë[e �ïÎÕJr¼ËÆ¡&ö}>¤Í×¢øÁ͵ÅEEðËúf³í«Õþ+Ë3µˆë#ß!/iS°¹\ÝF!-f›{µ„ÖyòRyúwÜNâ—�\øa‰î÷švÃ…£º½¿üÕÇÍí­‚áz·¬AåÑú�ÿ�·oksGÚ¼ßß±·Ÿ¿éêÙÙÙ½s:q¦§|jcסox0È6�(yè_¿:ƶйÏ3ÓUeâ}:…B§Ðzc†*£8Ôž`½H+ß»…½NGò|„.|u”Â¬¸å€¸�ÙJýžðu(Âï~ž°þ?�År÷�«Û™ÅÉxé¹Û1«I]«QU&�èµ»_Í„çÎx¹[{în½^m¶ á¾ö9F-¯¶°£D é�ñ+�MB’`µd%±dmz>Ÿ­ÝÙ}Q¨65Z°ÅzûÓc én7(Üv·ž;@ät$Ÿó>½¹ñ*µ n_xµItÞ̱çO³":wí—Ù'a×LøóO`·j 5�NÝ,›F7·]�õqçƒ3ë—ÞMª«Z~·®¯Ö:¼:«ëc·îÊ} Ø5Š~ö|îGça÷dä >:“�3…¹uö몤*ŠõÆ™Œ·†«S�[wê�½Gæ½üãˆéýäKâæ[ b¹âk%à„ø œ>~ÞÀ‚fKl9†hGö%núòHt�:Z‘G� -Š4GŽª‡¢õOÿÞ¯z´�kF×k-W Ýu¼éeJ“B‰á“HñÌ1¦œå#j1‡ã,—rTÐ…ç�{}?2Â&·‚?ääÕs.Vs#KâÄq”ÑH±�Eã(¸+ÉÚ¨î‘ö²”6ˆ»×�¯é ò^X0…­».ÊÌ”ûè"qŸ±6¾ï8£†ë^�Š›ýuC‚’Y¢W¢[ûÕÝçSÀGo'’ÐÅ:•’ÝxÝV¬Úòr)�+¼YµåsÔ©•íî©útQîŒ)5)LW›‰Ã;Ýxéª,ƒª»Mý˜*6¶öißI~ìðcVØùÑ™PÊŸ«7+óVB’(œQÑ"}}5ìæ7 ~·ùF‡›4Õœ™ŽMG»gü¨¡Î;œ§“5n=M&Þx»ÝÌv[³=È'Çp¨xr¶Îò›çÖ”“$$�‚qùTw¦ùÄR ¸î'UïnS½ç㊣d@Fõδ>oÅ8?ãë¥tóÕö­ì«ŒV;]ßë|bc–RD¯WzÅd-Ç¢ù‘ió‹lmŒŒZÄþâE¡ñÑþ«DoRf?ßÌo©°ÖZ5J\RÈ>nÃÌŠØy'ÁšM4¢w~í«ß3@Æ~ÁwÔ�h�óôÈÊ{ZƱ…ú’dy=þA>ŠSš<§X|åµ¥É<:«�5­ïÈÐÕ]DÒÏc÷™Í´žVâ(ÌݰqòéI…˜ì¶«éÔX|ª¸t²îlÍÿüíw(âË?�»'‡?=v'{ˆSÿ¶Ï?3üÃí+Â�ì €ŸÔÚ„6ò:™[–¬c9Í€e�Šúh_!  × 5<? Ós5=FùR³|n<[Â×%¼rS%UQˆå¬ŸF�jæŽçËÝÂ|!‹X ‡gO³-0_}WŠê¸ëñÄ�vë5,…àLèÖ"Õµ­5åê£Ftûs­ ޝ=7Va:Zá=´•ÔGçÅBšc’æÄI^£¾GÌÏ~£SWì—`l^q¹E¥(šÅxã>³Òúæl”ëëg?§'?¾CmŸ=3¯MŠÆæ²ŠvÖ! ÞŽw†Â?ŒZÍÂY<86—ýÓ1•Ÿ¬š‰ÎÌv:«Gïi6ç+w®â\ƒ*¤Xƒ‚!»ùv¶ž;¬'n�Ízã°ÿº"eý�^ ‚ˆÍPÚ"_PÜ¡p«óà—“ÛV§ÀÛ4/¤uÿƒšßc1�#-MGŒå b¬™4“ýÊþóÐ’'ï…ÌÌ¿I w‹"oVË×ønÇÔçñê7«µºu§'7ǽì3RÏ ë»ÃÀyaëÞ°·LݨÀyçËtGIÎá�âYÈT„Ô�r$Š-¨„;Š·‚ÅìœÅ„Ï»…ÇzQnM¬2’ðp«]W¦øöîLž4D•Êz<ùêMwóö`'‹ü}¤^®¹#�ý¿Rý¢£’K©ˆŽ>âÖàé“ÏÔ>'1ñ)ñbòJâÏO†µøÈ6›v2@Ñ*dSsפæ;x›ñw³›ëœô­VéF® #fhQ "× ÜsÓ­{ÓÇP·š³!®Ö¥;�×ÏNc�²îIH\¿ àžAJÿ¢•Aj¯ÿÿR¬Fn’ü£Œn9�X]-ç?Ío�oœéd¹…9EvŠª¤*й¼•¿šN]g Ñw±Ú:wgôKÊ}lYÒ uÚî6KÍ%AÅqºJ~¶œÍ(*qÓ H-®º¨ðËñ-øæaÝÌ&Ï“Õb=Þ˜N}* òú¡ª¼H–;ºÝ^í*Rƒê‹q­Í¦f+�®í «k‚îÑ:V¸nôh¨mo]áG§¯ÙE‹šØâTØz”�7/¾á1°¯÷jþí xdd»žÙ®§óñ“ë=ŒYK—½ÓdÔlÃ<çÇÄsw“ùØu¡x6 ®Â,AQ³É�"?%$ƒJ‰³±òîS7Éó˜9ƒÓÙr51,BäyP'ˆüãj÷0¥0�¯Æ[`¶‰só•‡bd$jOšMZÿt¹CÊŒû¼ÚÀÂч#X)¯çª#ÂÈ´qí€U¹ƒÖËS™;h!ËÓ^ýLw÷·Û}½2‰îŸ7å’_Œ%ÿi(ixk·Ä ¬Ì³¡*•-ž==3ƒ¾Ù¬žÆ[¥Ý„àGÁIkGoxô:\ñ_Žú«€8�êTïå%„* ˆW…§zÃøèLf‹ñ£LŪS§|ËZ]5€«Ã�heDª7ŒÜ±`=ç+F�ŒUé’ú-s5Û‡«Ä�huDª7Œ¬m;›Ù£LŪS§|Ã*6~ÇÒm«Ô€±J]R¿a®¯è€U@¬:2ÕÆíl‹+Ī"S½a¬W¡Àª V™ê £õøuG�U¯góøÂ’�žW h5¯õ¸MÃNC{í4šýg5[^¾¹pånF<†BÃ[=:ÓˆÓ·¡“°lD´ Žæ³qÄt…oìŠ9ëx²U,Vwk¸]¡›ŠËØ%å[VœcSÑÊÜ;6—ý°*D�ê #Úƒh Xu”Äv…+ VÅøxÙ¥«b1>Ö©VŒÌÿd]Pµ ¤žo*¯(E“½¸ OBü—oco²2¼yñmæ*n0k»ö¾ùÐpöm, ýUZ÷\¯�A}z©H¾O)î\ñ%”Å ®ëŒèL ÐÈ  ?ÚQ@`"ü@†øÑŽ9ðs’þò(ý�öYúàs/þÙó#y2ÉdÍœ‹'2R ©ø›Ä©|ËDzðŽ¤Ø×A@ !Õ1j¬¾Z“¿*EGìźa 1Œè¯‰8 Añ'Ö”¯Øv¡dÌ £3 !ŸDøbešÄ0=ù0ó´È£�P ¨Ü§‡%…).Hùõ’÷ÛfVý¬Eg•%ïÆ°r‹M1äÕ�½(ÉJEÛÔDþ>qJ CJYáÐ0aÅ.Ñ U.ÍHb¨�™_dªšàna³ë¨W¦X&îñ&Ì�ýãݽ¼¨&t"ïatŒT “{�Á�8+/`mFDd5¸gy‘É?<)¦*uÁ(ìx_ôš©K�î4x¬‰!!ï‚ϰܸôˆÿSf·àчAnî4hè�Qlž‘sQ&ºçå*¢!<ó|J=f?哆†ƒ4ƒ]žÿ4“‡&‘ì=OÓ¸Tt="  @˜ïCšK‡Ñ++nsyq4$žæ<‘(NýB¨±xû�•iJ l¶$:¦§èPÀqÌÌ£÷º} ÐÈ4‡c²ô� `99û¼` È‚e=¾Èå[ë@d‘—ÝÞa¥ RïU¾Õk(m‘è–G$äèWA² �RÍRÁØ�­Ñš¡­ÞzQ­Ö¼µò[e`œþã{õr³Q2¿ø%ÁÀx8’ò«jލû*4¥‹5ËÊ?ȵaò0møz€§x´ý~Ý´`ÎY§�!3ßû”À¤©¹x C3™JÇÄÏÍÅCÌjHbˆ0üH („‚ ý—°þ¦ˆœ¤Yfý¢ÈÁ€„•Ÿ›KóûÊiê¥X†­¤+± !­3…ŠS‰x›ÞP˜Y(@vó(8ñ*?´7 moÜÞ(„¾H_ä2jßYs.›û|G�ÛWb™/Aª‡À¯ –§‡(¾ß,(ذ½tœG~ËE±{VÄT¸VîÅJ³¥+Í“´êÓ»õÉmCqoý!¢ xB5A?öü{f$´«-WðÛäîÉX_ê¼<ÛOÇãɧXE«2t»g|‹]kŸmô]j 2r£†[½p`Åæ" ÇEŽ«WQ8]lð¹fsø¢ÿ†ü* -øgñivCÚURz‚Qå1©Ö¡‡Hfʰ„ éBku„tcð«XhòÞ²4—ðüg=Ê‘ØxÃâ:pÙ©´¦�Ør&”r«òÍH[µî𙺥‰½¥CÞù²•yÆ\\Æ,ZµòéT^î�QP¬‹Üì]²Ú"5yÍF™p›uIÞ”'YøŒçîáÄ+Xw@„{‚ë4oȾù9R †ì/Ñ£ OYAi“¹[Êom�ìÞnò·•¹»àºŸðj3(SÕ�òÿðˆÎƒ¿¼ñøÃ+œðb8XÒnK¾¥÷ï þý¦BÚ˜^—ìŠà6Á{ºÌ‚H„­tå`uK×yl.åsxà…Ñá öî\£˜ŠŽ1ÿ ÚJçŠãöí-(IBŽ Å™ü()ϰy"5A–¾�dòÌ Ì` òDÚ`�¯ò4„©ÌˆÊé\q *÷ŠäW™ Í9`$×Å“–°H뎇vĩ짡å¤>“G”;O¥Í€(õŠâ Þá¼÷—£óíáY±dVø{ˆ¬x¡¥Z—¸=¢ªU‘‡zÂ:ªV=F�¹~~þa(,Vg�¤€ˆSˆ¸(¿47æ“,CÞcÀoTHïQ±Z£<]­Ëš&Q­ª™‹Ëóq¬‹ÊóÅPsöâþ,§zQˆ/@ÒÊvæñhLŠý ùó•þo£�!ãhŸ3Eïâ¶ (¥$ç¿Á‘¬QDû² –H9V2¸_ÿ ƒóeú�õØËsï­¯€#Ï ü’ÏC§Í)Ò¤`öÑŽ$IùZ»oR¬kÒa;9{?x±¡ñÃPäŒ3È­?œ¯T cÝé’ œ OyZfèö%У�äü�>ýÑE ]’èÌš‡$–,4‹£Â&?´Üë‚5ã`þõK”g+°™º�Ž‚“ÏÏ;±Â{c· ¨4r¾ßºŽ2¸½”¯õÂa|'üM<nrŠâpÍÆVåàD'i’1�ïÙ(EB  è†Í8¨UâÂ<0þ‘ð8ób¹ QòÎj Nщã(£‘èß¡_ø-ñúÙù¶tõúF¹ËK¯p%1.ޔʇ!� dÅÌÆD´€7u]¦Å4-xC›òí¬ăØptÉ}iD%>‘„ä>sDYž a?gbj»†m¬¸ïÆ"Ê”ï'…�²Xbÿ�b£P^fó:£ãæ}*0ø+Aaö©Ÿ‡�Òð̓…ãAàÆ. 32r,G•~óÖ˜iŠ- 8É•‹…ŒXKRH1Ö@~Z·Ø/0-rRçŠ}‹8ö•ä‡8}qõÔ£��³&ù9¢c,+ŸidÜüê™hœµnÜ#�<œH’¦e`û ²€0I‘¢[¤Ù˜~$ÁŒ¿tuø8Ú8zFÂý`Ã7|nÁF¬gx1ë‹0ÓsË ¯èc0¬�·ÓßNw¾êÇbZè-ÈQ×tš/(y@�Á­¿+¹e�6-á·,l4¬o?Ë»dÏÝ©yø1,‚A=þ_,ZÌzñhë×rÆ ©ü‚�­ÊÂÂsâÓ4AÃYëÉ1‰os?¡±_ KaøÛ½˜ˆfV‘Ðwù"58©?Iž>ò#!¯ÅóB²/�r¿Û:Ô‚t«UÅmøGƒ»|–@)ð_ÿó 9ò¦ÄçåAìSÚJù–ᤤñ3$lˆÌ½8¦i–½ä74ꤎ¤XøIÈZ>6r—X¹bÝŸšŠI›æJT ['yKt•buÂ“Ç mC›Æ-ôš7IR¹ŒBAœ-Ø_X5{Yƒ¹b:Ö«fež&„ï©f¥(Æ›Ü&„ù¡Gƒ4# Âkàg–GIá5'Á¤7È+Ö*¾#ó—¹Ëƒ”½Ã^1‹};ñ"=_w€ðÞ 9kuˆFX±Öa¸šªþ©²�4‡ò»÷Zó'?Þ?ùÞ�$¿é0#æZ½p×L•ã6ôVü°�-œÕnë-Æ? IÚˆ OuÚ—UP*7N%§b»Æ]øH×�¥"’€Aå²ê!Ä/hf =~*BqÁ\ó$"žûäºà.|Q½–*Z€ðxaäå>ò~¸K3n(Ø®@7\ü?rµÐœªÂÜ0å]£™Ž*¿Œ\ÕϬw/ž8µn^^-Ðëêü�ÄKŸ5细rÖQ+Êž_}Sôüêƒócâ¬Å~÷Ýö |h±ðXD ]C’F¾Åñ}3ÛB8ù6G²&?*^ªf|IãÄÜŸ¸*žÛêWw�(Ó Y[±Nëžä¿þ‡¿”µÊ~¿«QþÛøa¢rxñ–Ü‚°ÈŠS>{!}JÓêhÎ]µèœ#ZhJæÅÜ<F$W‰«ûˆŠCe9sbòâŠã#ÀÒä¶9ðƒ©nÒÂÊ,äãÜu>©ššù"B˜ù‰¬ÎE|Ü›ÊÎëµh6çǾH_¶ÃhµZC1[˜¾�`ÑAӳ؇û®U-×°èâ œT+—¦âõd… ©sЖ¸ÏÊÕשŒÓ«2÷,:øhºÚ|oy¨fͤÂV=7“xµt0"ïûlûìMÇ_ïi¾zÏ][ê7?y°k‹â¯(XG=Èx~~Ô›„Òò;Í¥¯9DiDÖš\33ÇŒTëV*ceBÈ:{ÕOäjjiÅXçtFnÙ/*æéÙõë‰ë¤™��Èë•,•Ë+"×I>+?f~^ w¶ªúxo¦êã¦2îºÈVG¬YÕj<•^¸ bî•õ±UE~,ùBÀ#9øe\ÐggÒ˜T# $7Wçê«~Íÿ…M\‚Å©j¿ú [& *O&Fx.‹’Õù‡ÇÊ(.)Ÿ÷Eͼ_ñM®¶Y�ɇè a©ù–)·‹õqs Úf¥Ã†ã=²­Öª×œXƒ†ÉªÿUTÜf†²+Z2‰‡¨.I$&�çè�„Ãq¾$é[24ÝÀŠŠÕÝÚˆ$¢‰tOP�i襥¡ ©w“¼ƒã!Mcâ'õþ jøäç’ëÕ`ŒÏó_ýœ#m†»eÛIà6þÛ#‘ÐY–m4`L[6)CQäþ‡ÆÓa_nÿµAÝ'Ѐn¤G~–ÝΔ Pò¦)ë̇ å—AÞü Š“QJ¡ þ¼Ī Q$Ü=—¡î@ñÒ3SƒÁU»WP¨Œ ñ‹�`Tý�nª‡f)¸qå䜾8JÆ¢ŠÕNŠÓJŠÓFŠÙBøL°ë„™ZƒT°·D`ÒXeýΊÒâÞ†²ßÆîVi?kñ–ÜÈ;D$Å“4Ú;�@&HãžC™J?Ëií>ˆ©„A!ahVà‰©\2¦4:&fÒ´6M&¢V&*E‚ô\OqÍʃŸYž¦¹aB\¸jõ�š@%è{$¯$õK7JI—GH9‰7ðL$"æˆJ¦M…‰®rSɆUÂÝfSUsâ¿INª�€~A.`Ú&UÜh3YyÆÎT¸ˆ’ÒŒù‘Ħrİò¸ŽÆ‚¼ …_�äœ_fbb:ö|Ùæ5@dæ‚r£ÊH|Êßò1Í�©iš¦9ÎÖ¥êyV£´€°%�Ô±"ÐÎmo­Ë®f�í)N÷¾YÇx* Å#¹ÙÁPÌ4+³æl¦¡è”ÍOÌÄC1~B/(ªfòYû…išÉ׆ŒD©¡Ø25#üOÊ®Ð-̺åÜOë‰úç}蛉V3 #Acƒ;O}³�|n˜¸aXøÅ¢Zß5‘ Næ’cj.+Ærsñ…ŸeÕŽ¨ÀÐ÷².6ž€O †HB  ’ùð°HCS¹26¤4mË꜑`h<Â/ë»)|kƒ˜c¾‰˜†`yyÔ; < L½$з�ym×ÓŸðó»±a S9C¯Žß67kò†ÝOuùã«fÒ†&c-O9õË}L¦Þx>_}÷¶«µ7w¾9soü}<Ûª–j”èÕrþÓ«ÖUÌëíl1ûÓy¡¶?׎7Y-Îrëš 6æCáÆ�¨Y7Þ�¢ÌÍ€K S9ã!Ó�#C#Í�mNBCÙÔpšè–{S¹ê…Yé-9güž©“³Í?LåŒÇkÜL’M ÆqäScéÙ11-`.þÍTe)k®ùÎt1ngZÏ;–Òp9äû)2ÔÓxñŠ âfx?ù ­QBÒxÊâ7 ??šÊá²X™1S'¸,©Îw©Äsr"‰ñ*D�f^ ß4™°”†ÑDöÀßkåñ>’c“5‹siÐ}êP’!3‰šÚkýÀ|ºH7”Pþ‡8ò÷©n§Þ¿Ïë (ê!È„#ñø¶PGœ 3Ö˨kcÖ„$'Õ®)²<ê .0œ’uži�Æ�£’éfàçD«P¢¬iÑn…à”g_wJF™‰(Ö<žmU÷¶„¬ò˜ƒ3£XiÑ/bƒ(F÷×™°LÂÌñ§ÿ:Ža!(³Vó&Œ¨Ç3 b¨S Q{†¸Çâô�„U i,ž´ûcI¸GÒ;ûîá�Gɇ«>�‰ ±²0Dñp" uäa7dß—`“ÖjJÒ×`ûyDà ùP–i–È% ²!¾½« ã¯§²©: û–B ¼b…E.èâi_ý8 Å;áÖyŸG‡ô�’”�-ìPaÏQÁÑçe2€"7d|¹„¯EXUÁ¼Šcs4æ}Ñ´ àè9ɼ/hV7|�GiØJe~±Ï°u;ìÜÿ+·ßÖ9r>Ž-V�‘sVtO2;ᇲgnÙ‰>öø®}`/I{]ØNŽ¿Ò(Á£Ïþ{çÕ6ެ´PŸ�­‹àW�œžÊ"Lß,J‘ûè^¯ÛØEáÔm¸ËÒwL«VŒÅ»¬«B@pð±Ørš~EÁ§”< ~¹öšN.éÉX­é[R–IÒ½K– Ò` ¿‡ÀhžÑÃÁ>£à.�‡-VШ…grá@»' ¼�âòÇŽåókãW?Šý}lïɺ$ín �õÂÁrµÍ â¨>⃙�T\ýíÝ�c }ŒºO?�X@Ë_û I?g!|�™¼öìepñÖ\ôî[‰¯ÃdP¬¡‹DO™Ý‚í3·æ=„\7~äs€»»« Ï��p¦&b¶5 yg“–øc2~|l&þSlAõ=� ›š—x¾t#vô‰eµÕt½–͈&Ìýžù€ `G߈Ïp÷݈Kš“"¦öTEÛeí<œcÂfj›ÌÈøÑ ÓBïÆÈ‚/÷™|¬Înãžg”EâÔñg‹tìC,™¨¸å¿=¥n^Ë)˜‚Èê”�ŠOì‰ÂÁY]õæÉsq•FƒEüÅñ€t|Úãñ.ü!YE€¼Ä/°ßú´s¥X½¹ÉQÖ”‚¶=Ù¡�ÁfO/ºo—§Ÿ oøì`è]�êÀšíØu˜îNõRä© ¾~‹_` dXG+ ð~n'WïæišZ–f™Xu¨§:þ-Ü®hõ†WTæ ª‚|S¡€ò}Ð(ÇYƒŠ�U_p"õ-q$ÉÛ‰$x¸õÚçÉ­vâ[ ý™éâ±s›ªwï6ùðg¹*Æ»R Fî¼ÛæóŠÃêÝ •ù\Ú˜’lIYCŽù^8ý$òÞ(cjú™z÷O*aTÃU—áäRÏç,§1éÊr½N£ÿ•Ø’Ôq—myÊd &þdg =j{ïS¯>r¢?O Ч ޹Ÿ�zh„Œ‚GŽÚÄ?V%â„ÁýÀi%Ùh3ía“pÜ¢ƒê"mBHO$Ží *_“Å2Ïù5>4Á@EMÊëÿÐZí`ÐÙ«BçÛ¶¡êuK>1äoð%;zû+¶0¢¨F¼‹bËyô‹“öi¦îr¾¿nÚe/ôþÐ5�—5^G�Îñ (e’ÈËî6Z±BfÀ²¨6À¥Q«(”âí&ovŽ0¾fC#k¼®çõ toÍ®šF¾CTØs4^ÿ ¹”<êÊ44M“aXªÇ*© v„6;Ú’A.|{~ÀK�?[,6náäY‹«ƒ°IŸÑžN‹—ÿ!Øš«P̉ÊÒ()† ½[&Úİeê]ô0ä)“è}à:”ä´z­d`;$_ÜÙ—Gk–áõºuÑlÈØh’÷îúððBkžjãÚ£f©|+šjv bШpXIÙž jx¢D̪Ê"µçç>𩍭ÎÊY’ aZ¯+ STtpC‡40õikOüz$ †nØ2ŒÓ·f‹Å ˼‰†< 'Y™_VyivÚqžjäµ'ÊIð: Q-†êP…±†i ŸÕè D`Ldo~j&Û¬§êgÁ‚•÷ëpCp5Kph²":£+ê>Hné#ÍHrãkw-)jN` …ÛŽ ’»Ù¶‹qÕÅ� îê÷šÕ ›©8xaˆ´lF\6£§:î'<;1!ÙÔî]€Ô5 Iq3‘Ãð\–Å�oËÝ|Þ#¡k ½õm=[;°È?;σ˜xˆRñ ^ß9+ mï 3 _uj¯ó˜,Œñú`݀Ħ§á ´›÷åCëZ„Q2¹Á&ß‚cRÿ׊þ†¶¢p¯6‡áþÞ²ßBåË�xKn´ç\z~òñv"šý¸ øIÊœy€ÇÞã.=‘Å ùj¾ÏöIyÞk‰»�õ³¡f 0¢üNºWŸJ"uÀBcxVEâ×ÌkºaÝ·º±Ú˫ݰ¼yƒÇ˜zú@ŒJDu*J\+à' 5‹óJ,ß7Ä´:,ÑhÖdP=Twè¾â¡„ð{û/Q–‘Ð;§ÚÓøJ¨> »N\¬¬ˆNÈ”.6‡NÖ¹8 xÉ×/o˜(¼ÍÐê²Qýî¯9*ÑÝOÒ"~•5 T4J’ÁüY`æõ·êÕ¹kL§H3àh* Àd„¸W[as\Iù›5  ˆ‘Eà`£Š€›ÏUûT]ѹ—çý¬9úÔïW5â£ëÑ@µäÔ�–£˜a®ÚÀ¸zØÀ§ÈìJˆI/O†/8ÁÊgãHbCe±ÞÏãØR_%„bO‘>–E'”/«âüdßü,ðÍ g¬…aŠugȺ�8#ÿ÷AwR�¢æþ3Å9ÁîS°GJáÞ(Åx¢ç…R¨+In$Aå¡&�"|@Šðÿ(Â÷£¿�"|>Šð÷(Â×£?�B}< öïè^``¿Ž¢|:Šòç(ÖÁ¢XçŠ"+ ör(Üá`ï†â< ÷j(Ü£¡#x"(O†â¼:Bäî½ÐÜô`¼:‚›+�·ò÷õáß_îWÙo~™¤gÖ­)M•Áï Á/©ˆ¿ª÷»±‡¸¤'cà# Àж1Â÷*{…¯‚Ú)·éú° !!õ¢$Ó_¿èå(“’’PD$�pL#u M�¬Ø²MRã2˜sÇe-¨sWÊy�鯝Qü‡èwÊ»PÚ+ÅZe‚§Å:˜£Ú _µ—q+ÝULü©‰l°ÎÓæŽó­‘Êä·;Cø1¿c�+AõG-j4^ofª{‚×ÈkÈîiçna˜IKËÛÎfcýŽ Þo¬5„¾ö<€ Ï‘·Tw-Ä„‡G 9§IqbE é�4±|†æ÷ahþiESÕ¾d.UtÕM,¨XGeÍDjÎÄχ)&É4D)ÕLX¢Ggâ,œ ÌP=ª÷ƒ;Sça³o~ÂÒ™nf�c æy»˜# i: (PO4D„9í`óNÕÅÌA(“gïÕlÕvø`dƒf–Ðá˜¼Ê ¢ ï6.µs |ëkC++ˆð,¨aBǃ&\oºe8Í0…Ä™Núˆ˜02Ì xE“åö•–å5¾;�KD»oÏk*Hîùû}K�£ê¦hŽº�˜Á4�hLü Žã¨zÊ C6�CªÄÁ‹Uàð-@Às?986Ë?ÆÀ�E«˜ÝÃx �ãŽC'xmØL±q½XkvÜ;8ªoȰßï×9�Q±×I÷Q‚SPäT&/jrþåžœ�Ï•}4O„™ø“:þå>ñ«¤Zp�]ËŸ@ª½Ù¤•‡%Pø T”°„ ¤4kJÁ÷ Â%Sf&ú—±,m^U0Ö„ø{£@L¥¿9 �µƒ8=ÅûP©cR¦LÔ¸ü³“+ý,2¦NcýH©äú;OJy )€Zú+©4P»Qø¥Iɇ›*,v8šHù»\-Þ’±?ë «÷ζð«$¥v?Y Jãòœèjj Õ“g2®¸9H½‰3 ð.މq!�sV|hc(!QH’"8ù9¥%…|©×ÁšJQ53cÌ™™yL9¤ ©[´Q!di£›9Ö¨³¨RN  °æ\€Š)/c`Á– ²e–”x¹ÿÖyjæXŸm¾3IìýMâ?Îø¡k_\ŽŸ0Ÿ4UŸ•¹à;€¼}‹ŸÔåoD‘éND™ÁYi]a9x"ùÈ(‚Eü•µÃê(;¬ [`CHwTÄBÓ2lyè)}£Iá¿“zÓÁ’M„WÐ>ÕmÎ¥»UÁÁG/‹‡–öÝ Ml7m#D@µ1 Ê®È~~X-TnG s-ì=80ù9P~·�þö/¬˜D!Ô“á €Œz …Pïßæˆ ÿCg3tò]Z:q$AáfÕÃU9¦¥§rëƒ“Ä %ANÎÌióc©H>•T OÕuþ³,_È»½ 3’ËãXGd>¬O×jŒ¢8»àã¥. Ô=Ñ$GRÐÂ/liôÑ Í9¨�*NbQ¦a$ÇA2bU¦5¦L]Ñ76M3,Í6lTG°Ç¤)Àúy)€€Z0˾�þÞ˜`ÑA°Ä!““0lN+t·j„W÷�)Ë驺'æ ϜŒ1_Ä8û™Ç#è„@¨üƒŸ'͈× Ûˆ¡3*¶†“*&fÊZ~×r@8µË‚¥Àj‘wnôia�Â&£¢Z1O Ó8Óâ4})3 Æk¦ÏæHî&ÚôñŽ«)¯u¹‚ê•=ï„ô 0EdS<üzeP  ½O¢hpïç˜ÞœЊ§û¿xøµ õüüØÄAhûïŒ]´nòß|þÉ/¨Å:Š€Äñ«b5B¡˜ž�à -lÒ—öó)ENÅ­Þ$µa‰ý£UFrB,ëâå-Mâ�ÚŽO'iáï-R·¬N·)Å$æÇm²”Š;ïè"dÕä¯Ò�-ËS¼P‡lBr°†mU-ª�ýØL»«x�ªúy"Wˆ'rÁX;­h¿wyAf‘~E�0_•¾DZ|¬T·ÔÜ|Wdòòmrò£d!Ï!Þ+|á�Ø$B¿j̆ NÕTD12åÉü¼~§ïnºZ7ÃŽH,|oŠÌJÅÂü¼�K–sJ Ѽ48Œ‰h¹/:¶ø Y 62Äveê×sz8Vl²�“ð1 T ·ð#ÛÅ+RO8D–¥›’œqD;Jrt–jð¨+º‚˼z{¥Û«à2\rD+!ávjøû ×(3™NÃÌ¿�ùã�O$!¹_¤½ö¨aÔRÍø6æ^7:�™¬uânZëóÐlÖã)> bÖl i:¢¦³MZǦÑ*Mš[Ò$\-‹yR¿MnÅ2LxöéɺtY/8Óoy³eɇPžP¾2WÃ:;ÌËl{RÅa¯K)ìË *I*—ü*ùtc®ÂŠf#‚áF¶Mg�,ÙæÅeSËЊá›—Ä®ùV§TC¬ÕÂ�<ïQÊZ�çá<º6YõwïÀœïTÿ^Ž篒 ³Æ�]#€ê7)°,úwL tO ãu±g :^1Ø–¤™£ÒI }(À�áì¿Çr�ߦµÁÖÍá¶%ٺݘAÜÜ”"-Ðc¾6eÖq¤§‡�¦gray>­M)\›[®CDâЫ !~mGI;�I;L~»â¿êÈÒœ~h—ÅGÕ”³úS¾’‘÷úÚoQ\cé+Ë@{Š)K_ÑØ�èË@ðü6놷B% ~xó¾BëÏŠ*m>ÕkËa¤ß£¼æÑºú1d¾þ‚´†!–#“Á›R•´X/õ:ž`¾�[Gz¬ƒ«Ê¹ú®,èúÛߌº—€ õ²Œ&«Åzã¸îlµôæÎ7gî=:Óñn¾Õ[)UjîËk?gæF»ÎmE9Ú3ÿ(Ô-[ÛQ|™ß«.�~BqÈG&iy›¹Ÿ–ÈåG/fã~üy %XžïÝ}jŽøPïE᧦!Ÿbe•ϦUaD ŸM[Ù˜[§jzÿ‰ž|zúÌööWº÷T;«CñÇáÙÛ—Á ©Á'f…'õÙÅÕ¤‘3O÷³:3Ss®ÌþŒD>=�dï½¥ù 鸭j™›õ䱟}fUP6Ý>µUÑ‚7§ãÇgñ~~$ü1ÎäX|Z]¿±Ù|ú6P1]¢¯è,¨Ir4ä—Ra=í}€’™rfý](8O+â8 ‡ Zì‘ð—ž�Ï0»­¾b‘ýšf´/bÿï�/jÆ(ÓŽ›Ý(Â2fÿÊAó|:h¾‡æ;æ„„C2ò¶34ßuò'ûO÷ã"h26E\ngË�3¸š£é|ç>{óÕäëg‘O7ãÅ'hÞù¼ žVÿL ž“öðÎ�WZ±Ô”9YLÂ#HD,OûÎ&0‘¾h,èú§±¡îx·Æ†ÖàIzƒ×n ôÚMM0Íȧlö}$´à*V¼©È¹™/øYìb‘¢ZœwçŠSv‡ö†qMµ§‘Á4£MVïH>íëH²ž§L½Ï¸Q"ÞTm:„ŸŠøü€Y09�±ãë¼dfÌÂ<°((‡ü?ž8“&M&¡í, Êœ%ʢ̉nkíVL±Ä'2žÏ=¾Ð?w¶Î£2LˆšUC÷�§/$qÞIP]¦D:áË«1s&z숴­ã½MBQñëšn�㣧²Ó·dXÒrŽŠ!(§³�»²õHBçÇÄYog«å„âϪX�ü�¹iB<K¸#l†;­|p˜„ròÌHwéÇÃq²¿j#<âË$©¶ubä“£ÏÈ:ç<û‚T�—æ^’Ñá¨­Ó4Ð.Ï’W欄.?Š4äбÎÓ€�Ôk«`½DqÜÞ6±-kUü=æÕdÈ„¶'~{àÚFg’–Å�UÉfyM,Y­³bŒZQ¥7tÓÀÒ<“UY¥ÑªØ�ø Qƒý¥:bç7nìÊ»Uνþp[¶Ë)¾’“ —é6õ£jíÉø}2~>vÏ�éôƵçåï¤ôŽvìlîäÉ&ù‰éÔqé?‡ž¼ËÈŠŸÃÞµè3=õ ý |ì~eÚ;ûQòy©¼�êK&ŸUX¦:�eZLùNõç$ÄØÝ«~ÄésRø£Ž?˜1ŒŸÑ±Ãƒ³bQLË8þú€U£þÝ ;V¯ õ?$7_¬>|um[†ä�#ZxÕˆä=DGfú(Éu®L# ò_.|ÒR¤±¯¿o{ËwG4ÿX7:YRŒV«¹3^zîv¼uÜŽn bu�Év²q†¢ãË;ôrMY5þ€øÚ·D¬ÉŽÚÈ�`ž=s䉟 EwˆS0Ý¢dª›Ú¥Ù`UÉé†l<ÂÆ0íBfrH®wþÜã |]þ:˜Èë¸Ä…`«¯’ ÃF›° ð‰p.6ÞŠqÈöKÛAŸìɆ©×®¸½L�eGókV¢àûü1c:W–”-Ÿ5^\Ó%áÎÁÇ#Óæd«Ýã d yû}˜J½bvÅK$ö”b‘Za¶åZŒx³åÖÙ¬Wó1ßAó�õöY½�ÖK& ®j¾Ï"¯µ‚ÌŠx«foõ§ñžŠ¨v"°ÕDþ¾ðÿ¨­û+R ›=QK~6°#¼O?�ónQmœ[ŒüÎåZáFÝóù�^%5+C¬&í9,€c%ïJϪҦ/y±)– ¶Ü6‹ªoÕOšy{!†$ú“Þ� ¢GT³õ:T'š·ªêß狵€§®kþÝP› ¡{RÆq«!À rÂ2Ï"6!dþRnO’–HMh™uúÔ¢«dƒ ìÀQ°gMŠ®£ŽëQþ]7ŠŠo“KõiLÓ…Bƒí ËdÈбZgFй@dFѱ×�!/;‚W ͊㛟ÛÔ%ƒ[Wçè>#nÎÓõÄ�9 šcË�s ÊS G‹™ëΖOè’�,iz¢iXò¼ú9š�÷qÏÈÖßrT¶áÞ@e ËÄ~왊԰F¾NB©Ò�tHHC´b:rrÔæ˜}Sfšÿ.ÞÓÈË èxI¥ÅІfQð*:ž õ’è(®ª° «ð{ù×@z5ÏWœòô 䮀Ü@2ÈVþ!/ßWÿr_M2^Õ½4}UÉŽ#Ÿ‡ûRZ�r#Ëg�;vÔ"Ó’Mã•iAÀXù˜Ý å«Sõ‘Èú¢æÈ®è1:}‰²(‰ öOšù¼°äÓCXPt¼G¨‰wÊ—7:ÑOêéÅå^Àå¹óû‘òÛm¤o¥ÿØ­¶Ž7žÏU]S-¼˜-g‹1°\-�ôr·p6³ ³]î yp·6ú»&7‰´Ñ5²b—Rg5Žò?Í ìÿò996?IØà® ‹«Ç…3hÔ†/Hn[xX8T>b‡Iô­ÕnŽšy¯‰�*[HzÕ«L½Ò2Þ¦ �õ§†oqü°O«ÐL âO…¡¦ î· 參ç倪•IôÞÆôÛåQ8hRݯ&^I‹¼Ú…hMîÛ^„üy¼ÙŒêR¸]¨ ù±äÙt[i6÷ÕAb:äGUŒ$OÛå:ÁüPèCttV[‰+œfÝ͵ð.Ñmìª�“G9ÄGÞÉç!Ÿ�ù“ÐΉ´8Ý-'ÛŸkÖf&Sn; y€Ñ>*¼ôp¨æØ =|gð¤nôGAì’çøô#êùIš|œÓ’¢Xꇠšˆ@Ú”¾Èø? ÈÕcÊj›W~Sdª£Óåš ^¯™@°lŠ>IÏë4J:†5¶Š;ë-V�J‡XƒŠã 7‡qê‡Kéÿ’Œã'RL¸ÝX‰Wÿ`ðišŸýË`ed‰Î}ŠA>o· Îkhîæòó<ÕNæ p#þGõ‹ÚSÔ‘ELðã]òV1� zë•8V«�õOܰµþ€)·Ùν§ùêA=·ìÍWSM fäùqtL >Q_�J2̾Aì¤eaA�ùÁ mßßgK\Óû%°¶ÇSåM«€R†ÉH›±grø�î5´k–½·÷)Á£EÌ-þB2–B¾#Kqh[ÞC}”²~ø¾y«�öô›¤ý�ŠŠó¸<ºã:à”µËu‘ƒš[…ùù±™ä‚ªª& y.⸣ X5#ÜK¯åg™fº‚àæ® º j.17â×ðÁ†¡C*ÞfèÞ“TT]Q†÷3·�b4Ýï³ÊŸÇ×{xp•Ç5ZÀ[DtY�7�@ˆûÕËuÀh[Ç"vó¹³…a&_ö8ÞlVß�çiÍÐãl¼X-�Ê=9ìÔKÉzÌó|¶ê6óeø%/¸9"?óùdµYÊ]jƒB�Ûé‘£õ (?_Ì–; ‚"6ˆ Ý€ Ìý (ÿ;PþåÿPþj`™E~# i0µÀpà|€ —Ù¡yuµ·Â¢­ïP†h‡2D߀FÜÏ·“çñÆ�™Þx»ÝÌvUè(SÔSî+°šC>�çdëüee²š¯ …ÌäDüyµ™ý¹ZnAÆÞ›-¿Í@e;c ¨�ësg *¨9¨Ý{ËÕfËóz³Ú:�Nç›ÃÚ.2{z¥ánÇËÇÕ„Ù®ÖñÝòQ˜/PFXη³ ¤ˆY‡Ý®–¼Ëƒ1“íž�û<›‚“J¼ kÈ_�G8�ÕÒÃÜÁãÅóÚàÆ™;c’™Ñ5Feaµ\ <3ÀcÈT²í(fòs¼„bøÔ ZŒŸf[¡°õx/½ ¸‚¼ïϳ-¸ð~:s�­e(@^œ `´ûêüôÆ¿å‡É?|ʳ6ì®Çsž€€�3þ „lÇ0ÄX¸`áNÆË‰3‡bàÙ`öo…¬\`NV‹Å²"AëŸ@«ø-T5p‘=N€òÀZ|\}_ÂÎ ¨’­ §>µ €¬æP€ ü˜maˆé?€ò3hAM˜ü³3_«°‰C[Ç Xq°ùˆ@SXŒ7_¡ˆ@ó ™KÍ€=u±ÚAmçbõ ˆX‚&Ò±g}µv–P�Lìãk¸fl2ðm¶ÚAÚÌ–ÀRcnå Š˜:g õ€ŒMpž¡ õ| O ´žTAf“َ7ð„vPÓ\3àw ío.ØCu1Þ�‹ò¢\¸åbü(ê¹P¿Èesõ ´2ÁžŽ ö[\¸âN¡ò`GÄ…{.ܵp¡¾… w\ÔÐìÂÇM>pº¨AÍÅ Q.bŒr7Pyð æ¢F1Ô¸s¾��.b pwînlÀ“Ow·×F3x2;€µá+æ€Æ¿8ÿ> ¢¨ëˆ�Ðô‘;×Z[ø;àC×˜Þ tq¸I×jm'pƒÃ=v­{u¿`�¿c�ÿD±µø8wp@g�Ä-ÿ@W[$Ð� �Û,ð8�"qȾø„Ä=#«bŽÌßrŒ´nKd·Xî�À ²DÝ·Ââž‘À5‡íîÙ ÝŸÈ�¦ÓÃéî�•ÿ Ù�üX{ŒØ\{88¿ë™§qÒ®}Pä1>ýˆúqN O��|+»"Œè>ö“‚ ±,DÛJ£cTØs?;ÙÄé›þNˆ Á™V­ ˣĪ2޳!hbb Ê,³+ÃwËvÀA؆HË3ñªç½ �ÓœvÝRìý2Ì;žJÕ É`ˆÀOøÝçäH¤š@ô>'þ ÓñªkùhæGP5Ù^ÇU05ŠUŸ—åéÑã1�áPz"qŒÂÆþ‡—–EVBNË,·œR " ßô¯Öj0¹O›8ÄXWL25æÅ¦sˆ}z‚BJzŠ`×.i *Ž,ü}×=-�G)‚£èÇ;n'?> JƒGæÅØUŽ#ÕÓƒ’Àã#Mšpž(@`b8æ… ‡‡ßƘs�ƒ›W£D=ÖÜ“·NC(cƒX9Ö‘ (Žáv‹ßž‡§ÕïõÝ!xÇ7�_ý=û8|'~vö¹Dþé½’œV�ÃÌ¡ò–ùÀ¦Á0à†‘‹.I1ŽO’‡Ú$…ëö+C–ûo078?N ÙDy¦3?‘A½u»B@·+!?®Åý}‰à>nד†bOb]scŠ´(Ò³Ç) C’XsXÆÙº8[�ÀàIx`fÖò¬È-‰N¶u[¤™Á ùàÁð9‘íÓkº�¾§v±0“lKÁ Ó–BÎ�$ EѰ)Ì\¡,1Ø‹¼°3U ÆÎUºøƒD˜(æýa€põ_áZRôD�b'j1åb˜2CIáç¨)OŠ#¤pÜæa½+i¤B޶ìÏ}ªŽ¯Ö™f�…)Òvöož×²ðW³lðG¿8‘܆�yÉÄ¢¬>f7ÔOŽ1´£#)±DÀz7S”(Z@uæC;‰ãó§�`0“5å{ _úy N „X-ªWþ �X—š–žÕj9Ç“äOG/¾”¡-‘‘58Aúî—Ð"Ç!‘@fRÝÓUýÈ Ô>ډܿC$ ™`š‡$Gߨàtô1j1ñs,.}A!ó"e“,”¤1Êþõ‘e†À2¿Õ'Žy q‚‚æÕÊÈ—�ê%H(4éx�¾™†]ï?v£ùv"ÕÖHGîÉñã Å™’f„…ãªE}8ðì¿csÉÜ,7œ0 *Áw$¸( Pö+ cî|&!™ N”P,ŽY.”ÙbP’X(Ò�aH4‡£Ây-Ò28‘GÀþ†Ç3{POua@6h¿Tì[³ÕÁ^Ñ#Ùù‡KÒfŒäÆÓ²@aË"'‡œPL—c…›ãtæHñê%›•®ˆsæþ[Œ‡b“Å–ï%\1Hƒ<�c4ÕÕøÒ^�×ïÖ±…Ÿ„$ ±P\ã§åg�׸/ÏþÄBqõ‚�?à­Š"�þ�ÀâJ·L,À¯`}s¿ÿøfâË/bIEUºõýnÁ·ýMû¾êÁ2Oÿ&É,á& �/aörÍ’¨ø¦~¤ ûõ»·ZÎUÍ{¡‹™ëª€öBù;f´ðÄñOSg½$> #í‘atQfÚ¥å^xów,Aó:,ŒNšyŽÖêŸýbÏÒÚ‚À ·…º~+>ª:­ü°ÿø©Žœu�½Í–pÐn;�ê“´Š>Üa�é [•=éÎ`öÃÙ‰ šš€"C騪zú üý¼ˆ¦�3E³HeÈ! Í�æa”ø1ÏÿÅ€s†b°-»ü3ô!/¡fÂÑ?ûïØú?K�M“â„w�êÇÒ4.‹j÷“:ë¤tocà ækÆJ8:Å6‘"µé_6�ó£ÚÎ@ÔS]Ê@#.þbgÈ+ ´1a^ûãï4!hŠ =ï#<¶¡^ ¢Hð‡Eµ�BZ “>¤ÒĦ=À ØæÁ ‹Eçm8¬Hù)-mºòhˆ2µ/O»ÁVü?àJxä)%Aš„v4‰%¼,ˆƒ… þ’h·š`-<ˆ oéEˆ¿Ø×¢�/RdVÖ`;«bå]þÆÃS[`åYI†¿£ä�Ú´¡âïúx&J�²† ‘M—fðôpÐ�î1d°oN¶£ÒãEx»–ž®�—‹uÒl4{§ÊÆ�±s?,ü†| ÁÎW°ªí‡i»!Újx¶ší†‹!ÁÎ óÿ„$–×`�fLàø¤‘"s, ð=¬Â_º™¥"èÎ&ñÖí^Ò ‘•"-üØk1AÛD½l†b–¬1£ñø>$àUÒˆr¯áÈnØH� ª¸%[Ø�,j —Ôþ¬ÞñÚŸï7»ØoayÞƒâ?üú3¼ \‰ã§°Î`+jHšÝ]û;Œþ˜” còðFG`ñ6˜C”Sí^=,!ïTNÒüè'ºãNz yàHeÖò¿Ù¥ ¶w‡H }&�7i=¹n¢“ü  yHYAdé¯8*Èï ‚ª0˜tš?ù;EÁ)Ü¥D‚èì«#6TßîsTýþàÓ(˜ððï…ª.Ûð6nû猨�i1—d ˜‘Óå0öƒ;œ¼^p%SÒÕD'èEú{І!øIšD�ny¬žEÌû¤èbâjA ‰&~~±’ýA‘û– =g~N¬À�Ž º*1 €Â;ûG,Mö�Gzè¶/ÐmcˆcHÈQ»ŸjDÀk Ï ¿àk—‡+�»û¬c¤º•°>º0zÕ…­1ÄzU�Tž Y8,yGšÞƈ  Ñáìã’�¨gi‚Ã�.%h8›¤Ù$~‚ÇòåZ|ÖÙ¤Í{, ñp«´Ë½eÖÿ&yŠÇHµãôøÛ?ÐÐ=É;‡§ bL%¯$/ì8ÒÜÿŽ%¨ü`?¤Ÿ£ ´JµDúç2.¢,Fú!|Á³H]à³Ø ^¤o~ŽléÒ hW2zá"h ×œr‡3àóžÕAÝМè�ûWé'ºÄr?Œ�ý2'g?JBl¦8ó[},ó÷±£~ž–IWƒ^Ꟊ'J¿<ãT ü°rP¡§è€ è/ì †|6Ó �è"õHr䧪bGQðp¶Çœ�DäÝFDvšÔ3nPÛy¼L�ŒW’*ÌÈÿ*iõö4•%Çú[îQŠfé8úÒ‡FÎ8f¥âŒZ©¸å@¬T()àÆ…&ù«„Ïö/pÌrųØpE_l¨áàr Ïq r-â ‰h 'ÀO²[ ˜9r Ž›d·À“Í61ÓlÁÙ¤�™d·áViã&Ù-ø$»ÇHµ“ìt�Fâ&Ù·˜Iö-GšÛáß±àIv ˆ�À“ìŸ*v®{…‡Ï÷®à˜¹nC€›ë6pô\·fÀÍk4bæØ@-¦~ bêWcñ3·†1sk°ð™[ý…µLs¯E=÷²&ÀLÞT4¯~\â�Ó�ÍÅDZĹƒÇè5âñd>þ¬dãD�êA"DªSî³®2"¦|°¬>�¿9ÞdµÜ:?¶ßÔá:¡Ûç�3~t!¸™ã8­LªŽ�tAkm½Åø‡÷0ÛÂÒNš&i\D³„µ¿(Ä•/WÒaÿ�(É1ë�3afK–Îl ÆlgËŸЊùM‡XY Ú¬vËGïÿKù®}jâÌæš�6ÝÀÇÕ÷%5�¯V8ìy<Ÿ"SP盃…b ˆá‹¨ÀÓTn{JcŒÚqܼxVœA‰ùMb$–"Rsk&5ò¼0 äu)ÕÒ"-B\žj°ò¤ÎÏH£ÁÌ£Š­ø7/ósÿLa1Ô”uýS© ½‚šIvÌÖtçˆ4ò|yè…|Pæ¨9Œ®� rñCõÉ4'õâ\%„õªêêòæ©)Bø”æy?ØWõVùíþkõû#û“¨Áµ‘÷�î•pö™ýÀñ kë�—øoð4e²C|áï¡3×›<�7ãÉÖÙxÿÙ-¿ê,rs2Ö%¿J’dáÁ XÓ7Ø3“¡Çß�$´ðξ.°¸1¥~ÌÓ2#¡—fAjš<ˆPèÅ&˜Þž Ÿ/¢Ù¯2 ^ºv½L‰†  lÖ:˜Bâq.òë·AX¾ ¬«ÊOòÂÊ0AºÿÓÛ„B‘¼i‰+ ²Å Œ¾9ëºiN °2‰륰$Aî�&®j¤ˆ§Ê~{`ET�ÁÝÛ³kâFxÄÿ“îÿRÍ.´˜Z³ûæ¤Cˆ‹W^�Ö8!±AÇ�6�½¼Ó¬/CöCxÙ¼ ´kò#??šdé’“,GÀªç‚!¨½O‰4×8d}=‚ |Öy½ºüáÈË¥N–°‘‡Œ¨÷WyΘ#“áh (ï­ h—Ó4C´W\óÁ5�,¥bÚI¡@ù6"®T–›§u[Ç^cÑH3S¼àxöÁò|%) gŽ Xë—“Ì^É4¼Xåpy¨ÆCQãø¼×G£V@ˆ*ÅÞT˜O b¯±V�àÏð‰–hŠâþRtiÇÆ¸“O Í“lMj�¤ZÊ’÷ÀPò�SþªÎO™ˆæ$6-Ï™¡¨X¡4”5µ�ivö33ASJþT¶èß¾ÌóÈá@ôñâo0EYD±Ö‰•_®l}IËÐMN6Õ(Ô©Èo÷iT¿OV‹õx3sWKo:?)w¦Úmìãj¹õÆ“‰³Þzóñò+_�Àl7;Ç›®6Þo ²/�›2I4‹Z\L£˜¸eulLU•ØmUÜ�ô8fÄþ}ÙéVÐíc ïþ9‹õ�áö𵮺‹ ŽqºÇ'VQpͧ~—ÒŽ+£2˜Áë°Ôbt”ÏNÚPÔ½ÅÑÜ�€6b‰¶zrÙƒ_û9Å¥,‘bÐoÛ<œ‚¦Ý›°<ÿE€3\äè º7V4l.ž²©ÃáÒ?�Y©™„7O„Ҙʄ¼glÜ&¡GÚlд¥œ¾D™m­Ñò|ösí193–:¾ù †Og>Ÿ­ÝÈÓp.&׸§Tf®ïLán�çÖ.)ÐpäxWÃÓ¬™× ð4-ó€ áo>"ëÓñlîMÇîRų§åjãxÎî Θ;úèl„‚,ÆóÙŸŽ÷ýy¶uÜõxrGWe‘•ÅäD‚ U¾BŽþ§—Šß`}óšG2ˆåu’ó ÙÆY¯6ÛÙò îÙK¨7yœM§Ü‰ãOˆyÓÙÆÝz¼ í6‚dMÜý:[Cä…õ$´Œ j$-<žœ³êΨsµYø€mIÁ¢ Á±kÆÓ«óª ¿ZÁ�v®Õ\�×HB†òµC>=…�äÑ<€srŒhArO<ì ˜¢L¼fŽzåCXh�GY!å 9wÚ¢‚ÿÓN\GÂÃÿSï€âô«0�°Ë˜k‚äWÔ‘æÄ—»•ùkpⳎ¢WItãG“ Ï­!SÐhñ#Ï#¿4gp€< †GÛD´OÃ� ¾©&d’¬c ÄÈ'±w¬vJŠã-Òõh·2+Îñù­š¡ÊñŠNìîÐaI‡ªž(¹)Æ¡Y¾ƒAøîkz0Jký0ôü8òuFߘ¤•;+š:G`~˜()Î~â«›Ö£}%¨³Ý×BùÏÅ…\cÉ܆¤"÷Ü.œü$Œ5wŇI…~z*⌕üé“R Ã§ð Jçþ›xz×k5Ë›9‚uˆ¼K»žÓŽŽR‹hºHó¹"þwšÿ{u€kJ=?ô¯B•¤òÜ€5ѯ2ÍòGÅ#UwµÐ´üøÀ¯Û0Hç ä÷tw<~ö±&[¦Å”ÿõ‘Ô;®HÖ)?{÷,†÷9óf”÷×()ÅÝ8kvI<�ØS°-EIõ=� kªê&áƒhó|€÷Ùô%§Ö¹½â�“äXœ†å\³Á„yqC‘>ú±æZø1B‰„5™¡”ÙÏ¡xlÛJE3H^DT¼œ:É+‰ÓŒ Ud¥¬YH¶6qr ¿×U¤P‹‰~Î/a¿²>¬K¡¦ä­0�ü¤ø¥ñ0fk™Övv–4éX³º|ço8~$ µÓ1>52š!êò�Œ¦OmJµ§|ÃØOÅŸ!HºæµpÆ¿:H’A9ßr]”$cÆGq²<¦f¢®€Ê^.Kt- Mã¯>>7$êbnshÀýK|f$=ë{f$}‹{&,~–Ís’Þ­N’Pô&ïRÅZsFÜA´$‘›òù™Î†V v6¸Fh†yu‚£«å]“ö±7 -ss�f}«V(îP84^×6ú”G.úâ’’üst6³INQ‘ì_ú“-Ö)ˆªCÒóYË %r!df†û_Ÿ£mó¢í±EËã¾Ìy,>Gë�›tµøÈ:yu�dкÔÑ×ëh^xù2|®¶¹ŸÐÉ�jgä3²¦NcŸPKÛ�Œ|JÞ¦^xP†ÏÌÀˆ[ýOO„G×6 ¾œ2h\›×ÈT÷‰[û�4\C{0’ô3†=ÉüIÞ‹¬±MËõ €¯IYI~WÔwôGÖÚ rþ´Î~æicJ†Ha1[8ßäÕ ½ðŽ—)ÿWšØb)DÉ'§P-æ ˜Æš‡’"á§·Cžà µ aÉVfÃeuL>Ã�W0×Öm@ýwÕÍÑ2¯—ä±ê3 oºöÑÍÌùòÝkÔêœÎߪ˜ÄÑ qǾþÍ–‘›¡�GÿæËÅ–¬g¹aÐQf•„¦Äê¯ÿ×âB¦®Á+®nfÕEø–N›ãã!óÕ†¤ IÜ;ðÀM†2cL’Ùèàúõya6y\©àë%EôJ†d- ?8�»ÏT@I[ ËÃæ<Ü! ‡b¤—JÃÐuʆóéc/"¹ NÍ@8�Ö|`„± �9�‚$‹âôX’á4<’¡ �Ÿ¶b“†Ùø@<(�Üa�²:ºH‡¤´E· &c™oVÒfo/× LÝZ¤˜y`Ú*Vêдí¸Q–IôÎ/± DÑárÆy®o E©�È‹âÊ[™”6« @¨ * §›±Ã»�‚ö½æ_ Âa]¶,'~j˜!='âذ¾*~¥ƒ�vôs,%§Ò‹£Ã›ÉŽ0×p²7?~ÁSñųueYQ‹ ½‹"¶Xñû—ÿ2#2Z˜€s-NÀiM(à¬&‹pÖ¾… 8#ý={¯5�VÀ¤ýsweïüÌ)“ �&ÝpÒþ‰7”Ólò e힀#Øz&áFƒ�CkpSÏJ‡¦5žEÛ°›Í¤mR0˜MÛÐ÷ϨmØ?�ÚÐ_ÄPÌ®1´CÛµ†“Nú§~80«�ç ¥5\Óö, @ùz&ÜP:³™'”Õxö %¦Ÿ3ÑOˆèçYú &€~Jo嬟�ùO0½Óg(aÏÚ�NFÚG Czy$(“¡5;©:ÞW1&B‘Ë´ÊRRÔ�}`Ÿuø'?Ëâ(hÞ÷´gËãkVͪGCzËV†ÕÓAHm8^êQ35à·ó-àp‘þCÅL>:÷héI_à…³s÷i�‡jzth¯~õŸªÑêqå… 5©9¤.mF 6Iš ¡P›Fè´Lµê§8‘êp¸Pc[ñ˜'Ÿ5Q˜5i·mÖ]êÕGq¿tJH¨�éÜeÕ,#ñVLj";�Îí�~®V\« ÅÐoCÔ·N×Éf]õî`»"msÐ"‡Ó¤lÀíºw)t=Q~œT^XG9´X´ð¾Û\æ$•«gÍUEe;�"8y½õ¡”aæäïè DyöùhécvÏk;ùÄvغicˆÆÑb]–Þš˜QözYµº[ˆצ«Ûž°jý(¯Ã5hëÕ­É�8‡è'*Zû®Òf͉¨üîxç@β8üÛ‚êy»]kƒªu"­ºkÝS{‚aqÄà £ “M®s×-PÄôÂ&,� ×`Ýyàž<|'¼ÿV„"~+ÉìÙ@#fÃö.¯ÎÄ"<Ù„õª‘õxRÛ¼*² ©ÏP =ÝÖ¤rän;ý7´Ük8ºZ=Ç�ùòbÅêŸ�k}×Ì(ä· �c?cÍ+?_¾üþ›'Ö•;W9[¤·lU ›ËÖœI¥–¥Š˜iÉÂãøù…×¾kާá7í¸X†#)®.Žc8Ä“�6!�·Òc¢^xú^ñ7–@ e6U!lj¢!à÷½m›V‹ ]$¿ÊŸ›2�ëèjÓ%Âo+¬V bSg&PߛئºæˆÂÄǥΑ£m:v'³™&ÓÝÉ2ð.‰:^$í�óóYN20ú¼�%žpëG“«°ù ÄYŸË™ëÜ` x6IóþíÑèˆËÁ[”üþÅ«F'æœaÕ¡%+ù(S�¹õW…õ—}š¬ÙúÚxÐ××àV„ShyÖ¨ZžZ²� r7#mW¢üøo¤=ªªÅTã*%D˽È��70†Õ¼H:Nüê0Íà œðóPèÚÑgEó^T<0†è˜ðI¥v‚ Ã�eT_`jÜ^ÂÓJs>ûÃ.Å�uÆÛÑ`GOÎz·�MVËíl¹[í\Lr£åxá<^§ãwËÙ;}¬&S†åâlâ~Þ³:ç•A�Ém«Õ3Ãä¸xOÄ¢n`ÏEŽN0Ø^W¸ž �Xq“츯щ“uY°"…çc- ÍÓžVϰ´.ÊÒð =ªâ+`šƒ!ïp ûÉ£@€èC딤a Önž¦«ÍPÑWpç?Îd‹uœ5ën73Pʳ¤xgLÐ&7¬Æän‘öË"5ÝGz÷öN˜?QïÇ^íåš�¤e0—çg�€�,O3’æzJß<þð¡w9×i†,“è—~Áî^^®ÖË OO#]ÿÔž åy¢9È¿ÜO9įΗ‡Ù“jéó‚i �'Ç5—~|Ü0çÅu@ˆåj;þ¦~—Xúf.;]®ÜÝš?ckŽyÏ–æÒó Óè§¹ünûl,ü0~o& y$üÙ@ä§ áGˆôb§ŽÑ¸ÛÔ½úøI@b/,Ï™Wä~@ö~ðâñpÔº õ{î;Ò0¢þ^ÒÇ„€«x,ßò<œK“©¡xl ‡$veQOR„xŽú†ž¡LpARÄê&˿ܷUñ+·ž£Zm¡nÄ— q÷$¾[šŠ79V•‘§úƪDiK�'p0D1QD‚ÉÉ�ä„YŽÿæEÀê‹Übrrø­ò–G0™à¬>ê_}»oNÕï�rëÏ›=-Wåi•+†6´z%ÈNÚ>¬…ž3„ÿ•Bqa”W©Ýêê�ð;–gý+‹fh~†•ZR4Ù¶á(“äËF‡ƒ�"y;Š˜ ¬3mE�&1ºs’¥šø§fPVƒqìqûS½Âˆåá�Á"ß’*:žÐe)ÀVµ!lªƒò›VÍ‘–{p׎’¬,´VZ|UÚiùeÊþ6«T¶¬Ep�lF-�ÝÔùßxÄyRƒ®ï‹ °¨TOiúâñëñâqˆ¦�ײQø¦žÁ@z`mªàEŽƒÓ"ÔKî„âk™ß­êˆZªÆv8Ë÷³AæúêF¯‘åo3DIAŽ$÷r9TiäXYñP2w`­#)ëƒÔ ܉¼ƒ0Pù¨É˜),9ûEõ¤Ä�Ñ‘ßîMNõ{w=µÁ÷¨ƒëMŽzQ |xŠl*›Ð¸ãàøP\´]6W?©k þz_Í—iõ7e¸Æ«�ü2‰t×·L)XûÓÞ²1æèºKkJ’ó[)VFÖÁŒ*dFó%õ‹ÓJOÀˆH��ÑÙ�-ô‘1¤k{iCÒaÍXzL•I�#ìýª”‘\ÕhM�UOëvOÇèàÕKmí´Ì€%³¡QBQàzõ ¬nKß—�ZÜp©̬Zá��Û‡ò18}Å()´¶HÙK3^ÉP†ôo’T1ÜŽ# ¿¡iöaêl4 ¾b uC¹ÑÈ) ´Ïôt‚iÑ¿ÒH¥®ʦtº‡*ú€É1PúqfòüªE�•  ¤ŠŒ}Tû"âÓ½#"žÊ0gwH t-=ò÷Ú=Hi» ”&‰.8\ì-„BX�"X¿0Ê¡�#)ÞHÌf±àÄâô%PÐù\瘂1ILÁµ”�õ�à N/ƒ×ð¯2«˜ë¢êDyGðÐd3„€€ð"¤$  Œ{mûò“WcЙO_Á¸èop5𨡸jàHT5X´è×4BT‡·�»0ëÍü2ü ‘Ò( ,ËÓÂÃ#3 ’ÒØkŪRÎ Ô < Š8-AU[fjŒ�÷˜¯pÖ…�ë²l¦($7ì…,ˆÜ;3VË"bH’<ò’sRïøt ORO¤ð Õ.‰ä†FW�Z-2FAa�N<¸šâ ^Þìó/]Y<^ÄäB£•~lÇÀø*L-†$M5aw›¯÷óeÍ<¥qõÖà­‘»f¸†vž è†^O`’n ~F)õ^ 祇־Ë|x÷+G(š(9¤p–j§“� :òó£~‹Ó„€ÿbEÀjñ-ÍC+-ªbÓí éÐ9 ËÕ x쿘ð÷†»ö3Ì®N©ÁÁ5²$ 6Ç2Р>¢j'C™‰È¿o¹ŸeÝ{:¥æÀc 4{ÇàÎÞ±Ÿ�‡Ý“7YÍçÎd«¹ÖS#¯ sgüÕTÖsÆÊ£¸jñíxëš ï– åy8?¾:M DÓ8®W#Ü}ÚõF¸óôç�ì!'äoCÙ£Ÿï«»³&¿®^´0à­ç´æâRmh"éþ/VâÔP¹`H^½}`¡Ìˆ§œÐSõÊJ?$¢Þ�MÃyèfs_1—ï>,|#NaÕMáY.óf]ï͈8¿ï·{¨?�¼‹s/×»Xt×ùÕ(_ Â!Y±¤o`hˆ�¿|*Èœ}xÌûEîxšGÇ(± Þ7):ƒtö’”I&Ú*Œ¢à‚æ§  ÍÔ'Ìä§ûÁOþü$þèŒPß&h! sQSÕì5˜¤ô ¸Œ»8šÂàßT¥!~gűf~÷ó¤òw4¹»°´á­¤ÕŠja%Õ:G*˜öµÖê›*ƒâ÷ÿÇÛ»õ7Šc}ÛßÈÏtõLÞ™CÇÆ‰§¼kÀ©ª9Ñ�€lÓÁ@#Ȧ?ý+±±qŒd­%å>è®*³®¿„¶KB›‡ÕÖo—¾t‹S>;„ vÔ�Çg×T[$µ£’[‘Á©¬ª$A'êgx¤¸ÈJ_DŸ¾k}=C©ðH?qê«XIØ‘t8 ‘àîL’ª¤vÞ'µSà�åö9N#ñ—(;ÒÅ£R:ê… âR4˜cI,ÈÓÊ ƒê•K†MLtZb9|A+Ï%]M²áµâÁuß(~¤, r©G~ÂNö]zÖ1ÌüÖêÔk¤]Ѥé-A~�-é^'S÷`ò&Tí2^h\À~–gb©÷�½¬(‡ïˆð¢¯n÷ "‘ìŠR�J3À¢s)>È‹_-ÄJÜÄ„ÄD@6Ó�Új¹¤”å,)ÈEäí`‘_h7öò»Ú†íÓà¨eÿ·ä%ñà:öâÇû zàÎÚmƒuãïøS£>rU俣ãÀŠO-®»Í ª.�Qq9¥7ôêvðÈrèš·1B™,§©–õ!`°¡80kYKÜ>»*iÝïA²ÏЏ<ySñÄI7«úiòóBFÂï«€w9%mæÈtž“à…~“õk·°Ñrü“LçŽçÉ)“Zß�_h~ã¸Þz…ƽñw†K5fžjÌ0Õ˜Yª1\ª‰íd$Š÷”•ДòÀ³ð…t ÅtC­QéBh5vŽ, ÄÅõ@ßÑáªZw5Ù|äƒyŒþÍÈ”¾A‘üù%Ú}#‡cBQ9¸°±Cð‚ùöíŸê_wê÷cÂú�àâÈ9\, 6žÿúí‚ÃQ/UÏYYk˜üöíߨø‚²ƒù_þ‰xrí™4¿òÿË/ðé‘W9ïP,Ïr‚ ©’zvJæÍ ¢X*HW½Ü !i±…•&A¡êüväCI”äÏ�¾ŒÛþçºñ×ÕHüø¸O†„gâÂô“ƒ3؇KH¹#T�–AEïF+)¡”ÎŒ„Q¹1׈tÅ-§ôšƒÚ+¼žKcþ—á2Æ\—1ñ#M˸Œ)“c�…š‰ÅιØ}÷­K÷Ï^ëµØµJý—�ˆîVAüë_XXDýÛéM *ªùãsœìë¯|…<á›çÃÉÞ>{ô—‹ÍIæª�ø¬"Ç»ï *»vúÀH¤]pT”e°'ÒoZ@Åí¨‰vÂb.ä±-¥ºèÚ}Û®6ëTö¢R¥/iö–bŠG•‚ZÉ2—4�e>Ð.ò}³”.t>s€WeÅ4�0‰»Ú:­æùpìÚg÷AÔ¹h{úHp%öYeRo“òxI{¤Aû9ÆPÈ¥U­c‚R‰9ivdKN­J4.­Òe ªú9 ’bë9T‹§ý¡ÎDfENô y‘½^ás> ¡Ä²|§kE/¯ÊéÛP+ÎåØXΦÖÕ:Z¼ÐÍ=Öɲâÿ4�sN�†I ²¤Œµ‹øQ͇Û+›FMc5='­Ëì2×;Ÿ’ˆË«“¯ÍݹAæJ¦õøZ‹Ù«ŠÄ‚P/Jæ9(]Ê“9²½�ø\V�—áƒçÌŽ“ï·i±““g®Õ&s¡çh‰y<.�Hî:Ñ¢ÑðüØìõ=¿�ð‹ñ.ñ<3r✷-ËH™× ‰£­»@KÏÞϲE&ßBpSc••mÂPü»¸ô˜•t³Ð‚TSjy¼Ün…Jh›Æ"—Ĭ�Äê eÛÿ ÕêÑèFœ�f‰©ŽßžÐâˆ3€cƒì«Ç¿}¿{p¼{C¤ó³¬zeÙKLÿ Å0µ3‘ŒTO�'õßä-Ë¥ŽT`Ô›æ’7u@1r³!ÖŒx ŠÈ’Øi‘³--§q}r{”•VuYNÃxSKoNßó¸ ÌŽ˜Ŧ͵?ÏÒ-“8º²‡€}…¬¸�¦~ûÈ‚˜òÓH)šƒœ,(µgúÙQ²]òŠ]øí·üÇŽ£a{=‚ ­/)ÅÜC©,ÅPË ÕûoPw\£Þ½ÖüNn)²ò3YpR„5˜Û¸2;Òô]ln/íŠÅÂ«ŠŒvQ´­GâÉ^ì©æY‡æz›“ŽQodº.¸“©•÷m…qÔeõ7+µºÕMiyúxcKSôO_�_ È;˜ÿÜýËæ»‹¢iÃisFš¥Ò9 6šÖ…t?Ó"0õµåúîl"wÙ™ô%�xâ´åò‹åWÙ4+Ù—’NmŒ1†Â ’${£iZ'f¹t6ô¾Nž{ám_ œf%i“Ƕzë¾16±ÓÊ…"œ/Î_Äç1«ë‰¾ª´ú)û¿B¤×ypŸ$AñåÁYª©R>¤àc»n7Ú×ÔvÈ6Cs‘6Æ1:âäøà#É‚Èfì.nX³&ÚÅ[]/Õ Ês¦´§Ç‚W£¡ÆâÇÆFî.x")÷¾kê,³¿c^áM£ÄnMò2Õ/ÝŒjMò²áà{£?ɪ²»éP‘MZ:eQCÆZ|ê±æMý±&×Ü4ˆ•k¤tË¢Le™¬Y•€Èü­ëTÞiºÇ¾M+U_½Htç·nŠé~u¸)”¾˜¶7qCG’ý†�øMu“ª¾RÌ\ÊhñJ£ïÔ4™ŒÛ�V§=ÚìŬĤ>ŠXÔK­Éî›bZÞÛ q .k/7TÒ�+¿©cšÌ\¡=3ÞPHµ H[ÄR¦?9/òê�í¨¾®ÒŠ�ÈÍóa÷¢}&z¼fÉK½Œò±^Ð.wuúŠzR£v¹à$i�]”&B;ˆ"q¨a7:6„tóáž´!ØŽx½r‘„+ƒ¬êó~5H#Û²õAáâhš¯HqšF·—ActëÛRxZ—"CÅ9®¶“¥ áØtr¾‡Öf»DìSþŠôi6±|�¤øà΋7ùíÿø uÞ_“›«¿1ò‹H²I¶'_ZD§#­ªÏ+¾­ê~EîÝô¿0šíÚ5¢ÓÛ#ôÛtøbùîêz»Ò½õoV…»{ëmŠŠý_PEع粯{{'�©2éÆ˜å;¿Ôn_UIØû*éVö+Úü7£j2y˜[òý•Fá>&Q\p +bƒ6bX=ÊÈfíù¸ô¬WÕ{§r ~ášÇãÍ ÏRâËÄD =8ÈR‰>:ã©eUúνóú® r rtI‘ê[j<üC³}foZ~.…`:Ò³T޵‰ùÛËN¯Ï®&bžüR y&cFóåxóϡ׸¯ˆÑ¼Î¢çª�ø‚7ð�»öדõ‚<9®7_¯d¹{Cæt+öÐ<ý-6Ïe{Go‘bsmZÆ¡lJë¨ä�[ t§õ-P6Õ~‹ã%÷ާ»~¹ª¸\‹ $g(Ü€Ï7h�IÕç¢[ì{^¥{T°;ڮ킂â&\ òt•,Rà¯*“œ§¢ÉY†jtâ—½IŒkää—Çë€$,‚#iôD(d.Ò¬zÆpÇ�"ÞJ†aÅ¢ –·çä�á,Ë1\wX5”ëÝ FÅÒ{ÀoÀÒ½Ä\7�€a»¡&¢mãÃÙ1L7Én!œT ¾o°Œ®Ee4‘\r“Ä9! ݆3Ó6œ´áìP•Qö† W¬�Ä%rVà¸ú”¨„!Ùvw<œÌ \ù­žYȽ-\°-Lã°_k8kò®U¹û7éÝ_‰pR߃2;"Â&ž·€�·ÄDm.ØÐÓòÛx#wª(Z¤A"¾{|+«\z§¬T¡>Òl–{%ýøH¿õ# /°?D…d, Œs‰y>dËÛù»}*çF„4o®«|£ ‘K:xÑ!svä¼Ó°Še–Ó·Âÿ¬ÑÜÇÛ[/;P n(Š…¨:ãÍUÂ�´?‚ Ùz©z±%ióÌTKµ*¢£úÒvSgžŠ Æ¥Až](ð‘/ �èR®¹:²¦Å²ª­¨ÅŒˆÛjƒ½5ãru)×¼&)3ƒÄ3(m,š‰&£×²Uªl%ó’»Ù^ßfqŠMœK‰úâÄz“¿��âæH‘ìa(é E'-‹ƒ÷ü¤aú¢Ÿå,½©K›ºbPÚ/% ;.Ï46}ózã}~3|{r%eÒ_ˆ™6ÅbÆMÄ…Z½mût‰œ 11eĺ˜¶^ï9� ®ï`Õ…Š9§´ø@{Ñ'…Ñ8ç#¢™¸Áþ-+^�•O-‡÷ön袽¿³îý/ß™¬§ñ¶³Ùü§ã ¢¥+UÅI§óú‘Q"N�ûí±5ç§ï¬ÄgIZÝWrƒñŽRÍÔwR‹u ji|q[?Š»­�íŒÔÊ&=“ZÙBs2$k¡5jH·qHÄÄoÔ³à8êZMº¦¯?dÙ‹QìŠìoj£1^Öm…×f‚±È¨NøÈ0µzz⬺$ Õ¸jrjØmêÕµ§j¡%è©eE¼�-¦¡¸÷I¾¯®Çªç¦ã"Íw½S¶3Ã0VÝçjãî|½ñçËùÿœ©MïÅ`ÒaHÄN«jwâá¬ë­·îÄFª5#+NÚg)K}û•¬ÑøS¡k¡™¸Ò´Ðå jb¹ Yüp÷³hB³X¢.嬸ÏRas'wPÚfMø$mµ6|Ò¶V#>éZ¨?x£š½1—îc†Ÿ…=ëIBXµÛÅïÈÉZ§Ú#ŸkéÌT“.�ÉT¼™HÉyü2U‰\=5¼én#´&Æ,¨mšº±ì¥¡ÅUVβ*U²ƒ“Þ´eØ0¢Ñ§LV–;-E*²†ä§¼1W³ –¤úÕÄ\­mSé§¢¥˜Š­ˆÝá(æj½Ýh±‚vA§¢ýþÂn´N';Eót¶§á!»Ñæ~R”IÝ^êqa«½þ‡'—ÞöDBЗµ›öo¹df�p7¢{þ¥áˆ5Âÿ7!uOG Ú É/QëºÍ Ö2¾§;"¤,*Å¯Í §/‰¼Èõ(.¾T¿Û›ùE”´øÒ7ø“wv_Z€4=aƒËò-¨‹%®äù£¤ì‹Ã�^²l#·ß�}E}>pvy,½È¹Š)ûnÍî²ßÙØÐÓsð4Å>uR6$ëþè9Nƒæ[¶5É®´ÚìÚZMuµú¾µ/È=콜@À£Eð÷rbè?Úb»þ|Ú£ZŽæ²Ú.ï:Z �¸¾$.(ãçú¡ö[a;#*A}¼°Ö�DF=SLvEv$šUJ¦Ô7jªr1)ŽRhS§y%!QN“WJº®%ÒzŸulê´6U:ì€×àéÑÄE´Èßë õÎê4…Òö°JͽûÍÚÚá–¡yvÝ.´¿ß‹ šq±¯ŽT6›ÔW�£bk{òAÚ“%½·®T±—.Ó×8¿“‰ÐË›�è°xŸ¥â„M¹PµÛÑâ´µE?{ÎÜh¼úE&ë•?Ø®·žIF�Œ â®ÍTl½Ñlí.Ǿ™Äv±00M�™­™¯¦s×™˜%Éjj„»íÑ1“µ;õlh˜fŒ7_nŽ™„ïΧÎÔ††ñÛÔ2f ûÃ�ûã{Ã4"p…ÉšŒ½_« ypVŽ;ö׃æEb½õç+ÈaÃ{{dºžˆd_=Yž@®Hgt¤—Žÿ¸ž¡•ãùú±XOÆ È�V³¹§±;v<8õÝùõ£kYtÉzQô¼½'^»?QõYúÍÉ´ï%¸ÄŸenÝ5¢#Qò�G‹—›ß xq.Ešä‹ÕKºd›@ˆÈÖ:Þ¤F—G(à‚õWG*Ðc^~ð/±üÈiMœ¿…؉Ÿ¦ª6œñ‚æ‰ôîõ‡Ú…àD�žcÙáz,Q&s[—ûgþ|î5&ôv² IäçfÝÉ»dïa–ùÝÕ–UÚ/xðÏAs¬›vA:Qf½ÊYÝ«ô$°½ÂY×+œyd¯pÀ÷ â â4ʤ“qR®*ÄâåS— a›Jûú~ ÅÅj½sÉÅà&Aì# ÷4St‰‰Ài©;”çÙ[/�C]·^Åñº–—¥(6c¼áy TÈÍ L8´Èª’×/t~�°†¨]œR}5Ta¢BÆ­·e«¦l(ææ4/Ò´ʬ@§ôI›ÒqÊêÀ¤ÇgZ�øZ©Þ/|L�°€ L)á•Á ‘Õ_¡n‚ÈZÑÀ¢›Ç9fÁ3oõ‚°D�mS�'ûÎ Pá-ˆËÎO…¡ÏÍFe8v÷'±vM?”jÛeŸ¼bö¥fœG9NCGøÔ¸ &¡—õÕjøkÚX3…z „äÌC~+Ä ÜÕ;Ĭ·ñ¢+VÙBÐcP¼×Ê‹ïœ °DD¹~W(T¥¢èSƒ;6?×b©ÿƒîiA 14œ`e$nû„>ÇbgU%9ºVÎp×c/Y|9 Õ3(òåˆÃP|z1Tf°p²á% Ùõê…lt/.§�Óý|­Þ^’õõÛïG4š¯ÅE)ƒó&*`‰p%+]•`¼IçÔ ô|Ô›ØoHŽg]f€b‚}+bÙáûÜûcÄ ]1År„ò] *`”Súz“n->,Ÿ{(Áˆ”†¼V4÷ Âä¬h)æk�˜5–bPñ\�ÐéJW]F?‘{€vU˜:³ñvá“ûílæ¸Ä›ÿoð+í%$ösj%Vc(þQͨ%”Sº—„vkÚÖvB"šÈ6m ŠKHäö(úÍs,Zç´8}|×?j{ÏPï·Û�84%qmITÓµ—æâã>éWú[HÞ»Êþz,Þ=½’ŸžŒ›?ŸD³©›_Š]ªÌ7¯ÿŸcr•Üš,÷5›OÝ2wSWGl6Qx•ºRô=Oxþ™ Åùë�¸3·¡ÅÈ>Éž›eA¦J¼z©7ÐØQ˲¼›Ð4Õ:V‰¸C‘•6Äò"~U�•�âŠÛ;­äcUÏaƻ؂Ü1xç¯Iwñ{BSc51n!R{†isÌŠÂsÒÕ»qÛëM�úö˜]; n©N4¯ÏæQàîV)Ž_¶ ô×g|²ò0kzÈ«TÄÞëcüN#"ÖÏ“ú�Q‰ó~Û� ã¾�à{>/”fÕññß§„$E�îQyý§xqùyÖ¸Ck°XìAO¥‰8´Í„ñfHµËoˆ)¥{ž$Öb«ÙˆñWÉlÕÀþ�3—ŠU'®Ì²D²ä¤{z½ääô$Ê{IŠË—"—ôsPv×ýAÑðÈ7iÞ›­8u²Iס*E²£8§Xyƒ.OêV²=ÓäØÞ‰‡ÌUMŠš­��~„ *ߣ"Ëß1ÞÅIÝþ% …ʟ?0hÌ’8Dšqñã"ÌÝ�cUâËZ^ðŠ¢2˜J HÞ¶Gù^?Z/]8JŠÂþæÝb’ñžŒÞöOÖxoW §xpÕfÖ?þ×[¯š¥èJ_æ, #…G#?4GƒoÏå@Òê3{4Žlo@çCуëGÕD{€ø`qƒ,‚7§�Ó–è/ ¬Y›Ž‰f}É ŒŽª£¬]�X3}sÅUQk€¸¨ÿúž¸› í3Ã{š=¹ þdÙ®DÂ/oIÜ4€Ÿ¶ÀI‰:0m*‘®´ð…EW›6=æ'Ý0«]÷òÂ8¥§sì¯Rûôô*½ÏOøá‹ê(üO"ŸèDÜ9Œ¥ù¸2‘Ÿ8 D“àïp¸lpcýõð@XŠÓå©äØC Q'Èò˜½þfý¨/©½ÃéP;}€qBäY1/è1{¥0¢þ¤ AX¦ÿbÊXRßêGו­ùy|?ÿ"¿ Tì>w|ƒ¿C�B�A�;(ðÿA€åzKÖø˜€‡ñ J€�ß¡À?¡À¿ Àgö¿¡ÀÀÂ'ÓùÃÜ÷ô™ÉãØ%ËñO±ž:žãw5ùåù®>ll€M °¡63ÀFØÄ˜)™-}ˆ¹w 2&S°>ÁD Œ¨Föf1!ãæ"½0â–Åbì;0Æÿµ�KÇóÆŽƒøðл¿@Ðj»tÜùÄøó%àu€ý#´w„ö�ОØ/{E`Ÿì�ý!°7ö…Àžpµv~nŽ;žÎŠ®Pñ×[ÏÙX“T›“ñr³Ôg~ñŽôÞAÙ|…J‰FÔ§è‹�ÕQv âf76£%\ä¬c›“¿Ã…|ˆ¯¸…R†5ç6ÇS ‡ ­]!ÏÊB¾_]‚Šsž›ÉÇó¨Dߨ&/‘á‰5 ”çd„ž¾Ía–¾"8pH’é^q¶ ÅÃå/m`@,æCï»âƒpM`m@’í÷mјB©Ÿ Ì¡4¿ßw‡ŒÌêZ+9ãBE�«.�Ë̲¬”œ{<�J¤/6qçþ|2v©%ÌÔ¹ß>@Çu×.¼=i”ÜȮƄ)'³Átè1.ñ2Ð’× íG|XžâŠºY ÿL;§1�‘Œ×�¹‹—ðã#…)è”< #$¥±laÑM:ÿªâ‚"á(š!J  šHÑ‚%]dЬүY2rgðÂòÃo£ˆÒ±M+až&NàMh€ÍææËŠIãÎÏEã„RXÐWšÀèùj¶†ô?‹lïr´ù2¬Ýœ(á÷.)cí±êúñä {`ÃÓ ØÊ¦{�‹XlÿHPpDŸ«=Ž·n$ò ·x ¯G‰ëÝZz‡Ï¨’O‚›Q¼\NqÁM±¼Ã=WîÝ¿RDnU0Íç*? ò6Ï{àð»1&dNZ—ô²¼&]rc^›ÿè1x¡çVŒ«Nw¾ÅŠ}‰i‰¦‹,öŠ-h·ðå…€I“Œë'[ø-(ÒnÀ dÇQ�—¨.¬%G¤-oˆ„ï$ŽAìå{Ó5Ux1»S&µSaµöeßieD•$FcÝž€¶'®%f0àíËè´ØR!¯äot4JŸ “—ºÒ>h*ñºÚü`E�Ý£Ø2‘Ý.ÿRÅcw5|—»´s²npVò«¤ìsÀâpRç EC^W«‚þhZ,ÆO�Jgécû8ŠÃRë úr:âˆ:b•MÍ4X™å‹ZG5ñCª74€dÌiT‚š;�@P¹ÜVÕûLe9ó+ÅíŠ*]Oû,[y~»\ jtãäYòfê'±§œ(6'JéþðAþâ¢Mh/Nâ¼u·¾ž8Ýõo*ÅÚ‹6è”ÚEVÊî³°¡Ì³…ôoîþ’@2+‰Ó}‘±”�ŸäL|¹¨‰ÿ"We‡¬J¢™ í)÷<ö…¡ó'S³’¦Ÿ5ň×ã¾7µ®ÌdËòš�¾¿±“–=%+éØ×;ùÅ쫉î’£‹;ï|¡eôMQ"i¥>^Jò�…{óâøIÖ^_ùÎ+ME¯l'—®ôìäÔµ¬�b­*¦HÅOÞ¯î[ÏèkBð?rú%êíw�ùÔTý�ŠVÔN©èKYɹKÁô/ñO«šÍðÍŠçv¡›TÌ�Z‰ë¢GÓÌé´ø¸Ï^bžDÛ"¼7'vÕ�æ·$š_‘OõY¥mIÉæ<€bç—/úQ)Ž¢ÌÍ’DûõñµÒ¨ é6]­­˜{K[`OÉÊ»÷õx'âUÏÒÐ\µöÅ-½q_ËŽWñI²žº·3|¸T¶’AŠÚëP Âbµ‰Ã—„Ú×ýФµ1.ó>˜5ÿ÷BËR)½”´YJ/”­”ÒKÅú¸�MgE\~ØÕæÃT[Âb�bd¿”ÉZì ¥AØÈK©8ïÄ?™ŸMiBÍ' ¥Ùí|4g¸ÙËàkA+é> [Pq¥ã|·¢´=V€r‡…dÊ�'NéÒî°ÝO‘íP@W‹‡ò²·2“«ˆ^æbò …"ˆ=-›f�fæßT˜Ñ§v¨Ê({ ë-4ÑÂþ>Ã__øƒë/.âÇÅÿ–ãI{æ_6\ãN¬º83ðºàßÄ{ì8 ã>ÖÓ#�=Ј(æµ/$h³Ïƒ”·6Œ×¼*Mdª´b4"u]‚ɨ7¨3³ö<>Í<æ£c{( j5§\!§àrÙíÇÐ�ó2ˆË‚£ÇČԖœ®=Ög÷_Zƒ8yÎÞ�öÙUÒý~<$Cùz^õIÈ»X2šÑ`“à™& C'²5`7¸*E’½ï°DjA±‚¨y_|àfiÖy�YüŒÊ·N¥YÃiüFÌÆ1+oTå¼¥8!e[*§Þ¹+–‰pJ8‰Æ£Ã±ËGPi^>r¯1¢I\Ò£d˜Šå—%²-œ*T>ÐWQQÌÂ@ò•UÅÉ…k ;—.eâ‹BR¦ÅG˜6d nE9”HqàÝm ›²Ì(e1�ÌòÓܨºzu1F†lVž>u ¦q1É�åtKEÔ/ÿüQbÃV~�"JŠÀPEŒƒ¨BvæšV< öè�›´â ÌP¢ÈŽx…®u0zfþ& ÷&gW_?Û? ³´ â”�ûð“Ö 8 ð 4P\‹¡A'4ÅÃÌ,î¼á@ùqº(ÜjÿÄ9QíŸOªýS¶ªKD5ã=Ñ’÷è£bg´–Àùä%8/J&C£…!þB? èWq·’LJŒèFÛ?e7ë€"¡q0ÊnÿD9 [�Žq,6g£¸÷qœ1k¤…ª‘nAŒSѧ1––]DŠEQ]D�f‰üúº›4²�(¾­>Ñï­�ä•à¥;æoÒc÷NÕï;0H=f–yÌ(ñ±ÍhÍ"›Q΢†n¨YóÔ}™¾„aíë« óñbÖ£zn;´Œiµè �“—YI^f#y6yÅ}•yUxhÝܤø*+�c^~àè#tX~4³ñ–£É`ãˆó›�XT€˜ÒÐã�-__Ùb]I€g{ú èF¦/ÂÌß>o6·~šæÏ>MçúG¨ƒ‚‚D@ýl €æwÅ=dèg†A!Å�dJPïFéOK¬�ò Iµò0�düÇ Ìä1ê  ëÀœI�Ù•XCÄË …Yƒ™â>%ÀšÆ À:;>C¬óïSÁ@Æ€d‰è¾  Å �Žt°N\›;€f± Öï9ÈøÈúø›¾ù.xfk±î2Åp—dÒsG†Ì›Å�ºÆY°.@ɾcÕQßz!1߇€ˆ>ò P¼¹¯®WÀcvšïÑTf;±^D´±Ñ5O!�sÌþ‚´ŸIÈÐ$•–XäË·‡�›»gôÍs�9 }áU�¡mvÞ.‹â¦ú`WR@S!®ÂXÇzɳ7€hi€Š ŠƒÐÜr??wOä9Á'Xeã­',u@nÌÍ*ƒJ/óË‚ëéëV‰n5{Œbêc(^cú¦w/ëÙ~DýKò±CÉ…õj€x_e•ôÜXµ@ÀJD°†�.~ía;Ó—=Ÿ‹FÚ×Èö Èí³}L|ÅmonG4=MDÁÑ(>¢ÀìùOWÐ ÊÒä ËÏŠW‚|�ãÒVL¶EÈÄeÕs¶Û1Zâð2“O0Þ»‹¢¡\?w´Xa"VeaÓ”õ_²¾¨I¬ü¢-[J’T4ªX¶™çÀÒb³ –e4ÙAÙ˜Ó"ý†'oº§×38§'Kþ7¿S¸šR½��õ¤j);iGS£»y‹‘vÆoð+²žÖ¾¢Œ‘ IH}Ó7ë6bãÖè�´Ì¥ÄD½qŠ5R¦*¢všòä�÷PÙ#ÝóFBr @p—›(°j·‹ß-”£úß6uHÜÜöÖê×°!gSņÙñ˜¥äÔL|v‚UìU­„À²j}��ꇓ¸¨v8 ,-fM°\³M’ò/iö–Š·gx]�Å?ÏååËê ü¢¾é€)`Pu”}x:}u?.ÇÓ'2Þúkï×jè"â3y‰LÖ®0Ÿ®§ÛåÌÖîw°òÁa¬|D(+Ç™�™ë8@sâ:[o|¿@qèqûàlÆ äÇf=÷Ö+²tÜø:«5°„­Öˆ—Y­Ýåà…‰rXO6îÚw&>€pÇ«éz œåú òÖžóÇÖYùsЛ{ë™OÖ³Ùb¾‚„µ]arÿÇ|±€T³ ùýÛýÜ×7/æ+gJ¼íÆqØJ¿à7Ö¿–ë­§�LÖ«‰£Ÿ/2uV¿~¸sßÑGœŸÎdëCrdCÇžçð¿<*å†ü’%¼Æ�'�p~úÎj !\ÇsÜ'@ ›õf»C’wãΟ@�Ó|1ç’çþ”ÿýa…a—Ît>ֽDZ ©_ž?ž|×7÷y»°æmž'RyÊ+æbý£-¢€4Ü®æ?ÿñ»ž}ç%]M ›ª–‹«é]v2J\ F±œ\Bƒè5¾Œ| †��¶@½&L%q …ºÉb}œ/Lv(‹ ¤ç0È è‹”4I@À[ó¤&´³²ŠŒH=zVL ²ø˜ó1-+�%¢Ó´¾¼:«ø‰#)¬DˆcÖдh‡°°¸¬Ï~ÞWªÉÁ'­;´ž�@²{Z e±¶°ÛE 3áݱâˆ`o€—,ËrŠÎ¨’²�rÕUd^„ÁgnwúŒ=Ñ3¸ž‰è?GѦI³M»`shræJîJgYÿcvŠÒUw“5O¤_¤ rÍ3ÉÞ`©*%,,â-çÒ< BÚ¦;,ÍYÌ †ó¼~t�Ûì5lßüš�$ÄhâúÓû²ä^2÷Üo‡.µë+HÐÙ|xäs›ü±šþ“®³Y»~-bI=äº_ü"OŽë͇žjÚõaŒãºk†ˆëDQz´të¢ß¯7TÒnÓËö =}z1¿wÇîÜñÎ »/>^sfóŸúï°øNëá±�XÝ/À„ EÀÀv"Ö[Ÿøk^ófãíÂsKïá~ýŒyþ”K}¬­nœ�Õ¸§É¹\l¶÷‹ùä»óË_wÅ[ìyÉØî|‹„~éähx@ ð`Þá¼�:Ð —»�@/Ïù¤aDì°’;+�Ä9“ØŒÊ+pFqœèbÓQ}™%9‚[:Ρ*EÁ¼[•”q{s·ïʸ´¹ö>=E ;"yPkP¤*âB™°ª·CêjÞEK\Om�¬âÞVäQ>p>dµ*V×Éàú¢õ­�~–y‡Ö�5J´I–Fqw+úM뻬Œþ›Å©˜‘ù£»ÁÈŽÒèÏ,NÍüR¯ Ø �ËfÁtE»[ÆÑo)FAøW¢b¥dÖBª…�ÚJËóô&�Ì&–/«ÐÖ8_d�ΫVcðFï…J”‚õóäP©( GÅ9+P9ú—¡âdn°`œ–¼s®dn°œXA¿ZJ<ó6¦Sz‰e3ÆP%Õùæ`±<ެi•¥´ê_Hg%fò+ÞÀR¼°r_\zÎPÎŽ{dÞ³6=`¤!Mˆ(ô¤<È¿=UÍÛ²FˆŠó5lí*ÓºØèHË�4{ b+j–s¯½f‚ŒÅwüKþÁNWÈ5öÓ\{ŽškÍSsí¹jvFJç!R}€8ÑÏR´¬¤—W5o@{:6¼¾œ…f¯/gÜhõÅŒ[qËXV•vúÁ§®t™ N¾Râ$*¤w¨hË…YšÒ°†OÑœåF“$n‡ævâ'& zQEW…AE•bXX|O³¯PÎ3S7aX· áëWéªÎ³¥Nø�íK\zm¨]Ë £ºåÛD�7?¢´O±#¨»|ÊhH5¤m·nŸdÅ5‡¤IÙŒx�²7Zð&>HxÛ±§ÛPqÄýëiwÞ³‘\^‘Ó6x#¡ªà½cIòó,š‰\T�VzÈ]Aéß´»2Í4^ÂikêêÒ”ofCT)@ß­Ä/©o¨´¡ÔKS=+Rf\2¢…qäŽÍ´1³RB:±Ñ=#õ&¤Ñíø� µwP¼mÌÚÜAåæ.ŸBv³¯™x³ß÷K¤ûw­Ú–6Ÿ=¼ÐÝÙû‡½WË�)h.½ÛÄH˜•_¢òvõÜÔØÕæ¥ØÂTÃIy)˃�ÚÉ5ï4ZÖ‡^ÚVc¤9,Ló›øæ¹��Îñe¡¶¿}M ihµ%ï ž—EX(I}ÝÞªÛÊk,q±ºÀ²öiÍ�eÝ…ôi#Ù‹ÖÁ²öifÒ²®ûEiñ•EîÉb‹Þ×û>¾@6Ñmaa²Ìtþ6lÜò,K¬xåBh4füM]Êø3£vü³˜ù¬÷•¢øÀöaY“U¡x¶«ËÂæÞjÉM›Ùfù"TFAž'–¢Ôˆ‘@¼°-I sZg±¸;LÄ’©Ò¬àãjÓ¯_gUó….g-‹/+ÞÕj¶Š±œÅøµrvãhi‰I-è× Œëm½„ú�†UÙí­5é3ê[ ²â¥™gà=UÝqQµ9�u1ÑêâF-ŠïÒúj`fi4¨Eqê¦>õ ”Ÿ‚ú�±Ãñë_­7‚þºÒÑ2z®vÿgoèmͬŸ4Mu ®ýЪ4‰Óû * úù}A;;N.ÝàíKD­¬-¹µ¯(®d±*(¼šC‘¥¼ ƒ»Ó”–E8Xbê'Wå¤ùu%þ¿ F•K‚zR¶Y¢¨ìZ"âX”fy ZâÈö þ”rŸy¹µzú_ÁçÝZ™äJP}Șü\iw Â"Ó¥ŸIÎmLãáfŠÿ~]äÒ2—m¸oŸ]3ÕñYö!²}&cF“L¬œ¼èï`Ä¿?«½lPpç£Fy!¼s?'Ãó´¤û"H@o»ªÿ!n½ÏN�"^¹ëÁVÓÖ€Þð$ N‚jF<{þ³ýÞûÙt 4Æâ<žg9âåÌEŽ£b3}�K£ÃL‘¯)š$$Ù?` #NW:Kˆ‰@TàÏY–àÀzW+­WbÈðt¤1Dœ<õ Þ^>¯©Ð4ÕH6-ƒ8E¦4÷9%n‡x4@D”æ —/üWèIW}–"ëªXˆÍKÄ9d=ùªñ+„BñmþÕÝCš¶§Ø%Y€&³OòÔÅÁõœ ÝS$† ®DW³–­ :V]Ù8›Ò· Ø3I{”ÇáKBÕäUë³Gà6‡ËžCÀ(0ƺ‚1Ö¹Š�jLœ°C¼Ã%#•Ç*A²ÈÖ3F‡(¦·‘$²ý¬AV=÷|°6äWZ QdÃçÙ, Š O]ˆíƒã²¨(º¶½#7¡H,Årûò@ØâgШ$8Œ7Eá�œ»¥öÐ4mÛªãzÇ"›Àc‘ '²ˆ‘ƒ=컦‰í‘®=á1\"«hž1$‡{ÍëiXO£0ô4ªB°÷ÖRpw±ÝÐo2™R4çÒÂFÝtCã6£ÈÄ5r ƒÖº0h: tYB‡ˆ¬Ú…XŽ#ѵÛÀ)2B‘þTaâX·ˆ!Gß‚;¬‡ÑCwf0òfÈ!0K²ã1ì;"‹�I ª¯G‘Т¾­Š³^AÖ§�bWŸJ»‡WßJOz_¯»ä?ƒ�'S$xþÞ&³4ì¦øloâJ_LQCánêÊ]öìPº›Ô„s%þU÷È܉ÑÅ0F—ÃØ¤8Åf™s1õ†ûŽΰé…ó<ýG_Ñài Ìvý<¹|`²0)§nL^t¼`ú›P ²q2©6 ’3©mèʆ1¥Xn�3dºbËÎi²"+§IÝd&Ý)º^Ukd­æ.(Š"Ä»|Ånܹ)¥Ç¿(Xá³"¨ÚÁ@qµ¯Š!«´\ïà`ëàÂAúœé|'8)=#JÉ”¸WÛ#².FháÄ"(lùŠñÐ:®°éF1`†I\XÝ6(†©uÜIEA´Àä@†hø„G‹  l)a¥íU°Ärè@«gÅ[0lçÕ9ùòSfŠaN_�0²´%ÛŒ5SŒÂ�Àd!ª DÅS¤ùØñ§¸k ‡òŒa DÇm÷ÖGA5&èö€ƒÒ«Q¬)s±L2Þ<˜ oŒ�Ïñ¾Ê*¶Îo^©u©v!sDf =´å&4OüùzåÉ6Èh,~ŒyÄÿµ7Û›ªyþÚuÌe,ÅFÈâdòèL¾;.^%8�ü�ãE7ð4‡J™)ÔËž,ȼ¼ ²8¤&YÊJ<Ñ]Є„0 þ@“Osß x ¼@j–yb3šždé.‰ÃÒ¬¥4£ЬÊQ�m½õ¸0@Å Éréé~º2QÌĤ¾â‹åÍ‚ .[Ѫ4ýÑúºYó7>Ë�}—Fbk/7Rk±L_í0)Tÿdž_y!Öòš§N£c#} zÌ^©�$«yÚ¶Ÿ $Q}@¶«a¦Ù`YÉðÞûìzÛ=ÿi²˜’ÉzåÏW[g:pùtv!\›O·Ë�®­ósîëÚ~Ÿ/º¶Ü=ÝhGÂwǺÆë•CfóEãljk[®œ“w½Ý€ùf°^9>ÄóÍ| °öçK`¾õbîkÇÜ›?<ŽWÚQ÷~yOž³Ô5÷]g¬-þ¤¡;� '-‡°’˜Žâ´½lôºý’Lì‚…"â°(óg×`9öq”Ó$ÃTÙȘH×0ÿI&ã•?á¥Õ׳^¯fó-ÓéØ;®«e;_ëZ®Ö�kÏ×4�¯6[]Û�ã.5MýÙz«ÓtÔÆzM7]×3ót“jí‰þJËtã®ýõd½Ð2öÖ3ÿÇX³xùÎr3Ïõ”·«ñ·ßkF{ë�4,gD¯òÌ´ò`ÆßI§r;Ý`·z†î ÒÔæ.ïäÖ{ÉŽñb±þÁ›�ñb¾zÐC´›1aü¸}pü޾1ùíîf¾™ÃÄAÚßþ‹Ë7P\¾�´‡™ÿë·oß�ö ý»‚äÿ _޽ïsïq>Ó¨Ëk"Æ :m>·ô~­&:†÷óÕØý¥c©]˸©^W¾&Ó¹ëL–k½¨NußÞyò׫…–¦ós²Ð³Ók×|l¦ËÕÔYŒµ"¹Z�õ7Âtâû𢳵h”!¶d¼ÒÔž¯wîëëö:k²û�:vº]·œêwúÃÕ²Ó-žóÇÖYùó±V ôuÉãºOó'G«Qñ~-y§¬§¬ùfÂ3[»š-�ïüÔ*'>÷ö´œNnênõ"úÃÕËýÍ| +mÖÞü'™�§O„—/åèdEZñ!÷î¡ÌR§(õÝjÒC …¶‡ý˜/�Tð6ã+Ñ9é'B™¹úoÕ`ÓíæŒà£º•áÎyÇ5vÌWäþfÏ‹ÛvCø`kâx Ò�Qª™Íƒ»Ñ5EFo0»# ³©ã�'�:–«õ�±NOÕY®uL×OޫջoxŠêLsr;m³™–¡æ[åa¿P�ÉÁÎTì'db’K²…øæúbzßq6ÜiÕˆxmþ°Xßë´@µñbü¿_º¦ë‰¶ìjÍ8Çw´ÍëñTÛXÃ/sÌ´ÇÂVÓ¦�s^'õLu«�°ÕŒ€Ö\‰7yt¦ä~ìëÔòÆxÊ›9îê8ºö³ùl­k;Ÿ.´uu{êÆzí?ê´Œ�±ëxŽOÖ+2[»Ú‰èjË{­›Î52Ñsœïd²u5-ÅŒ®¦©Vy¯-×Zy"L=�¯XÞŒ,u‹»'jÆ„wAަítî}Ÿ¯µŒõª‘·YÌ'áqÖš¯ï™?AÌõ�b2©çƒüma-†È.ß{zcå32¯&ÎBT­RððåšÛºŽøt-[”úÉ\÷Ëumèùcëi*ÏgÑÖ"αÑ2÷æ«ñœ¿§kدÖ�c�¹ãºUô‡ö÷üÚÒk>NiÄÔwÜ¥¾õvå»ã‰V4´:ÆŸcßw›É:G×Úu6 ]soþ?1úSÃ^+ÊõÙÁzÉÖW¦é+Ä‹  HŒë]I{%®>Á´ÍÅÍÃÁë`¿�Smëò®ù¾Èõ�! ã"Îx¥øÐÄùËÙQßœ2H¢psHÙb[ˆî»XC«iͤÌ5 ¬¸RRbcÆ#¢™7/q’è[æšu �€›’Üq-§–OÕ-´Ö‘d¥¶ûUñ+eúöG1¢Ø¿fIu„(¤¢kÞéšò�h—º„Qª›âú.Ð1ø3+tM_(^ŒãB3‘�ôÈGV!ŒéºLÜUÐŽ÷‹vé;¾ìâ]¦k›êVÀn��ºF¥|´¯§§?4–ÚèÍ`tŽäÐ^1ñlhÃXý{³†x9÷<éâ3߃ç€aì9`§‹Š!\˜�YŠ ±% º‹ß¡,O{Ldé{ÌT­ŸŒÊ¹{Q1ZàÈ× ‡YßGÃßP¸îHîˆäÔc�aLlÊfpˆ7©u‡‡ ãuû±`TGŒTû 2ꨞ¤•aÜ©¥Å+� äŸY ~µWñx·u F1¦EwLã8Æx †)b‚�–U{<Ž€qªÂÖ¤üÎu5§þž#«<ÏŠ’‘Š»YDëÏ%ŠÏ+ƒ*ú€�µîa¯5Ôà£ì�87C×éÉcÝ da©ùq#ž½¦) ª‹ßÉ.ˆ^cÝ�p’ði»Ë Ôxƒ‚»]o)МmÉõ?¾Ô¦¯º¶™ølL€ûò’©Ý¯ ãJÎ/|1jl5…õ“OXÆi™é[ëï9SÐ=ï2iA‚’è´à=QD¤÷uQ‡‡†@lõ«�=`N  ú«87Ð:ÆõÕcšÆGía0 ¹‡4>¯#¸µ\˜…Õ"wS¢ä¼ëvÍêNŸØ`·Óƒ@Œ�ƒ#�©ÿR%´€p§€n,×îYwïÍ1kNÐ@EAš�6¼f¾ $¦ —˜ ‘˜ ™˜1M4[IFÓHí^Zk¸. ü¹Ž|{c˜oo ò­‹A>I1À')ûÀÄÍS}Ó ý¯E úQ‡‰Ï.�¸@¾é0Ø7�ÚbͶ]@GZ;— Ä–BŒs�1Dúb ÎAÆÚÒ‰ö\4x% ÕÔþ2!,‰(ÑÍI�·ú³5ÿ;9Í3êô‚(IŽ~Ž‹ò€ü„ã#�¼t“—˜wUÈ€ë¯7Y�„ñI%WûA ÖKOO2ôÓ_Ê”'±*Ù=M‘`Ó®ÃÁ8Ípà±]#† ñEêhT¤Ònì G tqäCÁúÐ2Ø#ð­žÄá Tµ×ø1îuKŽ5¬» ÖçÞíõÏ'Ž�›I³bY »å‘z僃ˆ8P »,I²·î4=�`Îçîi$šö*JöÁôgŸ[cÝÉgn®¸CáÒ¶ A‹ÈÊ4ЏZ÷xÃÓ¹°…b-‹vKuÉÖk}tIÞ"À5#�8ˆèó:ŽacˆÀtMA+�ËòC®°:L³ÒUÕT¿.s[î0ê~R¨RX*Ë­A¡iÈbÉJ¿€¼ºÛÚ„åïú¦ÿÔ7ÕK Ûb,zÆŠ‘2«wï靯×_­øòøðÁ‚*гÖUX„tz~µI|rävƒ\ûLÆÔ‡c 5ÏÜg@¬\â-t9<1~e¤*bxZ å²ü‰‘îë”}ÃDô¼ò öW=á]‘‘9²O²g &½ê@Íñv³þ€GPyrÈŽ˜â§;éïÉš‰ÒìxÄ„ÍHÈ_ÚH@v¶õM°[2Š!dd•'dߤO««à(ãùD±¬âxî0w\qù“`ÃDz`·š;­6†rí÷j†m|»e*Pì-EµŸb¡@3RÆÂÝê)‹,xçO÷`ðôiLr�U d7sZäúký (®rµ-®_+³*< ¸ó€v~2ž0º¢44¢¦ˆå[p·*(ix�1Ðà©W�ß´ÃO«8q¡ïª$!Ç ªN€w‰ÈáAO¡ IPO‚ëÄ…ÈyÝ4BA,Ÿ>m �ã&i¨º¾ã6�¼�/Myf$ÐFмIðæ…§[—Œ ¿›ƒEÒÕ®ÝfcÂSƒô{‹ËAx<£ûcWŠÐmB¢ùSRнÆ�8�²7f·iû�‚FëúBàv4t@ŒT¸ø^ÅP³G5Y÷Ðóvœ ô„¢&?>I`F»×p×ïZ6$Œ$3wÑ@ºóß6�ýUBG—šÂnTT’¡�ÄX\† h»´R+ùÊB:€øŒìÏ7qE/MeÓÀWh~Ô¶Ìêïñ…ü»ÙÒ¦ª¦i—¦šæT¾XõÊœáè"+@Q�÷s‰ÅáK2|�yóèº|7?O�Ùx»ðUw4õzäãüáÑñ0ä¦þãž÷×áj`£"x.Ù:,Mh Yj®ä•Wn*Iø{Šõð4(È‘3xLë+~sá“ÓJÞAå†HuÌ1�ïùýÖ7Pqo°Øã‘–$Ž0a4ªBZ�ì•EÁ³9N÷˜ŒÞ¦98«OÌhÇ ÒP€øžy±ÃGö)‚L°®p µmr‚Á�î•`,�2˦h{ëç’¸yÆ+«2ÄžÂgtOÓ,GÓâRä£|«º„—ú°âÉõ‹¾ì«2N†‰æ™Œ-럤oŸîcô�—çHu`™­=!Ñ�!¸øX�+ (+¾Nœ`†¢›´³í\1Q¬î�²bv’'qøì'A¹ËŠãpih^‡îA�FEGâ^pYˆ—pxb…e%]¢ w¥e/e–“¬ž6£ò]ø �8ångÌ‹%aäI§�àá£RàÏà5À‘Ü$Ä‘Çâ‘©|!Š‚ê—L ÙìÎï˜ðž6%Ü. x¼Š¥[ÔnÓavÌã„âcÏ[®„Ѝ@qÂÇm™‚¾ÆÌDàUx2æ<)«cb0½z¸Œ§×eEU‡çÃQ7ŸŠ×+îC½ˆä¦oÒËMþò݇zD9×{_}°÷Ž(‡Úwé Ï°`G šº”"„¡*Rd§ï¢Wu¤yv]IÚß7göª~ôÑfÔìË"¢-—´Ë·"q~¥¬jÜ„¹cg8Mña×9d¸ôÛ¯(ÿ¬—ï0Vñ=U�´ÁhR9-šóL>—ÁáÒ^›�H=Ù\;4’P±ÂE•ϺªH±G2(x.]Ú•ºFF^Þ®Ñ=@Üf¦Y2ú¸öa1^ÿ›ôÛ0˜FSE� ”™ñžÇ¦@AÅì%YÉÜG%ϲ8ã•&'Ý)tpSI¯Ë#/ÞWe‘ÿ¦8oï„t¶êSïÌU‡D^·»½®âü]Ç™ÿ&¶]¿)…tØ…}*=WlØ^~VÑ¥ýG7Ó:ü §Ç×or~´ù˜4Spý¤u%λ�\¶ÓåW Xe4yt&ß�)y{�Ò9!¸¬¸¤ÕóÇͪ–4·+ ‘íeèPöÂaò\HJ€x4�ûõÏ“nmÀu6�±Ïö£ð'Q!?­E wm8çÈÏkQ¢M»Åpl“¢T¹ \ÞX®BY•+Vn“³Þ¶=Í‚Ð!زpâÅáÄŠ� ÝZ6 �*Q'U0N4¢lœXTñís”–¡ïÚh”…’æˆ?¹j�þªh5Ü�ÕO†íGαõ†z«x&fí¤ÚÀ"Þet‘û\5‰M{ô"ŒBX�h÷úW^™ÚU’�¡‚ÙK&ÕI³î˜ ÙÝyaòªD ÈþÕˆ�Ø¡*£ö¶+Wì…DY ÐãAMÛ ´Ë¹Wm‡•Â-‹}Tº>�à,ìó Ró 4 P‚š >Í•‡YʇhiÉú–YÞqÝ‚ŠGMhý³òrÔ>zň‘¡ôô` ©¼\UÉ€B;Ÿºs•Í£«ÔhvOàçÐ简îZÄçX2ƾI‹!7E u¨Ò-¹·Ù숕lɼ…Á_Ó«£€³å™–ÁkPÄò®d`œfÇ8HPpxÈäçÓ*ƒè{ž¡b¸ŽÇIV ËO•ž Š>•d{qêíˆÌtá‹—¸Ü¸¨¼0LþñGI"S0ü¿=ðµXp”¯t“1Tz;–”Àî‡ívÐÈñ®‡§B•Œ«ÒX±ôS½fé1f”¡JÔåƒÁ^�÷ƒ^+£fkä¥é(”žÓ##â4¢ï ¢>¿[6•CÍå0&ƒ0ãÔâzˆÊøní‹�ÆÞd>¿m6uî·fk¼XܶÓqþ°Z»Îdì9·m5B\¬'ã…†ÔRÃd»ðç‹ùJG­;ÁáÊm°q¸g,Ö¾¯ß„Ú›ÚÆy&�…Fê£áôƒ�ŸÍ&7�â°"Lßž'}yŠ•ö{ êÔjhSÐÔ-(Èœñ¼ÐñS¦kÞ�p4â³ZÏc�aˆ/Ê©Fh-ë-ƒ²Å $.%ß&eŒêˆyû6ù¡,¨.z�’tB£Ž^~Î @0ŒŠ]G�pN—JjÕ3Ð<Ø+?4*q°´|Æ^ªçúUä‘í1*g[T»s鞾ϒætý5Ü»Ý\l5LVóÉzªÑù>9îýZÇ}øyÛDýEô“1ea�kÚöZ;=ãX¾@ç³u¿µºm0Í«b¯ù~ç†BÃVqïìgÓ¦qÐ2Lµ,ë£eÎuópÀÅnQD1÷ä‹i`}�K8ÏŮޖ';U9“Šôï¸*ÉR¨9Šq1ÿý,îízDZ¢R©–¸éâ$¢I|dF*õ¹�œ"EªB|=åaBÓ}yÀiñ\D§h~,ßx§©`òâ/äùt L N-J¢¸Z7w½ðñ yŽ¥'Ù(øú4U³ŠXKˆ›Ѽ8â$ >0h}ê­Y!hh5T[o‚ªÌð� 3k ˜•‚]6mÎ4‡[RFYö‚5­f¬¾éUœp,¾âãQ«©Ðœ©Š¬/9`�±°–íBlŸ tÎÍïnÒµsÚã>bUPò$•b|®ÂÅxO¾@F̓÷ (‚4Ñ¿°ñt;ƒ‚wEö7MÛÍz(…Ó^=3ƒ 3ÕôÇ 8+òeo7i“»5os? §»J<0æ¾…ýã‚®_9·à´;‹(Z aXV¡lèÐ<h�Úîb¾œûd<<8îÓCØdí:8p³EqÓ±?F�3oþ?\T¿ÿ±u¶.}–Îr±ž|DZÞC2 ^Í'Hp=›/�èÆ]O�¤�K_|d]¢ëoÜù‰Š÷(Ô»G_oþ°qVÓùê‡ûcdùõ~Œ7(ð‰×8Hæ«Ù|5÷Ñ­7~pÈýÚD�“Çùbê:+ì9‹ ô]g<…¡T=å,åÄnq™ü<;5Ì»«£b^M‰V,Ø#Bͱa2DtëÍi`0‘\Œ+¯ûìóóën»÷lÒW¹]|‘Ò£î·a�hP'«RÈ Wi>¼)®~rý’õ¯üÿD¹\¿_RŠó ?1Œ£‡·¾ÕO®bÖüZÿ¿’IÚˆQ¤¡ä,�¤|…ñ-0•}šÔƒg†aO—•¨YÙ¾ïÏ *ÙýÛ>»ÎÀö÷î|fgå»ëÍP—q¡ÐGo­È”‚ÊÕ‘rŠW¿  $Šy\Béz…M¤‡‰¨AùÂE)Wf/4%ªE}7Ѓt�Í °*q„„>œÐ°”ñh ìÔ?oæî.lgƒeæ öˆˆ¾æ™ô›…I&9S[”^Æ}sii† –'X¼ûÀ�]A¹‚îÅAˆ­R MáÙIq™IñYI‘ÙrEvÜEpžý•ù�õÔ$ãU.´„yábZÂJKÃ(ÏT“;åò¢lœ”ò©Ä,>ØX5c­F+LB�<@¶4Û“Àµ¸ÏE¨xr7 -‹,A„ o:ÜÀ›Ed›�j2Ð-†Aƒqö2´Ó$+˜Â+áO%މxr0êµÿöM/4äðÍ2®£!¾Å¿Ð *Ç 7T¹YÆtD4J€ŽLÏõÄ‹h•G‰Ð´¹q]R¦�÷d‹¿ÝDItœ'>~#’™0 ò‡;÷0jôꎕÿ^·ÐèH\âèXlL¢ ñ¬øN?LX KC¤öB˜±Ì.2—àY™=ÿ Òá…! »e€š{”NT½„ eùœÑßsu‚š K d³VëÆ ”ì,bÒ¬²‚Sõ4µ6Vêí‡ã†Ò3ñ†­a¦„•>dŠÅ²?ñÊ(ˆTy$Û¡-cY�¨�ŠeôtàƒG3f<¢âh‘±êYvòµW_� H-(¡ ·“sË" ªt áð ¨RXvCͽþ'v Ý]öWãŒúÑõ £ùùžEÓg�ÿ}7Ø@ôØ4}®]ŒàH¡$Ê^5xQaÝIZº”8ŽQ6´»"ú.Inþd µÅ¯ÝQ@ƒœ°³ý_U&Ýô<œ¢u�¼2kñAâX’;ÁÑl‡¡êcÝy‡#;7TÅž6Ñ@­Á¨Î L‰ñnýEã8U%§YYÐàˆ@Õ›Ê oòIoÝà5sQ¶«úÄIT1Ì+v@ÏQTþ KD½¤äù�A6`·*ä)žÀßÄr,PÑ=Ãä´‰ *‘¢8)¶Œ]Òë›G�@ý³r«hí1ïkg·Î³•±9 ã Áâá!{“÷ZÃHëãÈopD±EàÕªaàQ~Ö—‚êî}�Q¼†Å/DµÀJ‰ª¾óñ•’æ2 àþÃ1Nƒ„(–•)ð*7dâ‚�Å1I”´Û“�ð1x¡ÝÛÉ Jt¼ŸR)r‘d@�#¼t5Ì(xÍâˆ>†â®Â áiÎ#¡hcµÚ¨£’ýMÛ´ýlùÿD†‰Y©ä3¦“1£ÅÒß và}®x`TåðÙ…j,ÌÒTºpPIFYxŒPe„ŠŸ¤36Jž’ ¬ÀHV�åÆ;’RÑ+TP†�¾øÙÑ ¬ Å—¥Æ!à)ø^¦ˆØ‹×Gb/�dû[é îj¬v�”uóМ7 ½y=û ÑfÊî[W£¯´�.GV�cÞrдŒÃúû§zzJ¥3iš¼À”w$xÚ9ú‘p|Ø«¬ôª<Ï î•àU\Æy,–}ºtWµÛ:ÌUĹ1í/¨ÚëòjÏ{Oj–ÀW*£º!ì®®1�U£wÚMôx­§…IÊ{´àup³¶SEÊÏ[èõÿitˆ†÷û7�®}’,|¡’ ªõ# 1ÏÈx18ÝÃ.íï[Ç_�!§&ãÈ~:r†§º¥Èã¯�ã>��ùÊñÁÀˆXÌWßAÀf<ùŒÕóÍÄõ]ãN=�ýv5ÿ ¼�3!Oždâm˜¸ŸŽ§S—ŒW¿À̽ëL]0Ňכíýb>Á�îx5]/ᤸ @ñtí¯Éãd‡ß&ƒÇðÜÀÜÙd½\Â9o²Ö‡xBî'K0÷Öþ†ü÷·ÿüþâŽ�Ù”ÌÜñÒñàè×ó™Í¾ãBè¥÷À‹ÕJ6£  <ÞÄ80ÎñysÌX2v zÆæHêéÃ=- Ý çȆ _#Axõ"“Çñjå,ˆøÜ讑ðbýð0|Ü–¼\¯æþÚÅÁ¼èá@1«#ÅA|¼G‡RÎY­¯®QPME‚1â»?9Ýn®ÉÕ�•ãÑJ;žGÄ#¼óö<ÿÑÝ"tx1Z9ß™oë‰SØðõ ­·¾¹YŽBTÈÃv>å½ëz<�Œ=Ž*ŽH»A.ÖëÍýâ?täfìJ±¨¹<ª“±;…“ÿsÜ5ˆª;ÌÉXkç뉿 OKÒd®Gx×™ÌÑ®ý²t¾m ÜËòPᮼ7÷|P¾l€ÃŒ |˜±�ûç ¯íM–M|0�¼ªB b üp�˜¯ÉwÇÙŒ<‘ÉÓxáÁØ®B“oIx²CFœ‚w'O >]T2Y¬�Ÿ�aKMM¸ïdx×&]h À@ @CL¡Qóœ? ¥¼á|×�¥Ã6ý ÄüƒÀ@"C�ÕsGN‚�š¼5ïÀEŸADZçÉûR-ºùŽBç+žÜ–œ÷,]‡»¤›µËû¶{Xÿá·÷¨è1§Í‚ú#§° AII;uØÎ²‚qVOAÂPõTÃÌùýpÃAL˜}cb¸§eE…jõ†Œš³LÄb“¬*Áøî¯(C‡Œ•Ï"ÊHTl…5@‰üŒD%� V@¨œÉ‹¬Ì�ï*ê†*¾ïÀPñ¡6ª‚„‰ $Î_ïà|Géµ<L]9”YšcÆCâ©OÁà$8ÄûºÌDÐbÚ’e†aS±-©„¶Å5––Y€Ãr–ƒ#É:$p˜ç _É.Rõ÷{eÔp3l{vþ¨võÅNŒ‚PTÐáïõJ°» ˆ)N0Psª%B:$‘�|£„#Þ�K®c½JîjVS»à'Òû‰n°ŠÃ®” Øv§¼ÍŽËà9¡8…ç„ÿµ]L §sJ‹®ÌÃiñ73:CU÷*9޳°Lœ¸ˆI¶_^ Š žÝ6a Z;<¸R)Ú^Dˆu“§e†d…›o€šÝ^*Œ#±3Šj�&»ü6‰,MõÊ6T"µ$ vA‚å‘ÉkÚD2£&’™4S̤™:�•Á\UFíy @´»-ÜØäA ·öÒE¤ržÞ�¬_j $«˜Ú‡âÈSWœaÇÊv›±ÜwëëiqK¬³#bOS'%T{§1S9DPÁCý§EÁ¢ù§Ý×>ç¹MÍRé$ÞÔóN‘B–›F`t¯I­eö¦­p[‰Ž[«­™$Ù)h%î#¶RÂ[á›þ³¾�¨"¤W …ƒnO­©pç5ªvä¬Çïv—¥+Ƚ×P”B{Ql•H}Úðé ó"Xÿ"Îß ¯ÔFÞ4¿�€÷†¯Ò3QŠ6+^«ycB¨vkž"‡´NÃv²ÑTñ¶g¤-ušô±� õïä¶ó¥+Ø«ÀæbͶÓ*,övì‹àhÅñʳ Ѳo†²³¬c�eü>O‘/ÜJø“�‘ãÑÊl§vdÒø½K2[z^}h¤‘Z#a¥œ™¦·_`˜÷—"£z(KÄ9•]3‹,–Ÿt£€¹jsâ³§{ ÞIxˆÞk¥6T­å‰i-8 ÙªŠj‚éZ{1“÷)JÈ=¨,“ìëæ®§þJâ’þ> 4ÏdÌè>ÉžߣÏ}Tß`”œ(ŒQú‚ÀJ*›˜TboE\_nr±ÜE;-ϘØ÷ž‰ã£´j¨<á‹lF@ç¯ß�Ü�@”‹>}zÞ¬ öû‚š …Y’ò›ô…NuÞPç��o²7 rUÁd#w <¢¼y‹ƒ¤;­£AS1 N’,ˆH} 3y!úNÃÊ Ã[þ¤¦,,â_†÷´ ³tïMN·t£bî=AÊ‚S!öFg1áⲦ ’ÓAèÈð¸DÕß8Z*«oUD3m À›€@\Uôa’æuX|ÒǵdW)Œdò"Û×ó¼‡ó@-ÆKoÈ[ïÀ0�™qUd¦U±äÅÍF^—Y$âF€t¯8«E*tê.ô›E|('7o`ü‰–¼ðÈ0aGm[n �ë—.XDŸtÁ£ú£FaÇ+À!€ºÐ}ùšÎR\ÊñBZòF2ްÙfÔž$N·²axqbšW¥¨< • \!«ÊV¦pû)Ž˜ÃÑÔ¨ùWóMJy‹¾L· $3ç>Ïž ?p/#ð‚—=j€§A‚£ÎÃxò‹øîxå�'þ|½Rmö–©è"$SXç´¨½>ì‹lÆ®çð¸/V²# ÔäÔ™,ÄÆzZÐ<(èF¬t ›ë¨µûË�ð>úM÷¸7v³7P€Ü~ôB?€M‹÷Çbîóä¹çÅb&Ž4vfÎÊ›?9�tºùÃ#ÓéÂXbi$Ñ':ûîü²!ã{¿ýÝYÍÿ7¼- (¸X�§Äùé‹ä^¯,þ±ñ,ÈøîüáÁÊ>Í�&2mã5ûðˆ/$-¨Íæ"3×îr웨­Ödò}ãÑ .ÖžQÌ\Çsüúˆ ÙÁ´ºJmÞç��™ÌÖ«�q˜<:˱‰’¸sº. x)g…©¾ó‡ÕÚŤåú;úi»zÔ¸y|šþÐ +ÌŽyBÅVÊ2ࣚJ·‘ÈNû% X;³× ¿›Ñøsw³ D‰÷¦Á‘• …¼øùJ›(ÈKù&Ò›<ÿWZ ZR\*ÜŽuã~I’nk¡.Þ~ô øèéC‹c’;tØÀ:ü·ñÂqyÓãxw¾©ÝÃÇñjê=Ž¿óFr<_l‡ëK.‚�™¯x£½/ˆãºÃçû\i$�lp�?¶s×™jíC÷óÕTì—zœW ÷x':½1Lø Nykr˜”Ù8Ëúï²Òý™}{¼sݬt"(l�ÉôQ×vå<ñ˜ñF_œH±^.y‘ž»6®«ÍãXÛtø&�!So5×6õ¯ß Æ¿ëû ïõ7�1šƒ™kÅ|I�Yñq?_kÕà“µòÖ[9Õ»¯HÊ¿\ËŇäi_ï6¸Þð!�· O⡵V=ø„ðÖw¶Æp«íòÞqõHÙqs–“ùæQÜ£à¸Oõ=h|Œé:«‰£‰·Ã‰ïþƒË9…:÷럢 Ú ;ütã;’íÊù¹iÎ3s†ïŽ`ÛQFûªíYdš¬SðxŠ³Ø´ó]@<-�‡µ?û L»Ý:›ÿ®oîÏeÇïHìuÛºž9ß €î{¼»ç%nú(„1¢[Õ¦òÓŠã›-kç× st]ƒÓimu!ÑJ„ FhVì¾=uÏ%G«)±¦bB1½’yI £U>7U‘gŒŽš$ ã­ÿÁÚ¶I§þеýºE§¶þ(åË bP[i#¼Œ —ùI¬×º@W [T®üàë]ø ­—¥âS±VE?›�êúÎJqã¯HP¦çqô”�ðûÇMc\oL ƒºµ�_Ãq~h/X±]¤IýŒˆµg|È�}�ú‘d{RïCJÔëKê, �ìš‘[|{r2A‰if^px[Š“¬)Úp•cð«cþš”Ç85•H9^ÆõZ^ ž�»^(ʛݲ^Ãõ…Úí…H`™Þw((ËhX‰o˜7V])X=……kWê•EIž’î%pض¡¹ý¦©Hmq΃ò€¢!¯P<9_) O�S!g/¤ÝÏ­^¥¡Óm�3Ñi4š¶­“Æ0¸x²${þSœé*÷*«%Ú oh‰¶lí’`o¡ÞG‹¿ANžã œú5Ø»ƒE‡åƒb°Ï…F­$I° ƒõ5·ªŽÏ’Í Ⱥ.wºÖ^ÓŽÍë÷šÞ ò6­X9¥ šðHï¨Ø¸IqZât`þSŸSíBåGžI­GM¯¢]ð;*;æÅ93aèÉ»‡½Ø(ÊÎŽ4ÔÚ¹ætJ“zcµôصD•Ö­TL# [ÛÓ0V‡ƒu´7] ÁôçŠÏ £I}Õ֥߃VI�DêN3¬»T`q„£Ôk¿$›³="Œ€8«(;Ž-]¥¢g„RÝBã¢]zÿ-L øP! &|/pïü#HK—W øCDLþ�™K˪Nøø ï霔7;‡³ùh9þ9_n—ÄÛnÄÝÍ—`­RØ™¯ÌEN3«Pð4…‰‰ú �ê¿é“ãÎgb¡ØbýC\4òóŸîµ&•[vâ.º¯Õ�ãù E.œñ N�Ùx»ðÄÏýã?â®.nƳ†=ß�OÀAvëÁfs×ÓƒëpÖ�‚nÖ¶Æ~ÙŽznš7_5„GZf|ðɽ©H{æ¸ÝxyšU;{b:4“Háy±ƒ�E¢ ì3º|7¶?ÇW‹.ÉEœüÁõ*"ñc½¨rìóÂu¿õÅ k“GÉâ“„Œí¾€/¸¹‰O�§ùòtî:íþBÑÎjâþÚøÈh?ΧÓá+£n¢b¥Õƒ;÷)./¹)² bH´¾sK\tÄã2u~"“@|bž¸Ûûz!,Ja=›-æ+\æó”›®W‹_H¸Ùd°Yχ?IÞTðñ+ŽÿÅh\ÖsŽ{$cd±š»þV·äˆ+�Ú¤òÇd¼Ùˆ›Šd÷ËÞä—ë-/s€DÿÄ{¿–úa{³:¾«©¾yÓ ê¢à/xÓ§ ðþöóår+]H?H¬xƒ‚àmwícÞÛs|X¤¼Õxã=®}} ïuë¿Vþ£ã_”;@ø¼NÌ—Ž¶õdÍ{5mÛ‡ùTÛv¾ZkÛ.×Sý/A¯)a>ñæÿÓ—Þj§ïÁgKÝ"Eæ²;Ö�g÷‹ïúÆ“GWßXr)©Äx½XÏgk}ãÅ ð†M:9¢Ãö¢ò꫻΃¾±ìÂîaë�úñè*Œök D[Ý}¾ÆxØXrÙܰñÖÓ/$î�Ÿã5Äx«mìµL;­½¶’émEmeÓ'º§Oè7öܸ­¢úê]µÓ'Úª§tÕOŸØB^ùÉÿ©oÜVní¨ü€TÁ�*(¶Í9úÖ� ûéŸ�HÿÔŽÆæKssè¬À¶ñ¦Ÿdlƒd¾;Ó[áLO·Ë Àâ{s`½ÿ±Õ�Ìïæ€ïŠ;U5³@,œëÖ1hU©8l¿U蟩((ÆA&�¯jÎZµ�VYq ’ĭ¿Ò�£0’ìïÐV¨/™a�ØåÉ ¥âô•˜GèHù7;€J[ÑQ-ŠÑVÉ^i‘È>éi«äÆiûW¤elžÓvÊ +#újž¸¯AÁ³:´�M³0“Ý1£ñNU T«ðÐ z>+RÒ€)ú‰çw]僣{šñD+â�à5AqÌR#‰—ˆ¢ARiÔÜÖç“8¥AA ºï-Ï�ËàßüÜâaY²/²*—ž/¬§qˆ÷#�¤9‚Ágؼ?VIãñüÔ�!X³ {Ñ Ãqƒˆ£â=¼º±ŒÄ]—†£0ÈãRq°¤bt—%¡i)[†7 tç±iÚÓ´ÛÖ£ Dì-.ä=çMW<3´“^s2l.úÉ �£Ôï‚N×ëÚ³ I«#�ÈŒ`aƒˆˆ†1w+`L¼�KG¼ôŠ5�ãM,�àILyßbò"N—J(–!Œ(ãF•ç ÷ÿ3“-4Oþ¬$¡Ù‘ðÿÅ�J%.\­Ïb0yPð„•.d >ö~¥yAwñ;cÕŠå ¬¬À&¯€¶F0ç T*³<µ´¼@¨í… )`ÜC(JhG~“· N�6'uÅJ¤÷ 2Ðèï]œú’n­ùõÜ”x40/Uÿ<«ûëR²¥‡1íÞ*+¦IPìeEá–LsZá}šÔ�»!¡tT´X“ÐÅ8Cü5H*ŠÃy{Â�è+<Ý|zÌ»’¯Y`:¤¹ëýä¾0L°¼'iG(XœoFXõ,üéáÚ·4Ìð²—~Ã3Wƒ|í�’„Šlcƒóâ*L8]“ë6 ò1Ü[VÈ—ÉSµ x¯}‡"YXB‘ oV¯\�¦óô ®Lp3UÞ3“µç}“ú@ç<;Ï-JªëÿOÛ»u7n+iÃ÷ù~ïfÖ{ït²³çû.æ]²DÙšÖ)$ÕîÎ EBcŠdÒ¶òë_À“$’bðEÒ¶‰çÁ©P(œª®h‡ð=8NDÞ§o ȋ٠÷� =[6§7 ©Ð“ Mˆ÷)üÕ<¡�y€*ÇRé‹Zå7[€j®üƒø¦�–w”.ÖÂBêש}dï‡ #Õ2{�VbÃ$éÑFð¹C ñO ˆ{suî-vÍÓE°U%ð~ÖÀÀþû¢Ì¢ÌðåguöŸz9”~Q%øU•à_ª¿©ü[•à¿U þ?E_U}IA:ºI©Ô�²˜{]Ï–àS›R„?[°e®­pW€ÆÒ¶c"éÁBà2¶>O:ý¤ô¢`›³c loÀ§^¤t-Ð�;1´ç†^YÚvÑiC‘þ›­˜‹Nž™¢êºá0™Â]4û`¾MÒØ#´ãVõùzÖŸF�«oå+4gmÎVüAÛx>j sÁyAöhÀ;`MdcÓÙ†óÈþù:zýp¦æjáüïêQšªx÷+<£w>«Dµ4^àí�µš«q¬ÍÕØ°,çÉ\mÖòL+çe¶œ¬^$Ü0$þZüÖoKôà»ýF ÉD.}|)weÐëmÍ W ÒT+_,_ç"jEIÙ:Óâ(Ê=m Å)6ËÏ»áz²A’ª÷ê%£ZŸ¶°É÷èİGãgcRj ühŸß–›vïáýÀçÙÓ³²FŸMæ†2‰¦Ùe=[KhîuÑ9�8Neôp¬šG•?ìh$¯�ÇhCÐIà+U!‰UrWÞ‚†’Èwh°�\…²()†Š"ˆTäõ‰ `Öô1ˆ”DêÝí:*ïG3ëeïU•G³e�L{ ÑÅÆÆj:�ÆäqÔþ¼A´TæÙX†õ¼z‘5Î,öâÍ ÙÆÙ¬ËÐHÕÕ@?øïÓ^ÿšÃ™VVû®ÒÀ5‹ä�ÃK®•Š¥Ù$ “QI0/^¹(2¾[‡øý%ˆ|q?XŠm²ÚØ2B4)ÖMBåfËõÆVb`…W¢x�Çf2ÀêG•E’-üjI�Š;æÊ$ «¬ "¥Ö—ÒäxÍë*×-Ǧýd^Á»msæ’/vTñuáöe ki¸¡B’æ xD¼HÌ#7ïØc_Z¶À’öK^mܧc}‡÷оøx�Cùa\ú´¾šyÏ ×~?HØTwƒº ¦e«áò-aâ WJˆtÆœaÆ[7Tã€èŠQi`á‘HÖyQ«›Æ:·Q¬o�Dù ×±ø<+xÏ•r‡dåážšE1DPõ((,ÛTÀy´ã‘®Uè`Š óÅÌ Ÿ0I÷¸b„ÈÁUC×>÷å8TkE|{y>¶åáªÃ( #ÏP)yŠ”ìHJ"O¥)áµjYìr®D+;Ž,¼¥¡Ÿ’H¡ÅíZu†÷s‡SÁë€(Ve‘Ÿ jÊW®H‹ „VÐÑÓ0 •Ö! D:«ñ„qüš' vѪrÃУåreWQ)[W:Ãɪ=9Ežéf9ÖT¤Åj²ËE"ˆíŒæ³‘¥‹l=2G Ã6LmŒßFæ¬ôƒäk®\ÚV]-Ȏ˧–[ìo޳M‰ûšÄAÄd=~7]/·VNg‹)@ùMB÷„�ˆ� ‚ß“uY¥ß&ö.©ƒ‘˜­Ÿ‡¦Î£Ô (t¢ø^.xÕ#7t<×;t¿Œï@s+€#‡ó4…˜ Õ~ECw`u ‡ùd›ï�nÈ ¯*2Ú 9ŠP÷$bÍ´‹µêæ¡ñû­Ëù7¹˜PC”*Ï�æQo¤Ÿ›E¬Ž#�œ� ‰@8C²w½Ó;ß•¦;Êßú¯ïõ³$x×£BE(¬W‚°(¸��GÖ6™¢0|"òùSœ£ÝG–ޝ†¹nðsÔ›„½³BÛj�È�·ªänƒ*vÛÍ´Pmˆ%Àƽ÷êdL’Œë¡%s}ßÍý€O&ƒ1IÐê7˘îߥƒr -ÃÖ¥„iXâ9õûò[p "ùÙt>¸`yfl#R¬¨åvÊHœúb¥y+1ìžCg{åâÅÉ) ö‡AÃÊ'Ê’Õ°kCÂbµ?ª»J³‰’‡⑞˛·`lV®æº!eªm-¢ÇåÓ5%Æ�<ï|{x�zø ¬vxB.²ÔywÓ¨ÃAS¥À1O—ÁIÉA‘$ÜîAcÞúC[vÀÚ¥ ÁÀ&[$âàÒCá„,ø»zª‰ öDá&Ñ[�ÆÑ‘ôDNì ˆàµ"n~>˜æH�ú]-Ž \­`‘Þöik‡E±CƒŒàQ9åéÐÐr{ û+¶7øÃvÛƒÄ SœéÊabïÜ ÙN’g»ÿ–nÌ¼ØÆ‹5R,jß9b7¼ªSà u‰LHBƒ5¦+èÑeCL2[62%aÎÏÿd&W"‹–…‘$L¥¼ - M]?�já4Î#Ÿ"‘)I˜ÊNÌةvé)òöl¹ 6Íà­~³"2Û–813$á�SÒ¯lˆ±1—d Uû1Í7:@ËoÙ¿¨*°¹4�Ÿ-`ªô‘…VÁ®èÂÅÐÊ´ˆÏÕìÇŒ…Ã@þ:L�WfÅ“]’Æ�#‘2+–¯!C6f(à®rº8¯ñâðdÞ�Û!o.FN`H`Zî°³î-·Gúž ¶ ‹�¦Æb|�Û•Cç¹*ñƒîÙ¸ÏÇÁ*ªÆ²K¼ÛIùO[Œ Ycƒ£»—�E2åëý\¦˜‘I (!¾lü>Â<�ÄnOÏ|`©Ñéèæ  ·ºÊ´Ps'!Åì1¸.¾´%×)�Ð,²¥¨svĵF0ºé¡pY;”‹iŽ¡C.ºøÑEL t¹ „Üo ]ÊÏC†t1OËÕè¶x9< QJ\¹Ê¹•š‰G©’$-”ù ÔÌ©Ve7ó½D:,idq·Ë¿³$­ç˜�Ï“™Õ›£…§…`1³¬ÙòIž 8„‹ã°¸¿Ò!m¨ø/-L`À2ó1ê5�òð»RÚØ zj,)Ù¼ Àó¶çéþP:î×SK)ÑÇ£¯Ùsª"U°�r†� U�®^Ý J]Ü[~Å”½‰]ކ ÖZ�L ‹”�Ÿgâú²í<_¢$è�iqÔ%™)cXåßœš�ÿ@éa§‹g=ú.ÑôjØd½%WDëÇ›™•/pC6šˆdžYJÜ£ÖvSià4h÷q ¯³Z_ÏVÓ1Ìm>9(¿¦XÝ­D)¸ŠBhvÉüØíði3/ßvìøï¸Ö—n‡=ÉŽä¸íp=2N¥ñÕÆ¥º1Ñáña@%% *)à‘¥Cc<2q?œŸ·¨LwÏŠf¨‡¿Uyx-<ÃÉd O¡ŽîŸqªDD âa›ïЭ^�›Ë4Á¾Û�ómlß™æMt@·á«\¡êRY(ë0ih �ë.�PV¶wFÒmœ’½,”žŽrÐ�’JRÕ÷Îê6¸ÏmÂM´R¹ãÝŽv?kw¸)Ë¡Aƒ÷ ¿ î‹nt\Åù•‚g±´.oÝJå›+èß\Jâ6àAZbeéö\ë6Zt—‡áÉÉÒœrIr€7ºz¢Ã K›ƒaÿbËIˆd]!j«¯×€ä˜tï;QK&>DÕŒ0íiž3ª3+‰ã°…åÊÃQ<¤qÆo]Æ{7YÅ2 Râe…Di® ø%ê¨ÃŽ©wÐ `’ë#XL°Ÿ D»•×BàÙ_}øYHe�r¸F÷\ªÔPz bÚ1æù·–!/þn�­ÑÄÍ–­95°— é|c=cAËÖ@��ÌóS7èT·Ý°](b`Q9=àað –�^)à{õcöËÔ B)±vý?Ù’vø3¢>ª( ¼ gs;Vœ<%éžòˆÁÂÓ$xÍÖ÷B©‡lì]ßO¹'ürvG3ÉQ›ÓK?$¶ðMæHXDu‘00.X‹ßA`Æ.%Èau‹î�1‘4›E� Ïj˜‘?0ƒeü™yð— …¬ŽÛðä¸ðj¾zˆ�È Â‡ÇÛ?{-×^ð›:Érþ|¢zÙ&Oг„�óL†  úU—sËcwÉà€¯MG ²õSK4E窔…¿aww Ú è ãêôâp“ u8>[]¡,=E8ö*ïEHpôzæé/cÊ[‘84«6ñ2ÙÊ-^ ’BÂøã/á·4•gÙ{xì.ˆü¾]á$lÀ EÜ£Ä$¹÷/ÃÂ=$ ¯ «=D)¸xí†ÒšBrNèåz(nŽ`Xý„y¤D9µœåj9²Æ³N lB�˜;kkô͘Œ_&²€m¥éR ­Ü Íf91Æ«I‡2h¢…iƈ¤Y<7‚°s =F&§ùè=BÂ.Lùzï¾ [C€#¤c’�¹IM¶ó�>ÿ®Ã8(�ñ à[x“ˆ=î 1r+mËæ«�RK¥Ç¾k ƒ²"Ω,} ‡Ybð4Pƒ6é”Å® ¨ #çPleΑ÷¼EÄÂZEªq¹ ‰$…ÝøF<$\ì¨\Ä‘0E:²6'gQ0±y{qê«ï ”¦¹ýû”ü•)¡òHgf†óïýª@±ýû‹Ú‡Hri’E’v+·Ô¿áFgÓí@eƒXþ8÷)Æ–;n(±Dù‡†& ÿ>º ð£ëi(„ü𥢸»¸6Š„çàQÍ¡ùV,väÞƒì \�‚ìo`Lì¥NhHH,’×hì½UõÓäx˜­¿ýæKX\#·Îy˜>÷�òB¡R‚(�‚Gü]•o'ø˜M«§|Íe“î²f©ËV¼„GàqE¤ÓÌd÷è;³âå‚ÊŒ¬£”Ǻ��hîÞ?ðaCÂ#2Ux Í#�& ‡Ñ©4¾.iŠ« õŸn6\qÿƒ3iþW l|×å¬JÇ&/ŽŠàØ2çýW”Â+½¾"Ö�>vëá”<{»b|wƒªÒNO`ÐN¡¥_ˆÓò=¾¤ºA¼¼Åœ‰/jTTm^°<¼¿›|³}Qû’N\¤‰âúOzÿ¦�º¸££™µ°U�¯ˆQª@k°ätäQáÂ?²÷ÔM:$B|l‘ŠâƒÍ~xa?$]�ß$èBŠèÒlñÉFç;¤îgÇ:f~NÉ¡ðö¦@ç§qâ¼ØTÌ/Á*²‘�ÄeNænU˵ º<» Å3íÅ&ñÃr¿/èð@Ê ²À ™©å÷ØH;§_IµPü%:Ä‘êq@3Œ©xÕ®Oh¾¥lé/¬S MRÕ÷x~KoH´¡¥NA§Oü¾}�N\9p¨ºÁq8z€è0X6É0Ti¯´+æòëµf®¾<ºit¨åsx+îÁÝ–¯ò®ºp\,õ;¥hEä€ÑÓ¶xK¬۠G‰ á` Qh ¨†bàß"G79oˆp=É» (D¿Ã¶>šqÌæ†rm…*@…|p=¾Á‰o„š"®_…!г`wRgp:]ª cI [Q¥Æ�“¨s¼³‹S<‡ñVhM”$p”ˆ`'™%�¼(3Z*×Öó"@ª™$?V8Zv˜p°´dšRÕ5Õêk*UØT«±¼Z®�ò5¯)¤Ë_<…DZm½Ðjo Uo{ð]rŒå ƒ‚aO²eá|Yg�z-í!tRUB®”Í!Á›|`�RÜë¹f.�9=«�¤¹|˜2Wìª(B|ÏT%,rŽ‚+Ž‘°;œbsbº‰·{˜±.b÷_BìÃÕ7öÓûH”áy‘WU—AÃæ o•x |6R$ú£DÞB÷ÅoìÅòk h1=º7ÏMúàT©º5š¿Q½qšqƒIºáJ¬rxˆñ¾×x-èÂgåõfûp½OÏÁ=Æãjeƒ5Ц*èæyöôl²X-Wöj9K�sô" tFëµ¹úŽÁ³ôcòœñzmã´F×éCO1éMc4Çv�=š¡’³þM$ë³YcK'Ø^«Q¨.sÃìï8"S¯*mëàÁ b~öÜcíAIf¿9:C*—!•É—‘ïžÂ`ȆõGÊ‹V:N–Ëþˆ+Ÿêp�ã+2}ÅYžÕ! IwÂRë~|ß�ÂeW†TBµF…Ë®¸ŠÂ$ÃKr.ÝvÕ5œ_C$ÏÒ®b ‘ ¹—Uíwelõ"²£Ã„=Þí:Wa7ñ‡8OåÑõi&?2… €"p¬¦"À½ø]©Ò'5t±ù*‡.'Ø�èb°âD„R È\dè‡ÛÙßåþÊ�´´û>âUò ë´ïƒ¬ÕÂgîÞrhÀ.Ó?¸y§ð²}¿¡*^^±…7𒄏×hœ�¸2LyV¶NG´@ëBÇÔ‚y Êüº¯Å·ëÎ.þn{�'áMä¤}ß¾;ùCóUZ«:èÁ]Ú¨™½¢Q^Æ©wˆcz£9› ;Ûö,ѸfíjºkÒN6—¾òßoôÝ-ÆãøÜ®håâSOýjü䢹¬^“åîJ¼·Ë._<•èì(ö½³üðmùϵ÷©®ž©Xºá½Û­š]Â5µM1£¥<ƒWeê=3ºEÅþsªÝïYm%€ý9y­Ñ½º„«�çûxo%($œ§ÝÈG‰{;¡¤ðê4ç.ûÊãvœ”€‹2mœðWí¤úK «[}]Ûu\ d¢Â]Ék ‰_µµþ_y ƒ†êlsª£Íç±ë+k’shwE1]qn$Ên§GT¬Üç$Zƒ™V~s²h™²†±€oªžÓ)I¹DÔBDµ0©±€“r—*·OM#ÓBq”õZ�� Ûº€��«yëÁÈÁrw\‹…ƒöÜí·7oQxû®KnC b& {EŠä¤DpdýŸ§D‘ƒ-=*Ë1³GóöcÊÛØ%ÄS›ËaÍÕb´”ƒîÜcÝçS·úÉ@x—#ÍÁò¦îžlã�Þ\'ëÆ�$£Ç•i÷´ç%[�iØæ�Ùë^C�q>4ÑèªÝËÈ\ΖOêD?Úoº It§ÑÕB`þ½Ö;]=j{8á_9¡}/ñфܯ‡æBž�b½l:K«7’ž®ïžíÆê„Ôƒ° ÄÏÊõ]s~3a笖È*~± ê®iäšyåÃ.í»@­Hþ¶uSEn𥯰ÍÚÄKœ´À¶±B-à[Iò,‹£ÒD”bbcuÆ�§wC9à¯ûÎsá,uDI&ŽÁ:G ûÞÙ±ðm·qц]ã¢âè—·º{�ªÛ,·–«·¨,Ã2ΘZŠ_¥š¡?¸¾¯–ýƒpäÓÁá�õÿmº:H„É!ð‰"¿4ßùÖr8Mä“eJRÕ&;ÅŠ$™»Ug rë4ÞC<ÀbrA‹|ß÷öGC,±$‹•‘¬",°ò¬$�V`Vv ‰\ÙYlõÝÚh»AÂFxªt„ËsLÕ.”*QÌŸ¸+Q…î©p™,ÍÀmž¨0]%xv`­¡¡{�rç~×¼ð5£Æ”SÉZÙ)!oy—@%øaÛe‹§ðâ0?FŠ$>úŒ(“d®wP$!A¸F�d{¹*>覦@uhøa‘gQ³ˆ®h-‚S±ZS]Jö·®*aØnìÞ ’·#òvdMR¸óT 8ÆoªC=*·\ä)7U——$%oŠ0³iÐ[”e†¾»$<Žôâ²…+%Ħ¦“¶Z[¸²x¿Õ‹¦^ mFæî¹c 4ŠVú×ÁU�T?J“I�ã$ÏñøÅz m² ¨â$\’@ðbYs«àÀ2”®Ô®·ýàËõ†ÿëh±6ZO‡kÌEbã÷MûÝ…V„=<%Šx<3Ç›Åtn|Ç#p­æíGŸ�‰‘ô‹Å“ØXnÒ‰1Á¤^!’nç†5YÏTû8{d⨌Œù|¶¶fÖàô¯ãà¸=ýd12¿lÆï¸ò£Ã�{õÕ,ÙÆ÷ÑØv8ı¬�áíô}<-F]Ú SË6YË:¬É°�Ål2i�V؇a,üO¦Át•‰LŽêžÙ3pg–!I´²¶–«%+Ób¶e”AÍÍÑxpŸÌ�©m=Ϧ6€jb¦!,LZùz¸ºš[¿?MËšU–~3¸–ËÑbp'-�—9+ËàäƒK¼\áºq¹Y<‹K¡À7Éj=4%³‹Æˆ![$GUu=Þ—�EnŽØŒð285jD›³§gÜ�®¸J †�‰v–±˜ N‹1Šðæ�µšÚÎWãÇËÊ<7bŒ'´Ù$fС©íÙ|2Xnl¼`K™¶ŒF�ƒ4È9¦û"mäÛãð΃´¨Îcÿwºü´¤/<�µ¯/ÙÇö%&|°á‡~çÒgg`Ÿdü™_äÅ~Ïu²n‚=‰¸o@‡ÿ…â â¤Û•{7ªÙf8dI`�a²¥ø·–î·W‹ù„°Ö%7º¨AÓƒ‡ó*qo²õzÚP?ö”9 2„†¢é^™#‰)š#Œ»½$öaè`PéÃðZfà˵Äð¿Žã76žöÄ$4³Ö—€ x'î!Oüή!ø÷4`ƒ:­K1ŒÆ.+=¨Ð<õƒ\&Ýþk{!^ö!�‚þ ÛºÞkw¿Ã×ö¾ç_¦pµÕÊ�G·ýiýG7ø†¦LC"ßÑHuCk æj¾PTc‚éaÑQ/é:Yà±TVpšàò²nyIJ‹Ó£«‡Äá÷½ZWN…2��L ©DÑìò'£ìÕÐ׎ã¹9%Â34ºÛÛ ãn¦ë¤ŒâŒP�„1 îê/¬¢šé`Œw»â�S ã‡çd§„èæsh–jä$õ%>ŒJJ»�ORÇtRÕaL�8 Oz˜AᜅGU¦Ô+Ý}8’Jï áŽì´4wç­«Xåƒ)4�¾#&³ÎUD¾˜˜�ª6²ÙV]5tœ` G5H%‰J3@.Ý^®ÎÜ;Jƒå;AP0£'S@*hévp¹f϶Në³Ã”ìH <ÿ»|lMGÂ84Y oUúÃñQ‹Úˆ~wÃWùVçht£×!tÛ×Ñâ{ûJºø6‰!"Æ´òXÕj©7yú|þK¯âÌD^˜Ó"þ��B­Š2@„Œz.R(„jË,¥qè$Œ…¤Ê|ºÚxˆµÕËRj |Gr˜Ñ|›F±Vä&ôgR)Áà¢..;YÜmÖ "òóc¢HQ¸$äߨ"W¹™¬@7Ù¬Øé5i0Q¥PÙŒq 2å¨[Hާ¬˜œè”è‡*–Z)zã3§9ÛêUãš"†€|ヮª¹?è n€#ÔÓê•΢©÷dÿ©ÇM¤ê*H”ZXPhj‰’A®5+$9MX³dqæ†NÔï.ä�Xµ×J°Ë†íã€×pñöO8j?kcY®¯Då;GrìöÏ9œHü®ÈPNÖsáî$Ä•nå^Û·Áq"‹ÍÜWâІµ5˜$;µ¯–²Óõ*‰ýÍÛYVÞ6íi¥zŽIÝ÷¡Ö ¸`(}ž´?À§™[áô"i=?^©”.D÷³Å6Dš…çýüÓu'ˆ?›îûºÝ_pw°«Ìb,/%¨LJ—Hc7zs)xp‚MŽ\`mG��ÛÑè†ts|#Þ— "=«-¢M�ÛQ}ÓB7âÝM}$Šìƒ\y‡2¸$îÞtíÀí{ƒkt�’îˆmlë��ä©b1aö ¡•Œb�™{Ldq ,Â2! xQàØ�ÄÁ|²gMH± ÐEŠ·ÏÖà{‰B·œßmtÞ‘'Ýx½(¼V AG^`•Þ©îð„„œ¬ÇjíÅ)^ƒƒÁ�oqç¦%)¨W™(X‚Ub #£ûu×°6ݰ8‹qˆ†(ð‰Lññ‹@ê–€âµK@ßl±• ÉY88_ÄÊOˆÌ¶lÂ8FδøY,Š7 Žnßym2?Q’#ë%¥’ãÈOÝ=óJN~mL׈º…AJ„ “jÊÞ˜ˆí 9 •rODÐ"CáµÑžç� 9ñ“`ñÎðã6ÉqéS6±¸²hà" "A:ëT¾½&‘™Ö� ^m¦e¨s™bå ¼ðÒÍÚî€GÈ ‡–r�‘tÌ™‚Øæ»Vá4ACÞã4ô½8NYøÁ×ó�@ª‰Ñ(¬^¼L,K™â€Ã,–¸éÎ…˜^X`ü.cÏÒ„äG±£¿m’1Ó ‰±jî�JØeYJ Üh�më,@wOÃ9œø)R~Ä?T „! ›ð¡ÍH”¥¶ X�V?òŽy|ì\ò€ç~J- 2™ÂD ˆãÇžpìï²´VŸ�°Ÿ™2¨C¢SûiJ™aóŠ%}pØb1ŠÁ»™xPS¤ô_õ<ƒíõsœ![·í!ÓP¤d¦ÐÏ’ÈØ“î‚”fâF�÷aÇ’xâ½Jô”�¹¼�©d¡ùíL)ä_¹Ê£ùÕ8Ï©`’rBó-E²m^âËüQ`þ8+qS÷(UzÖg¸,i»’©Ï¬/t }ÑSä= wqjzçÒuÅÅ¡7ÿõ1g†FM •$]ðza€c7¡¬üv‡zlÇ�0D夢h–nA‚l˜1ë\ ã4ÎY{L.“Z�ÇK;ª¤ªcRj#0Â0Hh@1™òKÅ(€„tHI#Þ( :î-´ƒ2‹dr½'ª^›¨¡l!Šö–ëd¯ÔÜÅ˯…¦Á>ˆÜPXÀtDÞQ1(I ��¦„ÆáA³ŒÛÐbˆ°Om–üy´¥ü¡ªÕámºn¢Š…�ßÞgí�*±%^×LÕXx7X¸‘»ïx¯Õƒ®&@,p–1Ü6$R8d~ïn�!ózdŸžf+ 䔫 Ø74vð,Ú°N\fŽŠ ?C3�dß\„dŒáj¥×é@¤ yLº£bÇghNQÆ*„’89” ![ Ö•Ã`…y�(Y�@Váf"ZÌÐô9Ÿ\$Š'€ üÈ#2HL?�]ëÛ]oº@ä� æ�%yï±h{=;†ƒ Ú÷ïÃiÎlk¾ †æˆ •�h¨Ø„ks‘™LR‚c>®¸ Ìà\¥>aY g—5ìZ ñd0°Ï-ÚÝòM©î¯ ÜtO¥Á–úp¤áׂжæïg9¸T�^ZÈ×bT`‡ JûZe:XyO*)iœÅ^" &qýUá{gX±ðƒËÝXÝX0‹„»áYHÌ ¸IÁ þUš>Oà>m© –H2¸q 3Èiˉ›•ëÐ8™ÜL¶ÆÀô‚p?þlŒ¿v¸_ï€v†æÂ’£¬àʸXœ¥É«=óá9pˆlVj¦É%�Ô uIÒ{N‡äâÔŠ,ÕÔÇÉ0óÀŸòâeÉð�!à››"»ž!àÀ¥Tã¼G°IDUca$on¸Q¦Ä£Î!k¥Õ A´#©#Jâ"é¡ðJd·¥ÞňìC£“•x$̾’CÒj,àØa¦.%�Jw  -)ˆš»jª00ň%½GŽR-QÅÅ’O�)e64ø¯ÔÁ$lku&á0ËÀ�Ú³‰’â¡û°iæ?èEî3ÁE�4s¢r‡¥ý¸ªYÞ¼ôz|bv ¸o½ÐZ¢ �Çùy‹»� ÔÅT&H;îÜö�3ÏrE‹C‰“R œ\óò'¶ÅÒÚlÙjÏÀíÉC9� Ç´Ê „<ý¾Û¯íÈ(¥å÷ã L¿{qµ‘>œ¤ì'<* |äPM™Z`š?ÆÓœ?Ï5u{ž²¶Ã­Ôç»øœG»áÚ²í4½ñýêH½ùmølžðêMË–¼¯¸.IàrßíÝé6>>nƒ¨ûaÒM&^ÁQ¾ü �Çï•n“0U”É‚ ›'—2#½÷büM6Ô#ð“–»L2$a¿v¾;¸‰>€I>÷Ò±©¶¬»4A~,:eà¹ç;¿8_œ¶X2·ÁQÿ:|�3ŽYFŠà%-j€lÓâCu “ý2.5_ÚSç,gð�C¸`^ð™$®Ì0£¨xÌ{µ<�¡…ß-’mô2ÚÌr›o›u�Âuº´yeH1ø(pÄ[½S—a/AÛ~«‡Êz »Þ¶ x=PIQkÊ¿¦#)[ç<ʰä2àMD��¦]¡Åqñ¥Ê(<Æ4ㄊLü6Ž"XOêà1"Ÿ¾bŠT¡ÑP”©R¢ÈñÄýÅm'u•zvù“E–Y¤J@• fQí„K‰hYøåR$Étph)‹U¼[R$š-:¤®Piá‰÷ªUZäãˆè(Ï2ÖP"&6ú&F¦I“žéÑYðŽ!ÒÀ¡Kñp.MC•_fÚw¸®EÑXàYG÷›n@ ÕB¢£j:8ÊÛ#:Äš­O´Ðèê.;ÍUšŸ÷è¨Ô‹›FT‡Z§s÷ÑåoòåñÉ6ß+ ùÑü."5Ë3ÅÍUâQ¤àK_Q¹¥ï“"ÉÎ B%pž’³±ÈwÅøÒÅãh¿`Ö–»'*%8º“ž@C(â<+\ÝÈ2¤pœàS%Š\~ª§2[Gçè±ÒœNqZ=Mî !:ˆ¨±ÿ"G�o•ð™äžÙ�tƒÎc×om4®ž½øMn_PØ1—•æ‚cOª™hYFp“,œ¸Á¯tšÆGñ~XÛ²ØÜ×Å¥­šÍÝDI>ÊÆ$ü*žjÓ -´äû”æAF*Á–çɪR­S² >ÔÙ í‹kå²e«�ä¸@Ø4�ä©+«þjFŸ"ÅGB¼ŒøS1Õ«‘i!��uEyÍÞ$ñ<ÉM¢šd‘¢}ÕéjÇ’Ò" ±B^œRþÔ†€šú/9Î%P‘ LÖ]quI�E½,ÌÖÉCß*â')𰑈ciXM+‹ŠÃÌ#%š8Q„+WDP¨ÕâÇž*Š üN‹’ȳ䗪FUzß]Z0ír©%¤•N‘³$ÇÁppèìHçÌÏ&%Å䌀Ê3¨o³é}—Z1~d ¶ÎG©&"‰Jüà@�6Ùí¡3&‰V` V�sòöÛ5] �=®z¹v}9¦ŸåOñà»HI½—„ä¸6qÜCd>»‘vÞ`îÁ—E‘¨X\ýì¾[)º/ñ¯£å�¾.«Z pËd·ÇÅ1”÷¸Ýèä¸à£¦_’qœÀG|ýŒN|ó$IšÖy¿y. Å­™^ˆpjª‘4ŠõvP9}¯Á¥ �0`ŠcX{ãB#E`ÕJKH5ãĘŽ6s[VELgsÛ0�ÉÌ”eX¸û@MÉ(ƒáÉ ºá(uLAå7­¾Û,ðZÁ;¡¯Ø½—º—Yû¡6`R¿×\Šê¶ƒPQ#¶°ê#í ¤TèU=Ý’e®wÐ!zPuÕ|N¥®”k>uu\q Øà¸ÍG»`ÏLTm/ µ€© ~rØz¡…ë•’—¦ré˜ "pRT?íW+ |â�ÝŽxjⵌ£Òo¢úLÙ$SáY§1÷¥DbRIKiÍ8öla¬6¶RËŸ3sã ž›…Õ<ª8tò«ªðrŽï[lÞ íX*ZÉrð›ÑŽ›gq©3d‹ÄFÜ'oIR:»S"xèyˉ`9ÂUÕ$$êLñöO¢£D°§¬(9”¸Šø<–†k‰2‚^½Ó†ÛkIÉ1~#Ò<.›9¿—R÷#ÁÅy#5ÛÉá6QØô³[^ÁÖ4 ÙÇö�0þézLü™TÇË8ž -üïF™ÇÜü©N¬[ŸL]±¢«þØ9[ݦ}¶íµjÑ*ޝˆï¨Z˜‡]¢…b'’žcZ ›“hÏE@ û³ÏÆœ«öXI¡R©ÄM‹«7c„'è#âã„ìRwßsÒrÅÔKÑé9oÏþ¯T’ƒJA¬$ 2¥‚4T ÂÿïüÕ©®‡3„òåqgœ¡pg—ÆGg{êŽ:˜) sŽ’0ð:F´ÁßH‡`½‘¡bì},Xêô/ìN¹ž¿–½îô=è{a|ò˜D]~Ƈ€Ë“4x—²l;wn¡�nú* ,¶6ÑØÈ;¸QDBI4¯±6qVJÝcR…ÉšᲅNÉ{ùxÓElªÃã2Òá&« õžvøŠíH 5�“kghô`«Ðr£­‚ËI~ —�¢ ,!ûVNøœ*µ9UksªÖæT¥Í©B›Sµ6—ÅüÿÒõm S÷}(AÏyéEj⾦d×n<ˆo×öCñ÷Ò÷¿Èe’x±�xÆÑ«�(e’I!˜6»öïWr‚x·¬ ]bùJ#F?¼’ûÐ!}4‹ê*w‹dhÌ7ðW¦Pã ü÷†¯õ.ˆªðïƒó/Aà€´Ž\žìÿo�vàù2y¼OÀ]¢dÙB^qP6?VÞ ÛÔÆm8ÅB«QP¡­ ü'äaëz¯Ý>Y[¶Û4~ï:=¯?·(ÈêSÿ2ë‚â ~|RˆP’>”–Y{Á‡²t^¡ÂQ8y×DãdîV†jOºå´Ø71ÞF–5—G—Æ3”É0è b¨vé埮%Wüy ë6wuåÕ7Q1³=¿Ê šbÁ|+ Ÿg 3>pÀ ‰D~L.¿o¥7P0 `d1#n¤2ºÌF¤L�¥@Õ5>7ò�è-HãèH¢Ìb¯gï¯�eæô€.òóWã‡3ž�,˰sµj;xï…nLÓXÚÎxµœÎž$ÁË0‘ÐÉ�¥3Ù#$l¾�æÎb4~ž- $vm˜Ó•¹-áF>k¨¤5�Ñ|îŒÆcÃBâÆ¦1² g>[~•Z›G‡ýŠÃËÍÂ0pd¡�ïÆxc8ÐreϦȂþ¾1ÌηÑ|ƒÌŒ5·° [&£—ÕËo¿:¿|A÷�þö+hÎ0MqlЪ^«É‚°SÏúcNLêíÆV/nÒ³é:¶Óµ »…ek(ôw¶Ð<Í¢]ŒnXŽT˜ 9^b²«qØ>5�'çq¶™ÙÌäeeN$ ,³'¦Õ&³ÑR=ŸÙöÜ�"0¾¯Gˉcý�ƒM7l¾0 kµ1aŠ2¬±9[Û+Ç‚›5±ØÌíº´ËfÄïøŽü]µ+ªæœÏ,[j¿of¦±`¦Ž%ÁƒiXË}ÃøÉ$r‰Â cç‘ßµ8ãÛ–gâÃ#!IwN ðjñè̘m:²lÜY‚}l˜f× º…üÎLëÅÈž­–Røg¦¤€³%7U¥3f6’% ¶ìÕZ ø22YÉŸÐØ¶_ ¥îžÈIÔ:tOV)Ç8¨Å”úh>Y¸ârØz=Ÿ�%:”ƒ­Ë16�Í ¸+ŽGÎWX ÔÂX¬º&÷>ÜrÕ‚ë&/¬÷2šIä·Þ˜Oíi±©C¦eäúÝúÁ´åbŽîƒÎ³4ñíZ£—¯]©˜ûZ?ÍzÞàžQurè"xpv°ÓnÄ㈪ŠDà–ÁÛóëðT�ð„±�ýSçö¼ß�'Ž2”qž%Þ'eèúŸ9âÁ-õ䨣9YÆZ/ÕGD¸¸ã”—×qŒa¼wêc%õ®(IßHª§ˆ1uˆØÊÕÃ׳ÇBIäw^¸ÆRAc94ÞÁ-U¢§–âJs£á îœ ?ý ƒcÏÉ4Š>òkëx{OtI §ÑŒ„HÝ´Ù¡¼Åª‰•ÉdjRŽRuÊžÍ,U ‹ßuV¢€fm mÛr “¤žððÖ�À><×à ޽åj0L]¡Q;IÄ}ó†þE7ÅÃËõ4+½Ètì-2^I)%5ˆYf¿I,„U•ÔªzH¡1‰�”$ÑS$þp]‘Í'ǸäÀ ás–£ûÚ”d QVÞïC‹?GŠ+7VÆÔÑÕE Oõ_ê ‰žEÌÈ–ÎÛÊÜ‚„T~f�x„QoGª‡i—‹ÖÛ�£w Až¡T§PºÕ9Ø­«ìäi€•7αgZ‚6V!h‚€:‡8q¶'øGŠ¡tj![a5B¬» Ú—¡ ¨Õ!Øex�rJß8Ž77 üòj9VJpùCd•â,Êi-r |Í4òÀZQ \IRŽw„)Vå 4VæÊµÈ€r´p“𪎓¦3xH¢½x1Œ’(à ‰ëÉ•?†8}£0Œß‰/GÐì%"ŸÀ ‰˜`¡�lHŽ.› o÷p¼ùÂO²ø0Ž$TÇî‚”fUÅñy7'/*‘?Ã�Ϫ�Ä%iöHvq*Sý€Z0÷˵]è*5�üŽ ‡GåøÛ˜3I¶L³fk ÷A0‘ÉW€ýÏîqöýMjû¦€§Çê 6²ßEàØe�«Äx¹«ûÄ9Uê7a¡Éª»”$!;Iø<€Øø«„ÊÎVq6…ûlrSDfåI§™ÜÓºÁ"·{ØN•¹é^bõo�¢Ìý�©lðÈUà%�£}¹N—Éúû³½˜Ë-®¿/æKK*dýrµ)Ú±ãßÉq ¢àÖÞ|‘¦s�¾üÎGp35’e§ò€ kž‘ö°éáÉ#¦Ñ^5ñË”ÊeªÜÆ÷tÕ0ñÆW–*ÉÃðVïi:{¿ü‡oâÕqÇn+ãmªÂ6ß4¤°´°Sóvk›Kʽ.ª1®Ù¿ŒU©­Ñ÷/ªÅ9¨³Íw´0f:4ÓMª!ò>Œd�¼wR•ž ”Ô&a=MÊM“Yä…¹O:G�HLDbþsÛ8j£¬Ú?ŒË[U%ìÈ£—<¨Ë­�Õf?ëlà{ÿüëòÔmjW6H›0c úÐ8bÓT÷‡Æq’–"–[rbó SŸÈór»ªÏÂ’¦†ÀU©þ3«ðSZb|k×-Febf€dú™÷äHÅÊ'ðv{T¥M?‡õsÄ ˜?G^ÉéÚî6’—¤ÉÅ΃~^ú#s÷Ÿ¢}37?‡¸3ÝÄ¥é sÚä?ƒWý4Žõ÷ÿùSÆsÅüSGEþ) ƒÿ¼ÿÌÿÝ\1^v‡ˆS¦î~Ù)EÍã¬Unµ Èš²7Ц*wÓ ëy(ÇßuwM×¢á÷ò|CKS[ù¶± ÑUFø_O°UοëêÔ7nR*‘—ÔŸÀ{YßåX%r­K¨ b'¢ŸÃ�ŸÃKáÑÈ'Rkm�ÎqÍèDÜ>�„ÝamÕu+‰šxGˆÿ)¼�¾¤‰ó0ü„ö­X?£�krýíÜàþĶ.^æÂþ¾Æ¡ì¹Q^uE@×ôóc¢“o—–·•?‡5 ¨V[%€ dz)ÑoRÁrãÖ�šT;ayTâTw�t²g±~Á*9ÕÄJÄŽ¦üÐ1k=ÓHNü[ë)ƺzOÛ]Ñ3®ø¯3|Iï: ljb=\ñn×óÈd—PØã¾°‚Xª)¼#àÉ ¢ØUO%O�ð«%Üí 3z\™¶1Q¨ÒÛb=ŸM GrÎ|¶˜ÙΣiŒÆÏº2—cޱ´gö]”¶mÎ7¶áßmÃ\Žæ¿cSMy<Ž&Îøydê¤ä®jõu<wëÏ£å“áL�YwVà“|=2­vï‰2ÙL6Âá Q·¿&æ¢E&Æx>2�‰3[:kmÜ4çú¥låÀ§‰­ktNgË™õ¬m°Ï–ãïëCm œ¦iŒmÖÂãÕD_ÓΖßFleëŒÌ§ xÊÕLk¯¾KMœÿ»Y~uFS&iÎdÅ”ÝÜÐXàÅÌZÏGc6.àoë™&ÚåÊv,›�†Ñ¼ÝﲩÆù‰3n¬µ±œhät7Óikˆ I¾¢Ë-}Œ�¾OeøØL0ZèŸy­=cº&J]”›G6ËÌtu5SL6 ~3ôWži{ÃüƆeuã×)ÞXè$_³Ͼ;Åžáç0/u‰­î�Zð雬˜-j�¾k"³GO œ#[›±l3s…ÛAšø6ËÇÕfYöµ6Òñ|e1 CÐÇbs»j%r�ó3kn[2ãDwSLÛ’Wëg³4¾¯Y³2^6›j³³™•²\½,ujÜäU•Y¯|Ù'Íp>Ü%IØœ„ŠKuöñp{Wâ… ¯ƒW{ÎÊUsV’áM¬>Vq´ª�/OáÙÛã)#ü!¸Â>Ðé8óc´Ì�ÛnG«2¼ó "Y'â¶·¶&=ç±áÔY‹ýV­"jDþ†ž%Béä�ˆ³tÝÅ-ZA'eõâ]sY³ ;饽©w rʱڶô›æAÏY5yãC8X½t¹�­ØMgÜ&Ùi€'’�#g-DÜéç8Ž:¯$b Mž@Üòjñ;5è=x¦›¹p13Žˆ¶¦\>­´Ðuç}C<Í´ËÕ;Žªí"�¶úZ$žÍìœW’ŽûoUû�zˆC_{ ÷#8æÇÑ1 +7!Z2Ñ3°ë=÷Xë•âR™ö³†wßû)Fgþ 3€ë68é瘛ˆÿà‚I°aŠ"NI°�Š3 5ºïÇPkñ¶ùn�&ŠÛ6ÊÓvÁ×÷ B†/§Ä×§>I‰ïÜv„¢¥ ñ˜¶“'¦îGçQö­u© ·Fßyµ­8ºÀüÅwoÔ—Á4Eè74 ›ñMâÅûˆ £¯T«3Ç!*Dâ½4á1L;{¶ äÓÞÃåwn F}!ZoS=xå6íï2$-áKÌ~÷È’¼·|øªÑö¸”$^sÇC 7IºŒ Yr6¯Ä)/‡ «¯¢iãOP>Šer $+Åd{¥cv}ô¯A’”3»^æÂzÒ/á´a>}±f)çÔåœYK:T]MS9IûIWÙò+ËQ�ºÜ’ qø¦Xõs*p¾?è|¿GGï4‰ê»�z ö°c+¦ÐÐLú²lÏÉÜp×Ñ‚çT7ŸuÉp‚ƒN8–ÔMÚµ’¥äHI…šW-«†ÎNÄc ΂ó°99!iéÃ^–©(�CŠÍPg¯™/ÑÃW]±w„ûFͬZØÄÝzG(Ôƒ*g§¦=àÒ`¶BVNŽÏ¦&fæóhF�e‰:o|t¢âxB™,COkÙ§~O�¥ãÇ’êmYdz‰ÖÅß­W'Ý ›~¼Z¡ì?ˆ²D{W›ž~ï�Å!Çü» þ,fª™”w”þ–Pï±Yä¥Â‰â�ÇÉ’t7^%˲ö>G–%í÷ü9”‚`VJ[¥%+" ¸¯QûeÕS@à­n—}¹y±k!Šf]7@écµ¡4±ÒOê6ú™ÝF?¥Ûè§tÕÖm�M]ù![�ðauq{I½hÜÈ9»½¤‡SS·45u 3ÊÍÊ\”FtËåñ”Žr7îg;ÁºX¯7Zµ1_ìŽêâ½ÎS‚r],’µqöûsòÑO+ú)bE?M¬è'‰Õ/VŒ4V¨•QVPÓÄëZ³OmKaø³å&zP¤èÇ?<ƒtèØK–.ø­hÃyˆ×$`0 ‰Ôh&¦6ètí7œ@¹B‘j•¦ð–@º>ýÀß#Œû½@¢¸ê=Di¶£ Æ…»U©º±a›Å^öùÍD²À1¡§ÚNWŒGº×HxàŠˆjdÌÓP‰Í")›Ž燼>jp1~àEÖ‚�*?|ZxÑ3 “O µ‚}Ô;åÝægb´{«ö6„­�# ¼Z}s“HÑ57_ÇO3˜`×ã",iÿYô%í`¾â`ÅIÅ_ûZ\Ž¿òÄU5äçeD4s#�|jYÃeR~NWÖ‰~bŽGPò?žVÏm{º«›ìBG¤rÊÈõ®š Ë,êÙiÖ•[E„j™èîÁgUêGÏçtaWÊýÖE¬ØYVá–´öW7åKå$nv¸ež Ï@Q&®©tjõ>vu…ÞÏ®Y—÷e¦¨Æÿºœ£Vtg‰Ý$i5Aħ+Û£ø³Çßo:=xë:ênR4°{6Üøýˆ Øy£¼+Ÿéµ”¾µ–ÿýÑõÿ’ò•_Û½ÿ3†kèN:‡p^²ù®]qP9{äƒÉP»¸ôêøA*Üu½ž¼‰¤§cg¼Ê`&8rþ3¢Äí¸Ñ�zâ4÷#ã„Dr·ÌÛSWXðàÎÇýXZ¾¸cu”̰ÖÛ{ÝÀSc\ "%JDIN¸–ùc¶vÙÿ¾`J  ‰1��Ú½¾õâæ,FXŒe¯L|Ngw&(Ñet_x¸ ­/F£b‰÷É6ßK£Ùx‚3e¹¢à®°G7ñð‹”* ØÔD»X.w@–N§ñèã+Z_—P¨²|ÆxÝ["“”™)Ò¥ý+‡dë‘„�§÷8•$`FVØ�xpw´¥aPšálV%F�æalŽeÇ:»8mZ°è«¨¢Ïl`J{mg)ãéȱ‹^쯪²° í‰Su“Æ’,8ÊW§z»PÞè•eI]5´—)·ü¢&"*‡ ݽ³ 2*Ï�ÆG‰¥B 1N¿ÿü›,âY‡ªTÈ,–J,\Ÿd v_:ó7¸4…ïHVæÆ º}½}… Žðð¾kÉ-¾¶-º‹/PdþSoX‡ ¦sŠê§ö]©¡Ø‡†šïh¶a<…~+š£C†Q‘âi!‚˜ŽìN©ÑÀ¶Lçé9Š¥3hŠ¥©³Ô˜êç!òj"ñ"3>BXýZ3°®•üq\*•ÅÒ^ä ßìZ´÷€º#gµ úÖê­©Á[ºcÍþ0†#ÆÂ™ߌù@ñdê߀ùÛâ 0‰w�bÑ Äµ{�csSQ6ÉùN_˜ç[$àhÈé»rÕB°}w^g­®ê[’ÿ1Ÿ=.Ÿœo†iµ;yîÀ8æfiφ‡p Ëv ®…iXhœµ6††˜¯Æ_‡&f£`´™K•¬„Z¶ÉÆéÓ�¡¸élnæðúˆè"ÃSGPoæsg:ß §ÞL§‹ÑÒY-çƒ+¼\É4/C¡JVF9@�̹14)�„"·MÃ8~]8FýåK—E| hªQ"Þþ‰¥¦Tçê‹A•¬7ê×Eú8"Õfã•‘P|¼6Ê3apÙÀ!ÁKí«£5ã3¶3†Ù­²Ó�ùƒýй#uöà…ÄM…™Ø>ý ั\ÀðJN�3ßx«Õ`gÓ8�üþµ_7�ûÆæ~p‡Å÷�àÏ�ÒÝMÂ+:Ùßå�ß ôÿ¹£™ÿÿ'þ¶÷À�xÃáŸ_xýõþŸ r¿…ˆÈèý¸¬gî¶þÁÌ™]°ÏÓbq]%(@g í½Þ\z¸ßºÌp¹ONí¢;ú’ð’¬�Èý€BCÞï™1…,aÚ¤ ’·ßd¹8¶IFÝÉN²tºI›Ð÷B©PYÚ3 'Ü ìý6س4{Ø C2_4iã0“%hƒŠ|$$ Ä£Ýû?YÚ+šF»”-ÌßãôU’»Æ7Ha-+zô¯0È ‰(¿ÿ"—Ka#[Àƒ¿ÝL!§sŽy’ÆL‰ÃÔ%G\㛤'š¹ÒòW¢„ôà¦Ä—ä+ÀMº0~'©ä°nåh�çQûénH}Yé;£hP¿»ôxïŸ"÷x÷p1E¾ßZ©.³J²R•<*NþA¼ûb'ËÙ€Õnì£æŽ(¡÷pÆ�†sTEA¢7 @Uâ •à© œ,¦h5Ê1–ë�F_”çG¨J” x²Ã½ëû`î³!Yð7I±%ê`©3H’{šÅ)¹‡¥Eðû˜Ry´ÕÙP .Ó$”õ%¼¢ävSŒÌÊ�¤HÏÎh³ â6³ ù¿„JgÐBUe Ål|ÿ~g±\µ¿=²¹·m)Þ&¾&…“Q9é( ›ÒYÒ$H¤ØjtEX'÷üøA†õ‚¢¢æÖ¹îã”ýv”¢¾ ¨¨Y{R„ؤ9ÊÒœ—†ÊÒ4d/Ìb9†«HŽä§'E½wERÑÃý"JC)Ö{IvŸò«eÁP'¯û{”bmÀkÊÐÍXwÁQ¸e ¯)Oâvž_�­ÈÀ.‚™QŠ­WtШ¾ˆ6vOs¸è$EÜBSg‘¥�—ÝÇlîÞ1ûWŽÿ‚£&×s¥8´¦â—„îyð9Â&Á%-h’Ä'ž sÅQ‘ÃQÒ=<«¸o¤Ø¯Hjzn†+*™+’šæ<&”;9¡kÀkÊ¿¥uL­¨òˆI4,þý–Ü· N¢—°‘m±Ž»‡ëT2§sŽŠü�ͱiùR¬¸¢{?r5*«/ÏJâ8ÏîÙ “»é`š¤^ gö5³aÃ)8²†òD ³77•ͧ…é,£Ø»~^©t Š&õòe•”å­ðMÒä¤FZᛤ*³×þœôgä^z’½âh’ößíØÊ¯¤ZyX&ÿ·øå{ò�( ìüßxÈ YI@$0k<ÄÄC,<äò‚‡|ÇC¶xˆ‡‡øxÈ ð�#òBñ�yÃC>Ð�‡‡Ža¦ [ûþ|·cJÁµO ågÚ_~q½WQíÐÝ’’¾ÜŒFäý_~Éyš‘÷Åï!ñ÷Üë*eX*žßÇÙ¡°¦zHίøÿÇ7‚ˆp”9…—v?}ùµ·@¿öè_Üôu!þ$餸— h&�]þ\<ÿ-ŠÇˆ›'v=¤e²%yÿ¯»Ù1IÙZÇÿ/^=“ÍMp¹z!’üôå·ÞŠþÖWÑ_þÍ—¨»˜õ"!ÈøÜÇl».Æ_þ]w×Å—»"ª™(2ûòÓo¿ÞoƒìÞõ JÓ}ìÙE>å)ô{¥d/rº†ž;Kıó~úŸÿùŸ[B ÓåãÈ2ÆÓùèI(t½�YÖ1i‹¯\¸9n½–AN¦ó!Ãçq¶™?œ•˜Ïâ„_R®[ÊíâKbÍgc�šO¬çÜÃÕc5·�Ñz=ÿáÔ­€°{Üt_óÌ––mnÆÒV$3GËñ³37¦6§8ÆlùƒA|OÞàÍRÝlÉüP.ÇØyò&§9{zÖHº™Í'¬Ú¶a®Wó‘ wÕ†÷Ïg–�Å,Fk,Ä2й`P€ls¶|¢lc±†›ËhÜf=Ç€à´3V“MÎ1Ÿ=J3ŒGãgD¡Ç£ù\›ÀVdƒ³v¦›åÛ1¾#‘l\0a°fcçgiä$òë 0–îÂ1NËŽÇ2ºYMPeæC�™®Lùâ:£ùld•: ßFs)är5)5épè³1þêOL¡Úãg„àÜ÷187FËÍÚ±ŸÍFPW‹5딘ˎ�‰ÕÚÆÊÁj9�=mX–RRt�–뛚DÊ@«ñó‰¸B%kfÒÃxµ´GL";ùÍ0m‡ ¦ fªY­àR;SÓ0X6¦…À­×Ò�ÑUüð^\×[‚7ÌýñÆ´ KÑÄ(H”lŒïß‘utÌÑÌ2ôŽiØs©�pbÌ ÛpF¶mµ41LcŠFMG˼=ÍW�£9¶- 4ÈÚ6ÖÜê}-'óÂÒ!ÇÆw›•Ä`7Ÿ0å±Í‘ÔdÌŠ)l Z –Jìef?ÃSº1 é°ùÑ=O“Ç…¢Êä* óɰ�²ØY²žAB^X>£GLg _¶¹±Ä~Ì ¶¦žš«6·Ù ½°çÑ7Äžï g^Á®Òri˜²�;›­}£€lŒ¬˜Õ-0¼x§ÁÅNÙ¸Ú0Ò¡Yf8ñ7‹µ¶¼+²ÁY;�£ñ×ðÚ&ƒÇž|ãÍܬm$SQ9ϦÌ$˜[ƺ‹’«ÝüñÇ ‘Ø\IŒ'©•Ê:Jno›ÍÆdf+N-%‹Êì°ÓéL½ @¢Xð˨^΢X’ÅzbŒÕ‹"hËb£É|¶4Ô‹S1)–H‹'Öïs6åÿ¢^ý’H±›Íl¢^΢X’?,[CI8‹ZI–úçŒì+v Ωà µŒâ ±âA€V£ r�Ï!âHh<Y9ž¯¬�i`Q«Å‚-Ç«%8 µÑè¥%…qf,[ÓÆl2p0r„cp[ „-‹ Q�‘)~\™¨ÝñK¤£ƒŠoñË¥Û –]|·…­Ÿ¥úªI ¶¡°ã»yÅAóÕŸnµÄ!Ö¢8ÄâÖÆx†®•µY&R -Fãç‰!½¹½}eö‡�9 å�ò€[;£É°ÇÏXÕ*@_�h +ßu‹@À,ã÷�±ÄÜYX˜«!Ë¥%f]½\ÙŽÍúe‰�8Æ7cYœÒé˜áWkä k=ZsE;Gp¨X9kcоñúë“#ŽÖ¤3ª ¼“™©�ˆûê‘¥Y­ 'dƒ… b›‡ÁmíBr÷£ ]®–ÒH[�Ûy¤�ëks5�Í 6Þ­¯Èñ¶1gÓXŒõÌoÌ–Ó¢�[n0óÊú‡ý¼Zò£™ÙjbÔÆÒaÑf.£x�ò6õ<ƒèa?$�ÿ;“i­Åh9z‚-¢�½ZŒìÙ˜¿~)¯×_p½‘¿Ó[\…àK0À q¤§œ-KÍvp›ÙÁ3˜gÄãV!Ì2DóG¤Jå›þö¬7©RŒE &u¢ è•)_à•ìÅfKÝ‚e@Ù UŽþœ æf¡ïô‹3j½›Ê¹5¡—p¢&ÓõM%Ú,a “‘_8ÓG(niÿòÏþóÖ&¢HzÏ“–ÀÀ²õ¨÷–4gƒëó#ó ±K^™'· kh.nƒo`A«‘;0=ŒKçÉX²œlÌ߉|ð€»l±<ÖΈ- mþÔÓÂB‹ç?XØt¶dvÅ, îî¢0¸3!Toá lö¸± {±œ™xb{¤õæ$�;‹<ìäA­áN‡kŒÌÙr-Ÿ9ö\X pg¼ƒ|s\€�ï ¬Ìûi{<·¿*žŒ •“1{å<®Vˆ>Øp'3þ ‹ZOl€}3и*«õˆ¿¢DCðç¼üƒ8,kXjƒ âR¸,ûùŽÿ�ÃïFü[vèû˜óàТ DEÜì³’y÷nü£üV• L»ÚþI¼ŒÞÍÝIk ˆnq'â²Üh«ÂbÜ ÈýO-%žV²SRM{¬`aàBÒ,¾Ïu.[O§w£Ç1½ "ö—0Îw胻õÎr XEsî»7‚ˆCíyåiñsRòWNèUc<ˈ‘<EãÔùøÁBV¨f4á4½9íS÷xt;ØÝkÊ»ðÒ· cà€;“~?=_þÝéÍçß5ê•�+‚¾´—7Ý'nJ�O]ßÛ&ˆ/Š(”ûs•OXª&nt¬¬»$�¡ÅѸ.÷…¯¼}MàBüi¾ jwH r¾`èLá1è'Ä£†W \ ²ÑȪ«m0©â¨–úwWâ ¶rw nRÒÆé½Ù�heÞ“ ŸPþÏEi:D€*s"l�±uå*!©(„%"T[ ™˜tp¦wÇÝnSò6¤‹yúû"=„‡·TÎ6‰oíö£ë•ð*ý}™~TÿínPp 4ÁOná@´bKÉŽ¤„uì?È¿ÅFQÙÇ8 ¢XTVDL?û¨‹†ÇÂCgǬ–�(Š™âeÂ#°B„'Ç-3Ç-¸Q¥sŒ€—qÔèm|•”#ƒÈ sŸÜÆÍD»i’Ê>À±_üÜ&ƒõL4gÀÂÄø¯;û”ž ͲŸ™=šs¥ÅøXç{ð›OÀ÷mÞ ÖwÆ…fðì” hI^Hïnƒf—ËY·™ ’ÂõŒ·Äèqv÷M|b¢ÀÈc¨u ² (o˜Ó�ô?¹é6È QÑ5La0-µ¿¬‰aÌe÷BO” •5ÀŒ‘’å'gýJ¶ë™¸ø\ ÊXFj†Æá.SÕt÷õ”ØQçS–µš¬ŠÑœJÙª쀎‘Ç>—ðu‘Šý‰¯a„Dò /ðç77ÌÉ_ákšÏTÛ|ÇÄ…ÞÈÂ*œS bŽø©´SØtûknت®.ìÕQñû�]€4Lø†½�ptXòGrŠÁ°9±¥Nº«‘8ƒ´hÝAÓ&r°™y þ¤k«‡Q°ÞÊÀPÃÎ(üIDÂØbP’ U—þp/âjv4zYÖX A#4Œ¹áÆ`» Xýõ¾aˆ"lÕmã+ãÍØ’:¸¹6‚À]”ç <”õ›tÒû]èvJã O~Ç“s†ÎÚ´À�‹‚§qœÝG±OnCM–ôŽ'åȺeo"­f'd|�‚q�·¡0›Üñ´|©ø‡ûûqaŸ©3LØQc£‹à~_жF€»Áu¨Ð…­q_…Ÿ¥X.·Áå—2�À¨’Ìh,Ç”Q,ú TXÕѲ+|I\�D—®Â•D”Í̺LZ‚.Þ j ²–bU"]éŽ>H‹[€ŽyDËGž"7‰ŒëNŽöÉÃÀA8¨fªWï_ü�ÆQœSع–»EÁR�Y¹ Å:+á�0¯[ <àÌ,>£)7`ñ1Ó´OI_Tý®¨úÍ­˜ö²ÙJÑ,©«½i�ê¤+[TŽ·ê�Ë øßa?C[�ÚȰeì(Y£ìå ÃÙJ­­XQuåÕjJäTW«`<Ï0Ic¾Cß¹lë<9kðΓqptï¾»AÖ³MX¦Ë\úZåUa*šëòì «< ƒ›>5¸Tžl:fÓžw (Àï/�OÞê � ÆrD˜µ$*DÎ÷Ë|ršÅÇû$fKïàV…yªS5Spèݺ€þT—b›ïk3fXi!FÏ‚A,¡{">ß²½Q,~¹#Œã¤²\Es�˜4|w ç2� Þå{#a ²%f…ꈱY‚{(²¤¿Æiáºç‹¤êl’Jsß]µåջĒÇÙˆ=ãþŒ‚wì-^qWéÚ¶‹Dâø6šúÉDº’hÊ+&Í .Š'ª‹ÃT\rè'àIªqÁ¨Ÿ8hVoS—&K-Yï·aì½vïx]K½™Gß.�ãæ…M7’&›‹=º ~ÌÃ,q1e‚3ÿ<…iåÄ·¤g4{âRzÿJNïqŠ–éûšå":Ê íX¤®Dí2„ÊOgz©m¯Ô¬ø\\ÆPÝ_rì ›bH†áx"YqâßYÅÏpÔÊ‹yºÌ u{}@}Oõ™~™(�³˜MÜ7¨ŠTYñ{ÍóWNò[ÀÓ”¿s@…g¶5éÙ i&j줤¦È·¬œüÞ@?K•®bªþBÚèªêS\+Õ´- Ö ÃM¡Ô\jlÁÒšAêFFŒ|슢Îàj-|UföOÅUŒÁßâs�ÇÎkB°ÿnÏM+Ñf?Ç5‹—ÜïÀíE˜1%$˯ï€âNPˆ›wôBÞªŒ(IÁ*TÉHPteT¶=®÷Zº¬Y™®I¹Ð]ËuîŸ7¿œ‚ÙLÖw4̘³\³m®Ènq–нx(6X“\ÍP�S†ùb¢þ"hËlòáòÝú­›¦Á­)¿Cµ Æá÷%üþŠŒs‡•í÷ÅT}™�w,h&e•=ñ)IØ Ù�I¸ù^ç÷ÿy]&Ìû'Ž"Òw«µ¯®ŠÄÉîdãâG6nŒ�€Š›B̾"½]ü˜½Y ŠÒ${VÖvâ^«6/¬žaùÈ÷Ù`ÿ©}Ð_–¹I.ˆà抎B7fÎy-H°n|_fT௉÷îuPÃnEI[ ¯iC¸ýÇ––Î�Àe¯8 }¥PòÝ7øžáÇ»þs-ý4Ž£áç&�ã3Al]–�ºçצ!!‰l3 p )Eù1Qà[ˆk!æÃ\E\šg|}ûp1Lþã?…A]ýµœ¯úŠF¡³ÕX£p‚­¥-دŽxu#©ÿùž´`¸¦‡^gó@ä‘PV<¸9VP´dà%ÌÄŽ˜ç™™ø*G¯Ãv;©Å¸.Œ0 ôæÒÔ¨ sn=T…É£àÃ�3r¹ÑvY º/‰,XOòŸïŠKÞ”O!Öì ÜDq1Ÿ=Ù†¹¸*L7WCÃå „ß·gÞÁÙ©éXNrÏH^à‡;÷n„äÎ'ÔKƒ„ï–³ÿ`isÇ‰Ø ™‘� +ñyó4ÕŽ0ÿ�ÙÁâã}‡ÄÁ.è9sjÙfŸ5Pÿ±t�„þ§  ùN{ˆášAF@H2Üù\.„o8K¢™+Z'>^}ýéæ)O__³‚nfB�=@z†Ê\Ø'¾ËYqÒw;w*ÖÀâ:/B–2‘La'%Š3‚¹÷"ÐüîÁ Feâ"œîà³B±_üÍ·mªIƒµbÀ5iÉWÃkÎÿÇÛ»îFndé¢ÿó)Lãl{Ú¬r]\¶ë`Ð�UU.MK–º$Û=3$¨$Sb‹™L“L©²p~øöþ±˜ýr~’ë7F0ÉT�t»”Œµ¾’Á¸¬Xë[mºn‡m@WÕ“6ûøjÑØ.I¹ýé’Ò1/³Eac?Ø†Ýæð©Þ8È€M„æîáî žPÔ° iæíooðœßÞ€Y<î9¿íÔL°)‹h#´ßÖJ-ô nW‹Ú,»ÏJ¥VVQ/jLJô§&øFZz3<|šÒ•PÞÌôqܘ¯Îxº:8Ö»b Vâ§ú/=.)-ØèÀvQF] ºâ©k¸�…ã”~Pú~db6âÌ?ü¤}Zyò´a?0Ã#,dÓôï¾ ã‘Œ�¢$ß®5<‡V ªâ&[ìÆ œ’¤ùt¡Y.Ò—¯^~7ãûãe{íöÝwQ´Ó¾ÚZ·jš7Úër Þ¿f'RÈØíªèìYI£ád¿§’hŠ¢)+Íâ -#½æè¾C8hC#N âRþ-]i%†i‹ßb.Ù9:Œ{—зÁ±œüÞÿøý%×;õµ…ÿdM“í¾J(x Â0u-úy‹(ãU„~Ö:dJ‰äó5,[¦DŸ€VJZ �—êe‚:z@�óÝ»YÍ˵ô[ZØ]—-œ±G-Ìm‚”´ þ¶\3R^Ú8È•ûqGWûï±{P(ž†a-küzá�¼ÿ¯Yfò#ŠöçReë;tš�¾ºJ-rY5ÏÔa×–TT�É™eª÷q÷ÿtQ×w×êÿæÔ>«ô‘½èn³.A\…®FÑôš‚ÙRò–ù89]Ó  ãÂ?v NUÍWŽ j ^nÔ#a q8°¨yËŠr,Íp{NËû§äz¡n—–ZÝêCyµžÚ@µF81ên3×Ûªš¨”\t^�ôð-ºo 5í ò¬ø+â®1©YŸ%Œ­ª¯~•ÔÍW‰zÚØ>.>P¢œ ¸×(y"uÓÔêmé:÷΀¬a60jõ.¿æeS©>ÑOq­fÝ\™?¬M�¾xõõwߤW‰¶~ñä;kÜD­ïž};AkÉ!3­„5'ÿB.§EµL…;FÛŸ& |7»V÷r75C”ÄýÔ€LŠ]A5L…vn +€&ÁŠÈ¶-ì¥Ö!� ó" µÞ¯–Uý mõä˜ÔaJ9uUmý fÿ”ú#·£/®YV÷>ú™Uu{Ýæ_û0 Õ;ô!ý¿¿ýpžŸý|ù6ùáòM 3?©¿!ƒ,rnŸü”\½›aòæüóS"ÃÐŒ¢›R^ÆÇãæHÎ|ýð+a- Pjj¼.£ô=p¤ÞÙÆ@ƒ´C¨ïŽçÉ)S(��’(ë8<èõ¶ÛlµóÇ ÞYŽîÝYUíLÅíªÛL©õ’vgý:Õ­X©½åW4§_K븪¡ñ-ôŒ´u]}©­Í¿‰(ÄYCü°… D×f”ßá{fÈñAc�ä±Z„Ü]¦lBÁ8AÖ�û`©Ít¨_d§+åºrQ³þüg5ÃË«Ñ`à³å°ÃQº×>SÖUlˆ–OýÌÆ¡û‡ë=|Ž/F\°�ßã Ä‘ ý…â#¯yOÑ*ÝW±Å²7ík[¦‚~G¯ý{8ï´—5ûtíwáîÙø4ز¶ÇG;%Ž� DÌÐ7¦^hÌôNqè3 ¢.¨7¦®˜åˆº´ïâ}æ –�¼ŒÜì:˜å?YÓJÏöºw²Êº«ž·¸Û¨¡©ƒõÃNmì¸MÞiƬÊ;a•Ø»¨Ò ²HN5Zæ'o´°IrÀXƒ~À½å+"Àÿƒ¼8k)Kˆ{Þ¶‡¥_ò§ç)F[ÊÎ8¶»þôÜxö² ÚìS &Ö‚ñuÃðªÀ}ÿOi 6ËVµ�Úf#BÁ wŒG?ø§äÌÈ#.è Tp‡ë¦9W å¨Õõ(&ŠÛËñd£lrˆÃìv jÏ\"+{Ê P\Å®|žŒKγ�š'À-ÀìQĈt {„ÛGFΛ½QJï˜zû%{ÅÐ3+‘Þ:ÄÊÎø­/+¬ÞÕÖÓÏ�¾\%ô4÷»È6í– Wžˆ&þÐÁŠ ]Q¡7õZEF|WEæ׊b a�…QZ¨¯<Ÿr(—]ž™@E —�!8,@’úi»º¶ìþ"¹^wVƒJ„åBŸGÒÝgMÄ‘B …1{¿djÿ†M½&E?8SFXÄ‘X*ð¼Ì¤¨!™€Åã!Ê õš²mÚPŸ¥ë¬K2Ö¨ë–B¨Ž¢”ðB^ýÂ!Õ­Õ:·ïè2Ù hY¤ �¥p•KìJ¶5ŸD<Ü£îåŒ%.ÁcóÀµ…b®¶UÄòDä† m\žp9CëÓ ®ðîèÝ9Vuxx™•àOØ\ÔjæòžÈ8êp™ÕQ«Ԧs¹„uEέôfax8úºˆ¿ú�3únQ•‹äǬ¹Vk Õ­%˜P@‹@sÔEúQWºM¹ÍÚÛ¾\åyk÷$Lÿ/Wá†ÓuR:YI£Ïœ×kVF®ª^�Y=…ˆîH)µCÄ·ÚE“#ýW‰êsÖ/C8 ÀÂ›Óæ7 Ë…v ½J`Üýsf½"/T‹åe±Pï®�»Ò~Mz˜”n58Z·3³dAx*.íB«…RΠtt·?;áÃ=ÝL�^Zßíp�Ã{lœ:UW±ó¡íBÊ|®Zÿ+¯êuàÝÂUóÈozóç*ÛlÊ�"�îKy�i¥æÄÛ¬ )c�ž%²„¯ ÝG¸,mzȆ¡�LÎH†BûÑtkË ImDÊlŒ_�ÐÖ}¸; Àuyx`ŽP_é {G€^çêIÆWt6?ž²³õ‰l|ž®ëu f¸Jjt@¤W¢Ek©¾^'M^oyïÜÚW;štÝéÕ}M°ËU¡ÀÑ=q‚Tu´)¨ÝðRõÏÀ¤,%ÎÌ‚g ªú±<úM¹¸«ŠØ†Â.å1¯°yÔëA›¦Vówð-ê"FÑ’8F«� Ys']Ç*$$�—Î�©ŠÈÌmÊ4ˆ;Á¶â“ÐS•~²"ç½c‰xôTe¦/üA«…Æ€\f”ð´Œë’«†×yY‹Óëe'.S"!§!m)ÓûŽ•^ÖØçAêÞ^€Û—bkÁ)ÁÑEÎMžuÙi\jñBæúµ¸üÐ<­� ´­PƒÙƒ®Ï·ûs±Ôêv´¢Á2ô'Ж%Xá®ÕœaÝ‚ŽÆ^€Õ[޾ çiW…R9�HÁVCOÝÀÂÒ���Ë5—%ÜN¨ ö\%u•uìpSx[ÊÑDO‹ìQ�¼»è}iã|Ò†‘#0»ýîˆå>„mqN~f)iD�陥¥g€¤ˆ¡¼>¤6¼»Ûò&°2—3�ý¢®¨G „O!ÇÙ¼?Ù]Ã|J ʯpÒkÆLë½47æhÝšâì�©ÒRW/Ñ{–Cw5�¡Ò…^äò�ãé×ÅN•ÑÂzäBÙâiðÔ×7ä"ºÌÔ0ÂÞ7Úå»ÅšK´º}hÔâ Ž;ëe÷�ù§�Ëì·þ±Î¯ ùÙ'e›ÜfMþ' W…ê»ÄâÁnÿ2[|ÿý—ÜÍ}ÅíÖ†E<ê-QEþ-ƒSŒS;8íÁ8àl¶˜ÃB ‚y€¹Ð3ªýÓ"5òÌthÙÙÔNÈ à¿ì6�q–=ŒwW¾Ã¬ÕëΚ8™ŽH ð5j‘4]´ñè"YOP·³2Xh»­©ÜeÙ´]úPwy¶;Ü…qjäLÜ ŒÚžqô;�Ô]D˜‹G@’¾ƒ©–HÝí#šÉúf»É�êà ê û HÔvðʼ»=�ÔmÄÓÏúfŸï£,>óǸüÿâû»ýŒß^õ9?»Õgý8ÚÏûUtŸñ‹xøŒÞùáx°ª# sWpÞšƒ!«à$/§z evÇ@£ vó´kÊHÜsŸáå¼ÊÕÜ ËáÃÐiã#¹3F¸kˆlÈù.êªRæÏ¾IÞ®¶U$W‡P¿�mÒÄʼnýc~aN�Ú±2ëü�L‰“œkŒ»Ò1 y®�ƒ’eS¯’ãY€oÐ%ð¨-mšµƒ‰D‚�aôlº2pPæUa×’JeS¦cz /(妩ß(Ý \‘«;à¤w{6=M¾P;Ð/“ÿØ®!4®È´7ÃþsÆÇÒá…¯ud�·!‡ÖÙâ£e?&mÃ;ÈâAq–ø†‡àEF©{Ò¦¸QÛ8PkÀ¸¶RÏÉ:’ˆ8ŒôÏ9°¥™hÈ„!½SŽB;ꇟca�-ÎQ>:@VõMÄwR—km¹Àª­ø Æý/_á ¡ð¾ öƒÛH¥PdÕ«‘P$wC,ÆVzù€‘©~z@û¬UC-$Êe¹Å4hÔRG )Ìý�µ>«¥šÿÂz\¥Ù‚'÷m�¤…§®]�òÜ�Ä\(!º˜HXºøÚ¹�Œ XîÓ¼Ø@X⺟ù"Ìpø=`(cJ¡Œ6�U“©¹®NÒpU1½ƒxŸÀ«Ä àº�PK[WÅþ͸•aºÀ\Ü÷h¶eû1Gù•ûæc‰.�ðg”kµA·îˆCÑѰ¢zî(Ÿ!Iô½´£ç“C—]/:¾æÄd¼avúlDDë§õ’ ðiŒ³ÛôvI?v@>v#?+oYÏm¾Ýá!ÀJ[·r8~}àfXcŒ662‚mläKåzYO¡Ø8¢tí¬¾E'W:^ƒwÕÕÉ®Þ6š€ƒx>fþL¨�sr÷’2•NA_ kû ±1ES¾1†’Äo³ƒ37þ Ö � ·Ÿ»ÑT´ªóý¤ WhBÐm[ñ¡’‰Ü\ ¹ñ�ò‘†#<{�óM�–Xxœs:PUK)µ�RF¢Î¨Tȱ7ò»B¢©ÌH–ž> µ¡¦ÎÇD �¶«ÓÐ)½fƒ±ò©ºJ©gô¡×ñÐ_0DÍL´ì$:]CAi06UŸ$:Q#|4Ž5†sž¨a YbB”W6o‹|Ï@Þ¦¦»IL|ç˜ÿ@Ý¥z,‹ÂF&Sµ6rƃÆÀ)›@àÓç#2PH¤4Ñ 4ÀÔwe1|LsÛu›'$Øz¢ÿ�lÏÌjaüÃöQ… ÿšQ³!ˆÖ\1_/Ö0½u±}˜1y¸†ÚêeãZÔ›]SÞܺ4rQBRøç b¿ÝjC_ˆ×WF§Y²r»Ú{G¤^Æâ½3²¤éÔÌgT�»WŸÍ¦F Pšcè�9Q”™¦¬np ’}F³8`ÎÔ½4Ñ„«½úk'èÎ_?‚�¯;TëÄ镸•Í$N½ö`ï÷£åС¬/·©¶-üô)ƒFX<\ÀÅôç?+,ŠOqˆ �º"a’ñ5.–’[SÞ‹Ùj\d°7ßHzÇð5»M,Ý •7 ø…ù0Õd©‰ƒí}ºgç¤D¬]ÉwÅñÞ^D)³YÊÂR„Z˺E3:YzoʬÒaM†F ˆlÔ´×áB”º01úÃÃÕ§´)8 ¦U�åEžæÑ„º ‡ÜéHp,†ct>$œ$G‡B¿NbÎQϺ�ª kž^%“ñ UìÔ¬7ã@QÒÕ“õë|ð¢&h×e—.Ë¢Êqä0§¬@j?>3sB ¦ñÔAŸPÁHmâ\šî¡œv+8¸¤<§ŸŒ…s:EMSŽæá~¥Wúy¼ <¢®Ö’Ȧԡ©qO�tt�{_Ê IJ{ÆS¦Û܉çåâ°G(Ú�gIÿ¸„»{Pé—Y^xXBâ:JTiÚÃ}Ó{jûx¨]}‹zšõ—Dž¶·ò™Š/Ñ´wÌOº¶c×MQÞ¬§½Èw¤ÔÚ}ÍE£™æ§1jbž¡5­šøÞÍ@Oã¦Ï� T‘tÒ4¾­'Z‡Ù´«¢L‰2…ÒN9Ù"Ï^±~ÅPS¾SÛIõa£ÃôŠ!a`²¿‹×sЭp ±{€ì×ȱ:a’» =Ã%_ÔÍëd#Wõ*#¹Þ™!æK]㔚¼9´)Ô|·ßG> ¼Û× eM¹Ü¡<ñãæÆD2ùR£ £� + !}±ì¦úIè <Ÿø™j¬<ð-´²¸ZKhD¼œf'BšQònSGªñ¶Í¦)Û‘÷*¢-é´²e‹#_xÔÿÄ×@ 0k«�3¾µON5*Z'c¸0DŠ9F7Â"†€Ý´ù�xvýùA,øi[~šÜS~q”½åA}`cÁÔ ä³Ñ‘G*r&*âÐâ M¸v-?©¶µfÊQZ†"™µã;XG�y/Ø)®VšÐ›Ù¤l“­‹jÏÁ¢¤9Õc°!,x4›,…&=O©\×Í/!Óö ²Ùz-¢›÷´�Û³Ÿ9.±9 K/榘m%xAu[£oSHR‡d{±ã"´>¾eð� ³Þ/¾”8M.»ZO¯'Ѫõ2A°Ö�jº‡têj«.Z,Ôø{轟Ö7€)Ø+ö¾�„×*Í«g¨f‡…Øü�µpŽaëj¤"%ê³”ƒë&h#³øÕìN$\kGZy¶ VƲ­«éI:ét†ci“íÏp‚#6 ’ÒcÈ/`£ä²&;Â{ñS1*s£à†ìh=sÙÔŸŠõh¨w$^2µœ‹U®o‹¦$ι±€'FÇÃ*»´^W»î÷Dt½{†1ÿ°d{oX[íé¾=ºó¡ \1Ê©áHAÞrí“…Úf}�º_Z`L~8þ�� [ R–¦mUO8ªH-u9<¯-œlÔˆ�ÅŠ.v(í …à>ÆxÏ+lZu”¬Í7fôû¤ìC(ÝÃYgå}‘f}æ¢ÔŠÒÙ%ø?ô§g ìñk¬ñw¾;ø�z…]6„ăHŸêõ„Ö tçSßí%ŠB²>ÆÀ±¤�вjtpcŽ1Ôt÷T£øQ.sây…µaÆ‚¸‰�|ºâ?%êOL>ve"¥ß°®�}bÝäY`©Qq£†t¤¶D4Æ¢\eÕp˜ ù1úM3ÿ; ã ËúËì·IúïŽþ¦u×uä\mM��V•5ŒZ–›‘@HÖ肟2¯R¢ôž&{ È`¦xOû’dµ®ÍŸO÷׺¹Ó5aˆÖ@ƒÆléoÛrq—¢ÇŽ1içÅt/jÐ1\Ë{¿øå4wtmüµCòÕßÀŸ7Ö[”ÅÓG»}¼!  ÷‡TrÀÒ�a wU3â�xʪ‹ Z,Óú¨¿Òuð¨épÐ"zût]<„¬+æð\ `ù\º‡…L ùæäׯ“+Ó‘ª©l¤"ÎkêWA>]&#ùx^–7¬må3DàPprŒ…”›*¼JJa(8 R}+êUÅÎòB]Q4ÒO^î †¶¥Ó—ê®ä§�38ù¸^ a- ßÕSJ©³¡÷¯ÕU}ŸAСjë³—¶WÓx-ö}æÜu\gºâ ¡dÆ7⛃ñ͈F|3¾¯jÄ«�x5¾ßÔˆïF4⻑�XnuêÅIÍ ½hCV[šÐ^n†~©$ñ0×]ˆðƒy�È�x�/ÆTürbÅ|PS?¥ÏöMý|>Û‡úvbÅߎ¨øÛ17±â¾Ò0Ð÷+þ~DÅßï­xÏÀð9† i¹waÔŽ]‰¾·8è€hJw’%í]‹4óÛ¹âÆXˆN” ®ÿMÖ¥Ö†Ú¸»y›ôcp27¡èÒ Î�Û2/,”ñ¶/�."pwú]†¤Núè´ËÂá�6Í=Þ+âaigÑÞ“��IgyP�zŸj Üv%P‰ÛÉ#ú{y›‚ZíàÔ*/9i¡JƒaÒJüE�ßU½¡„ðFN ˜ö�+Ìi¨„4ÝDae…åi»†9£Û¼W{¥=‡§$Pý”µ=Âg¢»V¹è&Åýêì`9‡#D ù`F&â´0îí¬1¹¹>æ‹5ÒNóÞí—ºz¤N}3 Å `è[/Í ¤YËKLŸ=ì� BÖ>ÿ ê$¬#ƒ=#ŒP[�P¥©aÁr$f0ŸBK V,ª�›ù2²#«¹s(™t™ã“l«Íð�Àç«„œÍ*ª¥œÂhãÜ4y¹‡ý Ô÷‘�kç•Þâ €v«ç9çÛ© Ç.H½\b|ýD”sE8ø&ã\ð;„ ùT�K9>øaœü.¾å˃ïóöÀž£ãk§ÙßIq/ùã¼Ýdëq�v¬ˆ½ãcJŠo¸Û¶¯ ó‹/g<ôÔDÈÊÝ�±ŠüT<€ù utÔc ?²]î¦I~c•Èl*ITÍÓº©˜8¡…dïjÑ‘®²Eè0C]ªåÈBšõè,ÂÃÍÙø8 ¦Q„!z¥Q°®ë·Wîbm³šÉjµÚ,_#^¹˜n°„.=à‚ôª},kqY/R:\LÛ¢¹�î6ø’dô³¨?;ýpq|‰—Í,X/8¬tÌJ¤^€¥3Íò{pÈû|¿ú«'I×N HÎ&(ø,GC�¿Š­Ÿñ\MgÖûs��†EWÎБ6úÈP9lÆhqƒ@ÿŽS¯W…•µÑÃ?ü˜m>ŒôŽ4ê0Þr�‰K"xÍv½ž†÷�4|¼Áø`‰»zÏl_Ѓƒ›¦£kðf5±Ð˜gÏ™hô�ßÿ«Å=ŸæÑ‘£Rƒ.{ÖË.øûúS.½Ñ¸Ä¸a2ú›5¬kL°f*»ô¡nîÆãŸtxhžj=á‘� g+ÒHi�4à#»Ê9j³†ßUè¬'¥Ïcd—¹D)^ɸóø0Õ¸…bŒx¨ªãÄá5é×gÝS�mÀ#uT $«uå°jô°û3+8#¯Ø³Æõr6Ú·åâ6ÕÏØP)YO#9j |PjP7ݲ4e%x´ñ´$²µ*•¯ÍLt ®6¦¸°jKÍ»×u[ voƒ-?ËíÕŸåÆî?ýÖS)-Dê»bíè.ùc@*íMÆ!Ô¹õ".@ñ:ækI–þ9*"´xmíg«©µjQõÖÍ\mÅF7€ºâXäº ¯{mÎ+%íF× 'Mn ©ëF0gÙ(JÁZ¬Ì‘>°M‚úI½Œü§:/β�ÉlÑ“À˜)ÚÃ!§¨×nCË£~Îì^“"”`NK 7+‡ 9éK± û$°·¤ãâ ­ÿD,Ûv£ÎÏ4M a ¯ÿüf˜¨WÐ.�ÜÒÓžÎù™—™Ú¾µu”C?Ö!mövA˜Þ­•’“�¦)%§tQ7‰›rÊ…¦‚lé ç?ä ›‰ë4Ì9ûæèêè²@âfÜJb¿ú5»kBq|]Sd#ŸÙf[Un�x —aµíá&˼ËÅ.øæêM/èa»¸KÉb5ÊH°ÕÛÐ}’Ì»,2“P;x:Ã[#ï(’¹…Ú^"{nf 0üR(Wë�ãüE÷P¨©x}± ñVAxY{§Öš†îxÒ[¤Øƒ+ ëΊ¼$_3õ×Ù}y“Å€mÒß·¤‡MûIë!\ïì“Ìy\dˆ_ÙÉ›·êÆ–ËržësZhCb0•­-‚Ì¿¼G˜ %€ÔÀ�tI[ÞU­F-ŸÿSáìV`„<ó‚scýýìÔEÝ;«ÔasŠœ•k5_ƒó?GÇ#«œ]Ùo°š~ÄCÿ,ƒ�›Ù•¢L“ßêõ&GÓ3QL¾vÞã³'/Pø†ŒÍ£�è%Øô�ü!ý÷Q¥4.îªC„<\ÁÙ©G‡ì× Þÿg©Eá ÕdÙ‡ _ ž~:årzŽAÔ¿ä¢:$M¡ )TöX)‹È^}mز49þhöü·ZƒOzÔŠñhͤpæ,É Û)§‚Pfñ¾XŽ2 ùZ#AÍR0í¨é±%Ê\W¤>‚½lncî¸ÜÔìuÐÁ¦ä:žì!®3KåÅ¢Ê>�Ópi}lìé±'_Õ[Ýh´Zú Ë‘zj“Wð>zÕˆ‡ú r³mÊMüG‹ìñ\0rišUÂVñL%¬1H™&Y(©/‘ê×cðm·‚¦®»Ç £¾ ¹•ó›!Q ;àØ¢ØêþÀ}Å[ÄøÀfˆ]wÍŽ"ª&ï¾]bÆ íÊœK†‘È$­ 'Y¯ÀŽ,T°‘‚>¢dU`œ/~ j”*›Ä„P­tŽ9¶Ê””(z<·ö{ôä<ç­ºÆtƒpr’D÷f‚}x€ƒ4² Lª:x;•„r{0Þˆ‚™àw€ $~i£\’®’çsR�Ï‘5˜ŸoÔ´w;ïϽ:'%ŒDÝMYçûT!zô%Qíáɱ¯{¹½Æ€Ç6ê:úq›zY+Ø‘«)Nón|›ßP`2²S¨…]‰‘™âêø~i¾®¦©›mGdì�„-  ]d›b$ytÔG}Mc­ï³*Àb4è‰ùX'écDUÙ¢kìH>`Q°é€Ñj31Ýšiô#™§­ÅXGõÈ G¿æS—t¤–¢þÇ…ƒ�ÊàP�þþgϵ‘M>“î"5ja&ò5Øž‘Õ$ÛŒ™i÷‡,{­1m=¦Àñ‘­‡2A†›ð�stk}„$ªˆÝŒ¸eE›!ÆÅ¨áXàïf‡²^êt®®´“;?%ÀÄcÖ[ø‘ B¢9}fÈ@ßÃ!£<^¤kð£ 5ƒF-ç�ÃN¢ìÒÔ(:uÜbý×› 23cÓ릑NËõf(ºzƒÜDsÓѬfH…aaNÉ[``Z�H�ÓÃ’�þº‰¥‹È˜ë –Qj-Á¡iJðî[û½èœazÛìÕÝhX^Ÿ>Õ¯i>¤å–Ó½:à¥i�Í·r™ÀôƱ3¼«“SE×Ô£oªaP4�«™“6¦–dðK€?ŸóÙ rþ`Ð ¦gbí̵šÀ”½Iû¥äMúƒÈӱϟÿlq­Ï ƒºío¶è?º¾ódG¿¶¾Wm¨»ÜÙ´×i¸Ç'u ÿÎìaAUoÀçuÀCv¸"בvLÜïX'\�}æ3Üeìt+ƸDÆÛ½ëN‘çŒZ8+È%"QW»¯&Ë#W×áÓ°ZË’vÖS˜„ª­�íl™Ž÷ÙÉ;_u_=Ùo†Iö¾M5?9‡Pf ž\óiŸ³íP“ìþ…ªÝÞ@!x?·­Ð³v[ðý£Õиì’¼ Ø9ªþGùŸÉŸÿ%ù�?~ÿߥšÀþøý¿þ3i²²-0åµ^?ÜtÀžåœw6©a}Ãî5H…ÞŽj ò:9IP?!ýõWí‚€ˆL­ðrµ{[éu©cׯ /Ô=(x„Á4F°¼F¤„‘0Æ1“¡‰–¥Ty™³õ §—²ùtÕc¢Z›¢ÚÁ',8 8'µB_S@/¨™]ƒ+ìÏèP‹3—s;ß!càºS5µwf'li…H«mÕ•¹Úàç”UH—=ñ•È3ó±p¹D –H'U2ô™Þ;úSÀžO£­²öö‹§_Їù¬°íõR5Eï¡WE¶æ&Ü´ÉääÒ ⨖ãûRã3ä�Ê$Û¾)UTç¹ä³UÍÐÐwÒf»–f¤d~²Ç§nï¼_?laú cq^_ž¨ªíú¶Ðtö0é‹Wx'É ç*ËÀ­‘N‰ö0ú×Éo35HPâ ªž£Ð9]/.åÔwë“ÈA+n I¦ B¡å7Í·É`‰K Ƭâ­�LßšFÍU™–QË÷ª›€3Pl�Xpäx –§f±"|>‚}wÉ�,#_¦¨nËžÚ¶dÎNó3¹Ot§¨öZî(0n xÊg l8q�¸€Ðþøý¿¡ƒ¨ÑH/ÏD¾´Z¶ª�ùã÷ÿ£ÛÈ{b›/ò)ËÐFævA°:ª�â÷a‡§Yô‹,ÿ“;2ë(Ön!+ö‚#ÒpÀ$ú©hLÖ3C¥\Uɱ¡„x†Á{J¦/ÀøK~‡DØ#ðáKioëm•«ïÏá rW'È9þ ¢ô °ÛmŠ"ßnÚ^•ÿ(»U�àçt“É¿ž\%œ¤¼é¡íV«û1pê _«Õ¤„µÃN·†tuð]C’ƒ'0 A-p5�Ïò2{‰�QÄë,ùl ™»o· ñža7Ì–ù|/…­DS/s‡îÖ¢±…ÉÂ4J¬‹nzßbDùùÀ²~YY™êv …››W°åóN°¨SZ�h§¶‡â:¹nÔGSp»£Ì…Z….×F9„ÙÂ2=05sáû!âTåݤ×òÞ;ÒO1v¬r _±—Wó( ²*¤�\] 6ô�ø|pÀ¹£öÔ²6CJc€_Áæóxg:3Õô¨8Yº{ÂÙ Ü®*tέ²@ÎÅõ#Š`¶©•;zrâV&!‚I®ÃnÉD­+žb»�Ä‹oexÞ¤~J€¥ÚÂ<»ÇQé¡ÈîÔ(c%”B-ûa«+ÕnÚ9�(ñ9˜Z»Ï0�’-öPÌi§ ¢Ò΄%~¬8CVñ×Ùu‹à �ã� nD*§.JÊØ”×éãã AÎË^IÚöÇGá!‚`‚ùm-G‡@jAÄÿòõPPÃÁ}Ü ¼yõ9�íî`L ˆël}0èjœÇ=BïééÍë!X¨ÌH#z”Ñ8$ñ2â MïPÞÁ ]fX«j5‡æå}9æ@¥S-­n©®ªúaÞîV�´á½å5 §ZÔ›éN¨¤$^¨êדAúé KÚqÆD FâL”ùæZ“¾†LК,AiQUS(D’D}d(ÉC8ÖJf€¿Ûc­WˆKøýÅ—8૟þIX¸ÙÔÀêymGß A� mÄ0 ê Ž×˜Y,ü]�á-øQJMF=Aƒ.Kv¾<õ=Hü{? Ù‚q+¸iê­ m: ]c¸Ðƒºã�Md® ô5Ög´‰€ÏaM6ÿÏ'éVÜ>²G¶ý ‡ˆ��D}ò¡Ì9à@L€ªé#Ÿ–W‚ UøÙ^pÎTˆ¯³æf 2~=t¦ Qzðâ•û9*q±üªLÂÇUcáøUp$ÉÜX¡®Å…ò+Âןá‘Y8½*?„sÁAœ*Á»›ÛÕ‡Öâ ùÕ4ŦÊô@ñ–WWΪpñ?ŽïáÑÚ™Á†¢-ï +‡_BxŒ>¼¥¶[¯—¢ÂúmŽÓ¦L°ì%“@l~Zeë›-�q1àL“_önÝe]”ÔûD÷ÊC‡C}~3²VŸºä×^ r��Õ·‰–YèË•9»Úï§"6U“о?<-< cq8eW.¶UÖô»0×ÛÌöŠiÚ-‚ÁÙ²‰Æ\ð1¿-cׄ_äT¦Ü íHL‰)„[y„;Ë0µtJêú\vŒ¶&eF+òĤŽ×Õ/IÅò’½DÒ~ºwb¼’ô³ró¾ÊÑÅI;óôÆç»¢V†jŒsìmä1Fùš#LÁ]å;x5W¢ìÕÎ'hck&qÏÕ£µ*s»TÆ'À/•Çü/b”¤²��Õž㳂.‹¯¿ã¸O»^MÍvCÖG{?Þmu*tuÑ;êöñw‹ZY!˜ïKR}cô?ˆðl !å2ïºSOä)±°‰¯ÐA®¹s× ¬F˜�;kšl7þ@GÔÚi*}Öò}ì2Mƒ²Ž¶ÅÄŠúîLû4h´ŠÇ¡Æôˆ=™¦2ùnÔ´=Mýö&© uÀ ÉÇÆF=9ÕfëuÝecÔD%µT ÐP†‘éµ^|!«Fc-ãÃd® ûù�)®Ûúì'1ðŸíáËpcœ A†RË3$sªBÏØLÀÉÚRÔâæ±4à²ç ËÉ3–ú‘ùïÃZ¦›$(#g…w¢¡C(cØËa>'©ùÜtö›¬¹V+ûdQWU1ª¯²Fji(˜ü:ôÕå9�ÕÛ�5�/­Ìê�<ºmŸwL“ˆÇ�?¾ùavS viU,u�‹™�¬äF_ñ%áñaDZ'µtl(éìã�´†¦ä Üù±È ì@a?S†y¸”DA€ËiäXÇòv€§@à~u¶÷ÉOmJWjŸwSôS¢ÄùºäêuÀäLcè ‚_Ö¾IA�YÙ€ñPc}D‡&åóç�-Ôê3û‡ŽÅÄWäµsÔm2)©}Ho·¾]Ä 8‹ËUò}<�?gìò‹§]ìø‰ù^3öîÛûOûoÃ`¢ÊÎ/Éižw+us£k©Û�Ÿs´Æb‡§%õ-•ÕØ$H§ÅM¶Ø!Ó°úF¯³É<µ–ìiøBib�’1©¡I-µÔRTKgv #QHVT‘à Áé†jT+ëe±Ø-ÌÑÞ�T­l´iQv¯=‘LMMǃyøeaÁF³,z𔋗ôgrC¶k¯s“ …¿\Qó!8OäO–8œ¤4PMY@7¹`ÝÙͶt‚F§²øñç{19»ù4DG¥{˜h` DÞ{–q6–&ú®— ê"Ì“4½.ø« ‚álÁêQ+ “Jy:Rn`©´£¨¥1S E1n5@þ˜;¸}DÍš3~’zÖ`>@øèÉ ’Zά{6ŠðÆÜ1‡^kŽóúe÷uÏ#V$ª0üzúF‘Æ´E¤ö¿$î·Æ¼ˆÉCܔɡs%/¥87”µjT3 ^ÕmöCµo³öV-8nêF­øW1Om%d’ÞCÈ’Ñ! õðÔ¸Ù-ö ûF:éÕǘŒÿIJ`øº®²»âù¨Öþpzô׷ϵf[jƒS�R5õ�åR-Úb±mÄ)l„v‘mB«|žÝU�êøú©*a^Ýëñ`DJE-;‰¸´Ò¶Þ6‹¨;´å9óë éÙmys›¢«úÑì¿ðé*fèÑÑL #£È1´\€½Ío^ÔmâH*òIÆ¢Ùí]1,L¶1f8yÿ×·ÿ6ÿgð¸e‚ŽÛºíæ}n'ý�©eNÁ6]MQT=Ïú!íê M%‰¶¨ ,2pڷʪ0+Hp:Jh…§³ý‘T†[õeo!Ö‘íÒz™2Ë®½T§A ™#x>,•œ S¥’”T¯íam &SÈ –ô01_ Y1ö0Òà®À²?8 9ãîJ��Ð -BˆgåMCþŒZUb›DƒëP+¢5O0]×í#òøc~¯ºÊ•<³ô/¸Ì-á13Ç;œ %�^‚¹mÚ"ð è:ᓌm/D“SKø™dû`^–Ù~ŽYÃÖWÖ a6-Ùžc®>Êð‰Ø”ó°�s®½ÕZÇa#Ã|3kÞ5Á[w{¿>žo |„-ÐÏúõôC?íAã9›­!õè;b�‹Ø^›ûãÍUá¨ÐäKŒj¹Ê6R×&Ës½°wk‘"„¤�É™J_}Lô®ˆãApÛº"Wã¡n’⻑’þg¨=$§,e÷ß7! áz/h,ÍtH«&0[¨‹¤te¤Ÿ?yÁÉG$¯¤ ©sZ½¢–êy˹›‚ÙAuË£¼—Ór½ý˜€BÂI›u%»è@ª‹bWÕkF\¹u÷4¼{#©Z(„º:^&4µA�Ëþl¿È‘Þs7�ž‡åJ,\MŒžÚÐg‹[œFÔ�wõ¢–iŽV$�~Èx‰?¢#H{x­ýè.YêªXÜ®K8ÝfupÍn–y_� Høq¬N3¶Ä¥ÛÇáÂaÆ]WÏÜŸ4©€ß=h$ïŠnqËã›z&ÐmiLf?èܤ•\d‹;°:€2sh/@ð Iú6Œ„»JNÇmw;§ö!xuu�y�@o ø{Ë&¬z2:EÞ^hu^Ê÷7bâv“ÂFl™§Ö)Ûv(¦¥÷ÊH…CW¬êÒ=f¿aöíhÕKùö¿j.ÁÙ¶v ÌDqca¯"c·³[{ û]uqS> |Ø\ÇK?<ïAË$úXäM¹«T§(šî±È'TÁ]±ûø‚×_þ }wBE. Wåõgï�ùgï0›ÏÝQ´‰é˜`Gû“º<ÇÙs¾^¯Ç�›Ö¬ z¤F�u±ØŸ¹�<ÞZCˆº3¯Ôd Ç?‡@ž‘®ƒ§ÖÛ5Àø�•Äö±Óú¥?ñ”Ͼ‹e©R%¡*åÒ¼…¨òÓ§+EÌ XÈ¢£¹Îìea,,ó}ž1÷}õÜ ïåâ\V@¢Ž[–p"bý=y&’/lh³£`äh¿œ�Ez¿­úäÍéÛä�ßÿ—ìå(¡E‘ÞU…0OÒè·g°ÌG×Ò¯Õ×Aº‹éÊ ­œOWεr1]¹ÐÊ·Ó•oµr9]¹ÔÊÍtåF+·Ó•[­ÜMWîXŽ}¢‹E»Ç9«D:¦~t£r9ŸäƒS.Ñ õ9³:¾8åͺnH¸S®²›™åþ¯ùD+ê¨~…µy9Ì}"Ö ÚÉÙÑÅKM¥LúƒCsP_Æ«•š,ÙæºçœQÉn»±‡’n¶Ó8Ÿ‰eiÔ'9ŒV$nÒÓÖ€‚Íœ62l5££æø¸±RlŠŠ<u²žÄÐ6×ú‹ÁÄ3ÍÈ�À2"ú~[Îý�hQ±~»Ê£jû\Œïï…ëÈg2"÷ô «5 5É@ï±ó™¾á[ù Â脇?:Ù¡V7@óF ”sïÜh YZ‡§Ý*]�Z`Ö8’4“�ê±ö'‹j€ÑÔ÷�óƱçÚ×ùT„®$Y"µ3þŒ`"µÄÓuý�6†……ãóƒ”Ü¡+¯Ë*j~io+s~ÏØ9ò�E<‘ºDÕÖzQðc]FRÃæáP¢¬°¶«âQïÔVe½'ÑV[T–ù鯨¡Ç-ñˆÜ3F‚ØXÎ&µørØIg?¡Ž.�Z^C`Êy$%«‹dkXI\5ÔäMè_Yov÷Û¶Ø“ž8jè'^e«ë<›°ê8EGqÏÛ"Éö :ˆ<7âæÏ¥ÞqÀ©(]Â*VêU¦Þÿ­ÿŠ‚Æ/�÷­4 "5A}lå”cL]$‡÷e–œütÂ9§ÈÈ¡ò¹Ã)îI×1+- ·êžð_¥üi‡Ô‡ÛÁ“®âc±@/Çbtª”£<« ®½-ÔV*²Q·S9¨×ˆ¼5)0ᤔ^v˜)G[¼S|FI]åt:Šo´jŒ# –à6Œ5WÏ€¾‰©ŸÌ)«Éu�ƒ>íw�`ùT˧‘UUnÚròg|¾?_Õ«‚u+Øàx”'« yYù†}gV�®êú.»í§$Þ¼š{tØ<¬Í"aŠ›¨šqŽ.�ON++‰ÚÕ"ª®ƒ�Ä´ÈôtÛäÂ<”Á"ò /‡ñ‘„Ô¤7cÑTÍœñÕ+š/x/‚ Ùä‹ãÓ“/ ð¾$c¡Übòy€cQ&‰P5dÀžnvæ–1Ý ½ÄØMÀŠÚcœ]¾cáè3(ÚÖø¿bbIƒ°OÚè0… òª ãS™ ³$`_Õ" z€ÂdÁ3È–9Ó¦"Æe9€=­Ö°kƒ[Žæ¹^„ðÔe‚rÀ9ºn;4/ÿv>˜5(å2 £®3HÐhŒ3”êõèäÝ;ü©þ8–¹I´«ªnƒ°P`å".<†ÁÝ‘AßšvEIsDˆ·—�j p«êâÝv èì¥s`kQS˜š›Åmyï…Äö 9 >ë2ô’`|6"3ó©[ˆ6£…–D7vòV�f;#g¾ù*1|Úè㾕uµ}3ÂÄÜ«VH� ¾].ËÄKÐ5tñ_«à•aŠ4 ˜©¯|XžÃ(wz"å"Hº¦pPvj‰”E ¨LðXAñ‡úàê­êqßÌ·þTbC$‡¦[—Ë„âY5)¹^E'OÏ}00¬¤½Ó¨‡"k$a D_'/î‡ U±P:(œzcÒÁ3/‹¯€[&5}o†Pµ3tà6 ~÷á\Bªž;=ÚäS}Ñ@6ô¨�—½‡f1üF HBx6àï~›n ú 0åHVqÞtÛ'ÄšÊD§ªFõKLØövm"BÖBÌ·À?õ¡\O¾®ÊÅn%„­ÁÓ »Œ± SM4ÙºEwT:‰“#Ä4mNpQ€@ÿö!šíz]4C$Á øwE uE¶B! æTÀ¿(:  ’›,A½>ù¸=øgLýÃ0<àÉ>ô¢A³ø}´ËÚ»!P(ç�£Vká †ð&¡Àƒ«¾ÖZ¾S-›zC~§ÖøáÉK–¤p„?„ÀÀló26rR± �eër³WȤɨ( µ›ã�ÛÆ ¥œ)kàJÂhÂÖ`@ª÷êe†J€¥ }°0|öê+ü÷Åsú÷ÕKú÷»oha#‡væI\çÁµØ5›ö(t"‚µ‹¤˜1&¦ÈGÁú�¤°½µ!êýcʸ=" �:FÏŽ.¹.º‡¢X'Ü\²Á®ÒÂoÅÿ¯‡ÞŠU,a)싸‚¢ ¸ ‚D¹-+õ_´”1¬Hâ[‚pp+aZçÓó Ô'¦;�r°™¯®?•›çɬV5šÚ°{ AJájI'îgsQG–ïO�r|[ê2ãÞÈ;Z­ÔüQÁ<¨Gz¢÷¼­7;)…î:Ù]kÐŽú#:]ƒ›$çð�ÿx’�ÕÐÛí:8ªa㢌ÞÁž/©;w¾ðÅJB–|,(`,”¡£»- ‰8Ø—Ì ¯þ!‹tÂÁ]Vy>ð¼× ÐYõN5ˆ@,/›émˆ™g•ˆT¡ “Ì¢©~¶ÀP,sG”äí…†OÔó$¡­:<Û‰ÆDÍïF=ÄÐ8"a)ê·êϤ†Zx¤QàðLB%˜çØ\Âé ›YÈ ªU\2û¢.X#Ïb—•°î�n‹^r!ì'«ƒ'Ò«ãÉ 5‚¾@i�SqÝ´»Øa™®Š$ÍàN®²2À£G%Ùàͪ*\…”J%Zä&pÞI¨+®œ<�:¸Ø�ªÙ:ì8Â{òIîÓ|GSú”T%QPêv´Ïú¿·bÌ£lv³žUx?`Ë·+Wjeŧ }°n«³‘Öè?!-N;»v(KÉSêi£5p8ÁzzK׈CÙžª{¾gI §ñtJÔ’ÞT ‰yÙo·jY’©‰4E—ëú�M!5ïR©]‰EµÛ¯� y1'«õkI‚3YÄÆgJu;EZùs.d%�%HSeŒ½,Û«Jç×ÅNe(/£%¸²ý¢s ÕMä{ØìkC¶Ë[°†>ðÑM±¡+ôÏÖUÓI VxŒ‘£ÕL?ênÊÅ]UÅþr¬ÙmŸ02ÊØVTðŒZÜjõóºü˜³�[GqÙÀvŒ£í¤\ôW÷‹6hùR—¹]ªßÇå/É;è™ØPÏô×}¸ ˜ jññŒWxÂR8WA_* ]¶>ÿg ìdL’«Az|»n Ó.D‹f!a´É”}V•. 5Ñäe»©²]ëUó$ºé±Ëí*Ÿ˜Í�û­ø§h~M›L-ÁjÂr§&Ò '(Ú°ÞÖwt£(lÕ†GÞ8°…k3åB^ W›¨Ö_µÂZƦ¸ñ0­b‚´åqïŠ6}oݦH1H«7!À•³šRŒG´ }hžhIÞ¤«/.‘Ý®»Ë´ü:hnR—N•ë/,œ‘5?ß?~ÿoh8,SÛ?~ÿ?öîAP(ð‰„Ù2G ®ÆxÍÃ(XÄÍc9²ÐßËò#ä¨K8†€Pª&ßM¾¤ ,¬ÚоŠ,%¬bÇfŽòWµmQT¢«È6‚‹’ZèÌ^™çeVÕᇈ%¼¦!Ï�ä ^³ZQ.—‘‘‹øé±<½÷L-ÛÅ-žoåEÕe6p¸ÿ–ò)”ü ”-tÿÕuÅ;e¾_HÒ¹pïÓ"¿#ër!’]vYS0Áªt¡7– ƒ®®T±FS¡n:ËŠÝDÏ e4LKcÕ‹®hqWÂr4’«?ìà!�:í#°ÊÊà—€L28z®ù´üìäì­™)ü5/éà .=ƒ°€U‘\z­¦NØpÌ•å1Qt­_ î^OÒ®X.1©›×€Lî]ê  ŽwG꜆K}ê%¬;1ì ´Ë–s‡Sòš²Ñ!G <ÿc*õjeò„6^ŸHØ5Éµ× Ó'ø�ùø†@±Ü�Ä+¯-ÇüžŠ%'}ó«Ø'ájì\eTÑkCtâʺ©ƒpZÄn¸¾øZ’ÈéG.ä~U·Á>ð-™÷ľòÚçÈ+ò„JÂ5h;ΞšD®_£”¼–Ë{jú¹gÇ%71k°B-b×¥/¾¶’µºz{?×øWºçëô+Š,oL©S…ú­žMSÐ[÷†<ñ\£äÝ uc‹[¯ºøöÖ.·«¤+¯Ñ«ÂÔÉ7ã?¶ø¡§]îÀã•×tº‹¼èèlfÛ xA He µ¬†Ã®­,å 8:ÎoÊà"Z2°–ʼn²®;0ΫŒ´PÂ3¦µÝ÷“yØ×w»ê› ôñ¶¶êëX7‰XÀh(ƒpb‹b5¦&Ú­®í…Û°?‚ ‡„e¶­:›„ÚÃ²Ë ÍÑÀåøÁwÆ7®“ÓSÉbÝ×XÀ°(ƒK E¿p9£!•<âÑÚj;¼X{14Ëáæ¶Ð´Êåc+žËÖ'k`ƒçbö©ØwtÅÁ¨ãš6’,î_px+ˆVL(ô‡•±Ž¬{¤Žj»h‹µ)9ðŽŽQm¹^Á(D¢"n6Ëáž¶YPÏÍt”™1Ár{³´Äd¤ëêB†×²hðá ­w0¤�]c˜\Ê»"Š5‡µP·‰ìD¨„[ERØ�®.tšŠ„Èwg~î÷ðÆpdö›3oíîÆªE0ýïþ]Ï"†’wƒÑQj‰‘Å�WyNþ”üÏ´z“EÖȼ=wææÞ�WnøDå†Q„ë˜XÈ•‘#Û,bà:l×£$)´¡¥m·ÓÆ]ÛÓ0±= í Àꩊt(‡^ŒÀ¼y�•�½�‰<6ã¦&:NDNÅaS´•¶‡rÒúfEH¬C]ç @B·ò`º[çë->n²µsxކÌÈG"e\�Hö]S»š; àhZ•w°¦j¶ ×Aí&l.»+”ËÄ�nè‰Xzfv†Î †dîLPŸÐñ¢ë÷Ë©C`vVÄDä2xI Ñ:•�XèE¶ù-ˆ ŒŒ2dÉ6 ¹ƒõ}0n%÷­�$ÜA JÎ_‹]‘§�ìRL´BC™+`AÌÞvö— 6d…!lø¶q§^4ÅŸeÍ�z7:öÈ÷q@eŒ±.Û5GÀTctÈ®¦½ÞÁŸ÷ýÕÙirÞ"8 d±‰Vh/­my|±”œ+�×úwüË;;Âõ0:gÍHPæ;ñ†|‹Ø= cñ¾'¶¼�MR$Œ¹pþ‘5q|‘°«ÐZt^¿\C?ÖL¶¡Û=õµ½ÚZsG”M›¬«Þ-Qâ€(¾•r ±å :þ6­Öüöšf·sÛÛ,ÚAua×ÞÏæî1?Ñ,RèDäp=‰ôб>P®nnó& %‚‡Rô�ux°Sà²Lô˜#s uZ;å2¼6/e]^òšœÖžDPAÔª¥¤ä›õ_#ˆI­Å‚+³BÙ£Á%™Yœy¸‡(9 hÿñûÿäû²l™‰Ïxl‡+vén“�>TÍù¼¹špxÍW0ï®ÅTœ¹‹þP-g˜ˆh´Qìó?�sŒí/„ƒ…–�9ÁWÁÚ�Ÿøˆ˜,áà #z¾Däè‰þ®ÀÖí¯`V¨¢Å µ�Ê ‹ I*Â`ÄX8ÀCb;8¬ãœˆi�žLæB{Þ2˜Q²WÈðZŸØÅý˧ê?¯`L&g`ë8Ùª Ü¡˜ofÛL�T#ˆë0n$FÖ^”¶ÉBLsÆ6‰!a!ö.øBõiî€% –½<ÿ)aS8{BàßKâíp\Dˆ"'ç12Írÿ—@ù™üvÃÂÂE\ ö‹lqÆ’B3²´i_çõЇä!‚µ Ú4 z >µAh,a\’Òç»{÷@�£¡ðéDä($‘#E³E©£è<77»ý¼Eó˜xZve ‡�7–¢oð>ì4~IOÓ®¬çï_}Zg;¸Îx á»Ò™ÓªÓ?; l@À¤{]p."t‘óâør�Þ_÷YS‚1x陨@h‘mbu¨"SÈQô7úyÉzÕBÄ]JJt0 íRsÙÖ0[æÕtÙ•Z{¶q‘4‘ä¬þ­?L¡è-š²¿¶Œ¹]¯ë=NשT ”˜Û‡.dL-KÀmúï6\ç�UФ¾bƒ:Ú8VjÕˆ€X­"¯x¥ßïJ^n±ª›æ»Ïü²êï3iµ„EDpÑk—3º­AVd“cJ}À…»K2ö®÷*jãu/K„kËÈ’—J¸y$`>+MÝÖËN8U9-­]Ãý¢éÂ5@‰Ô€Rh-j‹å¶Jt„Ú¥a8»L~ßf»†ij@›µù:BU¹"\§§‡{#ú ÉeÕ3ßXd•1(`“,òù »Å˜º…`K@‚Ï”¶ØoAÀª‚]¨(q :h-ÞßQE9$,î’¡‡Vó$¨¹Š pÑdÖªû‡¡D Q ¹Ð fÙÃh˨$ ~JxŒî U “µP ÕÂRÎ µ¡Ïƒ‹|’0ƒ10ÇâF­4+Ûh(’ í±0b)X–Ćþô³¹ÐwuhÔÎâ¾ÈàXÄT,ç/@›bÓDÆ_.’6‘¾u�±®~ñ¥wŠba[É}zàT&è,I�“`"YuÏdÛq�+ ïÂu«˜ñ-ynÔ¯ÒN'ëûa›Ê¶ëp\p(CÖ´EÖ‰‘š¹$ã÷íâ6üò°€°I? $"Âß[Û+±-j¢ .c¸ˆ‘XÎùZòAp?|+ñÿf=»¾m£'sfÝ�Õì ±�Œ/c¤Ií9s WÀšŠ5a)¸‘_³R¼Ožž3I€Ó]H:âW¬ mäº1NML7Øâf÷ÑÞÃ:ð>ØÉ©„qIª¿öÝ–Ó˜p1Œ(™’±œ ªI§VŠ­G©DðôjÔºk\§F3ÌÆÄÆ$)ru1Œ2D·h×™‹…Þ…¨º.È]Á7ß)É•Kµáv æÉm]_ÓvÕmŸ0*Ê ìÙÕÎŽög¶Š*¸È hŸ³CE»Î#çëTÂp$å�¯óÙz éð-T" ¡b £’”˶¸6glý©†4âþv¹]‡åAqd|+±p}=§Š6²$mõš´µ¥ím–×kÓö7È8ô"IEŒÊrø¬H�aìù“¯-º hôåßN¡óé ASKþ ZùZöc>½|zyyš<€¿9ÛYøuøÊàËÄìdň™ÙR³NMÌj^U#– §Æš2ÌéaJ 4K÷ά²¾ÙIrM…+±òPOT7N”sPÕmf)ËüÃWBãé©59ì}‹ØgÜ“²kr´}�@)“6èW.¶zA›xÍPj×ˆÒæÜGu�KB¿P™w,H’ð­ž9IÊé1Ј&DðG‘~;w‰=LÇæÓ°YÒô¤ôÏ€cV»]gÛ0ª*@� e\n×ÉÑÏÞ^QmòÔxRä‘Å•.Î8-í¯�ÛÝÊ$Éða¸Œ(’®¡P¢ö`óŽæ Ù Þ2»žðcÏ|áw!žX3áiB|?ߨ� > ð‹}RŽ„®ÎÖ"N8f.¡É:1Åv]˜ÞpŽ–‘ªŒ€±qx cÕ´†¤;¶ïò¾-€u­ ³^ÆÄHmö9»‘å£ûö™úMѲ ß‘»Œí@X$²™Jt• eœ©é·0)ÈY™FU�b�­×Á݆”²–”eÁB]¶ºVM‡E••ÖÙª¡‰™ž¸HðI.ðÁ©¢„ø} �Õ[u!W eÉk~ùë#S£­å2AcIgkWk⬀v’M�#[J§ÝjQ>Ìà"©…äÈ ‰¶BôŽï0ù¸aUf8�ÚDQëêÅ�Ø (7€x\Lb!&>]ª-§ƒž‰Daéƒ�2i!KÒ+R¸"GI�+ç°Ñpu‡�¥�¡µ,-âà×Àé-‰·Ù²[=írW�Mü’T~Ü*P5ÝÙ�!¨i8(4ÿÄü!'¶ëÜÊ�éÂ…=*1�̱yVd�˜è|T¬éW@³E¹ZTOû°O�rl¡ö_íp¶œS¡‹@K¼ )bÔ<©@²ˆ^Åù:ªO»Õ€<¡MF�:o€—γ‹ô²ŸØå.>j`â‰xåßÃçè�ˆsT_Ê­ËÒ¶k”�µ[mœ®Djí¢�Xª<:´äÜŠ\¥ð4~-ó›¢ÿ0»X_vó¸$¶<Ý,V ý�­;ªïŠ   e˜ÈŠ©»ÐQ¿îâtjår´£bù©ˆâ«2« �¤CHúáˆ��Ó‚^U±Y“Š˜äô}ru~vêO˜$8 „2š4�ýK4EÒ>MVôøêto´(´êAYZrÁáztc"÷<£�©ŒW` ŸÍXÅVM,oî‹ýnð²·!ì"‰ÌŸi¦*žàKìnÛt‘E –0 I!&ýÉÔ_PlÓlí˜�kÝ›Ý:[©-š‚ÈO™Y/ÈÙ¹neízÜ©_±iKtU2A;;]¨ï¶´íuà{­¦«˜Ç’ULȶ÷²Ö\Õánì¸ø¤•àlÄõ�Ùétˆh$,«‚?Ù¾ÓtEn×÷1‚Γì?̶±ç½mb#•pƒ=þüüáÔÄtùǬƒœ,˜Xn#³m7…ÇEbAš¬d‡JnŠß¶êéøµF=žìr§VÏó î vO@ó§3‡ûµpåõ°„S“hÑ¢¯˜ lj=‰Ã�Fô*­¯ë.–Ø—r+·´Ñ7Äòó²öI÷ÑzœA“Ì–í1Ûmä´v»¥�oZÚnË<ŒWæ‚XÒZìçŸOÞhîµì®›œóÑ~xwœ|ÿÍ«çõ¾X=¹à:¡¢N÷2Bªö}Ùt[ŒûÔùŠLK‡µÜ³,-IçP”�Úß>dáÃ!¸.0÷Á�ö¯G¿xñ¡Èîšb„£"Fd9l—úÛ¤û²±®µKDNJQKkšá5À¨’TŠøÞí³IÎî¬ÃJü^¿²è¥ŒR½­«Òˆ��R ·•¤ðæÒ0R»‘mJ”NPÂ�X¦AI§Cø 2ˆìœ£ü’¸JSE{SÆÞq,‡Í¾üñÄ¢ª„.¡“§ƒWxè´ýc;ȧv0Éõ1~ÿÓýû›®Í÷c8šû£sƒOŠejð�§ qËà"ãõ"Ž`'I: œ‚•Cy&êjiVî©�Eœš´9¨®‘pñÍùYÌ“AÔ6ÛªÚS‹¸Õ‰^/�ðó©Q, ØwÛ\zRPËàïXz‚¦Tô–Š®Cž¶} ^¨ÿœÛìc¬>Ìœ(5€œƒ—GÎaïí,’sqÜ&òõ$‡-ªjìG2‰f%Ns%ÜúÔ¿¬èú€Bu×aýýÚ¢,WŽ€[—ú¿¡o„{ù¹ç®Í ÇJR‰)€Qmüpq̇¬dÀ"€Uÿ{ý8¥€#`×cÓ ¨êR¨�/y#.ËÇ�‘§ë ™a¥&ÿøøS¹É6Aû&•*KqtyßÂfqx# 4lëvàcVi.Òh›ô¯pÌ�&†?¹Br„{” 5,Ëbw¤?%¤£nþ=ØêÈìðIÏ Ÿdf"Ææƒ©ÖÆp:Äå2ÆIlóÑOGdí„Ë–µmQ¬ý¥;^’„q-RRA>¥¥³,ÒÅná§±_@¶¹§PŠ…:i,M(§êzr @î'”Ç,Í ×êåŽ`B¢TH=›c‚;tq¨µæ¨�r�v˜¾H-FOI›Ç]BB�ý0¢zÌÊë"Õ49“sü’o"kÏô}LJb®µö¥µ.ÉëZu³[vxß—AXi¤®ÁÓûÊ«2©”O¡FÃFØKÁ<œS”-:r<ÚO™ ) „›GµPœ·Ýª³°P[m¾H[àÚé/L< ª^T�ås ˜ÔSVgLã:‡­õtT�"à>¨¡½ÕÓbu]äzѨ�uvì§Z@žëÅ®V�ò—B hä�œ¢Ûû[‘{ y'€[ù¾,f«l‘²+Vj§UÐ5aÞS¡ÍÄ÷¦Sl)@¡íåN‚jn~¯>âÔÍÖ{0šÄDŸ½ùeþÏVâ°U¦ú*ÐÆÝÖù¾%ʦ,›ÎìŸížE¿>ÿ„6¨¿ÑÊ‹UŸ‘þŒÙxÔŠçzùölRx ()³–£o³ô�‚:RÍ9q݇¤:ˆ6ü›—Í(å3–õ[ÀSb÷´· }8(ÒžÒ��¶„®o!ü›‹aÝŽSМôpßG[°Ê—ã ÎÞ¼ jOj‡‰µdÒódr, c=‡óýØœj™ÿ „Ñ ™ÏQqþdŽÊó¹ÚL™.¼�i30ÉA†GÈSfÛÁ(õê¹¾�ͦ7¤“2™'@’Úè`«îÙ³è�&]³˜pŽÌgÁ;¯õ`|ÞT]rk‹g,Ð4Ó˜ÂÁ5ÆÜa0#¥æ8¢÷\ Û˜‚EæKQÛg óÿè'… ¬Æ.e3Ü×›Â<'P6�ãcª©a¼iØ>MVŠð,DtgGŸ_]½OоJ¾U�‘®·å Zj;¥zb5Å*x¦È—Û ;²h¥ü‡mø£äÎLL •§ƒ+¼ ¹ŸF{OW)<†Úb¦A¼lNµÇÞ…>cYHí8×K.¼ ¦£ˆ‘r[ð T¦Dí ›ªõw5vD¼jq³fa”‹Ç"ノ@$�Þb¦Zí)yüHR–'<#54nÞÈÀ·>�°2�_ëÌžäÞ�F˜’aرsèi>døã>‹mHšãÌ% ’ß6é?ê2²{u�Y<ôz&QRœ/³¶®\QÏ…k5|v#ƒ<ÏÂP¯£žjõ³·WïçïŽ.¯Ž�NO“ÿ‡~ÿõí¿ýzþáÍ%UL+øôs4‚lüçü�4g¸yê­©÷ÓØ"[ÛkÄ/GŽ>üx¬uÿfHÞ›’´L”µdÿ—Oɨq²L¯Ëu;:ðÙhÅÁ±$¬ Z®çCüiC{`ùËž’ÉQCÝñ 1ˆXÙ Æ*äÙª¼!æ¶T¸âÒ…äõŒMò]¦Ç4_0 ßbtu":ªËí{pÖÀÅ…H³�wÝh€Ô>O¶>gs¢ ÛžiÚÒtQE,ï.Ñ)®^é@ ¹Y�­Ä‚^ÌûPgêÆ@›ùK‹¤©¡´Å*'&¾$ ¨ERÓ ’:àÄWt8.ê»�û>U àâQ÷ïbÝ>êž]¬êQwŠXè�–Bo³à‰¡ïц]˜|Ù052xÏ�ŸÁj "5ðÞ£È0鑿./›9Œ^×e ¦–dS-«îŽè{#{Iý ˆ~WõuY©Z”J“ˆ·Ãë ͇�–ªkä0e–;€ÉSÛw¶§n{Ï*€!ÿÙ]F(´ƒá^ÛsÐC±³!íÅa#Øg‡V¡ìÎf=˜vŒ5D4ñ©uäwÂâÝ€íú»C„]Œ¼X¦9ú„&DÒó‘Î#ª‡zñ c 5×íf6kµXJ#§Ïxm¶‰ÌÎU/ùá½C!ÆZÏ8-æ¯G‹;Ò˜Ö=o²ÝŽ #&¤�É,v>`=€�¨@a#êá¡ÃÇ8ô 1pM�»3�`:xô×7…±òA†WpÚ¢Ñ{¹’Ké™g�ÔÝhê«£ïßP}“±EOžž‹6ÅÕ�ÐÅÌ’ç–�„ôk|Þ#ôéŘ|…«ö�M˜)�J¤Ï¿�õ9|²‘Ù:´™üµ!B\þØÍ”�ˆ¯Æ#¾‹X ‘ ?p†ÀN,áãÛl Qˆóí(œo÷á°§_àÅ“À‚¨T€wÅ~C…¥Úi«s<ÙK‘# ñìkýõÉ;¥ ÉB@&% Õx�´¤/ž=‹Wòlb%b4¢÷:d¯y厌fÌP›75Íóù_&÷íõ ôáçLZÚªA"‰=Ïy7p[çú\KØÊ¤žµÚsæLŒD¬£¦œz]HÊ•~«¡Ô™Þ 8ïœg¶z°~˜™¦ÅÈé¾ó‡¥'þ뺛àdñC]WEæ0ꀿhÀPâÀ€3à­¡$;|ËXheXÕ_ëhå4«º×ËEöáÖ"kRNm¬T°RSûEC?nwª-ºr1¥Ñ§š"×ól$ËÙ:©«MiÖ©‘;ÿ¿’/¨Ê/“ÿ ÎMõÔ¿JØ@øŸ³øTF%Þü«»‘¥·gÂ$É ®p\•öFhgSO±ø‰}• …˜¶êôê*O‰\‚­¢Æ6¿Ÿ`Úœ%/јCü�ƘÕØ¡Í@Ý3˜Ë—@ ©­pŽ—ëÒ ¨¬`­‡�éš©: ­CÍêçÆŒ½Ã[·éßÙéˆb“”^’énÒÇp @äAð€;ó¦ÑLV{‘~Ðò‡GŽ2Ògã°ŽY/‘£äg¯5ÂÜCà³`ÔòüÀZž¿N·D¥oŒ ß@=/¬çE¨žä JýVÁ7òå@­/¬õ¥Ôš5×e‡ä€ªSHÙ@ußXÝ7¯“eùQ�j"Þ^¼’WVòê5¦k'OÃ@=°ÏÛnF‚“°¥­¾ð ¢‘Óë¢{(ÔÄSo&|¬Ç¢ž°ºNvkj`ïŠÔ"`Ü�+.&OEƒ¨6^ÙVíôx¦ø†txuà`¡!ļ®zá  ’%ÓŸ,?€@ “¬Fî=O½GH�4Å{ߊžv"5˜œ�C¡Å­q/à�Z s74á7M¯É1íÎÅðœ°vòLž_öÄmý ßZ‹#‡ñ÷õƒ~_jÊoŠ„´]l÷~ÀXVÛñUè÷à ˜Zxq°/JÚÇæ5�#í#š››(#��þ#Óæor9éMÝ„4xúF’“6�ÄÙ#¡5¥è� dÐÄ{X×S>+7=}Ýþä£OXûØÞ*èá ní8@tÏ-n¦Á"Ëz]Õ7»‘PFÁB 2E!„FHëcÎn|`V§�ô:~¶¢ïNzdvK—õÈ/âW¥…³ŽÌ‹Jó/(dÛæ½š°¨ÁÀ˜qOW7âPôœ6´lð÷«Ÿz¡6ú‡EŸ0AÃus£‘Oðb‰=mÿšBÐZtŒF—Y¬ÚyvLDÙÍ ­h­^|‹{œúÙ…ó “#‚1Åz-z‚¦QÒ…¬o¬LL @‰ Æ´]/¾’"/<’Žñâ¿5äÞÉ/¼ïÀšT×PSP‘­ÆUÅ&=á„~ r_÷¬lEUeërqñc?±R‰Õmj'Ô€â°n;L˜•5ùæí �*´9‹0.jµóÙíƒIA 4še¾O&5~‡Áj·ëöV}Ïj³W¯‹tÀƒÈ­ø#Ìk)!µ{HX~üùÄö*œÑ‚M Ôƒa¸;›_à¨*!½'úÈMY dÚAÜr¥ÞÃ=’ÒO^Fç_²å4 •¾ä%â‰u™ñUº1¼¡ú©’Ý‚_�øC8kU´ÚÁZ{äH“²:dM·Db‹H—€8ò®ŒÇ;!ø‚�wëúAígn,CÝÉzQ7�Ö Îö/ëe÷ úÕ0á|BL·Æ$¬V§ÀZ9¦g¨'󰦳䦯0p v.jÉ´1n¦Ÿû�ô³DÕ¨l"«Û©aÙbøfNõ1ØpâºÖêÊ0ò<ðTb¡7sJ9·v�‰•(ÝJ7î–íC†ýªWÝ-ÙÅG/.=Š0ÃU‹ñ:ÓÞ~„¤E”ÞdñT |ãÊb ¾êáhê�ªþJ v=ð)Å*ÂMi»(KâY-ò”ļ·¨G—Ç''œh O~�SÝŸæài0˜è,&È—Ïu“µíT_Ö?” ò�`†¤r=… Qœáb€RŽchÀO E‚¨VñÑÑ>m’tÔ&Ô� Áºo…!qŠ@Z•wâ; ä¹Ä`—°©Õ±‹©F׺7že qbä\™*•5<αÛ(�K[ƒR"J35@ÇcÆõ0îE‹›ôê ‘¦2Äâˆ5މ Æzán`SNVÞˆòâàjWS5W¢¹9¨µÅ&ýúÅËûÝ/Þ^$Jð5~øüþ¿�»þ�ßÿËþüëÕ«‘X¯^½VãåF-WÊŽ<*Áš‚ÛäÄ6e@ʵfoÆÿöë‘øß~ý:¹P«-LÜ©öºÚɻե�`>‹ùŒîß‹&B�{¾ßÙ–àž¿–#Hµ>‡s°¶qš#f™ã†ÿn,üw¯Ù'AÂò87ÕÕ­ÚA!grIYÏë±_|ýÝþ•1B­ �åøLÍ"oͤÎHß�Eúþ5Ìn8é5äÑúíêîÙ×c_‘’|mø¤ûž ÷Íh¸o^“³GrÎäš½ƒpž�í�Jòµa�MõQ†l,îùh8Õu`ú7¤õŒðj4‚úþÀ«ùä鹡l{ŒñÝh Õ >÷H ûÃv¹´]Ë+Ýnò,÷mù‚Hh–¡¤òrQ˜U¦)ósNpdw™gß�¾ Õ�®[\=Rœcæ^"¤çߎEzþíkÍ5+y $}�öý(°£ø\5›¤vÿ‹šRäåÈïìÙË×È*…AVæTÙði6ÕäþÙ“g>ú«{ _�xëÛn·”}�¥µß<Û¾y] 7äåü’ètÎMõœÜJ]„ÿ|ìøõü;|ã@;Tp60w"¼cñ^|_7Æ™øù$k!q/XXnàqºpð4^À�'jYø”nøéò¦V|¯/Ÿ�{N_ŸÊªw"� ôb,оÙÿÅ7cÛôÍó×6·zPª…é%zÓ9ßÞ7c÷�jÜÏ8·°�œw ݆¸EÀÂĈߎEüVß.D)(”ù?öÝ×#ûówjø§�¿Š7EUÜð!„u_n¯oäõò÷/F"¯nü�®�'⇦cw<üþÛ±€ê¾yp8ÍÔtwË«ÉÃh/£¨‡öæÏ_8;ä[;;$ÂD'<æ;µéN/o3¼C³H" o_í³2з°ì\g×8û. µðXÂJ£€ÃTúÆ•ë]¾$ ­@l�@p.lÿ«Wߦ̙~é@u%zaŒ]AÕÍn¤nc‡u¥7~˜Ul¯-)½k?J<ýäÇ“SÄ”¼»#Ò£ñűQ˹šŒÕ~2ÊçJðþQ]K�–¤Ê¶3#ßÂg½ýÍ^&$[4Xß*Û “R¦�8-¼ @9S…€°*qÁ:àê(ü!+õ‚æyq½u8é/4DbCt‹|±ÈWKÀ¡ˆ½0×g›Û]{8­ÿk3¯?Ç Ç÷ÔX¾o[M �´©O[Fz#²WtTă 9.‚æs`ÕrÝvcô.யqÕ„4òH6Å8u}=æ|Û¥õ2½†­o5‚~‰ãÚcõ‰z‰vBLc¢­o ÿôÉØx”»PÇë"¡Êu»]ó¯¿hX^&·£^EÃqž¤ü`5¥¨ée1ê†?°,¼ƒ‘5Hß$®Æ`èMÒ%h,·þãzBÿÌuîÀ ñ´ìÔ”¬¹Im�”‘i{1Ä"iË9�®�½Ií´m¯û¾@Ç@àB´¥Ò4[c,Ô¾[·@ýû§Feú¶;ësB<¼ê�ÃÆî±¨«êÿÛÜ·5Ç�,é½óW ì ‡tv �x•¶7(Jš¡—’8$uæœãØè@w£Ù8D\HµÂóìoÄîëþ°ù%®Ì¬+Pš`„αQùe¡P••••—¼©‹¦~,nÞÁ-`ÌÓGrÑFŽ&ÿlÓ«Íäß)Ÿü S¡2ü‰ìâÅéêgTøT¥ŠK-Û•HÂØ#Lx‹>I"š„LûdQ‚·-Î×5µw]Ñ0BTÏxwX"gˆy:p½UÅ©žv™Sž}¹]äÅÁ€Ö‘ú�Ä—Ë¡zq/s ±â\vcʬ'NÞ��¹Ì ò°ÎÙñ~ ܧ¸7{(°§›hØzòâ@=£f¸º(UÐ’ïõê¡Ì' ¢]ÿ´ÁsI×3{!ͳt;s„Í™x-"-ÖŽ¿QЇÌ=%X=²¶ž›Q”ªå@)ëkÜ—÷ÏÀº€Öä$Ò°ç5faµ {Y$³Ê«ÁçÄ�"fˆñ‡>¼ Fg·Wìâ‰�vö�…ŠmZÇA)C}hµú’2bv-›²Gçå°S¨øÖ“¥­[Y •âÖá"²TH×19]kD�@Ý#v‚r~Òv2!á²Dóyß'<›á3 Øs@w ï(ÚKl/l±”eDæO´ºÞâøÆq¥æW¸DÂK"Tb³L6ø1Žq"4@}µÓ0Û]·ioF'Ðãë‚~�¯X÷ež¸‡ Á3j-ˆ ð|E3q>�(Ü«šÜb^¬-—¿„¾dP8”Zd q <=Ô­(¤Æí*•—z rû}·ÀÎT{…áÔOLÚPR$Tóȋꜷ…Ê�”w?Êš(•Xª0Må…w¡ÚK 8©VÞƒy�­Ñà нÓ‚Œ×‘(ðˆ”Mv2-†çøhLÀ8”Öwv”…j™éþ�Ï©×d|AÜúf8ƒ¶³ÁJê¶ìj@©Õ`—'ÀŒ<—äÿ¯S^ÔLEƒãì ½È3Ø~5í˜=«åbP{ÂjB‘&ƒ ßËbñ‚lÃÚ°!À ×dý U63ÿÐ{Ù$  oµ’ 4À˜ŒÊ\�ƒhœá”·ÓËóA½M5¡¹ à韩ƒ¨l~”®“ŠGcªÚÞd-ö”˜äó@@ÚZž´EÿœŒÃ2¹…’W�bñ1Ü¿|ýüþôæœývq~öáóõ‡àÏ®®áïý½‚-Éê‡^ÂJ–ÕB ÜÃ*?Ï1 Ææ{Z¹€�:|™åX#vÄú{ÁSnó+<×DÚvÿg²—Ûrgkø¯åÁæ¡c$”;].)�œ<û� ë‡†Ûé8Â;Ñ-J°þíU¶á+tê4€ªÂX±]°MæžíãËþÔ]†³ñYQx³â‘RGÈt^RFº�[ªPtP.åt%¡Û�êø¤³Ç˜·bÖ)/ý¤žéU˜V�¿ÜRUìà ¤ƒbÝ3™m®um´*ã8”5®T±á<‰Ô!R_ná:sö™ý›¡®à¨Éï× a¸N–n‚JRØ¢ %LVx5þ.Ý/ÇÛ·Ë€á�Ö:Úˆ¡Ôº@à •‘ZC:¦T‘l­JÁOκ­¬õò؆%†N¨ Âh¹�èRêà0Þé’2–"›«6t*ù¦ ¾>ÀÜ›�“´½{xæèJG*cMòhêœ$­$ÑÐòÕ -�à _xKþ^:HµŽç�@+È5oɯ:%S¸u\çíôˆV˜­9nE[6áB¼ôE¯l�z�ï¡q@�AéV,^½RKb…ðó¸„r$– -{!7Q!“ElЫ¸öD RgÒM'{ ×b¢¢Šw]=3b±Í2™‰oTE„ëfŽ› ȶ_š¸‰…ŠÇüA$ìáŒ|DÎÆUU‘‡ÕWA4ÑS6°¦èF vh¶˜¨Îš0±îÜÁ¾/Á³–ä¹j28å©RÜÆ2mVíá¡Û~ÞÚè5 :é8øÑmðáoM×Ó0 s²ùí©9üW8Úþ÷‰¸ÀÍͪ=j¼(Qø?Ãõ¿°ÿ»gÿ'blÙ?ÙÓ*þÆœ=Öá½ ß…±<ÚÈŽ¨ä÷å~t_Öÿ? Èý“Ž÷�ÉãDr·![uyÂÁ ¨¢€Ð¡lUÛl±.óŒÛž[rF …«ZÈ�'W}ûñúæêüóO³Ÿß»2³Ú��Ìì¬&j¨£†.–ŸÎß¿¿øð\9°“ñõÍéÕÍð%ÜÛϧŸ¦|K„ë2ùúé݇«)Ù`‡Ñ—Ë ™0°Ì ™pÀ£hw.F�û�^«Ë#[NÉE YùÔÂ8 Ÿš[Û|È÷h95ì]z1>ÔŸB:ÀÙ…ßí ¿ñšA‰§‰ÞÛ€´pLêõ&f2u&î;'œ¦6ônª�µtq¶¥Kéç« -쪸œökˆ6v⛫7ѧµB÷õà)>±½¯ ÓŽûÀr]b¶ÊË^®;Ì.ÖŶÉâ89!WŽê` ±,Oñ² ·Ë¸æ%‰?ŸÉ‚_—Ó½ €YY`v‰Òý½Æ¾Š†Øå×ܬ}ºljoëJ^LÇ6/¬,jðô™ðí8^—ÕC”ÔS*' ¯Ã «cõ”ÁØA–JH³„‡bNÊN€ZÖI?ÅŽÑ�î2/ãènÊ¡v˜-„áúѳ‘,øØ'×qÚ¸Æl�ç*jž²Ë¬˜Ó¿¥�jg:å.+í¬úª½ìÆ‹—~é0Ë+&¾§M¶Ë–ÎVùDÒS¢Ùù$« Ù$+—žŠB»ð©c×û ‰Ê¸¹E$ D ¿ªšR[PxVÓ `§ôå†m»²ì³JLn„q_Tæ©Í/Vä>þÓÙØÚ }\§k ¶¥S¹þT—¦é�ÈÌ$À,\À/~VAJéXiˆ~eÑYÊ °ËŒ×ª›Mz:o£ZØÖM9©Ï™ŽØa÷dÊû°Þ^Å›CuÀ.·u²š2SÃëòJn³x9ë¿j?¢ª…©œMÑÂ.»…‡Í¼Ââ‹�jµË7oJ6«ë®«&=³t »ÌÉŒ7õa¢ëb;ñí5IÂÓ´¢¸J™èÛ��ü§ö±àzðžÐ•Ñnëýœò‹sD ³M=íqU!Z˜Áå ,³)¯u1¤Š Óó丶qµˆŠ˜m‡“3VÈÖ_Œõ]Š=‘S^¿O=�L.X—Kƒ¹~{u‡ñËCµ±œtWíÙNÅ£é$¬Žhá—Ôñ„£˜Ø¼ü'MêáÊèA¿÷ Í�89„f]n_M{/«mÌö'g¶ïfv09³7³Éy¹XMî¬_»œõ릘^oƒv¹n‹˜ÔÖéFSAö°«ž€_å`8áyJáYYÝGå¤ïuoS…øü¶Ss#ÐËfÂSwãØ0ŸÆEpÀ=ða� ¸GsÔ mìj*6¡HÑ@» “t¹ˆžÀ±la]¯{MÂ;ðˆvfÓ~FwR:ùhfÔ6œ”«‚î°ÿ6émù7çuù‚wfÓeàÓ𼦶tP|Wå´ïˆx^Ó™!4<¯ 7> °Ã |t¦wZÑQ%ËD”á±W€*IÝÊê­—îA�j·Ë‰ØJMròkhÍIgû/f›ÒZ �ý,ê· —ý𠄦Zù@F|ŠÙ?—Pö=O*S.±šÊ÷¤ÀRx½u{x#ÕÇ¿%9UÔ«ÃÛ&S$â4ø¥~úzEìÞhï·&J!Öe(§CwM1ÙZ8þµ%ú qqN/D] ѽNÇIy‘Š€D} BêZlaËrH¿5ÜýkT™Öæ©ÌŒ44†ÐZåQBò¤rVì._*õ#ˆ¸™��d˼§6=ï)€­úëpö‰Š"ŠÿYùàðz�§}†‹u.®*m% trU¡@¼ц £Âw#R «· E/ÔZ‡Ñ%éh$%0ÞbÇ¡Ò V;�±~üÀ$;ŽB<„TYȱØŠ]EPÆÊ©�t“¥eeÚ·:Âㇳú�jRaÐ�Ò™zK ”jU]âÏR`•±ž’-l)VÝE'åÞ³z–,_‚¾�+áwò¿²\üó9`,a‰vß6iew%µ¢vº^í=1 Vþ ÛêA¸©¶Y}Û�ó5îAµºÁVÝ+ h®u;Z‚hÄ”}i\÷|jتÁ UÉ$F¿XnˆÈì÷”ÇËp µØ ¡´»°)•¯q`3ØESvç­¯øÛ"¦Âx H4õŸËxÙ,Àô>.ËdéªÐœ,î„Ä)BIqFu�¯bQÔôš¨óƒªeþ–Àúî¦ÚWa;f)ê*÷lÕ4‡xãp±q/Ø:þVku8¯$þLÓæ«;*¶ç’VTüK�q‘ÃD’ÙJlùC�ŒJ2®µîIÑ ú #š‡Ô Ô`�Æ–êì´E¨§šhâ¿0ÒÛø›»!>nïÜšæóó—_o¾HY;Ë€×ZMè«&Ë@ÂoÕÂÄR• ýl“(Õ�sô,ÃÍ›k%¸…_!MèÊO�]rò+Nœ5 Å÷°=qáØŸêm¡í×úZÄ=S«Ë Û'S}øÛäuL?o;õvÅ·€63ÙF}ø=P´L©Œkôh%á: ¨8p*©çÉíÔ‹¤Þâ^O Rn˜¾°téLøPï3´¥Êœ• e›™0Y¼qÖ~ÓBaÔE õšÂ‡¨„éVM!¦(–±‹Ë$²÷‹ShÚA¿ÒƒàZAg ò:žltZ3~QEY£@À¼c€²ÒÑ‹ÒPo ]›Â ëýöjìWô§•”®Ï•t(Òõ{lo)0.í|¸J€õ&®#Ø{å0húl 1Ô*Oï㪮ÕiÙ~ÿ3'$]E·üå+´®!´ŒEgbŠ¡·è„/Fö C$|×$)›".ñˆ�·¤Ü#äÑÖ(A%ÍQ fä{Ö÷<ÂHº¦‚:õã”t¢±èèÉb½Ø��«ò.\É:‘òcž£µ,¯ÉV¬~`Ä Æ¬Ž]ByŒþ%%+©K¨ (©!ìÃ%”‹i€¶æ�,´WìÎÂP[6»|Õ†‰<:­ ZãÙnüÇïÿÁwÉw�¤ŒZsì¢æò{¯Š¾…줘—ý/ÿm“¾`MÅËËó3PŠ*ÊB>!¤8Üö Ëw¨Ó¿|„ n±Ž¡«Â›I A£¡ÀUhØŽ¹Ò0!¨JOãÕD%µr(Ú|�(?Y^<�“ xÁuƒÄÔ`¯Š£r±6¹Ðo\Ó¤ç—`R¦ßÃûŠòJ a¨ù³çÁ}õ"@ŠgÏ÷ B+Db°5Ò®8.wßýûj9¥¸S^@ó=Q$vž· Ðj´RÅúpì¿>zœïA‘:$Qزϗ]‹ êøàmp�~êTûƒ ×› $Ë=OÞ¼ $ À‘9õ|»vÄÞ’Ÿ ~’´Ži’?¾òƒb ßJåô�b >ñÝõKØjÙî’¶8ìûrØ|ޏÆü åäM¤#_$öÚxcV1xÁLáÖ‚;ñ…;a¯Ž*öm×�vŒ ¶Ý`�{8ÞæÞ5Ù9Aôñ5œÂ3øF£®<¾ö´1¤k$zÔ”…Vê9¼Ù¬­ŠJMû,ϪdÓv¸›¨Xçƒ&ãΦu-åí‘‚·ý)$± K±µ@4¦¨yÛKq:1¨Œ„¢- :×V³LV+Mÿ,?qšv·C#âÑ¢‚ؼNô7áä �é{Mg@i<À/Œu Âgà5R6e¬¡aaîêzƒº%™,í-ùØ Ì �AÄÕ:‰è�YGئVÇŽ—Œò>.ÙyõÛvp·/‹Å‹Eš0 à€ú¨5ÄÚ­½·œB¡x”‘Zª–¸'&#è” b¿õ {ª³Ö:�šdœÝßGí=í%/’l™?T-— vÒ¨¡œW¬¨)j¶·V6 ±²[ÏÙ1E_ÚïøßÁn.gÿø�$ØÈž‰Y½W­A–>Ìî«Ù2Ž‹Ù"/¶®3AÁŒÓ€®4!Ò°áZÇp ë½y¡6í{N)©)°KVuÇÒÒ?E •½"a¼Não:%4‘Šü¡¾6RÃI¾yÙ8W¢�qI홎‹10±¿Øi<0`@OALîqÊõ�<´–î-‚Hí$4ô¾ çQ/“r'hšs€0c‚LššiÉcz-hÚ�fk¾†$l:°ƒgì¿bº:dªîÃ粃H<ì„9�°åfìÛ…z—ä–n¥û°MÇ„~® â:™—•ý5‘)Cà ºÜûM]s9µ I·´/ôïÔÆDü˧‹«Ë3ÚÔv��ˆŠˆúÌ_}öŸdµ6H¦CCÙ¿’E”†Ü  +ˆ¯…­ZDÂ�Jžóúö%b,› €°X³Åv†¤Fý7ª�÷Ë\ös³€ünñm´`²Vƒ L8ÁªaŒ¤ÍæØN×¼×ôâ ì‡@ qÓšóþŒ?!7ŽÈLq½&¢3û=ʪ?6ƒ35­ÏÄA´„3Á|‹¦ 6Üh ÷IY7°n3ö¯ ?W¡aŸîtˆP/Bée­Ó­G‘)§ì‡"5Ñ*—6­¢ 4- Æ€b Ã>• Èù€°r#eõ9ÙvsNÂhóìe¼Öדå1#Íkº¾d&HXãìVý�ÊÄðWòg3l?›íU›ºü¬…¾–>Ý\*í ¨w²YŒ°U"J¿déƒü|ùâŽiÐl©ÀWr*AØJà_Á*Ú$ì( 1bp?ÉâÚvd²…’´w 9xD¹Ûð!­@Žäº‰¥ç-b8A£'èKtËqú?…m [ßܾóÆá3Ó=«DA Z�ÕdÉ·PŠHßo²b²˜-ÛÚŽ†6:Ö<Ôš@häháXx Üÿ™3(¼ìëù6ø\ãŸÁM¼Xg \»íQ�ñÖ|îˆlÈÃ}h¸Ûo-ÉÃ4ÏïšÂ[´\›\‰Z€AòW×7¬—¸êÚ8§5]ÿÁ@ÐO½÷}Cý¡û=²¨£ªmæl»Ì¦ÂéºZŸ©}©y-‰HÆC(/pڮƸÿ3äè½R©A @öªßÀQõ€‰º¨àwWL�„±™›¸%‘ÉCQ£þ#ŽÐæáùsþwHð $nZ I ¿\ÀžŽ^ŠŠÍ<ÍçòÆdõŽ(•œ£8½é[Ä. MÀäi³Éªp¾ e�Åä{õNw˜ &2zÝÜãÐâöo�̸I¹¥ÿ�áÂT+î1#ÐÚz¯�á˜Ïs¦�{^¡Z3)·hêjl絎 ¾° >๚¢£ Óí«hÑwú6yÝ(‚€éÀ´XFu›S™ót׉bÕ”l_7òHÒuØà@0¸…šh¡ˆWQ“Öcßþ=‘RŽ⦠ž©ýö¹ä¥’½xÈ›ÚJC(R6“{Î>mÙ^b x–·ˆc¾5iiAƦø×›�áë—V¬î eþ2ùSçåvÔ„·):¾Â’`(¡$q‹ƒ÷< ìm“,5ôž9Uèl:r¦‘@ ‰,hu<l%¼ÊÛ`òÁãа Þ:O—#e|/ƒ–ý6O؇äR!É@LLë3>¦røöÚ‘¤·¬¤g_xŒ(±íiš$öÑÕ‚F Üê±CI½+|pŸD¸ËiP‘P"{y'Už¢(à^²�í€Ä›ž¥ ¬ÛÈ“o¬¨·¾:ß|@fX÷›¦LBð1»5�ÙçŽ,ìÿëÕ9ìÒpÁ¤<ù®:;XI ýLkŒÔL~ÎÁ¯Ê-}±<>‚ÐUTtàE´�«%ïÌ­;sR§Õý«ÙÁ†l7×Á«{•ÓžCOä(§—çÁ5û-ac½åt!ûs˜öšxœ¾;×ÈäÕÄ0½¸tèx p°¢H¹rÈÄ{å°7nÏÞ9¼C-ŒDÿ2JsŒÀZÆ‹!A��*�§Fž…Š*âÀåRPž‚yûP´%„˯¨¯OŒ±æMÄri9® ,å�ëW\ÓñÌ1ù¯°†nQðƒþµ VÖhegšiápÎ’�ò7l‰ ºàŠøÛ€|g# ¼É [m7ó<µö‹é„Ûur»–'Ôû(IùªA/\"% vÚ­ã Ìíx\PýÙÅy Í䀣m¯•rÀà .— ¸`±Ž™¸)=æ#A© ÄNså]G› W‚Ûùí ‘ˆaŒô…Cìi|¼\Hˆú†O�%¸"D%Û»2OKÍ™"zÖÌo E ödöë9ƒ•îšbw/xìnðl%"�Ÿ+ðMò-^†¬wõšMO—Ûe›‰Ö»zTïnÄÌìt®Ö;;Xój¦÷ov´#­´’WÄlK¦a+tÖDC;F9ìW¢ê@ÅN=DÂ6õm<\·w+0RÃ-ðóxÝ'¹Ë›ŒÍh&ïm8ý³ç\D ûSàìÑT½ºí8Û;eDµŒ†­× ïz\ñ§-L� :OÕÕÁ`-p)�*ÿÏ2”iGØÏ?m “FW-ðµ;fÕ…ùsü�M´E²�ñ¸-Øä6¯Ä‘ÈçHµd§ü%Ä�€i±… ÅÛç¯YSÓ=&`°\Žåð‰:Ø-è|Q�þ²¨m­¦‹Kœ–ÚUÈ™ˆDÀ™×�jáïu�@(Ÿ„±p·œ¦þ»-ú!¸N¾Ç�* f¿Ï§ ©|„ˆ–¾`8°¡ê´ÙóQ—8Vr8/œÏŠIp§ß$bœ¥\- JéZÛãp€™µyÓ€wnÇq•ã‰#ƈw’ ùVÍœŽeE‰‘M܇Èz@kæZK9»?5i�À%¶þŒR‘°4a‘—ÅãÀª_†Ðzˆ~ŠqQú/^+*3�‘Áñ~˜Óz Uc-(’Ñê0©Ã"™2ÐÓFÉ %ÅsÀžÐáçtÅW�üÎ{@‘èBß]ðN*fºÚ \Ë*=ÊùÅ CFºÃ4sŠÎî?;j¡�Œ¬IªµˆëPž2Ex H†]°é/]a§ê¹ê¨¤±Â|Q ´]€w›äÎè÷Ûo¯!ròàŒ‘³óÄOQ9‡�š³<añUS–ù-Ó¸hÿôQ41Š-à :ëåvC–÷Å&oѾټ€›Í¯˜(¬Úf‹5ÛzôZMä[¶(¡XQ´ê€ÊGƒÛ”I*B6·˜Øh�.…®÷Å‚öë4Ñ#Z[^ˆLü­^@ó@Ä#R´üdr³úÐ�蟉<ø ‘qéæþ~¼IO¦7³ÎḱXÇÎKé6ÜÏ94E ‡’þ�CºäõÚXä¦7é+$ÄR8ì°ºãiv[]ä·ò4‹IöB1ÍuZÈW« „Bñ˜õ®©ÆÚ¤C|¢¡àÖBÏ:)5- ìÕ!Z„\ž1Ép›P~(ðAˆ¤ªêÆ2:϶` ¦lÃŽ)Ì%¿°a;­ �¡TQU6@ö ›Ê¯—‰7F,+¬US‚ï`ÈÇ*g‡ÜÏ ˆ¾ä�!ñûCìLÈ›¨Ä ¤B_�Ã�_»\r å•+¿'Q‡ Â]¹©}Û9µ(üîÇ“ù*0™©f0^/X�±/=Ï«�¿Ç½¶Øù«ê(;÷ŘéÎí£ì>Î:Êý#G7ÉVùØÕwÎh´ÕWÝÝ–yãJú�f”ä!´SÕ]@D{õœ-»»ñöb¸Öà‹¬w'áͺ[‰ ßÜÁ?Ö;í Ð{Õ^mÎú:” ¨®Ä¬å|o …1eìö*7×6bÕkf�µ3ç�ºY²Bàùþ›}óU+xöêöú¢yªä»cßÉõÄÉåVd»B¦æF�À °¼ê÷Aç�ÚNè ”B­Æ”ß…ß͇ë›ÙåÕ‡�çA„õ'j�ýn@Y…XuhÂO°>d>°=ÃÕjHËBJÙ8$b˜½^„Ø�ˆ„2¬š�¬ëqMô�îGùE¸´ a\ˆHûqM�ÄýU@Aóº¸@7’!D¹4¿Þ™]úã÷ÿÓ˜ã<ÚÆÉæq8�wUUkðS¸mâÁ rpÚ“D1$vk{!ô$Ö¼aíƒsÐ*1è�B?:¶¥ZðÝéOHõ�ÂMyÙÉrÉí`©–{I‘’„”o+ `ò ºÓËóJ@ŒKÄ@�’ž^â-£•WĕּކómÍŽØe´íãMm[ìéGÔ€ˆ¥OŒÉ2YÔ�ÁGz;´Tw„Fz;4e±¾Oâ‡Ç0ÐPìl: Æáy˜§1'oLJ9ÕÙ$å¨dìÁ,fù@ü,\[6e ‰V ¦´0¹\2¤Img¶dÞMzÔ‚}Ô(9†É>gKT3€àS¶§âèa¾&²ŸšBMã¸2àÈÙ0„:,δPìSloCBŽ:™;5 Ú™¤±!.ÑP;fñÁ+ƒWž¤4ç–�ΞïÐãs�ʆZ­#g†Â¾s:w«]—Qï¡ËÀóÆ%Ë!giÝqà h‚ó÷*>˜°|åtÍî”ðßÉéλ7œ¦Õ‹e8A";À^Ú²ÙQ™PÏô:®ôŒË¶D¸G$I�èç�::±vÈ$¾S/a´Òæ£�2H\]í„TèH”u7 R¬/»áT:N#.FÃ4:Ì á¥é^CZ?þ»g�ÿâÅã?uùø�\=þû6�ÿ¶÷�û¨åXhÔf­–î@lÞ@.��“˘îTác±ë;pŽ~Ü©SpT¬19\Ȩ F~›}s'€ ±ìz=jª™ºcu))pD–©¼/R«…tM4Á®EÉ|NÐpF)oòE¥poè~hÏ10W’†)ÇM¾÷ܰŠ=7¬² Â{Íà–6ùD/b­Kƒ;ÊØÚ‹§êÕú±=ڤ연ØÚ2\(¨Mj䬩eÎz‡QЕí§-ß}]�çŠwž�?~ÿ·ºÀlÕ¿ÿû^�uÁ:G!ùðXÝ�R†t°Ö´*-–ú@ئ>CUýÃúQŠöEˆ3Œ«a›¡H¯5çLÑƳ‘+ £Ú»1�NÁ�g¸ãKiÔH-»ñn¨@ƒÝ@¥¯ šj@›„ll;Àl4˜,)?ý.@WÐî(ú¸ëVÕ‘0•ÃöÙÇæVG)£ÅN¿n�ܱí:Ýé‹ßhHºûöHA*Áιü¯9]n9‹GŠÁÕ#E×cçVúÈå¿yäº/¹P«G®ÐúQË n.¿D³ö)nÒ¾ÊJ2ä%^ Î ÙJ$ëá 'ùÌ� TG„FeíÌm’œµt= F‚ŸQȨNJÄp¤�2x{À]–1#[²v@ ‰gû@ì¿d𽉿Ï¡:znÀNsDíjÀ‘Éͱt ×k•ÂM BÜu{«4e8‘ªôà§à�H1J˜à–̹jFÿ&ñ'x@ø´S\‚À©dZÿVÐ5zUˆ:»ª‚*s:¯:\�‚ÿ„õ° ,''4QíÇs³•AT¢]Zb°æ™ï-µ�_ qjD)æ9¨“M\ù‰‹_ ! · W…Ÿp|ÏÃ3±ö8E‹œÍˆ@Å›sTÌ…5n� ´äÖøgʜǓÌ=c,hâ{Êu®i·˜Žšð]‰Fª‚€’ dÔÍ?1÷^#äH®­£•I;’”ÏžË"ú|aõìð|¡’,ȘC@CÙæ9ãµH¡Ç�hô’›¨)LJ-¹‚ÈrV‹uÔ÷ñ[€2wÈ'k¡Ù\SXWQR‰èWñ‚*fðkVòšNΞgy{ŽC¥Ý_�‘†ù~LÜjÜHõ*ìŸ IV°65ûÿÁÔ˜`Á‚t¹ˆ:9cïW$‰D±Æ5÷uL8 2ýÌtüç€# ®èz ¿1ä=@Q‘�½Jʪ¥Óœ2jF\ä9ÓvkCÇA4H†Q�P î©nòk-‘1;W«eÙCã–æ Y÷ã´¡š`könMEɨØëËòÞ;јjš@Æ üUÌ;ùvE¯@[îDz!и’ Ō£¨�1hÅnw‰»Ý©ÜíÞÁ9¡Áü¹€ë6í êðSØmÛ•«ŽškjµÓù·b,­Qi`ÖBúˆ)0[r(Yù�kÛš© &š�Ò è4 Ε^TU^`ž�±¶`ÔÉ:è§sEÀèˆ5ê#Ïeºã:¶ç¬«ÚLÙŒuˆzÀ(a*ò¦Ò+ñÃ’$"î€I…™;!ºNêFê’¿ÄÝkHG-¤CÏОrÎi¢Q8…gnÖÆ)…NÌìjA®·Ì{>K­Õ™øuÍ]þ –„Sþ”ÃÜçw£ÌEç‚¢^wÏSIî/ié³â¹ '€z”p9¯uÙò÷Êyޱð¿ŽîéŹF¼$ój:€„�wñ’„ö*+�É{ÍñŒ˜Æ2sœ˜±| lHS?îhÂsÛË£ ½ymæËÈå‚Ú·¥*܈†X ÌïvƒMaЭu©´G¿à¼8îHöL@Y•M¡�ÑW.Œ~°3j²ãz3ò€DÆ1ÄÛØ/ˆ`¢2ÁÙIß9õ5·T’w}� jÌ ó"Y&ùfäh™YõÐ,åhûf5om‘ìÇuŒ~ô“jOô¨\�ÚÅH7ö0~lõ;Ôê6þˆá£{˜'ùÅcñΘ}_ŽÀaÁ„mIã;hD8ãTL | Å'ûÖF¿™I­À9Xa JCé¬ç7�?™D ¨H=U ynëBäÚ;Fl|& ¤¦¹ç{Þú%óÒÂ|ÆB¸»iS1_.=çñh‰¶ˆŒOóÊåvíXM_¨X|ʼ ª. î†Ã‡¤Ö§â£•y0*¨º±ç¼áµ�+NZ�Øÿ°uK̰÷Äî`qÙ8ªØ,ï¦Þr Ò¥¢ 4Z½» ,¨ ÞÓ*F˜a8ÿ|„Òà‘x]Â,“ûNúT×$¸ä�Í›’b»ˆëد;üþo°“&i¼üã÷w<+iVø­‰ åqØ/�Ì1û…hdNqÀ)¹�jŒ1«u+£ìvĹ4e$i ÙŒÊ;ÏuvÅÖûHWDƒôÕ"/b«Kƒ ä(h¹âº/Ð XÆE LÏ.ñodå`}ÛQÇ*Šû:\JdµQvÌ×ãmôå¹ùeûzÍ¡Fî@×±èVYr”}è;ŒØJÇ"¿'µ�É´nú~†©Š�7y¶KýÝã‰PX§àŽý®¯šÔðð›M5®Õ^GØ!Æ2_¸%¡áéd¥œÄÒbÕc¯2öK+’¾—ê7�o§n­ˆ¾c—mqZA-ë×&†ôåcÅÑV–û²Òru`ë^.ìxµ ÍD+#5G{g¨¾)9pÌMËj?ì˜äP¦ÉnGksGR¹™i’lPŽu÷>®¹9zÞ.š�Y׊tUHyVBmß÷ô‰3¤hæ¾/hÛN‰+ºÜüvCf[uy®Kóm1ª¸:ºû�tòCQ{ÐŽ�Ï¢Át‡X ƒZr²u2\€©°!‚3~{[蛲o0ž@œ¯¸oa觉"‡Í$VÞɾ~´©FºWRÚ RyM&âèÍxÞÎ�憤¾O¢fìYŠŒm�ý<Ï�å¾Zžæï ¿G”X!!ô'ˆéÀÈæ_´q�oÝõ¤,•AÌ+]ö—Íì”6¡ê˜Ÿ8÷«£¢ÛŽ´Ö±UYØï0sûÜÞye‡ãmá’Ç’F¢ÚÎþp×Ûh¿Œ¸¨ÒÞb(7Mâ¶g‚*~ €�×°L-¢B¡KX.!Ø{°Sÿ–�ÈB …¼|�ŸˆÒÛ3è‡r&Ñ锈©ˆ{E©±âú‡`UæßãŒý“c±õè,BÙBûŠMU?†Ê¶kâ(çø™®�#Ï{.ZŸgôáž2 ­YÁ«O@4¦Hƒ¨Î@”6³‰“R¨ðcÆ�¥o­ŸÏ¼±ê<¿È£ót4Mão„;P0 %:øöoòÍÎ ¼—9q¼°è4ô®IR¸-×Öoå�ÔÍÈçFï ;Ìû +¦ÄDÇgßÙ{FmUqƒB渗xÉfÓô„}w&¥lnö[ºvµ±.äFŠ„£úñi s± ê šj¤8îžÑ[�Ü:î£ÒG= Eã. ^ˆ© K±�>É}šŸ¾;ãªm™C•NÛþùË/{M¦Äú¨ô§M¹ãÛ,E ¾b{­P°™'õCR1%OÍh¦¶%U‘r=fd—0M¶;;oÐN«Mù@uQBoêÄ^TÞq)‰ÎØ"„I9‹ý‚rAÏ^ÖY¤Õ9á¶ŠæCF£íc¼e�váxQ¡*¡ÔÅ”˜{B/•=ª­L;òGiØ}UŠ;hÚÞ°Ò_šÀØ Ã´ �ˉ[¬]á±&²Š�í`a¶ªÎH†ý¼'ÔÞŸSåà$SyLÊ­vpÊñäÏáÞΡxº�R=ÝW¨ŸnÈï§ëM’a4Nohw{m½‹*&½9‰ÂªlU^ÀRReñÃËý'R’KŒb õóm 4¨»¤G9n÷çZ´¦Â8°äÙöÃz‰±£$Å3¶Ä6Fc;"•ò{Acbabf𨹇2˜6+‰ƒƒ¯öÕn.™„á¼Y­zÓ ~ܹ ·�N];¡-L´eSj‘Ô»M> a ÃÇYEÕ#ÌÊÄ¿�è'§×1çS}•ÅTd5ÕpÝítG@�å„�kÙ܆Ð))BI�0î¼èß4íã›–ôV¤¹†&3 ™„fYUµÎäxû¨!Á¿xŒe(xDv¨Ê®¯/æ]–?d"‘Û@Êô“i•pzQòâ+AðÄnš‡5$…¤t懒>ETVÚ­(QB¥3¡ÉðÊá WÎ`³DøWÞžŠ 3ò:IwЯ‹]hnKt÷ƒtvøVa·ì ©Ö˜×ˆ–R�Mn¹�›x SòÍû`Æxýäø738|½º8u ¨÷¨á@îRû ±û(‚Ïå~€G�àc ’[F\‰ÛY~�–:¢“Þfœ g¿S_¥å”=¦ñgf“ÚÝ"ûñZ9Ù_âGºB\Å«&u¤F´ÞNE •±Ñ< B•ÎËǼi8'hg‘8½.& *+ížR«ê"�(J/ù^¤!k‘F&^²°'µâ ;?§PPòô?Lžú»p›vt°Ÿ]€=Ò§À†iï#ºò‰5�Ó4Ê⼩ºÝé*-mE£Û!Pa ¨FMC$ÖCTf]÷8k¯B�Š-žüÁJĹúñ+=æPªÜ`T…Q¨Õ6Ý©¢"�BõLÃ×6¿Ï›ÛÊéé…a²§Û3$™~ ßqýú }t=V×ÌšÒ% 0Ñ’»dP«x™Ô-¿ã÷úá­0(ðýþ¥ºÎ7m!Ú+B_ jsêŸ/ÅÊ3èĺë[u/å"1HåñZ /õynàè³Ü=Çë…3ôÁÐ;˜XÏïæì­T8E1á íí_o΂g?}ºyÜ'�$…>39æ6õê5D V›âýüzó1|M±¨ SÇ“®Å™bÅC¹rÄ{M\ináiO–[A<`ýq�Çw„ñ†0¨˜¬åP}�>DÊÁܼŠD;½âû"™DéMˆëY+8—�@*ÿw"R‰ÿ„Tãl<ý™$þ<žø³$^?æcd;ŒŸ$nv3F|9ƒÄ%ÂH$ÊyÉi9”ÅwCt„‰¼2¾5©éºTè†�J|8dŒ$Z®Dx¼5€ì¹6I¿ë^#V­Å-ã8Û¹“wë.Ú`ˆÀÖN¦·©-;xy·Ì]©Ó@òIø»Â+R°„ß»Ù�LJãÈmÆU$jñ÷2…’b'Ct§(Ù¬«Çãp:‰Sm7Ê©|’¤Ô° F1¬ ¡M8ׂ"y�Å)+ÛHP™³Úލ%&\¼çß—ã!uâbµØˆ,è*'ÑNð$ÎëÃç?ÏÞŸ_�ŽÊÛPVY9פÛPò>�@¢9zf£°í:¹]Ûä•xfʬrü ”„ø"Ú²Ó/R¯+ýƒ´[×Þ�1Ex- ¢y¸÷¥%9¹+á5—E8Ï“p ßæÝLqr7áçN•Bg’ΧD—cƒîº6ph PVžSÕ;x&‰D½¯|ÕöU,–IåöBjCa3¥$›V�‰÷(3 Õº–�}EÑÛˆ0ÕÄkóŠæ §_ÝmC�ÞGIŠï¢Ü7­Ò¥^¼â'†C ;áŸãX¸’`4ßÇÐCr,Ūh–�ì8Î�a3å"…X ¢ž�9PS–l_Tj¬¡T›0¢‘IR§­wp¸5?­ªx3g]Sç̸-«òÎEÕ~%½œÚCtfô¡Š¡ÐL¡ÜÇ3¬f'î‹ä¡¬ÛÛAAGw¥r¦v`P£ö1MÐöó7i1>îJè¾�nð¢¬.ss?®y-´k^Ò•£õø/ùöj>/ó°é;ÕPÕÆjùR ´†!ÜqBçfÙFU[¦Ö'ØR:¨dúxpÖΦ…«'xí5V;ø%¢»ŽS’…û/Ž�)ÇDn¶�1 ç�ßÿµBé˜dÂ\ÃöuÈkÊ;=ÅLá eœAö ¡ýõÒʦ:u³ñ!l6ŠÆrÿ"‰Œ+û‹k@UŽùG-F.[/BEÉtK6 �èÈB´‰ÊjÍt£ƒaV¼©F‹‰bdal¨ºÃ¤ýݨNçå’ ‹e·&ò@¿!Í‚žëåÅj”qS^~¸ X÷*~û,…2Ý-¨Ã}O¨Ãý·Tž•'}„ª÷<¡tóÈóèm+35¨k|1ñ0—Ó\n0µ[‹‹ï ²A`Ó•íèglï—/LÐú^û«ØÅÁg&_DÎ (gÛâözø·×Aœ.)a7ÓòU =%±cÖ~�£Wž¯sôŠ}S~}z]Ä4�÷«˜ˆÏFÁ5Û,|Y¼Å2É"©!˜¬gtr cèòüR“yP‘¦öwòýDGì]ƒOEÌ+°ír±g}Tj†bó§)œ/êuû­Ž_y~Ö0 Ø!h‹A7ùsmCT?§k+×fwäËî&;(0逳.ÉVÉ7ujÂâ;®~ x†+h×]M'¾ïwï—W/ªë?¦ã§ôˆ‚y\‹L’àSC1vá,ò-¶™û¾í [ÊW1V¦¡ST^ ü÷d,Á‡óÏ7Wmo|¼y é³!ÔãºÎ Š£ƒw“`“¬Jئ£òÒ¶X½>ôdņ*Ưã;$¯�`¡Êo€+”ŸQØb*óoÉr:Å<óR›Í±/¶v>Ew±~Oz1®®±SÆÇZ¬�óq¯_3ñu<3)´/ÿú…ç’jaú~Þ×ìóRò·bU1iûhâåú°°‡kÇy³ïɆ5 ™j^æ�˜OÔgE —.¨mLµC n¸=6ìdq§oUœâ «†IeS�šM–4†`—nÆÕ¤ªR ,�÷è G­˜Òwç_ÔñI"�é¿êæn´¾ƒl«Ñ7s½vo?T[E_§UøêUøjÔûËzaÃLeÓõ&Ýc˜«ÖXC H¬b{ÐÓqåìMÍù÷¤`Bb¸ïÔnO;³ü¨_„ë¿«\Ö£Ë�:È+È«�W:Ⱦdd_9p€ €è ‡�Ã�CäÈr4r¤ƒ;@Ž@Žu�ÈÉÈÉž6…ìóäÀ:OÎ%È�>OóäÀ:Ot�Wˆ«+¯†úòÊ쌳7ƒÝ1û³ïÂÙÂÙ7p\8C8Ρ §=3ãƒCÇõZCoe¼”ë�†^Éx#× €¯sä99ÒAŽ Ç Ç:ȉädÄX�¯ ¯@^ë o o@Þ(:w¥ù­J>å^lâÏ=Ó^d¥ÕüÐìHû'Ÿc[°Øo©Sˆwðj˜na>6à’Žº”•Jÿ;xõ#\в“RT·ïQºÂ fˆÆÓT�Ž<è/#¸ÁZÇUò=¦Ò„p}µ‘×W-Ì7'˜_ n�Ù1Å]ù1Òoÿí?axSüŸ¸;«Áаy𺢖õ«0Z²ƒp˜”ÑüöJf„`ó‚·6q¬ª ¡mVêy“¤Ë�æ°O/ ÛÃ’Or³`ÀPp0aؤÁ‚k Ö±ƒ¡Wý™ Ák¾ê�° ´ÑUY2l:?ÜGÞÜ‚VÐͦ¶_ºð’(hV1ŠÄ¾ßj,xÚehÞRæE3U98÷_õÍ}úÎcf?}×åKÁ×¶ª,��¤NŸ‘ZªÆxfX UYA´Öm”üký °©I?ÁJP(Bؤñy£ 6Ì “Ù/ßqfÊN‰iÍÜc…i{@Zž¿~™5ù‚çõÓ{o¥†q-td¨ ´¡{ |$ËæYK£èb…æçFÄ<þ}@«è7ŸŽ�þÒÑ'>‹5³Á�O”Ïçþˆ)²Að“è' — ô,JˆõZ†ü\� ËšK»‹§Ï6±Yí³�`;“r‚íl…yBs/A Ûš`îÖØ±#ˆ¶Âí÷Äg ¡™A·Žªµßšæ- êd™úÌ‚ó÷P»„öŒMQâ®å/¦Î9‰U^%&”¡K,l¾”U„�é[ÀRî#&xKƒ:�¾oC!%Êhã¹=ÇQ—?@-»ˆÔ&8êê€Ô°Ek©-ä ¦ÂB:õ¦S%ÀJ Í :¼v÷þà°ôlßÚð{ì‡M[ôL,‰[X�/z{ɇO4�3±øü~º‰¹~J5ªµ<®ÃOcµ)ã"erk ì'±âUëFdêG¡†&m¾¸‹}gjhÒþÒÄG ñ–&5I blhÒ6›M'i©ÝÜÁ[‚oÕUœÆàµ‘D)û_ë]m}¾kÕ¦¢èq?Zjk @1"ðÊñMMz{ñF;€¬Ùh øY :v‚ú]æ}H©¥I=èû¡Ñwœ?a[x¾¶é·¡hw52À\ÂM�‰M‹0àiW1Ð0¸Öº�‚™Úü (ý¢Nß­²d¥…f�=™‰•öA†òèô”¸�i¸�Û0ÏõÛñ·8�”Ü a:Ã�ï‰ïºá-5ê}ÔBŽßx8ý r̔ċü:1Åw“g�Ûƒ`³Ø1 ÿõ�WÉÙ¡o·^‚÷â%;;êUÈ:¿èb¾öÆ|�®Š"†Žç´îu¼Zz2Go¿Àñâoö}¹½Ù+’¢Éc:ÝB)'P§ «ôŸþt÷€…·; ™³;òfÇ´a\°—²|ȵéH(1Ovúvo¼Çù g¯~î‹\yscï�õmO~|åÉ‚µ|K¯·8*6¤9ñ¯DE¿.‹7Þ,ÀãW/þ •¯ÓoR3Ã:—·þ^SĦ�îȃÞ¾[ÓÔe ¥¢RŸ”¯²­‰I ÖJ£>Éë;Ôj]…íRUVÀUΘ;Žëå´ëö \æ‹þMEÂò–õªŒc®u°÷¼ô9Pw�Ef(ƒ3žõà 4Q¯-ì cw&+� 4Ðÿž`fs¨®ë5¢¦.4Ý¥Áß› jJ�¶ôìœß<šÁ†’φU¼‰²^\Åê=ÏB(Ë…$^q›GZ={n°²qf³7‡oùü‡ÃKˆN�c¾’$® Òð j[ë~|üZµ‡LÇy/î)bHï$U( ×`¼‚ÀËtË‹ó>úJ‰cˆ¸ä‚ÅO¨�€Áœmw-^ãöãCû~Œ±À޳V›G–?ˆ-Àkù™œdšH6€«ìîì½$œÁv´Bpè¯0ôlQÒÅ\Þ.<@ŠÊ9\µ±õ™Ò&aàù)J,'XI§$³T%£CÝZ‡Eß8ä!Ò©¡0úNò“ƒCÑU¤†ºH×+ýúÀa':ûQb!ËC8ô…Åmá³?@¨í§ÖâåO—A•Üf?�Cyü'ø�* …NøLˆ¬ÊDâ¹Én 6ÞPýÖ¾9e¼R©Çnò²UÍ›÷�–ÔyÍcÇ!ªëÜ„8SPf �löèÌáwTQÚF@ˆš ö3Ê¡¨Ñ‹jöüæÊ{fýøVÔm�Åu—À0‘%ÐR„Ðc°¿ËõáÙ-°ØüMqíxp±†U–Œ ­Š*né㘼YÄl%C%åQ "ŽQ²ãgo¶…cݦŠ-MW ��s�_CQ87›Ã—lñC] ö½ÿ9Þ>äl8ev…/� ¢�þúÄýõ [!ØÓ2X´3"Ðõä’XÞàõ [�*•�??•A¦f >dk¨ŽØÚ¥‰Q�)ÌKØ,ƒØZ˜<�6s¦ÓZ»ÿÆ÷€Q‹§ÜEÍÀ±ìõèÇãaÔ*fCÚyÍ£Wž¯É¾ ¾f쫳í¢$Y.êX^8ºõê�/6Ó !‰fÐ'S4…Õãõ¦°˜¶á÷ô„ßÿјÌTó´¦Üy1 *0g™ÖGû¾|ô׳¨®äBC�wÍ5œ‰ïwØ78f¯Ë<ƒ\ì?u3Ìc_ÌcnÞü†º“%yjûµ/ök™É@\L@½Ç<�e  æ~î0ñ�@ûo:L0>ŸfÑ Ÿß™tðckð ‹­9Hø™‚ªú_o~þòùÓéÅÅ—3#ç¢ø:ôð…ßqÏ}Ñ÷é3’úý �SµDÊ›¨€å8׉Àý÷ˆÇ®kÄãþëµcûíÚ‰4SyDNœ�R †�VáNºŒï{s?�´ìï!Åf^à§…DçÁ³ð/L=¼®ƒâ”|í�‰S’­¯‹ø6Zlƒ3Ú‡b6+ãraì>ô�/èL"¤U3¹ÁCgHÝ5“6�0½ø£'üá�¸¹�å|çÎó”û½�zä‹Ê$£æ|Ñ(GÑpujçìáèGûžèGûo13O8ggÌeð¢Ø.0³RñÀ‘m²Àòœ ï]‘3%þYg.ôøú�ôÆù±ïg9þÌ%elØšùšæyI@ˆ'”i»ÍÌw<�÷-Ù°¨ÆÈir…V»t—‘ï0³a¾Ì«ºÈáfàƒau:µmpÿÐÿ�Ö j2!)Û‡˜êò9Êr¦xålÔ tUÚÔ–Uyì;ÁÁœu½Î¤M—�‰ÀV6…f³M”d³Yßcúðó Tá1É}$¢Ãeüd6¾zÒ2‡KQl‘Ò3™yVÊ*`þÀ’:TÔ*³²üM2œÅl0Ó/²Ë£‘‡Np*+á�ô&1l1?ŽLàÈÈðÆ·›§S¡p“/îTþBàÇV2œŽ—ÇPF~ˆdlÅÚ/ìïZ+Ï`ÁJão Û'fìÅÓm•¨Ô¥Šr×qÌNëù]Œ“f.¢,d²0l*ÈÁϦØ €#˜íØêZÇ今~{É΄¬±â³Ú?~ÿ×:8ãRxd‡Ò®‰þ ùWà$ì�¼aR+øã÷ÿ í ðÔm`Kˆy¹t ¸ñn)äLŽ17Œ_’.Q¹Ü±P¯œ\ÕJxH2¿ªÚáZ%xuWÒÙVɤS¶/p‚SHæÁlb0ËN’‚|SÞ_\àÑñoÖÁÆPubìÅ›P_Ø žÀ]£âÍ<^.»¹­­ô0¡5ž,_bu‚a ´ :Uu(ØQ 4iêÙlšPFA&ž)5ö¹„ËšÛ¶[©Û¾ÈKY!¯’0p�†!ö@· Ô/‘ˆA"YLY;ÀÌV Î’™5@Ê(‡—èd`ÕGú›ë'ðÂm‡h/GTR±?C¼rÔ?ÞŸæäFŠ`/¥|˜ìß°äÁ¡X £ImaW&µHî⨕§ü•šCy¨ó€«¼åsúÛ&µƒ±ë/Ÿ.À&*+Š4Öb fh C–Êû&“ÄÜZÂÉ€J½†Yž…ež;Н[&o#­¾¨"ìÍÍÝ¢c¼±4§*JËpð~mú_Eß^P[ î 0àŠäÒ†�¬7å85}AM[‰Ç1W,>àŪ¶Iœ.]3½Bãjwž "1óðoØ]@š+…Àù+bhö¾Çe¾ùͧši§ªØu3ÇS L¾_š¸ùâqáàIUÃ�# ¢àoŒÑ§_d¥uÊ.´ÜãªÌ¢}ˆ‰ÄZ¾K[¸ý¥cM$Y2–ÓªPj.+Áù�ÓSe筨輲ã]KjÊ’«Ý ñ†!^/È"¶¼ä:¤ÊI.Æœ-8 Õ[3¬f­Ã$Ù*ß )5$8톴Ñaò¦.šz7 £?š'Áh BZ<þc­ÿ¡6�ÚüñƒZ*ÇsÖ t£Q¼ï…ybŸ�G›Ó‹�7&Ëÿ–1Bè././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677040.0 pyfuse3-3.5.0/doc/html/.doctrees/__intersphinx_cache__/trio_objects.inv0000644000175000017500000001130415201072460026470 0ustar00nikrationikratio# Sphinx inventory version 2 # Project: Trio # Version: 0.32.0 # The remainder of this file is compressed using zlib. xÚµ]Ërä8vÝçW0³°#LÍx[»z¨º4®î*+ÕSK’E´H‚ €’Ò«þ GØ?×_â{ð¥|á‚9‹é)eâ¼î ÀÒ(!“nÿ®‘E_óäo‰â%W¼ÍyšKÅo*ÓÔÿâ¾Lÿ’¤åoÞë}›WJ¶²×I)'ZÃUÉrŽ\Óÿ1£œ%;`H‘!�@—+¹yQ¬ëx�•1¥w½‰«ldò•~Pò‰·÷\Ë^åüV)©°þšóÎÙ.*™h™½ÞÇ£?2ø¢Þæ²³ã˜×Lkæ&·ÿ¶ÓÉM% :6ËY]ŸØ `¢þ±2ÑDgE-ZM t¦xÍŒxæq2 ³ÕMÑ•àu̘ú™ ÈOÇraö_E#@À 2´Àݰü÷^(Ò¸%ÈZù„YÏ#ÛlÇ+V—™,¯Ë¶¾‰ÏLÔlWóÌ éÐÈÔ)˜veöT®�“ñʳž ¤—3½b =Á•†^Ð%mD®ã9Œ4¬^?4ÛESÂô£–š+ìºl a ×8 "tñ-”.â#C-ó'gƒ¨ÈVQîã‘ø¡4]îGh”ŒŽèÈ!Ž�ÆO_·+Ö¶ÎÕb†àç„…ùDKÏ"£�…Ìà_…®ØSž·E'!d»î…?r“å ÊðW“5¦�iCǹÊXQ(®ud;Ïùéhä,TÃÄá ë¢«øª¾_TŒsèK~{;›q"„.¦RBƒs…m.Ñ>fàkž¸ÑÙ®/K‚De¤Ó\=ÇuB£É¦¨ ¿•3{ìÕnŸù©:U£rÍ vÒ¡b ÆÜ!i†Üb"ŒøW˜&Raz 0G‘c ¦º "{`‹Š™/F ýϼ‘jhžNâï�5?ëˆÁç}r( p´WàXÝŽónŽÈB–Û£d1Â制àxã¦x†Œœß9CÔä¾!Xׂ3!H0>r64Sù çÅ—!½°z;p�¿ô œñ>xö}ùa?M›yÁ[?#A%ê"3L?‘V»¼cPÄX| ÆY&jË´tKÝ0ìwfªÀ@‹Þ°�–5d`xä@m^¹y?:'@:뤯¤šòª‘ ñB+_(o_ ]ᯠ5šT í@izí¢Ø`Øc-w4€’}GBTLáŽìSf$ 'šÔ@¸%m€Ûað”üYädlŒ„BQ!¥(%S“›ÖȾ5Tи o$jWQ7­ H¨}ƒ"Iƒ®¨ö¬ò:o1ƒA5Ý(ÅèW�Þ™„h˜Éi]iž¨#Ö²†j-¡`KªC¾´D3éü3±]¤é(2FqVd»½á4Ÿaa¸×DF‘•'Ö2ÀwŒèïj–S1à7ž‰²ïT U””T©Ó0^dƒO6Úð†Ú°¾,]tFqªBxûN•6#{¢�ë[²*¼Sed©¶¨aÔ‰¨qàÃq ¼]„Eq8’IÁ��²¨P2÷»úá¥o˜z¤ °'qò\ë$¦EDM�¤×¤¸éU›Ë‚GThWøZ<¶Œ\¯6W*¦NSˆ6'ãp²7@ˆôÑ2Â:ÂÏl˜`îûö³h…®xA?¤Þn¿~…5"oO%ŽT7Cܰ« mèI9°™#�b­î¤2Y=kxàÄÑÖ@àÑ„wÖ•§7ØãbŽA'ô°!ª kØ mu“…„ 9 ²‡‹:ÄàÓ0ÏŽ^9 6´=kÄce²V·¸¦ã ë*©ÂsêFýÐåJÞóœöš=³ºç” ¼ N>ˆ™ 1»¬šÞf»â¦ZŸˆj€Þ‚I*½“O\žf}f�¨Özè#7Ø\I©5FhN@¶C`~2 íxUÏWMò•ì˜a]Í šÜÌ1TÁY`£¦þ8Ù�,hÈ"tˆ¦ÈÐ!zeû¯$ JäæóÝço¤D‚‡÷Ûÿ̶ï~Ýfw?ýòíþöélê�i{âÞ‡Ÿ–Ow8DÉ'x�r[Ëz,ûÿùÄ;�8†Å0ÕŠö‘Lq‡×`9CoÀÑòEV¡?d_®–â»Î/¾0ýYÔ¼•�UÅÞ”#Eˆ Î9@(¿©¸Âú¨ l—»KCŠm`pD ‡xZ&¥EÔ•7y¯Ü‘¬hAÙ„î!dFfºæ¼‹fr§´ùƒsþ…Õ¥M†Æ„w’#:�&ÛcË#µÁÝ®{·Åz"`14 ôxŒŠ0µS´'ÂhdøwÙ] Î¥oNæÕ�1¬ù3¯ÏBoX f+2;³ð 0©¾½ f"àvc·ŠkÇKÍ«tÎS­í�§¹N÷, §Ý$�GçÇ‹{× êØKCD\ÔÍ!Ä%BC’ò€ÔTíÙ(.pQQ6²\ÌS»„"¥˜Xrg'9Œ¿Jm9í:í3Ë�<•åuÚ^/À7gÎ��FÑ8˜œœ—}]Û&—}›_Îdc:Ó¬ä˜]2ÈÉQàß?„.¼,y~p)’Ê2„-¡¸’‰:³N„Ž2$ˆ’Mf*<Ž&߉žaoÀîæOY>¿ÃÑ„ï™"¡Æü`ÅOt}iäßvüöýN*Zô²„Þ|~÷Õ-K fXÁö×�oo?Er|>kÕ.¡¿3õZþUšµø›´â)«%1È9N…—&³ÝþôšŒÀÖÁ?×·Iñkòœñ$®‹ÛÞ®¾½NÿÏUúwé®Ã%¦û¾½Å?˜ŠÃ>øTæ8¤Ï§nm¢²à:^›l‡œ„U,J®¥èµ»ï6¬µ[ÇÇñBSÏêÌ'�·Sþû VÌt̘ ÚJ«ãX³dC¦ËŠö\­sð××HÁà£Ã>—;‰í ïg©¶ í5ÿ¶ûÍße<êÿ/q±¢ÈÄb7"š¦s]Yf�Ú™8îßp«Â¾¨�¯Œ`¤5^�£¼&E&Ê€¸ï"Ÿ”ǺU,BæÝj’§ß{ÞóÕ4˜}8ÞIYÅ´ôÕ«¨®ÒüÔ=N±–ªÞgO"ë”4 À+¤¨Ú¾K2‘ù(¢Øx{E2Ѻñ:·Â åX5{�l¬Ý³\6]Íž=ñýjº'þ¼Æjú'0p©ï�­¢h0‹=ë¦ìÆ(’Ž«†µN, nX^eµôO"ä:'ƒKU0š2“Ï\Õã“^±\ƶÎ5}Ãõšùˆ[’*³¹¯«Ì©â ôõžÕ3]Ó¹*>ìGSØ}bd0­x�fº3ªÇžk³ÊL8·-2WQLÐ¥N*¦Ä?Ald¼ÒjXŽ+h’åÁáBƒ¿ŽÅžLbµ²M˜ ¾®M6—<~ˆ¬Æ�‹ ïEŽ@Òv¤µßÃÅ‹°=^ iì­é˜}^ Ÿ-ŠH8—ú�ù# El´Öµ�™Ìäݘϫ×�Ly:†5µGWÚ·âuví0 IÜÆæ¥Xà {�2f<p>T, ‚»”ÑpÛ%xpûLÓdì[#HŠ5;:ÜYºóvOÝ�ü!Óþ M‹9ÀQ_6:$(8Ϫ7…÷¾ýòëCöãž�àsHhïçN.&®UxþG¹˜æìA‰6E-vd­›Q”ELWLq2òMŠ ;ÏH¡bq½'wûa×�·�¹ÊÊ'Êdj–¶s”ìøQé!£û$+§³Ûº¸ùwÿ×1Aps¾'ŒÀ¢•o-ÁðåÏx]š–ðôêŽEAõ´¹•{�cþNϹ72Íù@:Ý?� tA>E�þÖ®7ãÞÿUš‰„§³òè|y-ëH¯0¤—2ZhëÅpÆumª«Ž–}`s¥ôa;qŠHz!Û(’íºÃ“ÒtÍ*ÖõÎ$F‚oXoäo}ÓÙ ]ÉsϦ‡r"_Üð�Ê_Ü�iÈ=šëŸ†Gލc3ƒ_ÃwÏéÖøï-ÿ½ÇbQ±H¦l+2ûòÓMv;\v¸óê5ùð>C 6ü¿“ ¬kè¥ÊjfN¾þ²‚ÚìN^¢\Ãê’׿=ëó<1sI…~—6Š"„ó#“Öï6Œ'²zQ+¯Àåòí#úùpÿáÒNQ£lyöÂö× 2/r=ÚJL�÷,cûή“h”+¨ü¶èõÚ¶$¼‘÷WDnÔÑà-!·@ž¿ŽAêNYá›OÉs ÞP*��:0à°�Yº`ãÌæ{(™5z8º¥ÊØTß9þ¼d}=3ÕÓ﯄nNœ1©»øºBøIÛ�ˆ€ÉM�¤¤¬‰6Å»šíx�¤ÇaO`â—Iï¿ßm¶Õÿª’¼Lsð«Nî¬0¹ûë·%UŠÇÏ‚¿p~¿K†Òsw&§#•x¨g{DíA¡?É5Ÿ“_$¾qãoÁÉölšµÅ‹È«%—�ÈW 6;rb'Zeqøž ÂÁŸh¦öþç®àÓ”üÜ•Çå ÇÅrŠB“Öb‡§™Üuª�9ò/aÙ“÷֒¯Ãw«Ï _)þÈBÛw)e¨’!c•n|¶ºÄ´S¨8 �³ÿ�${Ã7ax{e€'€ØÏõÈoKŰâmÙƒ,øó´Ô½ì�;ytÆÂ¢M<ÃDÕtMÂò3kÙ#’4`eŽ-YEŸã™ ´ñ¯`ŽÇorèußÀ7c-ÃÆ}P÷q“�Íš�_mêʈÀgÓ0¨·Q¢NvܼpÞ&Ö#l¦+U}°à̲�ŽMÅ7¹ÌSLàŰä¶að)ü�¿Õo|+•%–…Á6#Õ…‰¡–•·öffv jÆy;“[´Œe¯LÅÕœ9ˆð³Ã͉-Ÿ´là4›¾f>ˆ©"¬™ß,çÇ ŽÀ£-÷KÅÛM„©p\+Ô>+ o %ÚûV%F(J:¿rÀ9kÔV/pa¼ÇSøy+Ý'®}ŸÜ·ˆþi½Ÿ°«º ]²ï!h´h“ÕÁìz¯ÎàñD[ð×%Õð©kÊþs3x¯yƒ-ùÉÿµ,:‘.Üß_fÅ1q(mp*Otèmއ3Xþñ¿š ôÏ?þ‡OÚí�ƒG0²CÙ°Z”¸|�ZÊNû ¡h*PyQßÎúœ·Õß (lÅÔ„´7ÙË^%%{–˜¿2«uƒï‰Õ˜þ5Nb:‹4¡©‡:)Áf”s¿Âí¤o*ñX¥¶åi F\Úô³Ë!–;µµÞ*™pÀ¦íÙÝlþýGnúïýVþÃÍ$W¾ôL¤pŠÞ%,)!*�¾í“ï{SÁ¸(fo{ãB2Ð1¹ç{Û >§”<Ú´M™| [µr» y»þñ1(N˜ÁÒ vwŒlƒ@ã¼�ÂÊ¢ð‹æãï‘"AĦÆzÆÜµEA–eh—ñ§�!È”ŒLCØ<º÷éP ë$A¦�؆nŸ_¸¹üÙ­Çœ•èì/ìs××uªpëQ}¹ãß`‚Àdnæ4Ö 0 Ç#×!ÖÉX²�XP|’ù$jK�Ò†™P¿à „,‰üóoik—#¹M³Å—Lî7,.2ü¨˜±q^oÐ5°äûý’Ç„ÍÚƒ›£I$.ÈŠWó…È,•ln0ލŸµþñ?:±…‡õ3«!ÂÙÌ�ÙqoäЊ`¿‘ls¨=DZ ÝB…WRwÜÅ–h™ø«áNÛ¬²áø"§qs°Íq¼¢ùˆa»š` ?0ë|ÙDí‹nœ0úýØ�ÆüWü nfPæÈ…vNXÍ™z»2vŸ¹ú¶îûï xmßÀŠp}xèø¾X'#rVÛ5ü; ZøÚ•Ç``Üñ¶(z3=~à15ÚŽÊâs†TZæ¦o¾ :4›Þ|Žõ÷^š ý_®à;;@ 8Œ;’Öb„ zýÔʗͰ· þ;xE½!ƒTûÕ>Ο,ׂø_P ˜„g&:¤Ž‡•xÔÆýrN V'57¶¿…œB»�˜Å@ä—£SŒÔ¥ùݳ“U¼ÙutÎ�¿Ï¾ŒõX�ÛmÇMhûÀB`³°èb›Ãï«�œ/ú¯¢´c×@ßþmƒL)P¦öúZÑÐ ±›š™¿b«Ãâ»a5Bìja­Eö׿Æl±ç–<ø¿Æ¢)Ï+à¬Ål5iÓn‰µ©¬* û¾M“8ÌŒÈ�S+ÏøËõJ7b jÃÚ`¯Xkp¹]…‹ºîqÇ ÀæY(¼<ý)& „Êç?vøÛyÍ@MzOúï.†�n Ñë•Þ`=0òN˜S»!¸c7,i¥–]‹„¾úÝ »pŽ<ñš²ùË�š§././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677271.0 pyfuse3-3.5.0/doc/html/.doctrees/about.doctree0000644000175000017500000002552715201073027021467 0ustar00nikrationikratio€•L+Œdocutils.nodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”hŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒAbout”h]”hŒText”“”ŒAbout”…”�”}”(Œparent”hŒ _document”hŒsource”NŒline”NubaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”uŒtagname”hhh hhhŒ0/home/nikratio/in-progress/pyfuse3/rst/about.rst”hKubhŒ paragraph”“”)�”}”(hŒÇpyfuse3 is a set of Python 3 bindings for `libfuse 3`_. It provides an asynchronous API compatible with Trio_ and asyncio_, and enables you to easily write a full-featured Linux filesystem in Python.”h]”(hŒ*pyfuse3 is a set of Python 3 bindings for ”…”�”}”(hh,hhhNhNubhŒ reference”“”)�”}”(hŒ `libfuse 3`_”h]”hŒ libfuse 3”…”�”}”(hh6hhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”Œ libfuse 3”Œrefuri”Œ!http://github.com/libfuse/libfuse”uh(h4hh,Œresolved”ˆubhŒ2. It provides an asynchronous API compatible with ”…”�”}”(hh,hhhNhNubh5)�”}”(hŒTrio_”h]”hŒTrio”…”�”}”(hhLhhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”ŒTrio”hEŒ#https://github.com/python-trio/trio”uh(h4hh,hGˆubhŒ and ”…”�”}”(hh,hhhNhNubh5)�”}”(hŒasyncio_”h]”hŒasyncio”…”�”}”(hh`hhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”Œasyncio”hEŒ.https://docs.python.org/3/library/asyncio.html”uh(h4hh,hGˆubhŒM, and enables you to easily write a full-featured Linux filesystem in Python.”…”�”}”(hh,hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hŒ README.rst”hKhh hhubh+)�”}”(hŒ¢pyfuse3 releases can be downloaded from PyPi_. The documentation can be `read online`__ and is also included in the ``doc/html`` directory of the pyfuse3 tarball.”h]”(hŒ(pyfuse3 releases can be downloaded from ”…”�”}”(hhzhhhNhNubh5)�”}”(hŒPyPi_”h]”hŒPyPi”…”�”}”(hh‚hhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”ŒPyPi”hEŒ%https://pypi.python.org/pypi/pyfuse3/”uh(h4hhzhGˆubhŒ. The documentation can be ”…”�”}”(hhzhhhNhNubh5)�”}”(hŒ`read online`__”h]”hŒ read online”…”�”}”(hh–hhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”Œ read online”Œ anonymous”ˆhEŒhttps://pyfuse3.readthedocs.io/”uh(h4hhzhGˆubhŒ and is also included in the ”…”�”}”(hhzhhhNhNubhŒliteral”“”)�”}”(hŒ ``doc/html``”h]”hŒdoc/html”…”�”}”(hh­hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h«hhzubhŒ" directory of the pyfuse3 tarball.”…”�”}”(hhzhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hhyhKhh hhubh )�”}”(hhh]”(h)�”}”(hŒ Getting Help”h]”hŒ Getting Help”…”�”}”(hhÆhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhhÃhhhhyhK ubh+)�”}”(hŒÄPlease report any bugs on the `issue tracker`_. For discussion and questions, please use the general `FUSE mailing list`_ or `GitHub Discussions `_.”h]”(hŒPlease report any bugs on the ”…”�”}”(hhÓhhhNhNubh5)�”}”(hŒ`issue tracker`_”h]”hŒ issue tracker”…”�”}”(hhÛhhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”Œ issue tracker”hEŒ)https://github.com/libfuse/pyfuse3/issues”uh(h4hhÓhGˆubhŒ7. For discussion and questions, please use the general ”…”�”}”(hhÓhhhNhNubh5)�”}”(hŒ`FUSE mailing list`_”h]”hŒFUSE mailing list”…”�”}”(hhïhhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”ŒFUSE mailing list”hEŒ7https://lists.sourceforge.net/lists/listinfo/fuse-devel”uh(h4hhÓhGˆubhŒ or ”…”�”}”(hhÓhhhNhNubh5)�”}”(hŒF`GitHub Discussions `_”h]”hŒGitHub Discussions”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”ŒGitHub Discussions”hEŒ.https://github.com/libfuse/pyfuse3/discussions”uh(h4hhÓubhŒtarget”“”)�”}”(hŒ1 ”h]”h}”(h ]”Œgithub-discussions”ah"]”h$]”Œgithub discussions”ah&]”Œrefuri”juh(jŒ referenced”KhhÓubhŒ.”…”�”}”(hhÓhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hhyhKhhÃhhubeh}”(h ]”Œ getting-help”ah"]”h$]”Œ getting help”ah&]”uh(h hh hhhhyhK ubh )�”}”(hhh]”(h)�”}”(hŒDevelopment Status”h]”hŒDevelopment Status”…”�”}”(hj5hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhj2hhhhyhKubh+)�”}”(hX/pyfuse3 is stable when used with Trio. The current maintainers ensure that bugs are addressed and pyfuse3 continues to work with new Python and libfuse versions. There is no plan to add new features or other non-bugfix work. However, pull requests for new features or other improvements may be accepted.”h]”hX/pyfuse3 is stable when used with Trio. The current maintainers ensure that bugs are addressed and pyfuse3 continues to work with new Python and libfuse versions. There is no plan to add new features or other non-bugfix work. However, pull requests for new features or other improvements may be accepted.”…”�”}”(hjBhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hhyhKhj2hhubh+)�”}”(hŒ‰Using pyfuse3 with asyncio (rather than Trio) support is less well tested, there may be bugs, and some of them may not be easily fixable.”h]”hŒ‰Using pyfuse3 with asyncio (rather than Trio) support is less well tested, there may be bugs, and some of them may not be easily fixable.”…”�”}”(hjOhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hhyhKhj2hhubh+)�”}”(hŒ‚If you need a synchronous (non async) implementation, `mfusepy `_ is a maintained alternative.”h]”(hŒ6If you need a synchronous (non async) implementation, ”…”�”}”(hj\hhhNhNubh5)�”}”(hŒ/`mfusepy `_”h]”hŒmfusepy”…”�”}”(hjdhhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”Œmfusepy”hEŒ"https://github.com/mxmlnkn/mfusepy”uh(h4hj\ubj)�”}”(hŒ% ”h]”h}”(h ]”Œmfusepy”ah"]”h$]”Œmfusepy”ah&]”Œrefuri”jsuh(jj!Khj\ubhŒ is a maintained alternative.”…”�”}”(hj\hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hhyhKhj2hhubeh}”(h ]”Œdevelopment-status”ah"]”h$]”Œdevelopment status”ah&]”uh(h hh hhhhyhKubh )�”}”(hhh]”(h)�”}”(hŒ Contributing”h]”hŒ Contributing”…”�”}”(hj“hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhj�hhhhyhK#ubh+)�”}”(hŒ0The pyfuse3 source code is available on GitHub_.”h]”(hŒ(The pyfuse3 source code is available on ”…”�”}”(hj hhhNhNubh5)�”}”(hŒGitHub_”h]”hŒGitHub”…”�”}”(hj¨hhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”ŒGitHub”hEŒ"https://github.com/libfuse/pyfuse3”uh(h4hj hGˆubhŒ.”…”�”}”(hj hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hhyhK%hj�hhubj)�”}”(hŒ&.. __: https://pyfuse3.readthedocs.io/”h]”h}”(h ]”Œid1”ah"]”h$]”h&]”hEh¦h¥ˆuh(jhK/hj�hhhhyj!ˆubj)�”}”(hŒ2.. _`libfuse 3`: http://github.com/libfuse/libfuse”h]”h}”(h ]”Œ libfuse-3”ah"]”h$]”Œ libfuse 3”ah&]”hEhFuh(jhK0hj�hhhhyj!ˆubj)�”}”(hŒN.. _FUSE mailing list: https://lists.sourceforge.net/lists/listinfo/fuse-devel”h]”h}”(h ]”Œfuse-mailing-list”ah"]”h$]”Œfuse mailing list”ah&]”hEhþuh(jhK1hj�hhhhyj!ˆubj)�”}”(hŒ<.. _issue tracker: https://github.com/libfuse/pyfuse3/issues”h]”h}”(h ]”Œ issue-tracker”ah"]”h$]”Œ issue tracker”ah&]”hEhêuh(jhK2hj�hhhhyj!ˆubj)�”}”(hŒQ.. _mailing list archive: http://dir.gmane.org/gmane.comp.file-systems.fuse.devel”h]”h}”(h ]”Œmailing-list-archive”ah"]”h$]”Œmailing list archive”ah&]”hEŒ7http://dir.gmane.org/gmane.comp.file-systems.fuse.devel”uh(jhK3hj�hhhhyubj)�”}”(hŒ .. _Gmane: http://www.gmane.org/”h]”h}”(h ]”Œgmane”ah"]”h$]”Œgmane”ah&]”hEŒhttp://www.gmane.org/”uh(jhK4hj�hhhhyubj)�”}”(hŒ/.. _PyPi: https://pypi.python.org/pypi/pyfuse3/”h]”h}”(h ]”Œpypi”ah"]”h$]”Œpypi”ah&]”hEh‘uh(jhK5hj�hhhhyj!ˆubj)�”}”(hŒ... _GitHub: https://github.com/libfuse/pyfuse3”h]”h}”(h ]”Œgithub”ah"]”h$]”Œgithub”ah&]”hEj·uh(jhK6hj�hhhhyj!ˆubj)�”}”(hŒ-.. _Trio: https://github.com/python-trio/trio”h]”h}”(h ]”Œtrio”ah"]”h$]”Œtrio”ah&]”hEh[uh(jhK7hj�hhhhyj!ˆubj)�”}”(hŒ;.. _asyncio: https://docs.python.org/3/library/asyncio.html”h]”h}”(h ]”Œasyncio”ah"]”h$]”Œasyncio”ah&]”hEhouh(jhK8hj�hhhhyj!ˆubeh}”(h ]”Œ contributing”ah"]”h$]”Œ contributing”ah&]”uh(h hh hhhhyhK#ubeh}”(h ]”Œabout”ah"]”h$]”Œabout”ah&]”uh(h hhhhhh)hKubah}”(h ]”h"]”h$]”h&]”Œsource”h)Œtranslation_progress”}”(Œtotal”KŒ translated”Kuuh(hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(Œ output_path”NhNŒ generator”NŒ datestamp”NŒ root_prefix”hŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”ˆŒ sectnum_xform”ˆŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œutf-8”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jfŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h)Œ _destination”NŒ _config_files”]”Œdoctitle_xform”‰Œ docinfo_xform”ˆŒsectsubtitle_xform”‰Œfile_insertion_enabled”ˆŒ raw_enabled”ˆŒline_length_limit”M'Œvalidate”NŒpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”(Œ libfuse 3”]”h6aŒtrio”]”hLaŒasyncio”]”h`aŒpypi”]”h‚aŒ issue tracker”]”hÛaŒfuse mailing list”]”hïaŒgithub”]”j¨auŒrefids”}”Œnameids”}”(j<j9j0j-jjjŽj‹j}jzj5j2jÔjÑjßjÜjêjçjõjòjjþj j jjj#j j.j+uŒ nametypes”}”(j<‰j0‰j‰jމj}‰j5‰jÔˆj߈jêˆjõˆjˆj ˆjˆj#ˆj.ˆuh }”(j9h j-hÃjjj‹j2jzjtj2j�jÇjÁjÑjËjÜjÖjçjájòjìjþjøj jjjj jj+j%uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”jtKs…”R”Œparse_messages”]”Œtransform_messages”]”(hŒsystem_message”“”)�”}”(hhh]”h+)�”}”(hhh]”hŒ:Hyperlink target "mailing list archive" is not referenced.”…”�”}”hjÝsbah}”(h ]”h"]”h$]”h&]”uh(h*hjÚubah}”(h ]”h"]”h$]”h&]”Œbackrefs”]”Œlevel”KŒtype”ŒINFO”Œsource”hyŒline”K3uh(jØubjÙ)�”}”(hhh]”h+)�”}”(hhh]”hŒ+Hyperlink target "gmane" is not referenced.”…”�”}”hjøsbah}”(h ]”h"]”h$]”h&]”uh(h*hjõubah}”(h ]”h"]”h$]”h&]”jî]”Œlevel”KŒtype”jòŒsource”hyŒline”K4uh(jØubeŒ transformer”NŒ include_log”]”Œ rst/about.rst”(NNhht”†”aŒ decoration”Nhhub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677271.0 pyfuse3-3.5.0/doc/html/.doctrees/asyncio.doctree0000644000175000017500000001167015201073027022014 0ustar00nikrationikratio€•­Œdocutils.nodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œsphinx.addnodes”Œindex”“”)�”}”(hhh]”Œ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œentries”]”(Œpair”Œmodule; pyfuse3.asyncio”Œmodule-pyfuse3.asyncio”hNt”auŒtagname”h Œparent”hŒ _document”hŒsource”NŒline”NubhŒtarget”“”)�”}”(hŒ .. _asyncio:”h]”h}”(h]”h]”h]”h]”Œrefid”Œasyncio”uhh$h#Kh hh!hh"Œ2/home/nikratio/in-progress/pyfuse3/rst/asyncio.rst”ubh%)�”}”(hhh]”h}”(h]”h]”h]”h]”Œismod”ˆh/huhh$h"h1h#Kh hh!hŒexpect_referenced_by_name”}”Œasyncio”h&sŒexpect_referenced_by_id”}”h0h&subhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒasyncio Support”h]”hŒText”“”Œasyncio Support”…”�”}”(h hGh!hh"Nh#Nubah}”(h]”h]”h]”h]”uhhEh hBh!hh"h1h#KubhŒ paragraph”“”)�”}”(hŒÿBy default, pyfuse3 uses asynchronous I/O using Trio_ (and most of the documentation assumes that you are using Trio). If you'd rather use asyncio, import the *pyfuse3.asyncio* module and call its *enable()* function before using *pyfuse3*. For example::”h]”(hLŒ0By default, pyfuse3 uses asynchronous I/O using ”…”�”}”(h hXh!hh"Nh#NubhŒ reference”“”)�”}”(hŒTrio_”h]”hLŒTrio”…”�”}”(h hbh!hh"Nh#Nubah}”(h]”h]”h]”h]”Œname”ŒTrio”Œrefuri”Œ#https://github.com/python-trio/trio”uhh`h hXŒresolved”ˆubhLŒl (and most of the documentation assumes that you are using Trio). If you’d rather use asyncio, import the ”…”�”}”(h hXh!hh"Nh#NubhŒemphasis”“”)�”}”(hŒ*pyfuse3.asyncio*”h]”hLŒpyfuse3.asyncio”…”�”}”(h hzh!hh"Nh#Nubah}”(h]”h]”h]”h]”uhhxh hXubhLŒ module and call its ”…”�”}”(h hXh!hh"Nh#Nubhy)�”}”(hŒ *enable()*”h]”hLŒenable()”…”�”}”(h h‹h!hh"Nh#Nubah}”(h]”h]”h]”h]”uhhxh hXubhLŒ function before using ”…”�”}”(h hXh!hh"Nh#Nubhy)�”}”(hŒ *pyfuse3*”h]”hLŒpyfuse3”…”�”}”(h hœh!hh"Nh#Nubah}”(h]”h]”h]”h]”uhhxh hXubhLŒ. For example:”…”�”}”(h hXh!hh"Nh#Nubeh}”(h]”h]”h]”h]”uhhVh"h1h#K h hBh!hubhŒ literal_block”“”)�”}”(hŒeimport pyfuse3 import pyfuse3.asyncio pyfuse3.asyncio.enable() # Use pyfuse3 as usual from here on.”h]”hLŒeimport pyfuse3 import pyfuse3.asyncio pyfuse3.asyncio.enable() # Use pyfuse3 as usual from here on.”…”�”}”h h´sbah}”(h]”h]”h]”h]”Œ xml:space”Œpreserve”uhh²h"h1h#Kh hBh!hubh%)�”}”(hŒ-.. _Trio: https://github.com/python-trio/trio”h]”h}”(h]”Œtrio”ah]”h]”Œtrio”ah]”hqhruhh$h#Kh hBh!hh"h1Œ referenced”ˆubeh}”(h]”(Œasyncio-support”hh0eh]”h]”(Œasyncio support”h=eh]”uhh@h hh!hh"h1h#Kh;}”h=h&sh>}”(hh2h0h&uubeh}”(h]”h]”h]”h]”Œsource”h1Œtranslation_progress”}”(Œtotal”KŒ translated”KuuhhŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(Œ output_path”NhENŒ generator”NŒ datestamp”NŒ root_prefix”hŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”ˆŒ sectnum_xform”ˆŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œutf-8”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h1Œ _destination”NŒ _config_files”]”Œdoctitle_xform”‰Œ docinfo_xform”ˆŒsectsubtitle_xform”‰Œfile_insertion_enabled”ˆŒ raw_enabled”ˆŒline_length_limit”M'Œvalidate”NŒpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œtrio”]”hbasŒrefids”}”(h0]”h&ah]”h2auŒnameids”}”(h=h0hÔhÑhÌhÉuŒ nametypes”}”(h=ˆhÔ‰ḧuh}”(h0hBhhBhÑhBhÉhÃuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”(hŒsystem_message”“”)�”}”(hhh]”hW)�”}”(hhh]”hLŒ-Hyperlink target "asyncio" is not referenced.”…”�”}”h jmsbah}”(h]”h]”h]”h]”uhhVh jjubah}”(h]”h]”h]”h]”Œbackrefs”]”Œlevel”KŒtype”ŒINFO”Œsource”h1Œline”Kuhjhubji)�”}”(hhh]”hW)�”}”(hhh]”hLŒCI: also test python 3.12. test on cython 0.29 and cython 3.0.”h]”hŒ>CI: also test python 3.12. test on cython 0.29 and cython 3.0.”…”�”}”(hjƒhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKPhjubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKPhj:hhubh@)�”}”(hŒ6Tell Cython that callbacks may raise exceptions, #80. ”h]”hF)�”}”(hŒ5Tell Cython that callbacks may raise exceptions, #80.”h]”hŒ5Tell Cython that callbacks may raise exceptions, #80.”…”�”}”(hj™hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKRhj•ubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKRhj:hhubh@)�”}”(hŒ1Fix lookup in examples/hello.py, similar to #16. ”h]”hF)�”}”(hŒ0Fix lookup in examples/hello.py, similar to #16.”h]”hŒ0Fix lookup in examples/hello.py, similar to #16.”…”�”}”(hj¯hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKThj«ubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKThj:hhubh@)�”}”(hŒ7Misc. CI, testing, build and sphinx related fixes. ”h]”hF)�”}”(hŒ2Misc. CI, testing, build and sphinx related fixes.”h]”hŒ2Misc. CI, testing, build and sphinx related fixes.”…”�”}”(hjÅhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKVhjÁubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKVhj:hhubeh}”(h ]”h"]”h$]”h&]”jzj{uh(h:hh)hKIhj*hhubeh}”(h ]”Œrelease-3-3-0-2023-08-06”ah"]”h$]”Œrelease 3.3.0 (2023-08-06)”ah&]”uh(h hh hhhh)hKGubh )�”}”(hhh]”(h)�”}”(hŒRelease 3.2.3 (2023-05-09)”h]”hŒRelease 3.2.3 (2023-05-09)”…”�”}”(hjæhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhjãhhhh)hK]ubh;)�”}”(hhh]”(h@)�”}”(hŒBcythonize with latest Cython 0.29.34 (brings Python 3.12 support) ”h]”hF)�”}”(hŒAcythonize with latest Cython 0.29.34 (brings Python 3.12 support)”h]”hŒAcythonize with latest Cython 0.29.34 (brings Python 3.12 support)”…”�”}”(hjúhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hK_hjöubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hK_hjóhhubh@)�”}”(hŒ1add a minimal pyproject.toml, require setuptools ”h]”hF)�”}”(hŒ0add a minimal pyproject.toml, require setuptools”h]”hŒ0add a minimal pyproject.toml, require setuptools”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKahj ubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKahjóhhubh@)�”}”(hŒ8tests: fix integer overflow on 32-bit arches, fixes #47 ”h]”hF)�”}”(hŒ7tests: fix integer overflow on 32-bit arches, fixes #47”h]”hŒ7tests: fix integer overflow on 32-bit arches, fixes #47”…”�”}”(hj&hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKchj"ubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKchjóhhubh@)�”}”(hŒ>test: Use shutil.which() instead of external which(1) program ”h]”hF)�”}”(hŒ=test: Use shutil.which() instead of external which(1) program”h]”hŒ=test: Use shutil.which() instead of external which(1) program”…”�”}”(hj<hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKehj8ubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKehjóhhubh@)�”}”(hŒFsetup.py: catch more generic OSError when searching Cython, fixes #63 ”h]”hF)�”}”(hŒEsetup.py: catch more generic OSError when searching Cython, fixes #63”h]”hŒEsetup.py: catch more generic OSError when searching Cython, fixes #63”…”�”}”(hjRhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKghjNubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKghjóhhubh@)�”}”(hŒ!setup.py: require Cython >= 0.29 ”h]”hF)�”}”(hŒ setup.py: require Cython >= 0.29”h]”hŒ setup.py: require Cython >= 0.29”…”�”}”(hjhhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKihjdubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKihjóhhubh@)�”}”(hŒ;fix basedir computation in setup.py (fix pip install -e .) ”h]”hF)�”}”(hŒ:fix basedir computation in setup.py (fix pip install -e .)”h]”hŒ:fix basedir computation in setup.py (fix pip install -e .)”…”�”}”(hj~hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKkhjzubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKkhjóhhubh@)�”}”(hŒHuse sphinx < 6.0 due to compatibility issues with more recent versions ”h]”hF)�”}”(hŒFuse sphinx < 6.0 due to compatibility issues with more recent versions”h]”hŒFuse sphinx < 6.0 due to compatibility issues with more recent versions”…”�”}”(hj”hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKmhj�ubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKmhjóhhubeh}”(h ]”h"]”h$]”h&]”jzj{uh(h:hh)hK_hjãhhubeh}”(h ]”Œrelease-3-2-3-2023-05-09”ah"]”h$]”Œrelease 3.2.3 (2023-05-09)”ah&]”uh(h hh hhhh)hK]ubh )�”}”(hhh]”(h)�”}”(hŒRelease 3.2.2 (2022-09-28)”h]”hŒRelease 3.2.2 (2022-09-28)”…”�”}”(hjµhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhj²hhhh)hKqubh;)�”}”(hhh]”(h@)�”}”(hŒFremove support for python 3.5 (broken, out of support by python devs) ”h]”hF)�”}”(hŒEremove support for python 3.5 (broken, out of support by python devs)”h]”hŒEremove support for python 3.5 (broken, out of support by python devs)”…”�”}”(hjÉhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKshjÅubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKshjÂhhubh@)�”}”(hŒAcythonize with latest Cython 0.29.x (brings Python 3.11 support) ”h]”hF)�”}”(hŒ@cythonize with latest Cython 0.29.x (brings Python 3.11 support)”h]”hŒ@cythonize with latest Cython 0.29.x (brings Python 3.11 support)”…”�”}”(hjßhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKuhjÛubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKuhjÂhhubh@)�”}”(hŒ,use github actions for CI, remove travis-ci ”h]”hF)�”}”(hŒ+use github actions for CI, remove travis-ci”h]”hŒ+use github actions for CI, remove travis-ci”…”�”}”(hjõhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKwhjñubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKwhjÂhhubh@)�”}”(hŒ2update README: minimal maintenance, not developed ”h]”hF)�”}”(hŒ1update README: minimal maintenance, not developed”h]”hŒ1update README: minimal maintenance, not developed”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKyhjubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKyhjÂhhubh@)�”}”(hŒ,update setup.py with tested python versions ”h]”hF)�”}”(hŒ+update setup.py with tested python versions”h]”hŒ+update setup.py with tested python versions”…”�”}”(hj!hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hK{hjubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hK{hjÂhhubh@)�”}”(hŒ—examples/tmpfs.py: work around strange kernel behaviour (calling SETATTR after UNLINK of a (not open) file): respond with ENOENT instead of crashing. ”h]”hF)�”}”(hŒ•examples/tmpfs.py: work around strange kernel behaviour (calling SETATTR after UNLINK of a (not open) file): respond with ENOENT instead of crashing.”h]”hŒ•examples/tmpfs.py: work around strange kernel behaviour (calling SETATTR after UNLINK of a (not open) file): respond with ENOENT instead of crashing.”…”�”}”(hj7hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hK}hj3ubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hK}hjÂhhubeh}”(h ]”h"]”h$]”h&]”jzj{uh(h:hh)hKshj²hhubeh}”(h ]”Œrelease-3-2-2-2022-09-28”ah"]”h$]”Œrelease 3.2.2 (2022-09-28)”ah&]”uh(h hh hhhh)hKqubh )�”}”(hhh]”(h)�”}”(hŒRelease 3.2.1 (2021-09-17)”h]”hŒRelease 3.2.1 (2021-09-17)”…”�”}”(hjXhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhjUhhhh)hK‚ubh;)�”}”(hhh]”(h@)�”}”(hŒAdd type annotations ”h]”hF)�”}”(hŒAdd type annotations”h]”hŒAdd type annotations”…”�”}”(hjlhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hK„hjhubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hK„hjehhubh@)�”}”(hŒPPassing a XATTR_CREATE or XATTR_REPLACE to `setxattr` is now working correctly. ”h]”hF)�”}”(hŒOPassing a XATTR_CREATE or XATTR_REPLACE to `setxattr` is now working correctly.”h]”(hŒ+Passing a XATTR_CREATE or XATTR_REPLACE to ”…”�”}”(hj‚hhhNhNubhQ)�”}”(hŒ `setxattr`”h]”hW)�”}”(hjŒh]”hŒsetxattr”…”�”}”(hjŽhhhNhNubah}”(h ]”h"]”(hbŒpy”Œpy-obj”eh$]”h&]”uh(hVhjŠubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hmŒ refdomain”j˜Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰hshthuNhvŒsetxattr”uh(hPhh)hK†hj‚ubhŒ is now working correctly.”…”�”}”(hj‚hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hEhh)hK†hj~ubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hK†hjehhubeh}”(h ]”h"]”h$]”h&]”jzj{uh(h:hh)hK„hjUhhubeh}”(h ]”Œrelease-3-2-1-2021-09-17”ah"]”h$]”Œrelease 3.2.1 (2021-09-17)”ah&]”uh(h hh hhhh)hK‚ubh )�”}”(hhh]”(h)�”}”(hŒRelease 3.2.0 (2020-12-30)”h]”hŒRelease 3.2.0 (2020-12-30)”…”�”}”(hjÅhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhjÂhhhh)hKŠubh;)�”}”(hhh]”(h@)�”}”(hŒpFix long-standing rounding error in file date handling when the nanosecond part of file dates were > 999999500. ”h]”hF)�”}”(hŒoFix long-standing rounding error in file date handling when the nanosecond part of file dates were > 999999500.”h]”hŒoFix long-standing rounding error in file date handling when the nanosecond part of file dates were > 999999500.”…”�”}”(hjÙhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hKŒhjÕubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKŒhjÒhhubh@)�”}”(hŒPThere is a new `pyfuse3.terminate()` function to gracefully end the main loop. ”h]”hF)�”}”(hŒNThere is a new `pyfuse3.terminate()` function to gracefully end the main loop.”h]”(hŒThere is a new ”…”�”}”(hjïhhhNhNubhQ)�”}”(hŒ`pyfuse3.terminate()`”h]”hW)�”}”(hjùh]”hŒpyfuse3.terminate()”…”�”}”(hjûhhhNhNubah}”(h ]”h"]”(hbŒpy”Œpy-obj”eh$]”h&]”uh(hVhj÷ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hmŒ refdomain”jŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰hshthuNhvŒpyfuse3.terminate()”uh(hPhh)hK�hjïubhŒ* function to gracefully end the main loop.”…”�”}”(hjïhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hEhh)hK�hjëubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hK�hjÒhhubeh}”(h ]”h"]”h$]”h&]”jzj{uh(h:hh)hKŒhjÂhhubeh}”(h ]”Œrelease-3-2-0-2020-12-30”ah"]”h$]”Œrelease 3.2.0 (2020-12-30)”ah&]”uh(h hh hhhh)hKŠubh )�”}”(hhh]”(h)�”}”(hŒRelease 3.1.1 (2020-10-06)”h]”hŒRelease 3.1.1 (2020-10-06)”…”�”}”(hj2hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhj/hhhh)hK”ubh;)�”}”(hhh]”h@)�”}”(hŒ_No source changes. Regenerated Cython files with Cython 0.29.21 for Python 3.9 compatibility. ”h]”hF)�”}”(hŒ]No source changes. Regenerated Cython files with Cython 0.29.21 for Python 3.9 compatibility.”h]”hŒ]No source changes. Regenerated Cython files with Cython 0.29.21 for Python 3.9 compatibility.”…”�”}”(hjFhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hK–hjBubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hK–hj?hhubah}”(h ]”h"]”h$]”h&]”jzj{uh(h:hh)hK–hj/hhubeh}”(h ]”Œrelease-3-1-1-2020-10-06”ah"]”h$]”Œrelease 3.1.1 (2020-10-06)”ah&]”uh(h hh hhhh)hK”ubh )�”}”(hhh]”(h)�”}”(hŒRelease 3.1.0 (2020-05-31)”h]”hŒRelease 3.1.0 (2020-05-31)”…”�”}”(hjghhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhjdhhhh)hK›ubh;)�”}”(hhh]”h@)�”}”(hŒ*Made compatible with newest Trio module. ”h]”hF)�”}”(hŒ(Made compatible with newest Trio module.”h]”hŒ(Made compatible with newest Trio module.”…”�”}”(hj{hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hK�hjwubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hK�hjthhubah}”(h ]”h"]”h$]”h&]”jzj{uh(h:hh)hK�hjdhhubeh}”(h ]”Œrelease-3-1-0-2020-05-31”ah"]”h$]”Œrelease 3.1.0 (2020-05-31)”ah&]”uh(h hh hhhh)hK›ubh )�”}”(hhh]”(h)�”}”(hŒRelease 3.0.0 (2020-05-08)”h]”hŒRelease 3.0.0 (2020-05-08)”…”�”}”(hjœhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhj™hhhh)hK¡ubh;)�”}”(hhh]”h@)�”}”(hXChanged `~Operations.create` handler to return a `FileInfo` struct to allow for modification of certain kernel file attributes, e.g. ``direct_io``. Note that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed. ”h]”(hF)�”}”(hŒ“Changed `~Operations.create` handler to return a `FileInfo` struct to allow for modification of certain kernel file attributes, e.g. ``direct_io``.”h]”(hŒChanged ”…”�”}”(hj°hhhNhNubhQ)�”}”(hŒ`~Operations.create`”h]”hW)�”}”(hjºh]”hŒcreate”…”�”}”(hj¼hhhNhNubah}”(h ]”h"]”(hbŒpy”Œpy-obj”eh$]”h&]”uh(hVhj¸ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hmŒ refdomain”jÆŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰hshthuNhvŒOperations.create”uh(hPhh)hK£hj°ubhŒ handler to return a ”…”�”}”(hj°hhhNhNubhQ)�”}”(hŒ `FileInfo`”h]”hW)�”}”(hjÜh]”hŒFileInfo”…”�”}”(hjÞhhhNhNubah}”(h ]”h"]”(hbŒpy”Œpy-obj”eh$]”h&]”uh(hVhjÚubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hmŒ refdomain”jèŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰hshthuNhvŒFileInfo”uh(hPhh)hK£hj°ubhŒJ struct to allow for modification of certain kernel file attributes, e.g. ”…”�”}”(hj°hhhNhNubhW)�”}”(hŒ ``direct_io``”h]”hŒ direct_io”…”�”}”(hjühhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hVhj°ubhŒ.”…”�”}”(hj°hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hEhh)hK£hj¬ubhF)�”}”(hŒpNote that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed.”h]”hŒpNote that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed.”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hK¦hj¬ubeh}”(h ]”h"]”h$]”h&]”uh(h?hh)hK£hj©hhubah}”(h ]”h"]”h$]”h&]”jzj{uh(h:hh)hK£hj™hhubeh}”(h ]”Œrelease-3-0-0-2020-05-08”ah"]”h$]”Œrelease 3.0.0 (2020-05-08)”ah&]”uh(h hh hhhh)hK¡ubh )�”}”(hhh]”(h)�”}”(hŒ Release 2.0.0”h]”hŒ Release 2.0.0”…”�”}”(hj3hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhj0hhhh)hK«ubh;)�”}”(hhh]”h@)�”}”(hX Changed `~Operations.open` handler to return the new `FileInfo` struct to allow for modification of certain kernel file attributes, e.g. ``direct_io``. Note that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed. ”h]”(hF)�”}”(hŒ—Changed `~Operations.open` handler to return the new `FileInfo` struct to allow for modification of certain kernel file attributes, e.g. ``direct_io``.”h]”(hŒChanged ”…”�”}”(hjGhhhNhNubhQ)�”}”(hŒ`~Operations.open`”h]”hW)�”}”(hjQh]”hŒopen”…”�”}”(hjShhhNhNubah}”(h ]”h"]”(hbŒpy”Œpy-obj”eh$]”h&]”uh(hVhjOubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hmŒ refdomain”j]Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰hshthuNhvŒOperations.open”uh(hPhh)hK­hjGubhŒ handler to return the new ”…”�”}”(hjGhhhNhNubhQ)�”}”(hŒ `FileInfo`”h]”hW)�”}”(hjsh]”hŒFileInfo”…”�”}”(hjuhhhNhNubah}”(h ]”h"]”(hbŒpy”Œpy-obj”eh$]”h&]”uh(hVhjqubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hmŒ refdomain”jŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰hshthuNhvŒFileInfo”uh(hPhh)hK­hjGubhŒJ struct to allow for modification of certain kernel file attributes, e.g. ”…”�”}”(hjGhhhNhNubhW)�”}”(hŒ ``direct_io``”h]”hŒ direct_io”…”�”}”(hj“hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hVhjGubhŒ.”…”�”}”(hjGhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hEhh)hK­hjCubhF)�”}”(hŒpNote that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed.”h]”hŒpNote that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed.”…”�”}”(hj©hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hEhh)hK°hjCubeh}”(h ]”h"]”h$]”h&]”uh(h?hh)hK­hj@hhubah}”(h ]”h"]”h$]”h&]”jzj{uh(h:hh)hK­hj0hhubeh}”(h ]”Œ release-2-0-0”ah"]”h$]”Œ release 2.0.0”ah&]”uh(h hh hhhh)hK«ubh )�”}”(hhh]”(h)�”}”(hŒRelease 1.3.1 (2019-07-17)”h]”hŒRelease 1.3.1 (2019-07-17)”…”�”}”(hjÊhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhjÇhhhh)hK´ubh;)�”}”(hhh]”h@)�”}”(hŒ5Fixed a bug in the :file:`hello_asyncio.py` example. ”h]”hF)�”}”(hŒ4Fixed a bug in the :file:`hello_asyncio.py` example.”h]”(hŒFixed a bug in the ”…”�”}”(hjÞhhhNhNubhW)�”}”(hŒ:file:`hello_asyncio.py`”h]”hŒhello_asyncio.py”…”�”}”(hjæhhhNhNubah}”(h ]”h"]”Œfile”ah$]”h&]”Œrole”Œfile”uh(hVhjÞubhŒ example.”…”�”}”(hjÞhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hEhh)hK¶hjÚubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hK¶hj×hhubah}”(h ]”h"]”h$]”h&]”jzj{uh(h:hh)hK¶hjÇhhubeh}”(h ]”Œrelease-1-3-1-2019-07-17”ah"]”h$]”Œrelease 1.3.1 (2019-07-17)”ah&]”uh(h hh hhhh)hK´ubh )�”}”(hhh]”(h)�”}”(hŒRelease 1.3 (2019-06-02)”h]”hŒRelease 1.3 (2019-06-02)”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhj hhhh)hK¹ubh;)�”}”(hhh]”h@)�”}”(hŒ}Fixed a bug in the :file:`tmpfs.py` and :file:`passthroughfs.py` example file systems (so rename operations no longer fail). ”h]”hF)�”}”(hŒ|Fixed a bug in the :file:`tmpfs.py` and :file:`passthroughfs.py` example file systems (so rename operations no longer fail).”h]”(hŒFixed a bug in the ”…”�”}”(hj' hhhNhNubhW)�”}”(hŒ:file:`tmpfs.py`”h]”hŒtmpfs.py”…”�”}”(hj/ hhhNhNubah}”(h ]”h"]”Œfile”ah$]”h&]”Œrole”Œfile”uh(hVhj' ubhŒ and ”…”�”}”(hj' hhhNhNubhW)�”}”(hŒ:file:`passthroughfs.py`”h]”hŒpassthroughfs.py”…”�”}”(hjC hhhNhNubah}”(h ]”h"]”Œfile”ah$]”h&]”Œrole”Œfile”uh(hVhj' ubhŒ< example file systems (so rename operations no longer fail).”…”�”}”(hj' hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hEhh)hK»hj# ubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hK»hj hhubah}”(h ]”h"]”h$]”h&]”jzj{uh(h:hh)hK»hj hhubeh}”(h ]”Œrelease-1-3-2019-06-02”ah"]”h$]”Œrelease 1.3 (2019-06-02)”ah&]”uh(h hh hhhh)hK¹ubh )�”}”(hhh]”(h)�”}”(hŒRelease 1.2 (2018-12-22)”h]”hŒRelease 1.2 (2018-12-22)”…”�”}”(hjp hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhjm hhhh)hK¿ubh;)�”}”(hhh]”(h@)�”}”(hŒBClarified that `invalidate_inode` may block in some circumstances.”h]”hF)�”}”(hj‚ h]”(hŒClarified that ”…”�”}”(hj„ hhhNhNubhQ)�”}”(hŒ`invalidate_inode`”h]”hW)�”}”(hj� h]”hŒinvalidate_inode”…”�”}”(hj� hhhNhNubah}”(h ]”h"]”(hbŒpy”Œpy-obj”eh$]”h&]”uh(hVhj‹ ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hmŒ refdomain”j™ Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰hshthuNhvŒinvalidate_inode”uh(hPhh)hKÁhj„ ubhŒ! may block in some circumstances.”…”�”}”(hj„ hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hEhh)hKÁhj€ ubah}”(h ]”h"]”h$]”h&]”uh(h?hh)hKÁhj} hhubh@)�”}”(hŒThis is a recommended set of options that should be passed to ”…”�”}”(hj3hhhNhNubh‡)�”}”(hŒ`pyfuse3.init`”h]”h�)�”}”(hj=h]”hŒ pyfuse3.init”…”�”}”(hj?hhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj;ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jIŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©hqhªNh«Œ pyfuse3.init”uh(h†hh)hKhj3ubhŒ± to get reasonable behavior and performance. pyfuse3 is compatible with any other combination of options as well, but you should only deviate from the defaults with good reason.”…”�”}”(hj3hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hKhj0hhubh})�”}”(hŒˆ(The :samp:`fsname=` option is guaranteed never to be included in the default options, so you can always safely add it to the set).”h]”(hŒ(The ”…”�”}”(hjbhhhNhNubh�)�”}”(hŒ:samp:`fsname=`”h]”hŒ fsname=”…”�”}”(hjjhhhNhNubah}”(h ]”h"]”Œsamp”ah$]”h&]”Œrole”Œsamp”uh(hŒhjbubhŒo option is guaranteed never to be included in the default options, so you can always safely add it to the set).”…”�”}”(hjbhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hK$hj0hhubh})�”}”(hŒThe default options are:”h]”hŒThe default options are:”…”�”}”(hjƒhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hh)hK'hj0hhubhŒ bullet_list”“”)�”}”(hhh]”hŒ list_item”“”)�”}”(hŒ|``default_permissions`` enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect.”h]”h})�”}”(hŒ|``default_permissions`` enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect.”h]”(h�)�”}”(hŒ``default_permissions``”h]”hŒdefault_permissions”…”�”}”(hjŸhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hŒhj›ubhŒe enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect.”…”�”}”(hj›hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hK)hj—ubah}”(h ]”h"]”h$]”h&]”uh(j•hh)hK)hj’hhubah}”(h ]”h"]”h$]”h&]”Œbullet”Œ*”uh(j�hh)hK)hj0hhubeh}”(h ]”h"]”h$]”h&]”uh(hwhj hhhNhNubeh}”(h ]”h"]”(Œpy”Œdata”eh$]”h&]”hÂjÉhÃjÊhÄjÊhʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ FUSEError”Œpyfuse3.FUSEError”hNt”auh(h+hh hhhŒ'docstring of pyfuse3.__init__.FUSEError”hNubh<)�”}”(hhh]”(hA)�”}”(hj×h]”(h*Œdesc_annotation”“”)�”}”(hŒJ[>, >]”h]”(h*Œdesc_sig_keyword”“”)�”}”(hŒ exception”h]”hŒ exception”…”�”}”(hjéhhhNhNubah}”(h ]”h"]”Œk”ah$]”h&]”uh(jçhjãubh*Œdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjùhhhNhNubah}”(h ]”h"]”Œw”ah$]”h&]”uh(j÷hjãubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhjÞhhhhhKubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhjÞhhhhhKubhZ)�”}”(hj×h]”hŒ FUSEError”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjÞhhhhhKubeh}”(h ]”jØah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrhhsj×htj*j׆”hvj×uh(h@hhhKhjÛhhubhx)�”}”(hhh]”h})�”}”(hŒÒThis exception may be raised by request handlers to indicate that the requested operation could not be carried out. The system call that resulted in the request (if any) will then fail with error code *errno_*.”h]”(hŒÉThis exception may be raised by request handlers to indicate that the requested operation could not be carried out. The system call that resulted in the request (if any) will then fail with error code ”…”�”}”(hj/hhhNhNubhŒemphasis”“”)�”}”(hŒ*errno_*”h]”hŒerrno_”…”�”}”(hj9hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j7hj/ubhŒ.”…”�”}”(hj/hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hjÚhKhj,hhubah}”(h ]”h"]”h$]”h&]”uh(hwhjÛhhhjÚhNubeh}”(h ]”h"]”(Œpy”Œ exception”eh$]”h&]”hÂjWhÃjXhÄjXhʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hjÚhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7ŒFileHandleT (class in pyfuse3)”Œpyfuse3.FileHandleT”hNt”auh(h+hh hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒ FileHandleT”h]”(jâ)�”}”(hŒF[>, >]”h]”(jè)�”}”(hŒclass”h]”hŒclass”…”�”}”(hjshhhNhNubah}”(h ]”h"]”jôah$]”h&]”uh(jçhjoubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(j÷hjoubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhjkhhhh)hK.ubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hj’hhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhjkhhhh)hK.ubhZ)�”}”(hjmh]”hŒ FileHandleT”…”�”}”(hjŸhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjkhhhh)hK.ubeh}”(h ]”jfah"]”(hlhmeh$]”h&]”hphqhrhhsjmhthqjm†”hvjmuh(h@hh)hK.hjhhhubhx)�”}”(hhh]”h})�”}”(hŒ’A type alias for `int`, representing an integer file handle produced by a `~Operations.create`, `~Operations.open`, or `~Operations.opendir` call.”h]”(hŒA type alias for ”…”�”}”(hj´hhhNhNubh‡)�”}”(hŒ`int`”h]”h�)�”}”(hj¾h]”hŒint”…”�”}”(hjÀhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj¼ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jÊŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©hqhªjmh«Œint”uh(h†hh)hK0hj´ubhŒ4, representing an integer file handle produced by a ”…”�”}”(hj´hhhNhNubh‡)�”}”(hŒ`~Operations.create`”h]”h�)�”}”(hjàh]”hŒcreate”…”�”}”(hjâhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjÞubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jìŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©hqhªjmh«ŒOperations.create”uh(h†hh)hK0hj´ubhŒ, ”…”�”}”(hj´hhhNhNubh‡)�”}”(hŒ`~Operations.open`”h]”h�)�”}”(hjh]”hŒopen”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©hqhªjmh«ŒOperations.open”uh(h†hh)hK0hj´ubhŒ, or ”…”�”}”(hj´hhhNhNubh‡)�”}”(hŒ`~Operations.opendir`”h]”h�)�”}”(hj$h]”hŒopendir”…”�”}”(hj&hhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj"ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”j0Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©hqhªjmh«ŒOperations.opendir”uh(h†hh)hK0hj´ubhŒ call.”…”�”}”(hj´hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hK0hj±hhubah}”(h ]”h"]”h$]”h&]”uh(hwhjhhhhh)hNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”hÂjQhÃjRhÄjRhʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7ŒFileNameT (class in pyfuse3)”Œpyfuse3.FileNameT”hNt”auh(h+hh hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒ FileNameT”h]”(jâ)�”}”(hŒF[>, >]”h]”(jè)�”}”(hŒclass”h]”hŒclass”…”�”}”(hjmhhhNhNubah}”(h ]”h"]”jôah$]”h&]”uh(jçhjiubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjzhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(j÷hjiubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhjehhhh)hK3ubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hjŒhhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhjehhhh)hK3ubhZ)�”}”(hjgh]”hŒ FileNameT”…”�”}”(hj™hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjehhhh)hK3ubeh}”(h ]”j`ah"]”(hlhmeh$]”h&]”hphqhrhhsjghthqjg†”hvjguh(h@hh)hK3hjbhhubhx)�”}”(hhh]”h})�”}”(hŒYA type alias for `bytes`, representing a file name, with no embedded zero-bytes (``\0``).”h]”(hŒA type alias for ”…”�”}”(hj®hhhNhNubh‡)�”}”(hŒ`bytes`”h]”h�)�”}”(hj¸h]”hŒbytes”…”�”}”(hjºhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj¶ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jÄŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©hqhªjgh«Œbytes”uh(h†hh)hK5hj®ubhŒ9, representing a file name, with no embedded zero-bytes (”…”�”}”(hj®hhhNhNubh�)�”}”(hŒ``\0``”h]”hŒ\0”…”�”}”(hjØhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hŒhj®ubhŒ).”…”�”}”(hj®hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hK5hj«hhubah}”(h ]”h"]”h$]”h&]”uh(hwhjbhhhh)hNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”hÂjöhÃj÷hÄj÷hʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7ŒFlagT (class in pyfuse3)”Œ pyfuse3.FlagT”hNt”auh(h+hh hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒFlagT”h]”(jâ)�”}”(hŒF[>, >]”h]”(jè)�”}”(hŒclass”h]”hŒclass”…”�”}”(hjhhhNhNubah}”(h ]”h"]”jôah$]”h&]”uh(jçhjubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(j÷hjubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhj hhhh)hK8ubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hj1hhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhj hhhh)hK8ubhZ)�”}”(hj h]”hŒFlagT”…”�”}”(hj>hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj hhhh)hK8ubeh}”(h ]”jah"]”(hlhmeh$]”h&]”hphqhrhhsj hthqj †”hvj uh(h@hh)hK8hjhhubhx)�”}”(hhh]”h})�”}”(hŒRA type alias for `int`, representing flags modifying the behavior of an operation.”h]”(hŒA type alias for ”…”�”}”(hjShhhNhNubh‡)�”}”(hŒ`int`”h]”h�)�”}”(hj]h]”hŒint”…”�”}”(hj_hhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj[ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jiŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©hqhªj h«Œint”uh(h†hh)hK:hjSubhŒ<, representing flags modifying the behavior of an operation.”…”�”}”(hjShhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hK:hjPhhubah}”(h ]”h"]”h$]”h&]”uh(hwhjhhhh)hNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”hÂjŠhÃj‹hÄj‹hʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7ŒInodeT (class in pyfuse3)”Œpyfuse3.InodeT”hNt”auh(h+hh hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒInodeT”h]”(jâ)�”}”(hŒF[>, >]”h]”(jè)�”}”(hŒclass”h]”hŒclass”…”�”}”(hj¦hhhNhNubah}”(h ]”h"]”jôah$]”h&]”uh(jçhj¢ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(j÷hj¢ubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhjžhhhh)hK=ubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hjÅhhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhjžhhhh)hK=ubhZ)�”}”(hj h]”hŒInodeT”…”�”}”(hjÒhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjžhhhh)hK=ubeh}”(h ]”j™ah"]”(hlhmeh$]”h&]”hphqhrhhsj hthqj †”hvj uh(h@hh)hK=hj›hhubhx)�”}”(hhh]”h})�”}”(hŒ5A type alias for `int`, representing an inode number.”h]”(hŒA type alias for ”…”�”}”(hjçhhhNhNubh‡)�”}”(hŒ`int`”h]”h�)�”}”(hjñh]”hŒint”…”�”}”(hjóhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjïubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jýŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©hqhªj h«Œint”uh(h†hh)hK?hjçubhŒ, representing an inode number.”…”�”}”(hjçhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hK?hjähhubah}”(h ]”h"]”h$]”h&]”uh(hwhj›hhhh)hNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”hÂjhÃjhÄjhʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7ŒModeT (class in pyfuse3)”Œ pyfuse3.ModeT”hNt”auh(h+hh hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒModeT”h]”(jâ)�”}”(hŒF[>, >]”h]”(jè)�”}”(hŒclass”h]”hŒclass”…”�”}”(hj:hhhNhNubah}”(h ]”h"]”jôah$]”h&]”uh(jçhj6ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(j÷hj6ubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhj2hhhh)hKAubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hjYhhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhj2hhhh)hKAubhZ)�”}”(hj4h]”hŒModeT”…”�”}”(hjfhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj2hhhh)hKAubeh}”(h ]”j-ah"]”(hlhmeh$]”h&]”hphqhrhhsj4hthqj4†”hvj4uh(h@hh)hKAhj/hhubhx)�”}”(hhh]”h})�”}”(hŒ1A type alias for `int`, representing a file mode.”h]”(hŒA type alias for ”…”�”}”(hj{hhhNhNubh‡)�”}”(hŒ`int`”h]”h�)�”}”(hj…h]”hŒint”…”�”}”(hj‡hhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjƒubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”j‘Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©hqhªj4h«Œint”uh(h†hh)hKChj{ubhŒ, representing a file mode.”…”�”}”(hj{hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hKChjxhhubah}”(h ]”h"]”h$]”h&]”uh(hwhj/hhhh)hNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”hÂj²hÃj³hÄj³hʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7ŒXAttrNameT (class in pyfuse3)”Œpyfuse3.XAttrNameT”hNt”auh(h+hh hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒ XAttrNameT”h]”(jâ)�”}”(hŒF[>, >]”h]”(jè)�”}”(hŒclass”h]”hŒclass”…”�”}”(hjÎhhhNhNubah}”(h ]”h"]”jôah$]”h&]”uh(jçhjÊubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(j÷hjÊubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhjÆhhhh)hKEubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hjíhhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhjÆhhhh)hKEubhZ)�”}”(hjÈh]”hŒ XAttrNameT”…”�”}”(hjúhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjÆhhhh)hKEubeh}”(h ]”jÁah"]”(hlhmeh$]”h&]”hphqhrhhsjÈhthqjȆ”hvjÈuh(h@hh)hKEhjÃhhubhx)�”}”(hhh]”h})�”}”(hŒhA type alias for `bytes`, representing an extended attribute name, with no embedded zero-bytes (``\0``).”h]”(hŒA type alias for ”…”�”}”(hjhhhNhNubh‡)�”}”(hŒ`bytes`”h]”h�)�”}”(hjh]”hŒbytes”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”j%Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©hqhªjÈh«Œbytes”uh(h†hh)hKGhjubhŒH, representing an extended attribute name, with no embedded zero-bytes (”…”�”}”(hjhhhNhNubh�)�”}”(hŒ``\0``”h]”hŒ\0”…”�”}”(hj9hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hŒhjubhŒ).”…”�”}”(hjhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hKGhj hhubah}”(h ]”h"]”h$]”h&]”uh(hwhjÃhhhh)hNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”hÂjWhÃjXhÄjXhʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ!RequestContext (class in pyfuse3)”Œpyfuse3.RequestContext”hNt”auh(h+hh hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒRequestContext”h]”(jâ)�”}”(hŒF[>, >]”h]”(jè)�”}”(hŒclass”h]”hŒclass”…”�”}”(hjshhhNhNubah}”(h ]”h"]”jôah$]”h&]”uh(jçhjoubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(j÷hjoubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhjkhhhhhKubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hj’hhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhjkhhhhhKubhZ)�”}”(hjmh]”hŒRequestContext”…”�”}”(hjŸhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjkhhhhhKubeh}”(h ]”jfah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrhhsjmhtj°jm†”hvjmuh(h@hhhKhjhhhubhx)�”}”(hhh]”(h})�”}”(hŒ’Instances of this class are passed to some `Operations` methods to provide information about the caller of the syscall that initiated the request.”h]”(hŒ+Instances of this class are passed to some ”…”�”}”(hjµhhhNhNubh‡)�”}”(hŒ `Operations`”h]”h�)�”}”(hj¿h]”hŒ Operations”…”�”}”(hjÁhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj½ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jËŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j°hªjmh«Œ Operations”uh(h†hŒ,docstring of pyfuse3.__init__.RequestContext”hKhjµubhŒ[ methods to provide information about the caller of the syscall that initiated the request.”…”�”}”(hjµhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hjÛhKhj²hhubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ&pid (pyfuse3.RequestContext attribute)”Œpyfuse3.RequestContext.pid”hNt”auh(h+hj²hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒpid”h]”hZ)�”}”(hj÷h]”hŒpid”…”�”}”(hjùhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjõhhhh)hKLubah}”(h ]”jðah"]”(hlhmeh$]”h&]”hpj°hrjmhsŒRequestContext.pid”htj°ŒRequestContext”Œpid”‡”hvj uh(h@hh)hKLhjòhhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjòhhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjhÃjhÄjhʼnhƉhljhȉhɉhʉhˉuh(h;hhhj²hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ&uid (pyfuse3.RequestContext attribute)”Œpyfuse3.RequestContext.uid”hNt”auh(h+hj²hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒuid”h]”hZ)�”}”(hj/h]”hŒuid”…”�”}”(hj1hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj-hhhh)hKNubah}”(h ]”j(ah"]”(hlhmeh$]”h&]”hpj°hrjmhsŒRequestContext.uid”htj°ŒRequestContext”Œuid”‡”hvjBuh(h@hh)hKNhj*hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhj*hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjQhÃjRhÄjRhʼnhƉhljhȉhɉhʉhˉuh(h;hhhj²hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ&gid (pyfuse3.RequestContext attribute)”Œpyfuse3.RequestContext.gid”hNt”auh(h+hj²hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒgid”h]”hZ)�”}”(hjgh]”hŒgid”…”�”}”(hjihhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjehhhh)hKPubah}”(h ]”j`ah"]”(hlhmeh$]”h&]”hpj°hrjmhsŒRequestContext.gid”htj°ŒRequestContext”Œgid”‡”hvjzuh(h@hh)hKPhjbhhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjbhhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj‰hÃjŠhÄjŠhʼnhƉhljhȉhɉhʉhˉuh(h;hhhj²hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ(umask (pyfuse3.RequestContext attribute)”Œpyfuse3.RequestContext.umask”hNt”auh(h+hj²hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒumask”h]”hZ)�”}”(hjŸh]”hŒumask”…”�”}”(hj¡hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj�hhhh)hKRubah}”(h ]”j˜ah"]”(hlhmeh$]”h&]”hpj°hrjmhsŒRequestContext.umask”htj°ŒRequestContext”Œumask”‡”hvj²uh(h@hh)hKRhjšhhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjšhhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjÁhÃjÂhÄjÂhʼnhƉhljhȉhɉhʉhˉuh(h;hhhj²hNhNubeh}”(h ]”h"]”h$]”h&]”uh(hwhjhhhhNhNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”hÂjÍhÃjÎhÄjÎhʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7ŒStatvfsData (class in pyfuse3)”Œpyfuse3.StatvfsData”hNt”auh(h+hh hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒ StatvfsData”h]”(jâ)�”}”(hŒF[>, >]”h]”(jè)�”}”(hŒclass”h]”hŒclass”…”�”}”(hjéhhhNhNubah}”(h ]”h"]”jôah$]”h&]”uh(jçhjåubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(j÷hjåubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhjáhhhhhKubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhjáhhhhhKubhZ)�”}”(hjãh]”hŒ StatvfsData”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjáhhhhhKubeh}”(h ]”jÜah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrhhsjãhtj& j㆔hvjãuh(h@hhhKhjÞhhubhx)�”}”(hhh]”(h})�”}”(hŒ¬Instances of this class store information about the file system. The attributes correspond to the elements of the ``statvfs`` struct, see :manpage:`statvfs(2)` for details.”h]”(hŒrInstances of this class store information about the file system. The attributes correspond to the elements of the ”…”�”}”(hj+ hhhNhNubh�)�”}”(hŒ ``statvfs``”h]”hŒstatvfs”…”�”}”(hj3 hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hŒhj+ ubhŒ struct, see ”…”�”}”(hj+ hhhNhNubh*Œmanpage”“”)�”}”(hŒ:manpage:`statvfs(2)`”h]”hŒ statvfs(2)”…”�”}”(hjF hhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œ statvfs(2)”Œpage”Œstatvfs”Œsection”Œ2”hWhXuh(jD hj+ ubhŒ for details.”…”�”}”(hj+ hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hŒ)docstring of pyfuse3.__init__.StatvfsData”hKhj( hhubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ'f_bsize (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_bsize”hNt”auh(h+hj( hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒf_bsize”h]”hZ)�”}”(hjv h]”hŒf_bsize”…”�”}”(hjx hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjt hhhh)hKVubah}”(h ]”jo ah"]”(hlhmeh$]”h&]”hpj& hrjãhsŒStatvfsData.f_bsize”htj& Œ StatvfsData”Œf_bsize”‡”hvj‰ uh(h@hh)hKVhjq hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjq hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj˜ hÃj™ hÄj™ hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj( hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ(f_frsize (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_frsize”hNt”auh(h+hj( hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒf_frsize”h]”hZ)�”}”(hj® h]”hŒf_frsize”…”�”}”(hj° hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj¬ hhhh)hKXubah}”(h ]”j§ ah"]”(hlhmeh$]”h&]”hpj& hrjãhsŒStatvfsData.f_frsize”htj& Œ StatvfsData”Œf_frsize”‡”hvjÁ uh(h@hh)hKXhj© hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhj© hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjÐ hÃjÑ hÄjÑ hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj( hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ(f_blocks (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_blocks”hNt”auh(h+hj( hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒf_blocks”h]”hZ)�”}”(hjæ h]”hŒf_blocks”…”�”}”(hjè hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjä hhhh)hKZubah}”(h ]”jß ah"]”(hlhmeh$]”h&]”hpj& hrjãhsŒStatvfsData.f_blocks”htj& Œ StatvfsData”Œf_blocks”‡”hvjù uh(h@hh)hKZhjá hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjá hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj hÃj hÄj hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj( hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ'f_bfree (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_bfree”hNt”auh(h+hj( hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒf_bfree”h]”hZ)�”}”(hj h]”hŒf_bfree”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj hhhh)hK\ubah}”(h ]”j ah"]”(hlhmeh$]”h&]”hpj& hrjãhsŒStatvfsData.f_bfree”htj& Œ StatvfsData”Œf_bfree”‡”hvj1 uh(h@hh)hK\hj hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhj hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj@ hÃjA hÄjA hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj( hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ(f_bavail (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_bavail”hNt”auh(h+hj( hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒf_bavail”h]”hZ)�”}”(hjV h]”hŒf_bavail”…”�”}”(hjX hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjT hhhh)hK^ubah}”(h ]”jO ah"]”(hlhmeh$]”h&]”hpj& hrjãhsŒStatvfsData.f_bavail”htj& Œ StatvfsData”Œf_bavail”‡”hvji uh(h@hh)hK^hjQ hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjQ hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjx hÃjy hÄjy hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj( hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ'f_files (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_files”hNt”auh(h+hj( hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒf_files”h]”hZ)�”}”(hjŽ h]”hŒf_files”…”�”}”(hj� hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjŒ hhhh)hK`ubah}”(h ]”j‡ ah"]”(hlhmeh$]”h&]”hpj& hrjãhsŒStatvfsData.f_files”htj& Œ StatvfsData”Œf_files”‡”hvj¡ uh(h@hh)hK`hj‰ hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhj‰ hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj° hÃj± hÄj± hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj( hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ'f_ffree (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_ffree”hNt”auh(h+hj( hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒf_ffree”h]”hZ)�”}”(hjÆ h]”hŒf_ffree”…”�”}”(hjÈ hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjÄ hhhh)hKbubah}”(h ]”j¿ ah"]”(hlhmeh$]”h&]”hpj& hrjãhsŒStatvfsData.f_ffree”htj& Œ StatvfsData”Œf_ffree”‡”hvjÙ uh(h@hh)hKbhjÁ hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjÁ hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjè hÃjé hÄjé hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj( hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ(f_favail (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_favail”hNt”auh(h+hj( hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒf_favail”h]”hZ)�”}”(hjþ h]”hŒf_favail”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjü hhhh)hKdubah}”(h ]”j÷ ah"]”(hlhmeh$]”h&]”hpj& hrjãhsŒStatvfsData.f_favail”htj& Œ StatvfsData”Œf_favail”‡”hvj uh(h@hh)hKdhjù hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjù hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj hÃj! hÄj! hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj( hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ)f_namemax (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_namemax”hNt”auh(h+hj( hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒ f_namemax”h]”hZ)�”}”(hj6 h]”hŒ f_namemax”…”�”}”(hj8 hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj4 hhhh)hKfubah}”(h ]”j/ ah"]”(hlhmeh$]”h&]”hpj& hrjãhsŒStatvfsData.f_namemax”htj& Œ StatvfsData”Œ f_namemax”‡”hvjI uh(h@hh)hKfhj1 hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhj1 hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjX hÃjY hÄjY hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj( hNhNubeh}”(h ]”h"]”h$]”h&]”uh(hwhjÞhhhNhNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”hÂjd hÃje hÄje hʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ"EntryAttributes (class in pyfuse3)”Œpyfuse3.EntryAttributes”hNt”auh(h+hh hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes”h]”(jâ)�”}”(hŒF[>, >]”h]”(jè)�”}”(hŒclass”h]”hŒclass”…”�”}”(hj€ hhhNhNubah}”(h ]”h"]”jôah$]”h&]”uh(jçhj| ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj� hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(j÷hj| ubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhjx hhhhhKubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hjŸ hhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhjx hhhhhKubhZ)�”}”(hjz h]”hŒEntryAttributes”…”�”}”(hj¬ hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjx hhhhhKubeh}”(h ]”js ah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrhhsjz htj½ jz †”hvjz uh(h@hhhKhju hhubhx)�”}”(hhh]”(h})�”}”(hŒÇInstances of this class store attributes of directory entries. Most of the attributes correspond to the elements of the ``stat`` C struct as returned by e.g. ``fstat`` and should be self-explanatory.”h]”(hŒxInstances of this class store attributes of directory entries. Most of the attributes correspond to the elements of the ”…”�”}”(hj hhhNhNubh�)�”}”(hŒ``stat``”h]”hŒstat”…”�”}”(hjÊ hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hŒhj ubhŒ C struct as returned by e.g. ”…”�”}”(hj hhhNhNubh�)�”}”(hŒ ``fstat``”h]”hŒfstat”…”�”}”(hjÛ hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hŒhj ubhŒ and should be self-explanatory.”…”�”}”(hj hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hŒ-docstring of pyfuse3.__init__.EntryAttributes”hKhj¿ hhubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ*st_ino (pyfuse3.EntryAttributes attribute)”Œpyfuse3.EntryAttributes.st_ino”hNt”auh(h+hj¿ hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.st_ino”h]”hZ)�”}”(hŒst_ino”h]”hŒst_ino”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj hhhhhKubah}”(h ]”jý ah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.st_ino”htj ŒEntryAttributes”Œst_ino”‡”hvj uh(h@hhhKhjÿ hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjÿ hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj( hÃj) hÄj) hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ.generation (pyfuse3.EntryAttributes attribute)”Œ"pyfuse3.EntryAttributes.generation”hNt”auh(h+hj¿ hhhŒ/docstring of pyfuse3.EntryAttributes.generation”hNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.generation”h]”hZ)�”}”(hŒ generation”h]”hŒ generation”…”�”}”(hjA hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj= hhhhhKubah}”(h ]”j7 ah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.generation”htjS ŒEntryAttributes”Œ generation”‡”hvjT uh(h@hhhKhj: hhubhx)�”}”(hhh]”h})�”}”(hŒThe inode generation number”h]”hŒThe inode generation number”…”�”}”(hj[ hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hj9 hKhjX hhubah}”(h ]”h"]”h$]”h&]”uh(hwhj: hhhj9 hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjp hÃjq hÄjq hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hj9 hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ1entry_timeout (pyfuse3.EntryAttributes attribute)”Œ%pyfuse3.EntryAttributes.entry_timeout”hNt”auh(h+hj¿ hhhŒ2docstring of pyfuse3.EntryAttributes.entry_timeout”hNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.entry_timeout”h]”hZ)�”}”(hŒ entry_timeout”h]”hŒ entry_timeout”…”�”}”(hj‰ hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj… hhhhhKubah}”(h ]”j ah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.entry_timeout”htj› ŒEntryAttributes”Œ entry_timeout”‡”hvjœ uh(h@hhhKhj‚ hhubhx)�”}”(hhh]”(h})�”}”(hŒ>Validity timeout for the name/existence of the directory entry”h]”hŒ>Validity timeout for the name/existence of the directory entry”…”�”}”(hj£ hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hj� hKhj  hhubh})�”}”(hŒ6Floating point numbers may be used. Units are seconds.”h]”hŒ6Floating point numbers may be used. Units are seconds.”…”�”}”(hj° hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hj� hKhj  hhubeh}”(h ]”h"]”h$]”h&]”uh(hwhj‚ hhhj� hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjÅ hÃjÆ hÄjÆ hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hj� hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ0attr_timeout (pyfuse3.EntryAttributes attribute)”Œ$pyfuse3.EntryAttributes.attr_timeout”hNt”auh(h+hj¿ hhhŒ1docstring of pyfuse3.EntryAttributes.attr_timeout”hNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.attr_timeout”h]”hZ)�”}”(hŒ attr_timeout”h]”hŒ attr_timeout”…”�”}”(hjÞ hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjÚ hhhhhKubah}”(h ]”jÔ ah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.attr_timeout”htjð ŒEntryAttributes”Œ attr_timeout”‡”hvjñ uh(h@hhhKhj× hhubhx)�”}”(hhh]”(h})�”}”(hŒ:Validity timeout for the attributes of the directory entry”h]”hŒ:Validity timeout for the attributes of the directory entry”…”�”}”(hjø hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hjÖ hKhjõ hhubh})�”}”(hŒ6Floating point numbers may be used. Units are seconds.”h]”hŒ6Floating point numbers may be used. Units are seconds.”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hjÖ hKhjõ hhubeh}”(h ]”h"]”h$]”h&]”uh(hwhj× hhhjÖ hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj hÃj hÄj hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hjÖ hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ+st_mode (pyfuse3.EntryAttributes attribute)”Œpyfuse3.EntryAttributes.st_mode”hNt”auh(h+hj¿ hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.st_mode”h]”hZ)�”}”(hŒst_mode”h]”hŒst_mode”…”�”}”(hj2 hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj. hhhhhKubah}”(h ]”j) ah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.st_mode”htjD ŒEntryAttributes”Œst_mode”‡”hvjE uh(h@hhhKhj+ hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhj+ hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjT hÃjU hÄjU hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ,st_nlink (pyfuse3.EntryAttributes attribute)”Œ pyfuse3.EntryAttributes.st_nlink”hNt”auh(h+hj¿ hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.st_nlink”h]”hZ)�”}”(hŒst_nlink”h]”hŒst_nlink”…”�”}”(hjl hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjh hhhhhKubah}”(h ]”jc ah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.st_nlink”htj~ ŒEntryAttributes”Œst_nlink”‡”hvj uh(h@hhhKhje hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhje hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjŽ hÃj� hÄj� hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ*st_uid (pyfuse3.EntryAttributes attribute)”Œpyfuse3.EntryAttributes.st_uid”hNt”auh(h+hj¿ hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.st_uid”h]”hZ)�”}”(hŒst_uid”h]”hŒst_uid”…”�”}”(hj¦ hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj¢ hhhhhKubah}”(h ]”j� ah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.st_uid”htj¸ ŒEntryAttributes”Œst_uid”‡”hvj¹ uh(h@hhhKhjŸ hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjŸ hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjÈ hÃjÉ hÄjÉ hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ*st_gid (pyfuse3.EntryAttributes attribute)”Œpyfuse3.EntryAttributes.st_gid”hNt”auh(h+hj¿ hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.st_gid”h]”hZ)�”}”(hŒst_gid”h]”hŒst_gid”…”�”}”(hjà hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjÜ hhhhhKubah}”(h ]”j× ah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.st_gid”htjò ŒEntryAttributes”Œst_gid”‡”hvjó uh(h@hhhKhjÙ hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjÙ hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjhÃjhÄjhʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ+st_rdev (pyfuse3.EntryAttributes attribute)”Œpyfuse3.EntryAttributes.st_rdev”hNt”auh(h+hj¿ hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.st_rdev”h]”hZ)�”}”(hŒst_rdev”h]”hŒst_rdev”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjhhhhhKubah}”(h ]”jah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.st_rdev”htj,ŒEntryAttributes”Œst_rdev”‡”hvj-uh(h@hhhKhjhhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjhhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj<hÃj=hÄj=hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ+st_size (pyfuse3.EntryAttributes attribute)”Œpyfuse3.EntryAttributes.st_size”hNt”auh(h+hj¿ hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.st_size”h]”hZ)�”}”(hŒst_size”h]”hŒst_size”…”�”}”(hjThhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjPhhhhhKubah}”(h ]”jKah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.st_size”htjfŒEntryAttributes”Œst_size”‡”hvjguh(h@hhhKhjMhhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjMhhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjvhÃjwhÄjwhʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ.st_blksize (pyfuse3.EntryAttributes attribute)”Œ"pyfuse3.EntryAttributes.st_blksize”hNt”auh(h+hj¿ hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.st_blksize”h]”hZ)�”}”(hŒ st_blksize”h]”hŒ st_blksize”…”�”}”(hjŽhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjŠhhhhhKubah}”(h ]”j…ah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.st_blksize”htj ŒEntryAttributes”Œ st_blksize”‡”hvj¡uh(h@hhhKhj‡hhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhj‡hhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj°hÃj±hÄj±hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ-st_blocks (pyfuse3.EntryAttributes attribute)”Œ!pyfuse3.EntryAttributes.st_blocks”hNt”auh(h+hj¿ hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.st_blocks”h]”hZ)�”}”(hŒ st_blocks”h]”hŒ st_blocks”…”�”}”(hjÈhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjÄhhhhhKubah}”(h ]”j¿ah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.st_blocks”htjÚŒEntryAttributes”Œ st_blocks”‡”hvjÛuh(h@hhhKhjÁhhubhx)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”uh(hwhjÁhhhNhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjêhÃjëhÄjëhʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ/st_atime_ns (pyfuse3.EntryAttributes attribute)”Œ#pyfuse3.EntryAttributes.st_atime_ns”hNt”auh(h+hj¿ hhhŒ0docstring of pyfuse3.EntryAttributes.st_atime_ns”hNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.st_atime_ns”h]”hZ)�”}”(hŒ st_atime_ns”h]”hŒ st_atime_ns”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjÿhhhhhKubah}”(h ]”jùah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.st_atime_ns”htjŒEntryAttributes”Œ st_atime_ns”‡”hvjuh(h@hhhKhjühhubhx)�”}”(hhh]”h})�”}”(hŒ,Time of last access in (integer) nanoseconds”h]”hŒ,Time of last access in (integer) nanoseconds”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hjûhKhjhhubah}”(h ]”h"]”h$]”h&]”uh(hwhjühhhjûhNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj2hÃj3hÄj3hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hjûhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ/st_ctime_ns (pyfuse3.EntryAttributes attribute)”Œ#pyfuse3.EntryAttributes.st_ctime_ns”hNt”auh(h+hj¿ hhhŒ0docstring of pyfuse3.EntryAttributes.st_ctime_ns”hNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.st_ctime_ns”h]”hZ)�”}”(hŒ st_ctime_ns”h]”hŒ st_ctime_ns”…”�”}”(hjKhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjGhhhhhKubah}”(h ]”jAah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.st_ctime_ns”htj]ŒEntryAttributes”Œ st_ctime_ns”‡”hvj^uh(h@hhhKhjDhhubhx)�”}”(hhh]”h})�”}”(hŒ8Time of last inode modification in (integer) nanoseconds”h]”hŒ8Time of last inode modification in (integer) nanoseconds”…”�”}”(hjehhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hjChKhjbhhubah}”(h ]”h"]”h$]”h&]”uh(hwhjDhhhjChNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjzhÃj{hÄj{hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hjChNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ/st_mtime_ns (pyfuse3.EntryAttributes attribute)”Œ#pyfuse3.EntryAttributes.st_mtime_ns”hNt”auh(h+hj¿ hhhŒ0docstring of pyfuse3.EntryAttributes.st_mtime_ns”hNubh<)�”}”(hhh]”(hA)�”}”(hŒEntryAttributes.st_mtime_ns”h]”hZ)�”}”(hŒ st_mtime_ns”h]”hŒ st_mtime_ns”…”�”}”(hj“hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj�hhhhhKubah}”(h ]”j‰ah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjz hsŒEntryAttributes.st_mtime_ns”htj¥ŒEntryAttributes”Œ st_mtime_ns”‡”hvj¦uh(h@hhhKhjŒhhubhx)�”}”(hhh]”h})�”}”(hŒ2Time of last modification in (integer) nanoseconds”h]”hŒ2Time of last modification in (integer) nanoseconds”…”�”}”(hj­hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hj‹hKhjªhhubah}”(h ]”h"]”h$]”h&]”uh(hwhjŒhhhj‹hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjÂhÃjÃhÄjÃhʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¿ hj‹hNubeh}”(h ]”h"]”h$]”h&]”uh(hwhju hhhNhNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”hÂjÎhÃjÏhÄjÏhʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7ŒFileInfo (class in pyfuse3)”Œpyfuse3.FileInfo”hNt”auh(h+hh hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒFileInfo”h]”(jâ)�”}”(hŒF[>, >]”h]”(jè)�”}”(hŒclass”h]”hŒclass”…”�”}”(hjêhhhNhNubah}”(h ]”h"]”jôah$]”h&]”uh(jçhjæubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(j÷hjæubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhjâhhhhhKubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhjâhhhhhKubhZ)�”}”(hjäh]”hŒFileInfo”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjâhhhhhKubeh}”(h ]”jÝah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrhhsjähtj'j䆔hvjäuh(h@hhhKhjßhhubhx)�”}”(hhh]”(h})�”}”(hŒÎInstances of this class store options and data that `Operations.open` returns. The attributes correspond to the elements of the ``fuse_file_info`` struct that are relevant to the `Operations.open` function.”h]”(hŒ4Instances of this class store options and data that ”…”�”}”(hj,hhhNhNubh‡)�”}”(hŒ`Operations.open`”h]”h�)�”}”(hj6h]”hŒOperations.open”…”�”}”(hj8hhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj4ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jBŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j'hªjäh«ŒOperations.open”uh(h†hŒ&docstring of pyfuse3.__init__.FileInfo”hKhj,ubhŒ; returns. The attributes correspond to the elements of the ”…”�”}”(hj,hhhNhNubh�)�”}”(hŒ``fuse_file_info``”h]”hŒfuse_file_info”…”�”}”(hjWhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hŒhj,ubhŒ! struct that are relevant to the ”…”�”}”(hj,hhhNhNubh‡)�”}”(hŒ`Operations.open`”h]”h�)�”}”(hjjh]”hŒOperations.open”…”�”}”(hjlhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjhubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jvŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j'hªjäh«ŒOperations.open”uh(h†hjRhKhj,ubhŒ function.”…”�”}”(hj,hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hjRhKhj)hhubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œfh (pyfuse3.FileInfo attribute)”Œpyfuse3.FileInfo.fh”hNt”auh(h+hj)hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒ FileInfo.fh”h]”hZ)�”}”(hŒfh”h]”hŒfh”…”�”}”(hj£hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjŸhhhhhKubah}”(h ]”jšah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjähsŒ FileInfo.fh”htjµŒFileInfo”Œfh”‡”hvj¶uh(h@hhhKhjœhhubhx)�”}”(hhh]”h})�”}”(hŒTThis attribute must be set to the file handle to be returned from `Operations.open`.”h]”(hŒBThis attribute must be set to the file handle to be returned from ”…”�”}”(hj½hhhNhNubh‡)�”}”(hŒ`Operations.open`”h]”h�)�”}”(hjÇh]”hŒOperations.open”…”�”}”(hjÉhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjÅubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jÓŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©jµhªjäh«ŒOperations.open”uh(h†hh)hKŒhj½ubhŒ.”…”�”}”(hj½hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hKŒhjºhhubah}”(h ]”h"]”h$]”h&]”uh(hwhjœhhhh)hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjôhÃjõhÄjõhʼnhƉhljhȉhɉhʉhˉuh(h;hhhj)hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ&direct_io (pyfuse3.FileInfo attribute)”Œpyfuse3.FileInfo.direct_io”hNt”auh(h+hj)hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒFileInfo.direct_io”h]”hZ)�”}”(hŒ direct_io”h]”hŒ direct_io”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjhhhhhKubah}”(h ]”jah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjähsŒFileInfo.direct_io”htjŒFileInfo”Œ direct_io”‡”hvjuh(h@hhhKhjhhubhx)�”}”(hhh]”h})�”}”(hŒOIf true, signals to the kernel that this file should not be cached or buffered.”h]”hŒOIf true, signals to the kernel that this file should not be cached or buffered.”…”�”}”(hj&hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hh)hK‘hj#hhubah}”(h ]”h"]”h$]”h&]”uh(hwhjhhhh)hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj;hÃj<hÄj<hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj)hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ'keep_cache (pyfuse3.FileInfo attribute)”Œpyfuse3.FileInfo.keep_cache”hNt”auh(h+hj)hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒFileInfo.keep_cache”h]”hZ)�”}”(hŒ keep_cache”h]”hŒ keep_cache”…”�”}”(hjShhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjOhhhhhKubah}”(h ]”jJah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjähsŒFileInfo.keep_cache”htjeŒFileInfo”Œ keep_cache”‡”hvjfuh(h@hhhKhjLhhubhx)�”}”(hhh]”h})�”}”(hŒxIf true, signals to the kernel that previously cached data for this inode is still valid, and should not be invalidated.”h]”hŒxIf true, signals to the kernel that previously cached data for this inode is still valid, and should not be invalidated.”…”�”}”(hjmhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hh)hK–hjjhhubah}”(h ]”h"]”h$]”h&]”uh(hwhjLhhhh)hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj‚hÃjƒhÄjƒhʼnhƉhljhȉhɉhʉhˉuh(h;hhhj)hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ(nonseekable (pyfuse3.FileInfo attribute)”Œpyfuse3.FileInfo.nonseekable”hNt”auh(h+hj)hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒFileInfo.nonseekable”h]”hZ)�”}”(hŒ nonseekable”h]”hŒ nonseekable”…”�”}”(hjšhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj–hhhhhKubah}”(h ]”j‘ah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjähsŒFileInfo.nonseekable”htj¬ŒFileInfo”Œ nonseekable”‡”hvj­uh(h@hhhKhj“hhubhx)�”}”(hhh]”h})�”}”(hŒ:If true, indicates that the file does not support seeking.”h]”hŒ:If true, indicates that the file does not support seeking.”…”�”}”(hj´hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hh)hK›hj±hhubah}”(h ]”h"]”h$]”h&]”uh(hwhj“hhhh)hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjÉhÃjÊhÄjÊhʼnhƉhljhȉhɉhʉhˉuh(h;hhhj)hh)hNubeh}”(h ]”h"]”h$]”h&]”uh(hwhjßhhhNhNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”hÂjÕhÃjÖhÄjÖhʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ SetattrFields (class in pyfuse3)”Œpyfuse3.SetattrFields”hNt”auh(h+hh hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒ SetattrFields”h]”(jâ)�”}”(hŒF[>, >]”h]”(jè)�”}”(hŒclass”h]”hŒclass”…”�”}”(hjñhhhNhNubah}”(h ]”h"]”jôah$]”h&]”uh(jçhjíubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(j÷hjíubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhjéhhhhhKubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhjéhhhhhKubhZ)�”}”(hjëh]”hŒ SetattrFields”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjéhhhhhKubeh}”(h ]”jäah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrhhsjëhtj.j놔hvjëuh(h@hhhKhjæhhubhx)�”}”(hhh]”(h})�”}”(hŒx`SetattrFields` instances are passed to the `~Operations.setattr` handler to specify which attributes should be updated.”h]”(h‡)�”}”(hŒ`SetattrFields`”h]”h�)�”}”(hj9h]”hŒ SetattrFields”…”�”}”(hj;hhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj7ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jEŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«Œ SetattrFields”uh(h†hŒ+docstring of pyfuse3.__init__.SetattrFields”hKhj3ubhŒ instances are passed to the ”…”�”}”(hj3hhhNhNubh‡)�”}”(hŒ`~Operations.setattr`”h]”h�)�”}”(hj\h]”hŒsetattr”…”�”}”(hj^hhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjZubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jhŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«ŒOperations.setattr”uh(h†hjUhKhj3ubhŒ7 handler to specify which attributes should be updated.”…”�”}”(hj3hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hjUhKhj0hhubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ.update_atime (pyfuse3.SetattrFields attribute)”Œ"pyfuse3.SetattrFields.update_atime”hNt”auh(h+hj0hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒ update_atime”h]”hZ)�”}”(hj“h]”hŒ update_atime”…”�”}”(hj•hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj‘hhhh)hKŸubah}”(h ]”jŒah"]”(hlhmeh$]”h&]”hpj.hrjëhsŒSetattrFields.update_atime”htj.Œ SetattrFields”Œ update_atime”‡”hvj¦uh(h@hh)hKŸhjŽhhubhx)�”}”(hhh]”h})�”}”(hŒŽIf this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_atime_ns` field contains an updated value.”h]”(hŒ*If this attribute is true, it signals the ”…”�”}”(hj­hhhNhNubh‡)�”}”(hŒ`Operations.setattr`”h]”h�)�”}”(hj·h]”hŒOperations.setattr”…”�”}”(hj¹hhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjµubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jÃŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«ŒOperations.setattr”uh(h†hh)hK¡hj­ubhŒ method that the ”…”�”}”(hj­hhhNhNubh‡)�”}”(hŒ`~EntryAttributes.st_atime_ns`”h]”h�)�”}”(hjÙh]”hŒ st_atime_ns”…”�”}”(hjÛhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj×ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jåŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«ŒEntryAttributes.st_atime_ns”uh(h†hh)hK¡hj­ubhŒ! field contains an updated value.”…”�”}”(hj­hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hK¡hjªhhubah}”(h ]”h"]”h$]”h&]”uh(hwhjŽhhhh)hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjhÃjhÄjhʼnhƉhljhȉhɉhʉhˉuh(h;hhhj0hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ.update_mtime (pyfuse3.SetattrFields attribute)”Œ"pyfuse3.SetattrFields.update_mtime”hNt”auh(h+hj0hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒ update_mtime”h]”hZ)�”}”(hjh]”hŒ update_mtime”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjhhhh)hK¥ubah}”(h ]”jah"]”(hlhmeh$]”h&]”hpj.hrjëhsŒSetattrFields.update_mtime”htj.Œ SetattrFields”Œ update_mtime”‡”hvj/uh(h@hh)hK¥hjhhubhx)�”}”(hhh]”h})�”}”(hŒŽIf this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_mtime_ns` field contains an updated value.”h]”(hŒ*If this attribute is true, it signals the ”…”�”}”(hj6hhhNhNubh‡)�”}”(hŒ`Operations.setattr`”h]”h�)�”}”(hj@h]”hŒOperations.setattr”…”�”}”(hjBhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj>ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jLŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«ŒOperations.setattr”uh(h†hh)hK§hj6ubhŒ method that the ”…”�”}”(hj6hhhNhNubh‡)�”}”(hŒ`~EntryAttributes.st_mtime_ns`”h]”h�)�”}”(hjbh]”hŒ st_mtime_ns”…”�”}”(hjdhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj`ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jnŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«ŒEntryAttributes.st_mtime_ns”uh(h†hh)hK§hj6ubhŒ! field contains an updated value.”…”�”}”(hj6hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hK§hj3hhubah}”(h ]”h"]”h$]”h&]”uh(hwhjhhhh)hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj�hÃj�hÄj�hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj0hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ-update_mode (pyfuse3.SetattrFields attribute)”Œ!pyfuse3.SetattrFields.update_mode”hNt”auh(h+hj0hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒ update_mode”h]”hZ)�”}”(hj¥h]”hŒ update_mode”…”�”}”(hj§hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj£hhhh)hK«ubah}”(h ]”jžah"]”(hlhmeh$]”h&]”hpj.hrjëhsŒSetattrFields.update_mode”htj.Œ SetattrFields”Œ update_mode”‡”hvj¸uh(h@hh)hK«hj hhubhx)�”}”(hhh]”h})�”}”(hŒŠIf this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_mode` field contains an updated value.”h]”(hŒ*If this attribute is true, it signals the ”…”�”}”(hj¿hhhNhNubh‡)�”}”(hŒ`Operations.setattr`”h]”h�)�”}”(hjÉh]”hŒOperations.setattr”…”�”}”(hjËhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjÇubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jÕŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«ŒOperations.setattr”uh(h†hh)hK­hj¿ubhŒ method that the ”…”�”}”(hj¿hhhNhNubh‡)�”}”(hŒ`~EntryAttributes.st_mode`”h]”h�)�”}”(hjëh]”hŒst_mode”…”�”}”(hjíhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjéubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”j÷Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«ŒEntryAttributes.st_mode”uh(h†hh)hK­hj¿ubhŒ! field contains an updated value.”…”�”}”(hj¿hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hK­hj¼hhubah}”(h ]”h"]”h$]”h&]”uh(hwhj hhhh)hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂjhÃjhÄjhʼnhƉhljhȉhɉhʉhˉuh(h;hhhj0hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ,update_uid (pyfuse3.SetattrFields attribute)”Œ pyfuse3.SetattrFields.update_uid”hNt”auh(h+hj0hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒ update_uid”h]”hZ)�”}”(hj.h]”hŒ update_uid”…”�”}”(hj0hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj,hhhh)hK±ubah}”(h ]”j'ah"]”(hlhmeh$]”h&]”hpj.hrjëhsŒSetattrFields.update_uid”htj.Œ SetattrFields”Œ update_uid”‡”hvjAuh(h@hh)hK±hj)hhubhx)�”}”(hhh]”h})�”}”(hŒ‰If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_uid` field contains an updated value.”h]”(hŒ*If this attribute is true, it signals the ”…”�”}”(hjHhhhNhNubh‡)�”}”(hŒ`Operations.setattr`”h]”h�)�”}”(hjRh]”hŒOperations.setattr”…”�”}”(hjThhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjPubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”j^Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«ŒOperations.setattr”uh(h†hh)hK³hjHubhŒ method that the ”…”�”}”(hjHhhhNhNubh‡)�”}”(hŒ`~EntryAttributes.st_uid`”h]”h�)�”}”(hjth]”hŒst_uid”…”�”}”(hjvhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjrubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”j€Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«ŒEntryAttributes.st_uid”uh(h†hh)hK³hjHubhŒ! field contains an updated value.”…”�”}”(hjHhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hK³hjEhhubah}”(h ]”h"]”h$]”h&]”uh(hwhj)hhhh)hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj¡hÃj¢hÄj¢hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj0hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ,update_gid (pyfuse3.SetattrFields attribute)”Œ pyfuse3.SetattrFields.update_gid”hNt”auh(h+hj0hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒ update_gid”h]”hZ)�”}”(hj·h]”hŒ update_gid”…”�”}”(hj¹hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjµhhhh)hK·ubah}”(h ]”j°ah"]”(hlhmeh$]”h&]”hpj.hrjëhsŒSetattrFields.update_gid”htj.Œ SetattrFields”Œ update_gid”‡”hvjÊuh(h@hh)hK·hj²hhubhx)�”}”(hhh]”h})�”}”(hŒ‰If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_gid` field contains an updated value.”h]”(hŒ*If this attribute is true, it signals the ”…”�”}”(hjÑhhhNhNubh‡)�”}”(hŒ`Operations.setattr`”h]”h�)�”}”(hjÛh]”hŒOperations.setattr”…”�”}”(hjÝhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjÙubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jçŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«ŒOperations.setattr”uh(h†hh)hK¹hjÑubhŒ method that the ”…”�”}”(hjÑhhhNhNubh‡)�”}”(hŒ`~EntryAttributes.st_gid`”h]”h�)�”}”(hjýh]”hŒst_gid”…”�”}”(hjÿhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjûubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”j Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«ŒEntryAttributes.st_gid”uh(h†hh)hK¹hjÑubhŒ! field contains an updated value.”…”�”}”(hjÑhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hK¹hjÎhhubah}”(h ]”h"]”h$]”h&]”uh(hwhj²hhhh)hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj*hÃj+hÄj+hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj0hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ-update_size (pyfuse3.SetattrFields attribute)”Œ!pyfuse3.SetattrFields.update_size”hNt”auh(h+hj0hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒ update_size”h]”hZ)�”}”(hj@h]”hŒ update_size”…”�”}”(hjBhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj>hhhh)hK½ubah}”(h ]”j9ah"]”(hlhmeh$]”h&]”hpj.hrjëhsŒSetattrFields.update_size”htj.Œ SetattrFields”Œ update_size”‡”hvjSuh(h@hh)hK½hj;hhubhx)�”}”(hhh]”h})�”}”(hŒŠIf this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_size` field contains an updated value.”h]”(hŒ*If this attribute is true, it signals the ”…”�”}”(hjZhhhNhNubh‡)�”}”(hŒ`Operations.setattr`”h]”h�)�”}”(hjdh]”hŒOperations.setattr”…”�”}”(hjfhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjbubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jpŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«ŒOperations.setattr”uh(h†hh)hK¿hjZubhŒ method that the ”…”�”}”(hjZhhhNhNubh‡)�”}”(hŒ`~EntryAttributes.st_size`”h]”h�)�”}”(hj†h]”hŒst_size”…”�”}”(hjˆhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj„ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”j’Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j.hªjëh«ŒEntryAttributes.st_size”uh(h†hh)hK¿hjZubhŒ! field contains an updated value.”…”�”}”(hjZhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hK¿hjWhhubah}”(h ]”h"]”h$]”h&]”uh(hwhj;hhhh)hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”hÂj³hÃj´hÄj´hʼnhƉhljhȉhɉhʉhˉuh(h;hhhj0hh)hNubeh}”(h ]”h"]”h$]”h&]”uh(hwhjæhhhNhNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”hÂj¿hÃjÀhÄjÀhʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hNhNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7ŒReaddirToken (class in pyfuse3)”Œpyfuse3.ReaddirToken”hNt”auh(h+hh hhhh)hNubh<)�”}”(hhh]”(hA)�”}”(hŒ ReaddirToken”h]”(jâ)�”}”(hŒF[>, >]”h]”(jè)�”}”(hŒclass”h]”hŒclass”…”�”}”(hjÛhhhNhNubah}”(h ]”h"]”jôah$]”h&]”uh(jçhj×ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjèhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(j÷hj×ubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhjÓhhhhhKubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hjúhhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhjÓhhhhhKubhZ)�”}”(hjÕh]”hŒ ReaddirToken”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjÓhhhh•)hKubeh}”(h ]”jÎah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrhhsjÕhtjjÕ†”hvjÕuh(h@hhhKhjÐhhubhx)�”}”(hhh]”h})�”}”(hŒ@An identifier for a particular `~Operations.readdir` invocation.”h]”(hŒAn identifier for a particular ”…”�”}”(hjhhhNhNubh‡)�”}”(hŒ`~Operations.readdir`”h]”h�)�”}”(hj'h]”hŒreaddir”…”�”}”(hj)hhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj%ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”j3Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©jhªjÕh«ŒOperations.readdir”uh(h†hh)hKÅhjubhŒ invocation.”…”�”}”(hjhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hh)hKÅhjhhubah}”(h ]”h"]”h$]”h&]”uh(hwhjÐhhhh)hNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”hÂjThÃjUhÄjUhʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hh)hNubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7ŒPollHandle (class in pyfuse3)”Œpyfuse3.PollHandle”hNt”auh(h+hh hhhNhNubh<)�”}”(hhh]”(hA)�”}”(hŒ PollHandle”h]”(jâ)�”}”(hŒF[>, >]”h]”(jè)�”}”(hŒclass”h]”hŒclass”…”�”}”(hjphhhNhNubah}”(h ]”h"]”jôah$]”h&]”uh(jçhjlubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(j÷hjlubeh}”(h ]”h"]”h$]”h&]”hWhXuh(jáhjhhhhhhKubhG)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”(hShTeh$]”h&]”hWhXuh(hFhjhhhhhhKubhZ)�”}”(hjjh]”hŒ PollHandle”…”�”}”(hjœhhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhjhhhhhhKubeh}”(h ]”jcah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrhhsjjhtj­jj†”hvjjuh(h@hhhKhjehhubhx)�”}”(hhh]”(h})�”}”(hŒ=Opaque handle for delivering poll(2) readiness notifications.”h]”hŒ=Opaque handle for delivering poll(2) readiness notifications.”…”�”}”(hj²hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hŒ(docstring of pyfuse3.__init__.PollHandle”hKhj¯hhubh})�”}”(hX<Instances of this class are created by pyfuse3 and passed to `Operations.poll`. The filesystem may keep a reference and later call `PollHandle.notify` on the handle to wake up any process currently blocked in :manpage:`poll(2)`, :manpage:`select(2)` or :manpage:`epoll_wait(2)` for the corresponding file descriptor.”h]”(hŒ=Instances of this class are created by pyfuse3 and passed to ”…”�”}”(hjÀhhhNhNubh‡)�”}”(hŒ`Operations.poll`”h]”h�)�”}”(hjÊh]”hŒOperations.poll”…”�”}”(hjÌhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjÈubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jÖŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j­hªjjh«ŒOperations.poll”uh(h†hj¿hKhjÀubhŒ5. The filesystem may keep a reference and later call ”…”�”}”(hjÀhhhNhNubh‡)�”}”(hŒ`PollHandle.notify`”h]”h�)�”}”(hjìh]”hŒPollHandle.notify”…”�”}”(hjîhhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhjêubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”jøŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j­hªjjh«ŒPollHandle.notify”uh(h†hj¿hKhjÀubhŒ; on the handle to wake up any process currently blocked in ”…”�”}”(hjÀhhhNhNubjE )�”}”(hŒ:manpage:`poll(2)`”h]”hŒpoll(2)”…”�”}”(hj hhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œpoll(2)”Œpage”Œpoll”Œsection”jY hWhXuh(jD hjÀubhŒ, ”…”�”}”(hjÀhhhNhNubjE )�”}”(hŒ:manpage:`select(2)`”h]”hŒ select(2)”…”�”}”(hj#hhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œ select(2)”Œpage”Œselect”Œsection”jY hWhXuh(jD hjÀubhŒ or ”…”�”}”(hjÀhhhNhNubjE )�”}”(hŒ:manpage:`epoll_wait(2)`”h]”hŒ epoll_wait(2)”…”�”}”(hj:hhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œ epoll_wait(2)”Œpage”Œ epoll_wait”Œsection”jY hWhXuh(jD hjÀubhŒ' for the corresponding file descriptor.”…”�”}”(hjÀhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hj¿hKhj¯hhubh})�”}”(hŒ�A single notification is sufficient to clear all pending waiters; filesystems should normally discard the handle after notifying.”h]”hŒ�A single notification is sufficient to clear all pending waiters; filesystems should normally discard the handle after notifying.”…”�”}”(hjVhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hj¿hK hj¯hhubh})�”}”(hŒÅThe underlying ``fuse_pollhandle`` is automatically destroyed when the Python object is garbage collected, so filesystems should simply drop the reference when the notification is no longer needed.”h]”(hŒThe underlying ”…”�”}”(hjchhhNhNubh�)�”}”(hŒ``fuse_pollhandle``”h]”hŒfuse_pollhandle”…”�”}”(hjkhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hŒhjcubhŒ£ is automatically destroyed when the Python object is garbage collected, so filesystems should simply drop the reference when the notification is no longer needed.”…”�”}”(hjchhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hj¿hK hj¯hhubh,)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(h7Œ$notify() (pyfuse3.PollHandle method)”Œpyfuse3.PollHandle.notify”hNt”auh(h+hj¯hhhŒ&docstring of pyfuse3.PollHandle.notify”hNubh<)�”}”(hhh]”(hA)�”}”(hŒPollHandle.notify()”h]”(hZ)�”}”(hŒnotify”h]”hŒnotify”…”�”}”(hj–hhhNhNubah}”(h ]”h"]”(hehfeh$]”h&]”hWhXuh(hYhj’hhhhhKubh*Œdesc_parameterlist”“”)�”}”(hŒ()”h]”h}”(h ]”h"]”h$]”h&]”hWhXuh(j£hj’hhhhhKubeh}”(h ]”jŒah"]”(hlhmeh$]”h&]”hpŒpyfuse3”hrjjhsŒPollHandle.notify”htj³Œ PollHandle”Œnotify”‡”hvŒPollHandle.notify()”uh(h@hhhKhj�hhubhx)�”}”(hhh]”(h})�”}”(hŒ)Notify IO readiness for this poll handle.”h]”hŒ)Notify IO readiness for this poll handle.”…”�”}”(hj¼hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h|hjŽhKhj¹hhubh})�”}”(hŒãAfter this returns, any process waiting in :manpage:`poll(2)`, :manpage:`select(2)` or :manpage:`epoll_wait(2)` on the corresponding file descriptor will be woken so it can re-poll the filesystem for the current readiness mask.”h]”(hŒ+After this returns, any process waiting in ”…”�”}”(hjÉhhhNhNubjE )�”}”(hŒ:manpage:`poll(2)`”h]”hŒpoll(2)”…”�”}”(hjÑhhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œpoll(2)”Œpage”Œpoll”Œsection”jY hWhXuh(jD hjÉubhŒ, ”…”�”}”(hjÉhhhNhNubjE )�”}”(hŒ:manpage:`select(2)`”h]”hŒ select(2)”…”�”}”(hjèhhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œ select(2)”Œpage”Œselect”Œsection”jY hWhXuh(jD hjÉubhŒ or ”…”�”}”(hjÉhhhNhNubjE )�”}”(hŒ:manpage:`epoll_wait(2)`”h]”hŒ epoll_wait(2)”…”�”}”(hjÿhhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œ epoll_wait(2)”Œpage”Œ epoll_wait”Œsection”jY hWhXuh(jD hjÉubhŒt on the corresponding file descriptor will be woken so it can re-poll the filesystem for the current readiness mask.”…”�”}”(hjÉhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hjŽhKhj¹hhubh})�”}”(hŒšEach `PollHandle` is intended for a single notification. After a successful call, the filesystem should discard the handle and not call this method again.”h]”(hŒEach ”…”�”}”(hjhhhNhNubh‡)�”}”(hŒ `PollHandle`”h]”h�)�”}”(hj%h]”hŒ PollHandle”…”�”}”(hj'hhhNhNubah}”(h ]”h"]”(h˜Œpy”Œpy-obj”eh$]”h&]”uh(hŒhj#ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”h£Œ refdomain”j1Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰h©j³hªjjh«Œ PollHandle”uh(h†hjŽhKhjubhŒ‰ is intended for a single notification. After a successful call, the filesystem should discard the handle and not call this method again.”…”�”}”(hjhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h|hjŽhKhj¹hhubeh}”(h ]”h"]”h$]”h&]”uh(hwhj�hhhjŽhNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”hÂjRhÃjShÄjShʼnhƉhljhȉhɉhʉhˉuh(h;hhhj¯hjŽhNubeh}”(h ]”h"]”h$]”h&]”uh(hwhjehhhNhNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”hÂj^hÃj_hÄj_hʼnhƉhljhȉhɉhʉhˉuh(h;hhhh hNhNubeh}”(h ]”Œdata-structures”ah"]”h$]”Œdata structures”ah&]”uh(h hhhhhh)hKubah}”(h ]”h"]”h$]”h&]”Œsource”h)Œtranslation_progress”}”(Œtotal”KŒ translated”Kuuh(hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(Œ output_path”NhNŒ generator”NŒ datestamp”NŒ root_prefix”hŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”ˆŒ sectnum_xform”ˆŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œutf-8”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j‘Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h)Œ _destination”NŒ _config_files”]”Œdoctitle_xform”‰Œ docinfo_xform”ˆŒsectsubtitle_xform”‰Œfile_insertion_enabled”ˆŒ raw_enabled”ˆŒline_length_limit”M'Œvalidate”NŒpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”jgjdsŒ nametypes”}”jg‰sh }”(jdh h9hBh×hÜj&j+j—jœjj jØjÞjfjkj`jejj j™jžj-j2jÁjÆjfjkjðjõj(j-j`jej˜j�jÜjájo jt j§ j¬ jß jä j j jO jT j‡ jŒ j¿ jÄ j÷ jü j/ j4 js jx jý j j7 j= j j… jÔ jÚ j) j. jc jh j� j¢ j× jÜ jjjKjPj…jŠj¿jÄjùjÿjAjGj‰j�jÝjâjšjŸjjjJjOj‘j–jäjéjŒj‘jjjžj£j'j,j°jµj9j>jÎjÓjcjhjŒj’uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhhub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/.doctrees/environment.pickle0000644000175000017500001221103615201114623022534 0ustar00nikrationikratio€•Œsphinx.environment”ŒBuildEnvironment”“”)�”}”(Œ_app”NŒ _doctreedir”Œsphinx.util._pathlib”Œ_StrPath”“”Œ5/home/nikratio/in-progress/pyfuse3/doc/html/.doctrees”…”R”Œ_srcdir”h Œ&/home/nikratio/in-progress/pyfuse3/rst”…”R”Œconfig”Œ sphinx.config”ŒConfig”“”)�”}”(Œsetup”NŒ extensions”]”(Œsphinx.ext.autodoc”Œsphinx.ext.intersphinx”eŒlanguage”Œen”Œ locale_dirs”]”Œlocales”aŒsource_encoding”Œutf-8”Œ needs_sphinx”NŒproject”Œpyfuse3”Œauthor”ŒAuthor name not set”Œproject_copyright”Œ2010-2025, Nikolaus Rath”Œ copyright”h)Œversion”Œ 3.4.3.dev19+g57a14ee07.d20260509”Œrelease”h,Œtoday”Œ”Œ today_fmt”NŒfigure_language_filename”Œ{root}.{language}{ext}”Œ gettext_allow_fuzzy_translations”‰Œtranslation_progress_classes”‰Œroot_doc”Œindex”Œ master_doc”h6Œ source_suffix”}”Œ.rst”Œrestructuredtext”sŒexclude_patterns”]”Œinclude_patterns”]”Œ**”aŒ default_role”Œpy:obj”Œadd_function_parentheses”ˆŒadd_module_names”ˆŒtoc_object_entries”ˆŒtoc_object_entries_show_parents”Œdomain”Œtrim_footnote_reference_space”‰Œ show_authors”‰Œpygments_style”Œsphinx”Œhighlight_language”Œpython”Œhighlight_options”}”Œtemplates_path”]”Œ _templates”aŒtemplate_bridge”NŒ keep_warnings”‰Œsuppress_warnings”]”Œshow_warning_types”ˆŒmodindex_common_prefix”]”Œ rst_epilog”NŒ rst_prolog”NŒtrim_doctest_flags”ˆŒprimary_domain”Œpy”Œneeds_extensions”}”Œ manpages_url”NŒnitpicky”ˆŒnitpick_ignore”]”Œnitpick_ignore_regex”]”Œnumfig”‰Œnumfig_secnum_depth”KŒ numfig_format”}”(Œsection”Œ Section %s”Œfigure”ŒFig. %s”Œtable”ŒTable %s”Œ code-block”Œ Listing %s”uŒmaximum_signature_line_length”NŒmath_number_all”‰Œmath_eqref_format”NŒ math_numfig”ˆŒ math_numsep”Œ.”Œ tls_verify”ˆŒ tls_cacerts”NŒ user_agent”NŒ smartquotes”ˆŒsmartquotes_action”ŒqDe”Œsmartquotes_excludes”}”(Œ languages”]”(Œja”Œzh_CN”Œzh_TW”eŒbuilders”]”(Œman”Œtext”euŒoption_emphasise_placeholders”‰Œ epub_version”G@Œ epub_theme”Œepub”Œepub_theme_options”}”Œepub_identifier”Œunknown”Œ epub_scheme”h‘Œepub_uid”h‘Œ epub_cover”)Œ epub_guide”)Œepub_pre_files”]”Œepub_post_files”]”Œhtml_css_files”]”Œepub_exclude_files”]”Œ epub_tocdepth”KŒ epub_tocdup”ˆŒ epub_tocscope”Œdefault”Œepub_fix_images”‰Œepub_max_image_width”KŒepub_show_urls”Œinline”Œhtml_use_index”ˆŒepub_description”h‘Œepub_contributor”h‘Œepub_writing_mode”Œ horizontal”Œ html_theme”h¡Œhtml_theme_path”]”Œhtml_theme_options”}”Œ html_style”NŒ html_logo”NŒ html_favicon”NŒ html_js_files”]”Œhtml_static_path”]”Œ_static”aŒhtml_extra_path”]”Œhtml_last_updated_fmt”NŒhtml_last_updated_use_utc”‰Œ html_sidebars”}”Œhtml_additional_pages”}”Œhtml_domain_indices”ˆŒhtml_permalinks”ˆŒhtml_permalinks_icon”Œ¶”Œhtml_split_index”‰Œhtml_copy_source”ˆŒhtml_show_sourcelink”‰Œhtml_sourcelink_suffix”Œ.txt”Œhtml_use_opensearch”h/Œhtml_file_suffix”NŒhtml_link_suffix”NŒhtml_show_copyright”ˆŒhtml_show_search_summary”ˆŒhtml_show_sphinx”ˆŒ html_context”}”Œhtml_output_encoding”Œutf-8”Œhtml_compact_lists”ˆŒhtml_secnumber_suffix”Œ. ”Œhtml_search_language”NŒhtml_search_options”}”Œhtml_search_scorer”h/Œhtml_scaled_image_link”ˆŒ html_baseurl”h/Œhtml_codeblock_linenos_style”h¥Œhtml_math_renderer”NŒ html4_writer”‰Œ mathjax_path”Œ7https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js”Œmathjax_options”}”Œmathjax_inline”]”(Œ\(”Œ\)”eŒmathjax_display”]”(Œ\[”Œ\]”eŒmathjax_config”NŒmathjax3_config”NŒmathjax4_config”NŒmathjax_config_path”h/Œgettext_compact”ˆŒgettext_location”ˆŒ gettext_uuid”‰Œgettext_auto_build”ˆŒgettext_additional_targets”]”Œgettext_last_translator”ŒFULL NAME ”Œgettext_language_team”ŒLANGUAGE ”Œ latex_theme”Œmanual”Œ latex_logo”NŒlatex_appendices”]”Œlatex_use_latex_multicolumn”‰Œlatex_toplevel_sectioning”NŒlatex_domain_indices”ˆŒlatex_show_urls”Œno”Œlatex_show_pagerefs”‰Œlatex_elements”}”Œlatex_additional_files”]”Œlatex_table_style”]”(Œbooktabs”Œ colorrows”eŒlatex_theme_options”}”Œlatex_theme_path”]”Œlinkcheck_ignore”]”Œlinkcheck_exclude_documents”]”Œlinkcheck_allowed_redirects”Œsphinx.builders.linkcheck”Œ _SENTINEL_LAR”“”Œlinkcheck_auth”]”Œlinkcheck_request_headers”}”Œlinkcheck_retries”KŒlinkcheck_timeout”KŒlinkcheck_workers”KŒlinkcheck_anchors”ˆŒlinkcheck_anchors_ignore”]”Œ^!”aŒ linkcheck_anchors_ignore_for_url”)Œlinkcheck_rate_limit_timeout”G@rÀŒlinkcheck_allow_unauthorized”‰Œ#linkcheck_report_timeouts_as_broken”‰Œlinkcheck_case_insensitive_urls”)Œ man_show_urls”‰Œman_make_section_directory”‰Œtexinfo_appendices”]”Œtexinfo_elements”}”Œtexinfo_domain_indices”ˆŒtexinfo_show_urls”Œfootnote”Œtexinfo_no_detailmenu”‰Œtexinfo_cross_references”ˆŒtext_sectionchars”Œ*=-~"+`”Œ text_newlines”Œunix”Œtext_add_secnumbers”ˆŒtext_secnumber_suffix”Œ. ”Œ xml_pretty”ˆŒc_id_attributes”]”Œc_paren_attributes”]”Œc_extra_keywords”(Œcomplex”Œalignof”Œnoreturn”Œ static_assert”Œ thread_local”Œalignas”Œbool”Œ imaginary”‘”Œc_maximum_signature_line_length”NŒcpp_index_common_prefix”]”Œcpp_id_attributes”]”Œcpp_paren_attributes”]”Œ!cpp_maximum_signature_line_length”NŒcpp_debug_lookup”‰Œcpp_debug_show_tree”‰Œ(javascript_maximum_signature_line_length”NŒ2javascript_trailing_comma_in_multi_line_signatures”ˆŒstrip_signature_backslash”‰Œ!python_use_unqualified_type_names”‰Œ$python_maximum_signature_line_length”NŒ.python_trailing_comma_in_multi_line_signatures”ˆŒ"python_display_short_literal_types”‰Œapplehelp_bundle_id”NŒapplehelp_dev_region”Œen-us”Œapplehelp_bundle_version”Œ1”Œapplehelp_icon”NŒapplehelp_kb_url”NŒapplehelp_remote_url”NŒapplehelp_index_anchors”‰Œapplehelp_min_term_length”NŒapplehelp_indexer_path”Œ/usr/bin/hiutil”Œapplehelp_codesign_path”Œ/usr/bin/codesign”Œ applehelp_disable_external_tools”‰Œhtmlhelp_basename”Œ pyfuse3doc”Œhtmlhelp_file_suffix”NŒhtmlhelp_link_suffix”NŒqthelp_namespace”NŒ qthelp_theme”Œnonav”Œqthelp_theme_options”}”Œautoclass_content”Œclass”Œautodoc_member_order”Œ alphabetical”Œautodoc_class_signature”Œmixed”Œautodoc_default_options”}”Œautodoc_docstring_signature”ˆŒautodoc_mock_imports”]”Œautodoc_typehints”Œ signature”Œ$autodoc_typehints_description_target”Œall”Œautodoc_type_aliases”}”Œautodoc_typehints_format”Œshort”Œautodoc_warningiserror”ˆŒautodoc_inherit_docstrings”ˆŒautodoc_preserve_defaults”‰Œautodoc_use_type_comments”ˆŒautodoc_use_legacy_class_based”‰Œintersphinx_mapping”}”(hMhMŒhttps://docs.python.org/3/”N…”†”†”Œtrio”j�Œ&https://trio.readthedocs.io/en/stable/”N…”†”†”uŒintersphinx_resolve_self”h/Œintersphinx_cache_limit”KŒintersphinx_timeout”NŒintersphinx_disabled_reftypes”]”Œstd:doc”aŒepub_css_files”]”Œ_options”}”(h$h%Œenv”†”h&h'jŸ†”h(h)Œhtml”†”h*h)j¢†”h+h,jŸ†”h-h,jŸ†”h.h/jŸ†”h0NjŸ†”hhjŸ†”hhjŸ†”h1h2jŸ†”h3‰Œgettext”†”h4‰jŸ†”h7h6jŸ†”h5h6jŸ†”h8h9jŸ†”h!h"jŸ†”hh?jŸ†”hAhBjŸ†”hCˆjŸ†”hDˆjŸ†”hEˆjŸ†”hFhGjŸ†”hH‰jŸ†”hI‰jŸ†”hJhKj¢†”hLhMjŸ†”hNhOjŸ†”hPhQj¢†”hSNj¢†”hT‰jŸ†”hUhVjŸ†”hWˆjŸ†”hXhYj¢†”hZNjŸ†”h[NjŸ†”h\ˆjŸ†”h]h^jŸ†”h#Nh/†”h_h`h/†”haNjŸ†”hbˆh/†”hchdh/†”hehfh/†”hg‰jŸ†”hhKjŸ†”hihjjŸ†”hsNjŸ†”ht‰jŸ†”huNjŸ†”hvˆjŸ†”hwhxjŸ†”hyˆjŸ†”hzNjŸ†”h{NjŸ†”h|ˆjŸ†”h}h~jŸ†”hh€jŸ†”hЉjŸ†”Œ epub_basename”h%h/†”h‹G@h�†”hŒh�h�†”hŽh�h�†”Œ epub_title”h%h�†”Œ epub_author”h'h�†”Œ epub_language”hh�†”Œepub_publisher”h'h�†”Œepub_copyright”h)h�†”h�h‘h�†”h’h‘h�†”h“h‘jŸ†”h”)jŸ†”h•)jŸ†”h–h—jŸ†”h˜h™jŸ†”j›jœh�†”hœh�jŸ†”hžKjŸ†”hŸˆjŸ†”h h¡jŸ†”h¢‰jŸ†”h£KjŸ†”h¤h¥h�†”Œepub_use_index”ˆh�†”h§h‘h�†”h¨h‘h�†”h©hªh�†”h«h¡j¢†”h¬h­j¢†”h®h¯j¢†”Œ html_title”Œ6pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation”j¢†”Œhtml_short_title”Œ6pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation”j¢†”h°Nj¢†”h±Nj¢†”h²Nj¢†”hšh›j¢†”h³h´j¢†”hµh¶j¢†”h¸h¹j¢†”hºNj¢†”h»‰j¢†”h¼h½j¢†”h¾h¿j¢†”hÀˆj¢†”hÁˆj¢†”hÂhÃj¢†”h¦ˆj¢†”hĉj¢†”hňj¢†”hƉj¢†”hÇhÈj¢†”hÉh/j¢†”hÊNj¢†”hËNj¢†”ḧj¢†”h͈j¢†”hΈj¢†”hÏhÐj¢†”hÑhÒj¢†”hÓˆj¢†”hÔhÕj¢†”hÖNj¢†”h×hØj¢†”hÙh/h/†”hÚˆj¢†”hÛh/j¢†”hÜh¥j¢†”hÝNjŸ†”hÞ‰j¢†”hßhàj¢†”háhâj¢†”hãhäj¢†”hçhèj¢†”hëNj¢†”Œmathjax2_config”Nj¢†”hìNj¢†”híNj¢†”hîh/j¢†”hïˆj¬†”hðˆj¬†”hñ‰j¬†”hòˆjŸ†”hóhôjŸ†”hõhöj¬†”h÷høj¬†”Œ latex_engine”Œpdflatex”h/†”Œlatex_documents”]”(h6Œ pyfuse3.tex”Œpyfuse3”ŒAuthor name not set”hút”ah/†”hûNh/†”hühýh/†”hþ‰h/†”Œlatex_use_xindy”‰h/†”hÿNh/†”jˆh/†”jjh/†”j‰h/†”jjh/†”jjh/†”jj h/†”hùhúh/†”j j h/†”jjh/†”Œlatex_docclass”}”h/†”jjh/†”jjh/†”jjh/†”jjh/†”jjh/†”jKh/†”jKh/†”jKh/†”jˆh/†”j j!h/†”j#)h/†”j$G@rÀh/†”j%‰h/†”j&‰h/†”j')h/†”Œ man_pages”]”(h6Œpyfuse3”Œ(pyfuse3 3.4.3.dev19+g57a14ee07.d20260509”]”h'aKt”ah/†”j(‰h/†”j)‰h/†”Œsinglehtml_sidebars”h½j¢†”Œtexinfo_documents”]”(h6Œpyfuse3”h%h'jxŒOne line description of project”Œ Miscellaneous”t”ah/†”j*j+h/†”j,j-h/†”j.ˆh/†”j/j0h/†”j1‰h/†”j2ˆh/†”j3j4jŸ†”j5j6jŸ†”j7ˆjŸ†”j8j9jŸ†”j:ˆjŸ†”j;j<jŸ†”j=j>jŸ†”j?jHjŸ†”jINjŸ†”jJjKjŸ†”jLjMjŸ†”jNjOjŸ†”jPNjŸ†”jQ‰h/†”jR‰h/†”jSNjŸ†”jTˆjŸ†”jU‰jŸ†”jV‰jŸ†”jWNjŸ†”jXˆjŸ†”jY‰jŸ†”Œapplehelp_bundle_name”h%Œ applehelp”†”jZNjš†”j[j\jš†”j]j^jš†”j_Njš†”Œapplehelp_kb_product”Œ(pyfuse3-3.4.3.dev19+g57a14ee07.d20260509”jš†”j`Njš†”jaNjš†”jb‰jš†”jcNjš†”Œapplehelp_stopwords”hjš†”Œapplehelp_locale”hjš†”Œapplehelp_title”Œ pyfuse3 Help”jš†”Œapplehelp_codesign_identity”Njš†”Œapplehelp_codesign_flags”]”jš†”jdjejš†”jfjgjš†”jh‰jš†”Œdevhelp_basename”h%Œdevhelp”†”jijjh/†”jkNj¢†”jlNj¢†”Œqthelp_basename”h%j¢†”jmNj¢†”jnjoj¢†”jpjqj¢†”jrjsjŸ†”jtjujŸ†”jvjwjŸ†”jxjyjŸ†”jzˆjŸ†”j{j|jŸ†”j}j~jŸ†”jj€jŸ†”j�j‚jŸ†”jƒj„jŸ†”j…ˆjŸ†”j†ˆjŸ†”j‡‰jŸ†”jˆˆjŸ†”j‰‰jŸ†”jŠj‹jŸ†”j•h/jŸ†”j–Kh/†”j—Nh/†”j˜j™jŸ†”uubŒ config_status”KŒconfig_status_extra”h/Œevents”NŒproject”Œsphinx.project”ŒProject”“”)�”}”(Œsrcdir”h h…”R”h8h:…”Œ_first_source_suffix”h:Œdocnames”�”(Œfuse_api”Œgotchas”Œexample”Œutil”Œasyncio”Œ operations”Œdata”Œchanges”Œabout”Œindex”Œgeneral”Œinstall”�Œ_path_to_docname”}”(Œpathlib”Œ PosixPath”“”Œ about.rst”…”R”jíjõŒ asyncio.rst”…”R”jéjõŒ changes.rst”…”R”jìjõŒdata.rst”…”R”jëjõŒ example.rst”…”R”jçjõŒ fuse_api.rst”…”R”jåjõŒ general.rst”…”R”jïjõŒ gotchas.rst”…”R”jæjõŒ index.rst”…”R”jîjõŒ install.rst”…”R”jðjõŒoperations.rst”…”R”jêjõŒutil.rst”…”R”jèuŒ_docname_to_path”}”(jíjøjéjûjìjþjëjjçjjåjjïj jæj jîjjðjjêjjèjuubŒversion”}”(Œsphinx.domains.c”KŒsphinx.domains.changeset”KŒsphinx.domains.citation”KŒsphinx.domains.cpp”K Œsphinx.domains.index”KŒsphinx.domains.javascript”KŒsphinx.domains.math”KŒsphinx.domains.python”KŒsphinx.domains.rst”KŒsphinx.domains.std”KhKhKKBuŒversioning_condition”‰Œversioning_compare”‰Œsettings”}”(Œauto_id_prefix”Œid”Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒ pep_base_url”Œhttps://peps.python.org/”Œpep_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œrfc_references”NŒinput_encoding”h"Œdoctitle_xform”‰Œsectsubtitle_xform”‰Œsection_self_link”‰Œ halt_level”KŒfile_insertion_enabled”ˆŒsmartquotes_locales”]”Œenv”hŒtrim_footnote_reference_space”‰Œ language_code”hŒ smart_quotes”ˆuŒall_docs”}”(Œabout”б;ð’²QŒasyncio”Š„Jð’²QŒdata”мJò’²QŒexample”Šjò’²QŒfuse_api”ŠQØò’²QŒgeneral”ŠËôò’²QŒgotchas”мó’²QŒindex”Š?ó’²QŒinstall”Š©,ó’²QŒ operations”Šͬô’²QŒutil”Š6ðô’²QjìŠ�¤h°´QuŒ dependencies”Œ collections”Œ defaultdict”“”Œbuiltins”Œset”“”…”R”(jF�”(h Œ&/home/nikratio/in-progress/pyfuse3/rst”Œ ../README.rst”†”R”�jH�”(h j[Œ7../src/pyfuse3/__init__.cpython-314-x86_64-linux-gnu.so”†”R”�jI�”(h j[Œ../examples/hello.py”†”R”h j[Œ../examples/tmpfs.py”†”R”h j[Œ../examples/passthroughfs.py”†”R”�jJ�”(h j[Œ7../src/pyfuse3/__init__.cpython-314-x86_64-linux-gnu.so”†”R”�jO�”(h j[Œ../src/pyfuse3/_pyfuse3.py”†”R”�jP�”(h j[Œ7../src/pyfuse3/__init__.cpython-314-x86_64-linux-gnu.so”†”R”�jì�”(h hŒ../Changes.rst”†”R”�uŒincluded”jTjW…”R”(jF�”(Œ)/home/nikratio/in-progress/pyfuse3/README”�jì�”(Œ*/home/nikratio/in-progress/pyfuse3/Changes”�uŒ reread_always”�”Œ_pickled_doctree_cache”}”Œ_write_doc_doctree_cache”}”Œmetadata”jTjUŒdict”“”…”R”Œtitles”}”(jFŒdocutils.nodes”Œtitle”“”)�”}”(Œ rawsource”h/Œchildren”]”j‘ŒText”“”ŒAbout”…”�”}”Œparent”j”sbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”uŒtagname”Œtitle”ubjGj“)�”}”(j–h/j—]”jšŒasyncio Support”…”�”}”jŸj¬sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj«ubjHj“)�”}”(j–h/j—]”jšŒData Structures”…”�”}”jŸj¸sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj«ubjIj“)�”}”(j–h/j—]”jšŒExample File Systems”…”�”}”jŸjÄsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj«ubjJj“)�”}”(j–h/j—]”jšŒFUSE API Functions”…”�”}”jŸjÐsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj«ubjKj“)�”}”(j–h/j—]”jšŒGeneral Information”…”�”}”jŸjÜsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj«ubjLj“)�”}”(j–h/j—]”jšŒCommon Gotchas”…”�”}”jŸjèsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj«ubjMj“)�”}”(j–h/j—]”jšŒpyfuse3 Documentation”…”�”}”jŸjôsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj«ubjNj“)�”}”(j–h/j—]”jšŒ Installation”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj«ubjOj“)�”}”(j–h/j—]”jšŒRequest Handlers”…”�”}”jŸj sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj«ubjPj“)�”}”(j–h/j—]”jšŒUtility Functions”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj«ubjìj“)�”}”(j–h/j—]”jšŒ Changelog”…”�”}”jŸj$sbaj }”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”ujªj’ubuŒ longtitles”}”(jFj”jGj¬jHj¸jIjÄjJjÐjKjÜjLjèjMjôjNjjOj jPjjìj$uŒtocs”}”(jFj‘Œ bullet_list”“”)�”}”(j–h/j—]”j‘Œ list_item”“”)�”}”(j–h/j—]”(Œsphinx.addnodes”Œcompact_paragraph”“”)�”}”(j–h/j—]”j‘Œ reference”“”)�”}”(j–h/j—]”jšŒAbout”…”�”}”jŸjJsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jFŒ anchorname”h/ujªŒ reference”jŸjEubaj }”(j¢]”j¤]”j¦]”j¨]”ujªŒcompact_paragraph”jŸj?ubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒ Getting Help”…”�”}”jŸjisbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jFŒ anchorname”Œ #getting-help”ujªjYjŸjfubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjcubaj }”(j¢]”j¤]”j¦]”j¨]”ujªŒ list_item”jŸj`ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒDevelopment Status”…”�”}”jŸjŠsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jFŒ anchorname”Œ#development-status”ujªjYjŸj‡ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸj„ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj`ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒ Contributing”…”�”}”jŸjªsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jFŒ anchorname”Œ #contributing”ujªjYjŸj§ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸj¤ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj`ubej }”(j¢]”j¤]”j¦]”j¨]”ujªŒ bullet_list”jŸj?ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj:ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉubjGj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒasyncio Support”…”�”}”jŸjÝsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jGŒ anchorname”h/ujªjYjŸjÚubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸj×ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjÔubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉubjHj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒData Structures”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”h/ujªjYjŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjþubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j‘Œliteral”“”)�”}”(j–h/j—]”jšŒENOATTR”…”�”}”jŸj&sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªŒliteral”jŸj!ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.ENOATTR”ujªjYjŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ ROOT_INODE”…”�”}”jŸjPsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjMubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.ROOT_INODE”ujªjYjŸjJubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjGubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒRENAME_EXCHANGE”…”�”}”jŸjysbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjvubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.RENAME_EXCHANGE”ujªjYjŸjsubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjpubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒRENAME_NOREPLACE”…”�”}”jŸj¢sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjŸubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.RENAME_NOREPLACE”ujªjYjŸjœubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj™ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒdefault_options”…”�”}”jŸjËsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjÈubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.default_options”ujªjYjŸjÅubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjÂubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ FUSEError”…”�”}”jŸjôsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjñubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.FUSEError”ujªjYjŸjîubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjëubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ FileHandleT”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.FileHandleT”ujªjYjŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ FileNameT”…”�”}”jŸjFsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjCubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.FileNameT”ujªjYjŸj@ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj=ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒFlagT”…”�”}”jŸjosbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjlubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.FlagT”ujªjYjŸjiubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjfubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒInodeT”…”�”}”jŸj˜sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj•ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.InodeT”ujªjYjŸj’ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj�ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒModeT”…”�”}”jŸjÁsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj¾ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.ModeT”ujªjYjŸj»ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj¸ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ XAttrNameT”…”�”}”jŸjêsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjçubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.XAttrNameT”ujªjYjŸjäubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjáubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒRequestContext”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.RequestContext”ujªjYjŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj ubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒRequestContext.pid”…”�”}”jŸj:sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj7ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.RequestContext.pid”ujªjYjŸj4ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj1ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj.ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒRequestContext.uid”…”�”}”jŸjcsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj`ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.RequestContext.uid”ujªjYjŸj]ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjZubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj.ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒRequestContext.gid”…”�”}”jŸjŒsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj‰ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.RequestContext.gid”ujªjYjŸj†ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjƒubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj.ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒRequestContext.umask”…”�”}”jŸjµsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj²ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.RequestContext.umask”ujªjYjŸj¯ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj¬ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj.ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸj ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ StatvfsData”…”�”}”jŸjèsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjåubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.StatvfsData”ujªjYjŸjâubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjßubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒStatvfsData.f_bsize”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.StatvfsData.f_bsize”ujªjYjŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒStatvfsData.f_frsize”…”�”}”jŸj8sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj5ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.StatvfsData.f_frsize”ujªjYjŸj2ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj/ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒStatvfsData.f_blocks”…”�”}”jŸjasbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj^ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.StatvfsData.f_blocks”ujªjYjŸj[ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjXubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒStatvfsData.f_bfree”…”�”}”jŸjŠsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj‡ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.StatvfsData.f_bfree”ujªjYjŸj„ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj�ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒStatvfsData.f_bavail”…”�”}”jŸj³sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj°ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.StatvfsData.f_bavail”ujªjYjŸj­ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjªubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒStatvfsData.f_files”…”�”}”jŸjÜsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjÙubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.StatvfsData.f_files”ujªjYjŸjÖubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjÓubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒStatvfsData.f_ffree”…”�”}”jŸj sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.StatvfsData.f_ffree”ujªjYjŸjÿubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjüubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒStatvfsData.f_favail”…”�”}”jŸj. sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj+ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.StatvfsData.f_favail”ujªjYjŸj( ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj% ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒStatvfsData.f_namemax”…”�”}”jŸjW sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjT ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.StatvfsData.f_namemax”ujªjYjŸjQ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjN ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubej }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸjßubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes”…”�”}”jŸjŠ sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj‡ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.EntryAttributes”ujªjYjŸj„ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj� ubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.st_ino”…”�”}”jŸj± sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj® ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.EntryAttributes.st_ino”ujªjYjŸj« ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj¨ ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.generation”…”�”}”jŸjÚ sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj× ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ##pyfuse3.EntryAttributes.generation”ujªjYjŸjÔ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjÑ ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.entry_timeout”…”�”}”jŸj sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ&#pyfuse3.EntryAttributes.entry_timeout”ujªjYjŸjý ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjú ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.attr_timeout”…”�”}”jŸj, sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj) ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ%#pyfuse3.EntryAttributes.attr_timeout”ujªjYjŸj& ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj# ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.st_mode”…”�”}”jŸjU sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjR ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ #pyfuse3.EntryAttributes.st_mode”ujªjYjŸjO ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjL ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.st_nlink”…”�”}”jŸj~ sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj{ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ!#pyfuse3.EntryAttributes.st_nlink”ujªjYjŸjx ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸju ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.st_uid”…”�”}”jŸj§ sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj¤ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.EntryAttributes.st_uid”ujªjYjŸj¡ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjž ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.st_gid”…”�”}”jŸjÐ sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjÍ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.EntryAttributes.st_gid”ujªjYjŸjÊ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjÇ ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.st_rdev”…”�”}”jŸjù sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjö ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ #pyfuse3.EntryAttributes.st_rdev”ujªjYjŸjó ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjð ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.st_size”…”�”}”jŸj" sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ #pyfuse3.EntryAttributes.st_size”ujªjYjŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.st_blksize”…”�”}”jŸjK sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjH ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ##pyfuse3.EntryAttributes.st_blksize”ujªjYjŸjE ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjB ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.st_blocks”…”�”}”jŸjt sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjq ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ"#pyfuse3.EntryAttributes.st_blocks”ujªjYjŸjn ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjk ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.st_atime_ns”…”�”}”jŸj� sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjš ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ$#pyfuse3.EntryAttributes.st_atime_ns”ujªjYjŸj— ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj” ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.st_ctime_ns”…”�”}”jŸjÆ sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjà ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ$#pyfuse3.EntryAttributes.st_ctime_ns”ujªjYjŸjÀ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj½ ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒEntryAttributes.st_mtime_ns”…”�”}”jŸjï sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjì ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ$#pyfuse3.EntryAttributes.st_mtime_ns”ujªjYjŸjé ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjæ ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj¥ ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸj� ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒFileInfo”…”�”}”jŸj" sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.FileInfo”ujªjYjŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj ubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ FileInfo.fh”…”�”}”jŸjI sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjF ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.FileInfo.fh”ujªjYjŸjC ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj@ ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj= ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒFileInfo.direct_io”…”�”}”jŸjr sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjo ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.FileInfo.direct_io”ujªjYjŸjl ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸji ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj= ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒFileInfo.keep_cache”…”�”}”jŸj› sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj˜ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.FileInfo.keep_cache”ujªjYjŸj• ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj’ ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj= ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒFileInfo.nonseekable”…”�”}”jŸjÄ sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjÁ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.FileInfo.nonseekable”ujªjYjŸj¾ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj» ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj= ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸj ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ SetattrFields”…”�”}”jŸj÷ sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjô ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.SetattrFields”ujªjYjŸjñ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjî ubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒSetattrFields.update_atime”…”�”}”jŸj sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ##pyfuse3.SetattrFields.update_atime”ujªjYjŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒSetattrFields.update_mtime”…”�”}”jŸjG sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjD ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ##pyfuse3.SetattrFields.update_mtime”ujªjYjŸjA ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj> ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒSetattrFields.update_mode”…”�”}”jŸjp sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjm ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ"#pyfuse3.SetattrFields.update_mode”ujªjYjŸjj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjg ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒSetattrFields.update_uid”…”�”}”jŸj™ sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj– ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ!#pyfuse3.SetattrFields.update_uid”ujªjYjŸj“ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj� ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒSetattrFields.update_gid”…”�”}”jŸj sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj¿ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ!#pyfuse3.SetattrFields.update_gid”ujªjYjŸj¼ ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj¹ ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒSetattrFields.update_size”…”�”}”jŸjë sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjè ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ"#pyfuse3.SetattrFields.update_size”ujªjYjŸjå ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjâ ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸjî ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ ReaddirToken”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.ReaddirToken”ujªjYjŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ PollHandle”…”�”}”jŸjGsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjDubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.PollHandle”ujªjYjŸjAubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj>ubj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒPollHandle.notify()”…”�”}”jŸjnsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjkubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jHŒ anchorname”Œ#pyfuse3.PollHandle.notify”ujªjYjŸjhubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjeubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjbubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸj>ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubej }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸjþubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjûubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉubjIj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒExample File Systems”…”�”}”jŸj°sbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jIŒ anchorname”h/ujªjYjŸj­ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjªubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒ"Single-file, Read-only File System”…”�”}”jŸjÍsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jIŒ anchorname”Œ"#single-file-read-only-file-system”ujªjYjŸjÊubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjÇubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjÄubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒIn-memory File System”…”�”}”jŸjísbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jIŒ anchorname”Œ#in-memory-file-system”ujªjYjŸjêubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjçubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjÄubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒ!Passthrough / Overlay File System”…”�”}”jŸj sbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jIŒ anchorname”Œ #passthrough-overlay-file-system”ujªjYjŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjÄubej }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸjªubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj§ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉubjJj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒFUSE API Functions”…”�”}”jŸj?sbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jJŒ anchorname”h/ujªjYjŸj<ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸj9ubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒinit()”…”�”}”jŸj_sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj\ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jJŒ anchorname”Œ #pyfuse3.init”ujªjYjŸjYubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjVubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjSubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒmain()”…”�”}”jŸjˆsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj…ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jJŒ anchorname”Œ #pyfuse3.main”ujªjYjŸj‚ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjSubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ terminate()”…”�”}”jŸj±sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj®ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jJŒ anchorname”Œ#pyfuse3.terminate”ujªjYjŸj«ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj¨ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjSubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒclose()”…”�”}”jŸjÚsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj×ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jJŒ anchorname”Œ#pyfuse3.close”ujªjYjŸjÔubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjÑubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjSubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒinvalidate_inode()”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jJŒ anchorname”Œ#pyfuse3.invalidate_inode”ujªjYjŸjýubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjúubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjSubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒinvalidate_entry()”…”�”}”jŸj,sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj)ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jJŒ anchorname”Œ#pyfuse3.invalidate_entry”ujªjYjŸj&ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj#ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjSubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒinvalidate_entry_async()”…”�”}”jŸjUsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjRubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jJŒ anchorname”Œ#pyfuse3.invalidate_entry_async”ujªjYjŸjOubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjLubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjSubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒnotify_store()”…”�”}”jŸj~sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj{ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jJŒ anchorname”Œ#pyfuse3.notify_store”ujªjYjŸjxubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjuubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjSubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒreaddir_reply()”…”�”}”jŸj§sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj¤ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jJŒ anchorname”Œ#pyfuse3.readdir_reply”ujªjYjŸj¡ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjžubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjSubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ trio_token”…”�”}”jŸjÐsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjÍubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jJŒ anchorname”Œ#pyfuse3.trio_token”ujªjYjŸjÊubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjÇubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjSubej }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸj9ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj6ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉubjKj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒGeneral Information”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jKŒ anchorname”h/ujªjYjŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒGetting started”…”�”}”jŸj%sbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jKŒ anchorname”Œ#getting-started”ujªjYjŸj"ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒ Lookup Counts”…”�”}”jŸjEsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jKŒ anchorname”Œ#lookup-counts”ujªjYjŸjBubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸj?ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒFUSE and VFS Locking”…”�”}”jŸjesbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jKŒ anchorname”Œ#fuse-and-vfs-locking”ujªjYjŸjbubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸj_ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubej }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸjubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjÿubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉubjLj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒCommon Gotchas”…”�”}”jŸj—sbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jLŒ anchorname”h/ujªjYjŸj”ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸj‘ubj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒ!Removing inodes in unlink handler”…”�”}”jŸj´sbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jLŒ anchorname”Œ"#removing-inodes-in-unlink-handler”ujªjYjŸj±ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸj®ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj«ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸj‘ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjŽubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉubjMj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒpyfuse3 Documentation”…”�”}”jŸjæsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jMŒ anchorname”h/ujªjYjŸjãubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjàubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒTable of Contents”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jMŒ anchorname”Œ#module-pyfuse3”ujªjYjŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjýubj9)�”}”(j–h/j—]”jBŒtoctree”“”)�”}”(j—]”j–h/jªŒtoctree”j }”(j¢]”j¤]”j¦]”j¨]”Œparent”jMŒentries”]”(NŒabout”†”NŒinstall”†”NŒgeneral”†”NŒasyncio”†”NŒfuse_api”†”NŒdata”†”NŒ operations”†”NŒutil”†”NŒgotchas”†”NŒexample”†”NŒchanges”†”eŒ includefiles”]”(j)j+j-j/j1j3j5j7j9j;j=eŒmaxdepth”KŒcaption”NŒglob”‰Œhidden”‰Œ includehidden”‰Œnumbered”KŒ titlesonly”‰Œ rawentries”]”uŒline”K Œsource”Œ0/home/nikratio/in-progress/pyfuse3/rst/index.rst”jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸjýubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjúubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒIndices and tables”…”�”}”jŸj]sbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jMŒ anchorname”Œ#indices-and-tables”ujªjYjŸjZubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjWubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjúubej }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸjàubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjÝubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉubjNj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒ Installation”…”�”}”jŸj�sbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jNŒ anchorname”h/ujªjYjŸjŒubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸj‰ubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒ Dependencies”…”�”}”jŸj¬sbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jNŒ anchorname”Œ #dependencies”ujªjYjŸj©ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸj¦ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj£ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒStable releases”…”�”}”jŸjÌsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jNŒ anchorname”Œ#stable-releases”ujªjYjŸjÉubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjÆubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj£ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒ(Installing from Git / Developing pyfuse3”…”�”}”jŸjìsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jNŒ anchorname”Œ'#installing-from-git-developing-pyfuse3”ujªjYjŸjéubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjæubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj£ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸj‰ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj†ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉubjOj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRequest Handlers”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”h/ujªjYjŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸjubj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ Operations”…”�”}”jŸj>sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj;ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations”ujªjYjŸj8ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj5ubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.access()”…”�”}”jŸjesbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjbubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.access”ujªjYjŸj_ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj\ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.create()”…”�”}”jŸjŽsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj‹ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.create”ujªjYjŸjˆubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj…ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.flush()”…”�”}”jŸj·sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj´ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.flush”ujªjYjŸj±ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj®ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.forget()”…”�”}”jŸjàsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjÝubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.forget”ujªjYjŸjÚubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj×ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.fsync()”…”�”}”jŸj sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.fsync”ujªjYjŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.fsyncdir()”…”�”}”jŸj2sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj/ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.fsyncdir”ujªjYjŸj,ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj)ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.getattr()”…”�”}”jŸj[sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjXubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.getattr”ujªjYjŸjUubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjRubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.getxattr()”…”�”}”jŸj„sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj�ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.getxattr”ujªjYjŸj~ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj{ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.init()”…”�”}”jŸj­sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjªubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.init”ujªjYjŸj§ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj¤ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.link()”…”�”}”jŸjÖsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjÓubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.link”ujªjYjŸjÐubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjÍubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.listxattr()”…”�”}”jŸjÿsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjüubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.listxattr”ujªjYjŸjùubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjöubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.lookup()”…”�”}”jŸj(sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj%ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.lookup”ujªjYjŸj"ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.mkdir()”…”�”}”jŸjQsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjNubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.mkdir”ujªjYjŸjKubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjHubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.mknod()”…”�”}”jŸjzsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjwubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.mknod”ujªjYjŸjtubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸ•-jqubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.open()”…”�”}”jŸj£sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.open”ujªjYjŸj�ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjšubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.opendir()”…”�”}”jŸjÌsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjÉubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.opendir”ujªjYjŸjÆubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjÃubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.poll()”…”�”}”jŸjõsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjòubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.poll”ujªjYjŸjïubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjìubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.read()”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.read”ujªjYjŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.readdir()”…”�”}”jŸjGsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjDubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.readdir”ujªjYjŸjAubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj>ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.readlink()”…”�”}”jŸjpsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjmubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.readlink”ujªjYjŸjjubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjgubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.release()”…”�”}”jŸj™sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj–ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.release”ujªjYjŸj“ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj�ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.releasedir()”…”�”}”jŸjÂsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj¿ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.releasedir”ujªjYjŸj¼ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj¹ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.removexattr()”…”�”}”jŸjësbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjèubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.removexattr”ujªjYjŸjåubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjâubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.rename()”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.rename”ujªjYjŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.rmdir()”…”�”}”jŸj=sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj:ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.rmdir”ujªjYjŸj7ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj4ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.setattr()”…”�”}”jŸjfsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjcubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.setattr”ujªjYjŸj`ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj]ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.setxattr()”…”�”}”jŸj�sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjŒubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.setxattr”ujªjYjŸj‰ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj†ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.stacktrace()”…”�”}”jŸj¸sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjµubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.stacktrace”ujªjYjŸj²ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj¯ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.statfs()”…”�”}”jŸjásbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjÞubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.statfs”ujªjYjŸjÛubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjØubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.symlink()”…”�”}”jŸj sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.symlink”ujªjYjŸjubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.unlink()”…”�”}”jŸj3sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj0ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.unlink”ujªjYjŸj-ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj*ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒOperations.write()”…”�”}”jŸj\sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjYubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jOŒ anchorname”Œ#pyfuse3.Operations.write”ujªjYjŸjVubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjSubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjYubej }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸj5ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj2ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸjubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉubjPj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒUtility Functions”…”�”}”jŸjžsbaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jPŒ anchorname”h/ujªjYjŸj›ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªj_jŸj˜ubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ setxattr()”…”�”}”jŸj¾sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj»ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jPŒ anchorname”Œ#pyfuse3.setxattr”ujªjYjŸj¸ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjµubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj²ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ getxattr()”…”�”}”jŸjçsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸjäubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jPŒ anchorname”Œ#pyfuse3.getxattr”ujªjYjŸjáubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjÞubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj²ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒ listdir()”…”�”}”jŸjsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jPŒ anchorname”Œ#pyfuse3.listdir”ujªjYjŸj ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj²ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒget_sup_groups()”…”�”}”jŸj9sbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj6ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jPŒ anchorname”Œ#pyfuse3.get_sup_groups”ujªjYjŸj3ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸj0ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj²ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”j%)�”}”(j–h/j—]”jšŒsyncfs()”…”�”}”jŸjbsbaj }”(j¢]”j¤]”j¦]”j¨]”ujªj2jŸj_ubaj }”(j¢]”j¤]”j¦]”j¨]”Œinternal”ˆŒrefuri”jPŒ anchorname”Œ#pyfuse3.syncfs”ujªjYjŸj\ubaj }”(j¢]”j¤]”j¦]”j¨]”Œskip_section_number”ˆujªj_jŸjYubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj²ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjÉjŸj˜ubej }”(j¢]”j¤]”j¦]”j¨]”ujªjƒjŸj•ubaj }”(j¢]”j¤]”j¦]”j¨]”ujªjÉubjìj9)�”}”(j–h/j—]”j>)�”}”(j–h/j—]”(jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒ Changelog”…”�”}”jŸjšsbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”h/ujªjHjŸj—ubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸj”ubj9)�”}”(j–h/j—]”(j>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒpyfuse 3.5.0 (2026-05-13)”…”�”}”jŸj·sbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#pyfuse-3-5-0-2026-05-13”ujªjHjŸj´ubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸj±ubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒpyfuse 3.4.2 (2026-01-06)”…”�”}”jŸj×sbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#pyfuse-3-4-2-2026-01-06”ujªjHjŸjÔubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸjÑubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 3.4.1 (2025-12-22)”…”�”}”jŸj÷sbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-3-4-1-2025-12-22”ujªjHjŸjôubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸjñubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 3.4.0 (2024-08-28)”…”�”}”jŸjsbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-3-4-0-2024-08-28”ujªjHjŸjubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸjubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 3.3.0 (2023-08-06)”…”�”}”jŸj7sbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-3-3-0-2023-08-06”ujªjHjŸj4ubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸj1ubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 3.2.3 (2023-05-09)”…”�”}”jŸjWsbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-3-2-3-2023-05-09”ujªjHjŸjTubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸjQubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 3.2.2 (2022-09-28)”…”�”}”jŸjwsbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-3-2-2-2022-09-28”ujªjHjŸjtubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸjqubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 3.2.1 (2021-09-17)”…”�”}”jŸj—sbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-3-2-1-2021-09-17”ujªjHjŸj”ubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸj‘ubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 3.2.0 (2020-12-30)”…”�”}”jŸj·sbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-3-2-0-2020-12-30”ujªjHjŸj´ubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸj±ubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 3.1.1 (2020-10-06)”…”�”}”jŸj×sbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-3-1-1-2020-10-06”ujªjHjŸjÔubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸjÑubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 3.1.0 (2020-05-31)”…”�”}”jŸj÷sbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-3-1-0-2020-05-31”ujªjHjŸjôubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸjñubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 3.0.0 (2020-05-08)”…”�”}”jŸjsbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-3-0-0-2020-05-08”ujªjHjŸjubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸjubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒ Release 2.0.0”…”�”}”jŸj7sbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-2-0-0”ujªjHjŸj4ubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸj1ubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 1.3.1 (2019-07-17)”…”�”}”jŸjWsbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-1-3-1-2019-07-17”ujªjHjŸjTubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸjQubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 1.3 (2019-06-02)”…”�”}”jŸjwsbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-1-3-2019-06-02”ujªjHjŸjtubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸjqubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 1.2 (2018-12-22)”…”�”}”jŸj—sbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-1-2-2018-12-22”ujªjHjŸj”ubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸj‘ubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 1.1 (2018-11-02)”…”�”}”jŸj·sbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-1-1-2018-11-02”ujªjHjŸj´ubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸj±ubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 1.0 (2018-10-08)”…”�”}”jŸj×sbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-1-0-2018-10-08”ujªjHjŸjÔubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸjÑubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubj>)�”}”(j–h/j—]”jD)�”}”(j–h/j—]”jI)�”}”(j–h/j—]”jšŒRelease 0.9 (2018-09-27)”…”�”}”jŸj÷sbaj }”(j,]”j.]”j0]”j2]”Œinternal”ˆŒrefuri”jìŒ anchorname”Œ#release-0-9-2018-09-27”ujªjHjŸjôubaj }”(j,]”j.]”j0]”j2]”ujªjCjŸjñubaj }”(j,]”j.]”j0]”j2]”ujªj=jŸj®ubej }”(j,]”j.]”j0]”j2]”ujªj8jŸj”ubej }”(j,]”j.]”j0]”j2]”ujªj=jŸj‘ubaj }”(j,]”j.]”j0]”j2]”ujªj8ubuŒtoc_num_entries”}”(jFKjGKjHK;jIKjJK jKKjLKjMKjNKjOK"jPKjìKuŒtoc_secnumbers”}”Œtoc_fignumbers”}”Œtoctree_includes”}”jM]”(j)j+j-j/j1j3j5j7j9j;j=esŒfiles_to_rebuild”}”(j)�”(jM�j+�”(jM�j-�”(jM�j/�”(jM�j1�”(jM�j3�”(jM�j5�”(jM�j7�”(jM�j9�”(jM�j;�”(jM�j=�”(jM�uŒ glob_toctrees”�”Œnumbered_toctrees”�”Œ domaindata”}”(Œc”}”(Œ root_symbol”Œsphinx.domains.c._symbol”ŒSymbol”“”)�”}”(jŸNŒ siblingAbove”NŒ siblingBelow”NŒident”NŒ declaration”NŒdocname”NjJNŒisRedeclaration”‰Œ_children_by_name”}”Œ_children_by_docname”}”Œ_anon_children”�”ubŒobjects”}”jKuŒ changeset”}”(Œchanges”}”jKuŒcitation”}”(jKŒ citations”}”Œ citation_refs”}”uŒcpp”}”(j>Œsphinx.domains.cpp._symbol”j@“”)�”}”(jŸNjDNjENŒ identOrOp”NŒtemplateParams”NŒ templateArgs”NjGNjHNjJNjI‰Œ _children”]”jN]”ubj¦}”jKuŒindex”}”(jKj'}”(jF]”jG]”(Œpair”Œmodule; pyfuse3.asyncio”Œmodule-pyfuse3.asyncio”h/Nt”ajH]”((Œsingle”ŒENOATTR (in module pyfuse3)”Œpyfuse3.ENOATTR”h/Nt”(jsŒROOT_INODE (in module pyfuse3)”Œpyfuse3.ROOT_INODE”h/Nt”(jsŒ#RENAME_EXCHANGE (in module pyfuse3)”Œpyfuse3.RENAME_EXCHANGE”h/Nt”(jsŒ$RENAME_NOREPLACE (in module pyfuse3)”Œpyfuse3.RENAME_NOREPLACE”h/Nt”(jsŒ#default_options (in module pyfuse3)”Œpyfuse3.default_options”h/Nt”(jsŒ FUSEError”Œpyfuse3.FUSEError”h/Nt”(jsŒFileHandleT (class in pyfuse3)”Œpyfuse3.FileHandleT”h/Nt”(jsŒFileNameT (class in pyfuse3)”Œpyfuse3.FileNameT”h/Nt”(jsŒFlagT (class in pyfuse3)”Œ pyfuse3.FlagT”h/Nt”(jsŒInodeT (class in pyfuse3)”Œpyfuse3.InodeT”h/Nt”(jsŒModeT (class in pyfuse3)”Œ pyfuse3.ModeT”h/Nt”(jsŒXAttrNameT (class in pyfuse3)”Œpyfuse3.XAttrNameT”h/Nt”(jsŒ!RequestContext (class in pyfuse3)”Œpyfuse3.RequestContext”h/Nt”(jsŒ&pid (pyfuse3.RequestContext attribute)”Œpyfuse3.RequestContext.pid”h/Nt”(jsŒ&uid (pyfuse3.RequestContext attribute)”Œpyfuse3.RequestContext.uid”h/Nt”(jsŒ&gid (pyfuse3.RequestContext attribute)”Œpyfuse3.RequestContext.gid”h/Nt”(jsŒ(umask (pyfuse3.RequestContext attribute)”Œpyfuse3.RequestContext.umask”h/Nt”(jsŒStatvfsData (class in pyfuse3)”Œpyfuse3.StatvfsData”h/Nt”(jsŒ'f_bsize (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_bsize”h/Nt”(jsŒ(f_frsize (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_frsize”h/Nt”(jsŒ(f_blocks (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_blocks”h/Nt”(jsŒ'f_bfree (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_bfree”h/Nt”(jsŒ(f_bavail (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_bavail”h/Nt”(jsŒ'f_files (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_files”h/Nt”(jsŒ'f_ffree (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_ffree”h/Nt”(jsŒ(f_favail (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_favail”h/Nt”(jsŒ)f_namemax (pyfuse3.StatvfsData attribute)”Œpyfuse3.StatvfsData.f_namemax”h/Nt”(jsŒ"EntryAttributes (class in pyfuse3)”Œpyfuse3.EntryAttributes”h/Nt”(jsŒ*st_ino (pyfuse3.EntryAttributes attribute)”Œpyfuse3.EntryAttributes.st_ino”h/Nt”(jsŒ.generation (pyfuse3.EntryAttributes attribute)”Œ"pyfuse3.EntryAttributes.generation”h/Nt”(jsŒ1entry_timeout (pyfuse3.EntryAttributes attribute)”Œ%pyfuse3.EntryAttributes.entry_timeout”h/Nt”(jsŒ0attr_timeout (pyfuse3.EntryAttributes attribute)”Œ$pyfuse3.EntryAttributes.attr_timeout”h/Nt”(jsŒ+st_mode (pyfuse3.EntryAttributes attribute)”Œpyfuse3.EntryAttributes.st_mode”h/Nt”(jsŒ,st_nlink (pyfuse3.EntryAttributes attribute)”Œ pyfuse3.EntryAttributes.st_nlink”h/Nt”(jsŒ*st_uid (pyfuse3.EntryAttributes attribute)”Œpyfuse3.EntryAttributes.st_uid”h/Nt”(jsŒ*st_gid (pyfuse3.EntryAttributes attribute)”Œpyfuse3.EntryAttributes.st_gid”h/Nt”(jsŒ+st_rdev (pyfuse3.EntryAttributes attribute)”Œpyfuse3.EntryAttributes.st_rdev”h/Nt”(jsŒ+st_size (pyfuse3.EntryAttributes attribute)”Œpyfuse3.EntryAttributes.st_size”h/Nt”(jsŒ.st_blksize (pyfuse3.EntryAttributes attribute)”Œ"pyfuse3.EntryAttributes.st_blksize”h/Nt”(jsŒ-st_blocks (pyfuse3.EntryAttributes attribute)”Œ!pyfuse3.EntryAttributes.st_blocks”h/Nt”(jsŒ/st_atime_ns (pyfuse3.EntryAttributes attribute)”Œ#pyfuse3.EntryAttributes.st_atime_ns”h/Nt”(jsŒ/st_ctime_ns (pyfuse3.EntryAttributes attribute)”Œ#pyfuse3.EntryAttributes.st_ctime_ns”h/Nt”(jsŒ/st_mtime_ns (pyfuse3.EntryAttributes attribute)”Œ#pyfuse3.EntryAttributes.st_mtime_ns”h/Nt”(jsŒFileInfo (class in pyfuse3)”Œpyfuse3.FileInfo”h/Nt”(jsŒfh (pyfuse3.FileInfo attribute)”Œpyfuse3.FileInfo.fh”h/Nt”(jsŒ&direct_io (pyfuse3.FileInfo attribute)”Œpyfuse3.FileInfo.direct_io”h/Nt”(jsŒ'keep_cache (pyfuse3.FileInfo attribute)”Œpyfuse3.FileInfo.keep_cache”h/Nt”(jsŒ(nonseekable (pyfuse3.FileInfo attribute)”Œpyfuse3.FileInfo.nonseekable”h/Nt”(jsŒ SetattrFields (class in pyfuse3)”Œpyfuse3.SetattrFields”h/Nt”(jsŒ.update_atime (pyfuse3.SetattrFields attribute)”Œ"pyfuse3.SetattrFields.update_atime”h/Nt”(jsŒ.update_mtime (pyfuse3.SetattrFields attribute)”Œ"pyfuse3.SetattrFields.update_mtime”h/Nt”(jsŒ-update_mode (pyfuse3.SetattrFields attribute)”Œ!pyfuse3.SetattrFields.update_mode”h/Nt”(jsŒ,update_uid (pyfuse3.SetattrFields attribute)”Œ pyfuse3.SetattrFields.update_uid”h/Nt”(jsŒ,update_gid (pyfuse3.SetattrFields attribute)”Œ pyfuse3.SetattrFields.update_gid”h/Nt”(jsŒ-update_size (pyfuse3.SetattrFields attribute)”Œ!pyfuse3.SetattrFields.update_size”h/Nt”(jsŒReaddirToken (class in pyfuse3)”Œpyfuse3.ReaddirToken”h/Nt”(jsŒPollHandle (class in pyfuse3)”Œpyfuse3.PollHandle”h/Nt”(jsŒ$notify() (pyfuse3.PollHandle method)”Œpyfuse3.PollHandle.notify”h/Nt”ejI]”jJ]”((jsŒinit() (in module pyfuse3)”Œ pyfuse3.init”h/Nt”(jsŒmain() (in module pyfuse3)”Œ pyfuse3.main”h/Nt”(jsŒterminate() (in module pyfuse3)”Œpyfuse3.terminate”h/Nt”(jsŒclose() (in module pyfuse3)”Œ pyfuse3.close”h/Nt”(jsŒ&invalidate_inode() (in module pyfuse3)”Œpyfuse3.invalidate_inode”h/Nt”(jsŒ&invalidate_entry() (in module pyfuse3)”Œpyfuse3.invalidate_entry”h/Nt”(jsŒ,invalidate_entry_async() (in module pyfuse3)”Œpyfuse3.invalidate_entry_async”h/Nt”(jsŒ"notify_store() (in module pyfuse3)”Œpyfuse3.notify_store”h/Nt”(jsŒ#readdir_reply() (in module pyfuse3)”Œpyfuse3.readdir_reply”h/Nt”(jsŒtrio_token (in module pyfuse3)”Œpyfuse3.trio_token”h/Nt”ejK]”jL]”jM]”(jnŒmodule; pyfuse3”Œmodule-pyfuse3”h/Nt”ajN]”jO]”((jsŒOperations (class in pyfuse3)”Œpyfuse3.Operations”h/Nt”(jsŒ$access() (pyfuse3.Operations method)”Œpyfuse3.Operations.access”h/Nt”(jsŒ$create() (pyfuse3.Operations method)”Œpyfuse3.Operations.create”h/Nt”(jsŒ#flush() (pyfuse3.Operations method)”Œpyfuse3.Operations.flush”h/Nt”(jsŒ$forget() (pyfuse3.Operations method)”Œpyfuse3.Operations.forget”h/Nt”(jsŒ#fsync() (pyfuse3.Operations method)”Œpyfuse3.Operations.fsync”h/Nt”(jsŒ&fsyncdir() (pyfuse3.Operations method)”Œpyfuse3.Operations.fsyncdir”h/Nt”(jsŒ%getattr() (pyfuse3.Operations method)”Œpyfuse3.Operations.getattr”h/Nt”(jsŒ&getxattr() (pyfuse3.Operations method)”Œpyfuse3.Operations.getxattr”h/Nt”(jsŒ"init() (pyfuse3.Operations method)”Œpyfuse3.Operations.init”h/Nt”(jsŒ"link() (pyfuse3.Operations method)”Œpyfuse3.Operations.link”h/Nt”(jsŒ'listxattr() (pyfuse3.Operations method)”Œpyfuse3.Operations.listxattr”h/Nt”(jsŒ$lookup() (pyfuse3.Operations method)”Œpyfuse3.Operations.lookup”h/Nt”(jsŒ#mkdir() (pyfuse3.Operations method)”Œpyfuse3.Operations.mkdir”h/Nt”(jsŒ#mknod() (pyfuse3.Operations method)”Œpyfuse3.Operations.mknod”h/Nt”(jsŒ"open() (pyfuse3.Operations method)”Œpyfuse3.Operations.open”h/Nt”(jsŒ%opendir() (pyfuse3.Operations method)”Œpyfuse3.Operations.opendir”h/Nt”(jsŒ"poll() (pyfuse3.Operations method)”Œpyfuse3.Operations.poll”h/Nt”(jsŒ"read() (pyfuse3.Operations method)”Œpyfuse3.Operations.read”h/Nt”(jsŒ%readdir() (pyfuse3.Operations method)”Œpyfuse3.Operations.readdir”h/Nt”(jsŒ&readlink() (pyfuse3.Operations method)”Œpyfuse3.Operations.readlink”h/Nt”(jsŒ%release() (pyfuse3.Operations method)”Œpyfuse3.Operations.release”h/Nt”(jsŒ(releasedir() (pyfuse3.Operations method)”Œpyfuse3.Operations.releasedir”h/Nt”(jsŒ)removexattr() (pyfuse3.Operations method)”Œpyfuse3.Operations.removexattr”h/Nt”(jsŒ$rename() (pyfuse3.Operations method)”Œpyfuse3.Operations.rename”h/Nt”(jsŒ#rmdir() (pyfuse3.Operations method)”Œpyfuse3.Operations.rmdir”h/Nt”(jsŒ%setattr() (pyfuse3.Operations method)”Œpyfuse3.Operations.setattr”h/Nt”(jsŒ&setxattr() (pyfuse3.Operations method)”Œpyfuse3.Operations.setxattr”h/Nt”(jsŒ(stacktrace() (pyfuse3.Operations method)”Œpyfuse3.Operations.stacktrace”h/Nt”(jsŒ$statfs() (pyfuse3.Operations method)”Œpyfuse3.Operations.statfs”h/Nt”(jsŒ%symlink() (pyfuse3.Operations method)”Œpyfuse3.Operations.symlink”h/Nt”(jsŒ$unlink() (pyfuse3.Operations method)”Œpyfuse3.Operations.unlink”h/Nt”(jsŒ#write() (pyfuse3.Operations method)”Œpyfuse3.Operations.write”h/Nt”ejP]”((jsŒsetxattr() (in module pyfuse3)”Œpyfuse3.setxattr”h/Nt”(jsŒgetxattr() (in module pyfuse3)”Œpyfuse3.getxattr”h/Nt”(jsŒlistdir() (in module pyfuse3)”Œpyfuse3.listdir”h/Nt”(jsŒ$get_sup_groups() (in module pyfuse3)”Œpyfuse3.get_sup_groups”h/Nt”(jsŒsyncfs() (in module pyfuse3)”Œpyfuse3.syncfs”h/Nt”ejì]”uuŒjs”}”(jP}”Œmodules”}”jKuŒmath”}”(jP}”Œ has_equations”}”jKuŒpy”}”(jP}”(Œpyfuse3.asyncio”Œsphinx.domains.python”Œ ObjectEntry”“”(jGjpŒmodule”‰t”�”Œpyfuse3.ENOATTR”jÎ(jHjuŒdata”‰t”�”Œpyfuse3.ROOT_INODE”jÎ(jHjxŒdata”‰t”�”Œpyfuse3.RENAME_EXCHANGE”jÎ(jHj{Œdata”‰t”�”Œpyfuse3.RENAME_NOREPLACE”jÎ(jHj~Œdata”‰t”�”Œpyfuse3.default_options”jÎ(jHj�Œdata”‰t”�”Œpyfuse3.FUSEError”jÎ(jHj„Œ exception”‰t”�”Œpyfuse3.__init__.FUSEError”jÎ(jHj„jçˆt”�”Œpyfuse3.FileHandleT”jÎ(jHj‡Œclass”‰t”�”Œpyfuse3.FileNameT”jÎ(jHjŠŒclass”‰t”�”Œ pyfuse3.FlagT”jÎ(jHj�Œclass”‰t”�”Œpyfuse3.InodeT”jÎ(jHj�Œclass”‰t”�”Œ pyfuse3.ModeT”jÎ(jHj“Œclass”‰t”�”Œpyfuse3.XAttrNameT”jÎ(jHj–Œclass”‰t”�”Œpyfuse3.RequestContext”jÎ(jHj™Œclass”‰t”�”Œpyfuse3.__init__.RequestContext”jÎ(jHj™jˆt”�”Œpyfuse3.RequestContext.pid”jÎ(jHjœŒ attribute”‰t”�”Œpyfuse3.RequestContext.uid”jÎ(jHjŸŒ attribute”‰t”�”Œpyfuse3.RequestContext.gid”jÎ(jHj¢Œ attribute”‰t”�”Œpyfuse3.RequestContext.umask”jÎ(jHj¥Œ attribute”‰t”�”Œpyfuse3.StatvfsData”jÎ(jHj¨Œclass”‰t”�”Œpyfuse3.__init__.StatvfsData”jÎ(jHj¨jˆt”�”Œpyfuse3.StatvfsData.f_bsize”jÎ(jHj«Œ attribute”‰t”�”Œpyfuse3.StatvfsData.f_frsize”jÎ(jHj®Œ attribute”‰t”�”Œpyfuse3.StatvfsData.f_blocks”jÎ(jHj±Œ attribute”‰t”�”Œpyfuse3.StatvfsData.f_bfree”jÎ(jHj´Œ attribute”‰t”�”Œpyfuse3.StatvfsData.f_bavail”jÎ(jHj·Œ attribute”‰t”�”Œpyfuse3.StatvfsData.f_files”jÎ(jHjºŒ attribute”‰t”�”Œpyfuse3.StatvfsData.f_ffree”jÎ(jHj½Œ attribute”‰t”�”Œpyfuse3.StatvfsData.f_favail”jÎ(jHjÀŒ attribute”‰t”�”Œpyfuse3.StatvfsData.f_namemax”jÎ(jHjÃŒ attribute”‰t”�”Œpyfuse3.EntryAttributes”jÎ(jHjÆŒclass”‰t”�”Œ pyfuse3.__init__.EntryAttributes”jÎ(jHjÆjHˆt”�”Œpyfuse3.EntryAttributes.st_ino”jÎ(jHjÉŒ attribute”‰t”�”Œ"pyfuse3.EntryAttributes.generation”jÎ(jHjÌŒ attribute”‰t”�”Œ%pyfuse3.EntryAttributes.entry_timeout”jÎ(jHjÏŒ attribute”‰t”�”Œ$pyfuse3.EntryAttributes.attr_timeout”jÎ(jHjÒŒ attribute”‰t”�”Œpyfuse3.EntryAttributes.st_mode”jÎ(jHjÕŒ attribute”‰t”�”Œ pyfuse3.EntryAttributes.st_nlink”jÎ(jHjØŒ attribute”‰t”�”Œpyfuse3.EntryAttributes.st_uid”jÎ(jHjÛŒ attribute”‰t”�”Œpyfuse3.EntryAttributes.st_gid”jÎ(jHjÞŒ attribute”‰t”�”Œpyfuse3.EntryAttributes.st_rdev”jÎ(jHjጠattribute”‰t”�”Œpyfuse3.EntryAttributes.st_size”jÎ(jHjäŒ attribute”‰t”�”Œ"pyfuse3.EntryAttributes.st_blksize”jÎ(jHjçŒ attribute”‰t”�”Œ!pyfuse3.EntryAttributes.st_blocks”jÎ(jHjêŒ attribute”‰t”�”Œ#pyfuse3.EntryAttributes.st_atime_ns”jÎ(jHjíŒ attribute”‰t”�”Œ#pyfuse3.EntryAttributes.st_ctime_ns”jÎ(jHjðŒ attribute”‰t”�”Œ#pyfuse3.EntryAttributes.st_mtime_ns”jÎ(jHjóŒ attribute”‰t”�”Œpyfuse3.FileInfo”jÎ(jHjöŒclass”‰t”�”Œpyfuse3.__init__.FileInfo”jÎ(jHjöj‹ˆt”�”Œpyfuse3.FileInfo.fh”jÎ(jHjùŒ attribute”‰t”�”Œpyfuse3.FileInfo.direct_io”jÎ(jHjüŒ attribute”‰t”�”Œpyfuse3.FileInfo.keep_cache”jÎ(jHjÿŒ attribute”‰t”�”Œpyfuse3.FileInfo.nonseekable”jÎ(jHjŒ attribute”‰t”�”Œpyfuse3.SetattrFields”jÎ(jHjŒclass”‰t”�”Œpyfuse3.__init__.SetattrFields”jÎ(jHjj¢ˆt”�”Œ"pyfuse3.SetattrFields.update_atime”jÎ(jHjŒ attribute”‰t”�”Œ"pyfuse3.SetattrFields.update_mtime”jÎ(jHj Œ attribute”‰t”�”Œ!pyfuse3.SetattrFields.update_mode”jÎ(jHjŒ attribute”‰t”�”Œ pyfuse3.SetattrFields.update_uid”jÎ(jHjŒ attribute”‰t”�”Œ pyfuse3.SetattrFields.update_gid”jÎ(jHjŒ attribute”‰t”�”Œ!pyfuse3.SetattrFields.update_size”jÎ(jHjŒ attribute”‰t”�”Œpyfuse3.ReaddirToken”jÎ(jHjŒclass”‰t”�”Œpyfuse3.__init__.ReaddirToken”jÎ(jHjjÁˆt”�”Œpyfuse3.PollHandle”jÎ(jHjŒclass”‰t”�”Œpyfuse3.__init__.PollHandle”jÎ(jHjjȈt”�”Œpyfuse3.PollHandle.notify”jÎ(jHj Œmethod”‰t”�”Œ pyfuse3.init”jÎ(jJj%Œfunction”‰t”�”Œ pyfuse3.main”jÎ(jJj(Œfunction”‰t”�”Œpyfuse3.terminate”jÎ(jJj+Œfunction”‰t”�”Œ pyfuse3.close”jÎ(jJj.Œfunction”‰t”�”Œpyfuse3.invalidate_inode”jÎ(jJj1Œfunction”‰t”�”Œpyfuse3.invalidate_entry”jÎ(jJj4Œfunction”‰t”�”Œpyfuse3.invalidate_entry_async”jÎ(jJj7Œfunction”‰t”�”Œpyfuse3.notify_store”jÎ(jJj:Œfunction”‰t”�”Œpyfuse3.readdir_reply”jÎ(jJj=Œfunction”‰t”�”Œpyfuse3.trio_token”jÎ(jJj@Œdata”‰t”�”Œpyfuse3”jÎ(jMjFjωt”�”Œpyfuse3.Operations”jÎ(jOjKŒclass”‰t”�”Œpyfuse3._pyfuse3.Operations”jÎ(jOjKjþˆt”�”Œpyfuse3.Operations.access”jÎ(jOjNŒmethod”‰t”�”Œpyfuse3.Operations.create”jÎ(jOjQŒmethod”‰t”�”Œpyfuse3.Operations.flush”jÎ(jOjTŒmethod”‰t”�”Œpyfuse3.Operations.forget”jÎ(jOjWŒmethod”‰t”�”Œpyfuse3.Operations.fsync”jÎ(jOjZŒmethod”‰t”�”Œpyfuse3.Operations.fsyncdir”jÎ(jOj]Œmethod”‰t”�”Œpyfuse3.Operations.getattr”jÎ(jOj`Œmethod”‰t”�”Œpyfuse3.Operations.getxattr”jÎ(jOjcŒmethod”‰t”�”Œpyfuse3.Operations.init”jÎ(jOjfŒmethod”‰t”�”Œpyfuse3.Operations.link”jÎ(jOjiŒmethod”‰t”�”Œpyfuse3.Operations.listxattr”jÎ(jOjlŒmethod”‰t”�”Œpyfuse3.Operations.lookup”jÎ(jOjoŒmethod”‰t”�”Œpyfuse3.Operations.mkdir”jÎ(jOjrŒmethod”‰t”�”Œpyfuse3.Operations.mknod”jÎ(jOjuŒmethod”‰t”�”Œpyfuse3.Operations.open”jÎ(jOjxŒmethod”‰t”�”Œpyfuse3.Operations.opendir”jÎ(jOj{Œmethod”‰t”�”Œpyfuse3.Operations.poll”jÎ(jOj~Œmethod”‰t”�”Œpyfuse3.Operations.read”jÎ(jOj�Œmethod”‰t”�”Œpyfuse3.Operations.readdir”jÎ(jOj„Œmethod”‰t”�”Œpyfuse3.Operations.readlink”jÎ(jOj‡Œmethod”‰t”�”Œpyfuse3.Operations.release”jÎ(jOjŠŒmethod”‰t”�”Œpyfuse3.Operations.releasedir”jÎ(jOj�Œmethod”‰t”�”Œpyfuse3.Operations.removexattr”jÎ(jOj�Œmethod”‰t”�”Œpyfuse3.Operations.rename”jÎ(jOj“Œmethod”‰t”�”Œpyfuse3.Operations.rmdir”jÎ(jOj–Œmethod”‰t”�”Œpyfuse3.Operations.setattr”jÎ(jOj™Œmethod”‰t”�”Œpyfuse3.Operations.setxattr”jÎ(jOjœŒmethod”‰t”�”Œpyfuse3.Operations.stacktrace”jÎ(jOjŸŒmethod”‰t”�”Œpyfuse3.Operations.statfs”jÎ(jOj¢Œmethod”‰t”�”Œpyfuse3.Operations.symlink”jÎ(jOj¥Œmethod”‰t”�”Œpyfuse3.Operations.unlink”jÎ(jOj¨Œmethod”‰t”�”Œpyfuse3.Operations.write”jÎ(jOj«Œmethod”‰t”�”Œpyfuse3.setxattr”jÎ(jPj¯Œfunction”‰t”�”Œpyfuse3.getxattr”jÎ(jPj²Œfunction”‰t”�”Œpyfuse3.listdir”jÎ(jPjµŒfunction”‰t”�”Œpyfuse3.get_sup_groups”jÎ(jPj¸Œfunction”‰t”�”Œpyfuse3.syncfs”jÎ(jPj»Œfunction”‰t”�”ujÁ}”(jËjÌŒ ModuleEntry”“”(jGjph/h/‰t”�”jújš(jMjFh/h/‰t”�”ujKuŒrst”}”(jP}”jKuŒstd”}”(Œ progoptions”}”jP}”Œlabels”}”(Œgenindex”j©h/Œ sphinx.locale”Œ_TranslationProxy”“”)�”Œsphinx”Œgeneral”ŒIndex”‡”b‡”Œmodindex”Œ py-modindex”h/j¬)�”j®j¯Œ Module Index”‡”b‡”Œsearch”j¹h/j¬)�”j®j¯Œ Search Page”‡”b‡”Œ py-modindex”Œ py-modindex”h/ŒPython Module Index”‡”Œasyncio”jGŒasyncio”Œasyncio Support”‡”Œexample file system”jIŒexample-file-system”ŒExample File Systems”‡”Œgetting_started”jKŒgetting-started”ŒGetting started”‡”uŒ anonlabels”}”(j©j©h/†”j³j´h/†”j¹j¹h/†”j¾j¿h/†”jÂjGjÆ”jÆjIjdž”jÊjKjˆ”ujKŒterms”}”uuŒimages”Œsphinx.util._files”ŒFilenameUniqDict”“”)�”�”bŒdlfiles”jÚŒ DownloadFiles”“”)�”Œoriginal_image_uri”}”Œcurrent_document”hŒ_CurrentDocument”“”)�”N}”(Œ_parser”NŒ_serial_numbers”}”Œ_extension_data”}”Œautodoc_annotations”}”Œ autodoc_class”h/Œautodoc_module”h/Œ c_last_symbol”NŒc_namespace_stack”]”Œc_parent_symbol”NŒcpp_domain_name”)Œcpp_last_symbol”NŒcpp_namespace_stack”]”Œcpp_parent_symbol”NŒdefault_domain”NhAh/jHh/hLh/Œ obj_desc_name”h/Œreading_started_at”Gu†”bŒ ref_context”}”Œ_search_index_titles”}”Œ_search_index_filenames”}”Œ_search_index_mapping”}”Œ_search_index_title_mapping”}”Œ_search_index_all_titles”}”Œ_search_index_index_entries”}”Œ_search_index_objtypes”}”Œ_search_index_objnames”}”Œdomains”NŒintersphinx_cache”}”(Œ&https://trio.readthedocs.io/en/stable/”Œtrio”J0uj}”(Œ py:module”}”(Œtrio”Œsphinx.util.inventory”Œ_InventoryItem”“”)�”(ŒTrio”Œ0.32.0”ŒEhttps://trio.readthedocs.io/en/stable/reference-core.html#module-trio”Œ-”t”bŒtrio.from_thread”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-core.html#module-trio.from_thread”j" t”bŒ trio.lowlevel”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#module-trio.lowlevel”j" t”bŒ trio.socket”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#module-trio.socket”j" t”bŒ trio.testing”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-testing.html#module-trio.testing”j" t”bŒtrio.to_thread”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-core.html#module-trio.to_thread”j" t”buŒ py:interface”}”Œ trio.Asynchronous file interface”j )�”(j j ŒXhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Asynchronous-file-interface”j" t”bsŒ py:attribute”}”(Œ(trio.Asynchronous file interface.wrapped”j )�”(j j Œ`https://trio.readthedocs.io/en/stable/reference-io.html#trio.Asynchronous-file-interface.wrapped”j" t”bŒtrio.CancelScope.cancel_called”j )�”(j j ŒXhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CancelScope.cancel_called”j" t”bŒ!trio.CancelScope.cancelled_caught”j )�”(j j Œ[https://trio.readthedocs.io/en/stable/reference-core.html#trio.CancelScope.cancelled_caught”j" t”bŒtrio.CancelScope.deadline”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CancelScope.deadline”j" t”bŒ"trio.CancelScope.relative_deadline”j )�”(j j Œ\https://trio.readthedocs.io/en/stable/reference-core.html#trio.CancelScope.relative_deadline”j" t”bŒtrio.CancelScope.shield”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CancelScope.shield”j" t”bŒtrio.DTLSChannel.endpoint”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSChannel.endpoint”j" t”bŒtrio.DTLSChannel.peer_address”j )�”(j j ŒUhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSChannel.peer_address”j" t”bŒ)trio.DTLSEndpoint.incoming_packets_buffer”j )�”(j j Œahttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSEndpoint.incoming_packets_buffer”j" t”bŒtrio.DTLSEndpoint.socket”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSEndpoint.socket”j" t”bŒtrio.Nursery.cancel_scope”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Nursery.cancel_scope”j" t”bŒtrio.Process.args”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Process.args”j" t”bŒtrio.Process.pid”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Process.pid”j" t”bŒtrio.Process.returncode”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Process.returncode”j" t”bŒtrio.Process.stderr”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Process.stderr”j" t”bŒtrio.Process.stdin”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Process.stdin”j" t”bŒtrio.Process.stdio”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Process.stdio”j" t”bŒtrio.Process.stdout”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Process.stdout”j" t”bŒ#trio.SSLListener.transport_listener”j )�”(j j Œ[https://trio.readthedocs.io/en/stable/reference-io.html#trio.SSLListener.transport_listener”j" t”bŒtrio.SSLStream.transport_stream”j )�”(j j ŒWhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SSLStream.transport_stream”j" t”bŒtrio.SocketListener.socket”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SocketListener.socket”j" t”bŒtrio.SocketStream.socket”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SocketStream.socket”j" t”bŒ!trio.StapledStream.receive_stream”j )�”(j j ŒYhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.StapledStream.receive_stream”j" t”bŒtrio.StapledStream.send_stream”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.StapledStream.send_stream”j" t”bŒtrio.TASK_STATUS_IGNORED”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.TASK_STATUS_IGNORED”j" t”bŒtrio._subprocess.StrOrBytesPath”j )�”(j j ŒWhttps://trio.readthedocs.io/en/stable/reference-io.html#trio._subprocess.StrOrBytesPath”j" t”bŒ"trio.lowlevel.ParkingLot.broken_by”j )�”(j j Œ`https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.ParkingLot.broken_by”j" t”bŒ"trio.lowlevel.Task.child_nurseries”j )�”(j j Œ`https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.Task.child_nurseries”j" t”bŒtrio.lowlevel.Task.context”j )�”(j j ŒXhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.Task.context”j" t”bŒtrio.lowlevel.Task.coro”j )�”(j j ŒUhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.Task.coro”j" t”bŒ$trio.lowlevel.Task.custom_sleep_data”j )�”(j j Œbhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.Task.custom_sleep_data”j" t”bŒ*trio.lowlevel.Task.eventual_parent_nursery”j )�”(j j Œhhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.Task.eventual_parent_nursery”j" t”bŒtrio.lowlevel.Task.name”j )�”(j j ŒUhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.Task.name”j" t”bŒ!trio.lowlevel.Task.parent_nursery”j )�”(j j Œ_https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.Task.parent_nursery”j" t”bŒ+trio.socket.SocketType.did_shutdown_SHUT_WR”j )�”(j j Œchttps://trio.readthedocs.io/en/stable/reference-io.html#trio.socket.SocketType.did_shutdown_SHUT_WR”j" t”bŒ trio.testing.Matcher.fail_reason”j )�”(j j Œ]https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.Matcher.fail_reason”j" t”bŒ+trio.testing.MemoryReceiveStream.close_hook”j )�”(j j Œhhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemoryReceiveStream.close_hook”j" t”bŒ2trio.testing.MemoryReceiveStream.receive_some_hook”j )�”(j j Œohttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemoryReceiveStream.receive_some_hook”j" t”bŒ(trio.testing.MemorySendStream.close_hook”j )�”(j j Œehttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemorySendStream.close_hook”j" t”bŒ+trio.testing.MemorySendStream.send_all_hook”j )�”(j j Œhhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemorySendStream.send_all_hook”j" t”bŒ@trio.testing.MemorySendStream.wait_send_all_might_not_block_hook”j )�”(j j Œ}https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemorySendStream.wait_send_all_might_not_block_hook”j" t”bŒ)trio.testing.MockClock.autojump_threshold”j )�”(j j Œfhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MockClock.autojump_threshold”j" t”bŒtrio.testing.MockClock.rate”j )�”(j j ŒXhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MockClock.rate”j" t”bŒ$trio.testing.RaisesGroup.fail_reason”j )�”(j j Œahttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.RaisesGroup.fail_reason”j" t”buŒ py:exception”}”(Œtrio.BrokenResourceError”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.BrokenResourceError”j" t”bŒtrio.BusyResourceError”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.BusyResourceError”j" t”bŒtrio.Cancelled”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Cancelled”j" t”bŒtrio.ClosedResourceError”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.ClosedResourceError”j" t”bŒtrio.EndOfChannel”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.EndOfChannel”j" t”bŒtrio.NeedHandshakeError”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.NeedHandshakeError”j" t”bŒtrio.RunFinishedError”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.RunFinishedError”j" t”bŒtrio.TooSlowError”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.TooSlowError”j" t”bŒtrio.TrioDeprecationWarning”j )�”(j j ŒUhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.TrioDeprecationWarning”j" t”bŒtrio.TrioInternalError”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.TrioInternalError”j" t”bŒtrio.WouldBlock”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.WouldBlock”j" t”buŒpy:class”}”(Œtrio.CancelScope”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CancelScope”j" t”bŒtrio.CapacityLimiter”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CapacityLimiter”j" t”bŒtrio.CapacityLimiterStatistics”j )�”(j j ŒXhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CapacityLimiterStatistics”j" t”bŒtrio.Condition”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Condition”j" t”bŒtrio.ConditionStatistics”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.ConditionStatistics”j" t”bŒtrio.DTLSChannel”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSChannel”j" t”bŒtrio.DTLSChannelStatistics”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSChannelStatistics”j" t”bŒtrio.DTLSEndpoint”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSEndpoint”j" t”bŒ trio.Event”j )�”(j j ŒDhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Event”j" t”bŒtrio.EventStatistics”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.EventStatistics”j" t”bŒ trio.Lock”j )�”(j j ŒChttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Lock”j" t”bŒtrio.LockStatistics”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.LockStatistics”j" t”bŒtrio.MemoryChannelStatistics”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.MemoryChannelStatistics”j" t”bŒtrio.MemoryReceiveChannel”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-core.html#trio.MemoryReceiveChannel”j" t”bŒtrio.MemorySendChannel”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.MemorySendChannel”j" t”bŒ trio.Nursery”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Nursery”j" t”bŒ trio.Path”j )�”(j j ŒAhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path”j" t”bŒtrio.PosixPath”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.PosixPath”j" t”bŒ trio.Process”j )�”(j j ŒDhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Process”j" t”bŒtrio.SSLListener”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SSLListener”j" t”bŒtrio.SSLStream”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SSLStream”j" t”bŒtrio.Semaphore”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Semaphore”j" t”bŒtrio.SocketListener”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SocketListener”j" t”bŒtrio.SocketStream”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SocketStream”j" t”bŒtrio.StapledStream”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.StapledStream”j" t”bŒtrio.StrictFIFOLock”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.StrictFIFOLock”j" t”bŒtrio.TaskStatus”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.TaskStatus”j" t”bŒtrio.WindowsPath”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.WindowsPath”j" t”bŒtrio._subprocess.HasFileno”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-io.html#trio._subprocess.HasFileno”j" t”bŒtrio.abc.AsyncResource”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.AsyncResource”j" t”bŒtrio.abc.Channel”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.Channel”j" t”bŒtrio.abc.Clock”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.abc.Clock”j" t”bŒtrio.abc.HalfCloseableStream”j )�”(j j ŒThttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.HalfCloseableStream”j" t”bŒtrio.abc.HostnameResolver”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.abc.HostnameResolver”j" t”bŒtrio.abc.Instrument”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.abc.Instrument”j" t”bŒtrio.abc.Listener”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.Listener”j" t”bŒtrio.abc.ReceiveChannel”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.ReceiveChannel”j" t”bŒtrio.abc.ReceiveStream”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.ReceiveStream”j" t”bŒtrio.abc.SendChannel”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.SendChannel”j" t”bŒtrio.abc.SendStream”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.SendStream”j" t”bŒtrio.abc.SocketFactory”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.abc.SocketFactory”j" t”bŒtrio.abc.Stream”j )�”(j j ŒGhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.Stream”j" t”bŒtrio.lowlevel.Abort”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.Abort”j" t”bŒtrio.lowlevel.FdStream”j )�”(j j ŒThttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.FdStream”j" t”bŒtrio.lowlevel.ParkingLot”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.ParkingLot”j" t”bŒ"trio.lowlevel.ParkingLotStatistics”j )�”(j j Œ`https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.ParkingLotStatistics”j" t”bŒtrio.lowlevel.RunStatistics”j )�”(j j ŒYhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.RunStatistics”j" t”bŒtrio.lowlevel.RunVar”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.RunVar”j" t”bŒtrio.lowlevel.Task”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.Task”j" t”bŒtrio.lowlevel.TrioToken”j )�”(j j ŒUhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.TrioToken”j" t”bŒtrio.socket.SocketType”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.socket.SocketType”j" t”bŒtrio.testing.Matcher”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.Matcher”j" t”bŒ trio.testing.MemoryReceiveStream”j )�”(j j Œ]https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemoryReceiveStream”j" t”bŒtrio.testing.MemorySendStream”j )�”(j j ŒZhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemorySendStream”j" t”bŒtrio.testing.MockClock”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MockClock”j" t”bŒtrio.testing.RaisesGroup”j )�”(j j ŒUhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.RaisesGroup”j" t”bŒtrio.testing.Sequencer”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.Sequencer”j" t”bŒ)trio.testing._raises_group._ExceptionInfo”j )�”(j j Œfhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing._raises_group._ExceptionInfo”j" t”buŒ py:method”}”(Œtrio.CancelScope.cancel”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CancelScope.cancel”j" t”bŒtrio.CancelScope.is_relative”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CancelScope.is_relative”j" t”bŒtrio.CapacityLimiter.acquire”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CapacityLimiter.acquire”j" t”bŒ#trio.CapacityLimiter.acquire_nowait”j )�”(j j Œ]https://trio.readthedocs.io/en/stable/reference-core.html#trio.CapacityLimiter.acquire_nowait”j" t”bŒ)trio.CapacityLimiter.acquire_on_behalf_of”j )�”(j j Œchttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CapacityLimiter.acquire_on_behalf_of”j" t”bŒ0trio.CapacityLimiter.acquire_on_behalf_of_nowait”j )�”(j j Œjhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CapacityLimiter.acquire_on_behalf_of_nowait”j" t”bŒtrio.CapacityLimiter.release”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CapacityLimiter.release”j" t”bŒ)trio.CapacityLimiter.release_on_behalf_of”j )�”(j j Œchttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CapacityLimiter.release_on_behalf_of”j" t”bŒtrio.CapacityLimiter.statistics”j )�”(j j ŒYhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.CapacityLimiter.statistics”j" t”bŒtrio.Condition.acquire”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Condition.acquire”j" t”bŒtrio.Condition.acquire_nowait”j )�”(j j ŒWhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Condition.acquire_nowait”j" t”bŒtrio.Condition.locked”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Condition.locked”j" t”bŒtrio.Condition.notify”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Condition.notify”j" t”bŒtrio.Condition.notify_all”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Condition.notify_all”j" t”bŒtrio.Condition.release”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Condition.release”j" t”bŒtrio.Condition.statistics”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Condition.statistics”j" t”bŒtrio.Condition.wait”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Condition.wait”j" t”bŒtrio.DTLSChannel.aclose”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSChannel.aclose”j" t”bŒtrio.DTLSChannel.close”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSChannel.close”j" t”bŒtrio.DTLSChannel.do_handshake”j )�”(j j ŒUhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSChannel.do_handshake”j" t”bŒ"trio.DTLSChannel.get_cleartext_mtu”j )�”(j j ŒZhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSChannel.get_cleartext_mtu”j" t”bŒtrio.DTLSChannel.receive”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSChannel.receive”j" t”bŒtrio.DTLSChannel.send”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSChannel.send”j" t”bŒ#trio.DTLSChannel.set_ciphertext_mtu”j )�”(j j Œ[https://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSChannel.set_ciphertext_mtu”j" t”bŒtrio.DTLSChannel.statistics”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSChannel.statistics”j" t”bŒtrio.DTLSEndpoint.close”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSEndpoint.close”j" t”bŒtrio.DTLSEndpoint.connect”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSEndpoint.connect”j" t”bŒtrio.DTLSEndpoint.serve”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.DTLSEndpoint.serve”j" t”bŒtrio.Event.is_set”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Event.is_set”j" t”bŒtrio.Event.set”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Event.set”j" t”bŒtrio.Event.statistics”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Event.statistics”j" t”bŒtrio.Event.wait”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Event.wait”j" t”bŒtrio.Lock.acquire”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Lock.acquire”j" t”bŒtrio.Lock.acquire_nowait”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Lock.acquire_nowait”j" t”bŒtrio.Lock.locked”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Lock.locked”j" t”bŒtrio.Lock.release”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Lock.release”j" t”bŒtrio.Lock.statistics”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Lock.statistics”j" t”bŒ trio.MemoryReceiveChannel.aclose”j )�”(j j ŒZhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.MemoryReceiveChannel.aclose”j" t”bŒtrio.MemoryReceiveChannel.clone”j )�”(j j ŒYhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.MemoryReceiveChannel.clone”j" t”bŒtrio.MemoryReceiveChannel.close”j )�”(j j ŒYhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.MemoryReceiveChannel.close”j" t”bŒ!trio.MemoryReceiveChannel.receive”j )�”(j j Œ[https://trio.readthedocs.io/en/stable/reference-core.html#trio.MemoryReceiveChannel.receive”j" t”bŒ(trio.MemoryReceiveChannel.receive_nowait”j )�”(j j Œbhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.MemoryReceiveChannel.receive_nowait”j" t”bŒ$trio.MemoryReceiveChannel.statistics”j )�”(j j Œ^https://trio.readthedocs.io/en/stable/reference-core.html#trio.MemoryReceiveChannel.statistics”j" t”bŒtrio.MemorySendChannel.aclose”j )�”(j j ŒWhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.MemorySendChannel.aclose”j" t”bŒtrio.MemorySendChannel.clone”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.MemorySendChannel.clone”j" t”bŒtrio.MemorySendChannel.close”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.MemorySendChannel.close”j" t”bŒtrio.MemorySendChannel.send”j )�”(j j ŒUhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.MemorySendChannel.send”j" t”bŒ"trio.MemorySendChannel.send_nowait”j )�”(j j Œ\https://trio.readthedocs.io/en/stable/reference-core.html#trio.MemorySendChannel.send_nowait”j" t”bŒ!trio.MemorySendChannel.statistics”j )�”(j j Œ[https://trio.readthedocs.io/en/stable/reference-core.html#trio.MemorySendChannel.statistics”j" t”bŒtrio.Nursery.start”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Nursery.start”j" t”bŒtrio.Nursery.start_soon”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Nursery.start_soon”j" t”bŒtrio.Path.absolute”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.absolute”j" t”bŒtrio.Path.as_posix”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.as_posix”j" t”bŒtrio.Path.chmod”j )�”(j j ŒGhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.chmod”j" t”bŒ trio.Path.cwd”j )�”(j j ŒEhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.cwd”j" t”bŒtrio.Path.exists”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.exists”j" t”bŒtrio.Path.expanduser”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.expanduser”j" t”bŒtrio.Path.glob”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.glob”j" t”bŒtrio.Path.group”j )�”(j j ŒGhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.group”j" t”bŒtrio.Path.hardlink_to”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.hardlink_to”j" t”bŒtrio.Path.home”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.home”j" t”bŒtrio.Path.is_absolute”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.is_absolute”j" t”bŒtrio.Path.is_block_device”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.is_block_device”j" t”bŒtrio.Path.is_char_device”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.is_char_device”j" t”bŒtrio.Path.is_dir”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.is_dir”j" t”bŒtrio.Path.is_fifo”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.is_fifo”j" t”bŒtrio.Path.is_file”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.is_file”j" t”bŒtrio.Path.is_mount”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.is_mount”j" t”bŒtrio.Path.is_relative_to”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.is_relative_to”j" t”bŒtrio.Path.is_reserved”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.is_reserved”j" t”bŒtrio.Path.is_socket”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.is_socket”j" t”bŒtrio.Path.is_symlink”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.is_symlink”j" t”bŒtrio.Path.iterdir”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.iterdir”j" t”bŒtrio.Path.joinpath”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.joinpath”j" t”bŒtrio.Path.lchmod”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.lchmod”j" t”bŒtrio.Path.link_to”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.link_to”j" t”bŒtrio.Path.lstat”j )�”(j j ŒGhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.lstat”j" t”bŒtrio.Path.match”j )�”(j j ŒGhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.match”j" t”bŒtrio.Path.mkdir”j )�”(j j ŒGhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.mkdir”j" t”bŒtrio.Path.open”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.open”j" t”bŒtrio.Path.owner”j )�”(j j ŒGhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.owner”j" t”bŒtrio.Path.read_bytes”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.read_bytes”j" t”bŒtrio.Path.read_text”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.read_text”•j" t”bŒtrio.Path.readlink”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.readlink”j" t”bŒtrio.Path.relative_to”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.relative_to”j" t”bŒtrio.Path.rename”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.rename”j" t”bŒtrio.Path.replace”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.replace”j" t”bŒtrio.Path.resolve”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.resolve”j" t”bŒtrio.Path.rglob”j )�”(j j ŒGhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.rglob”j" t”bŒtrio.Path.rmdir”j )�”(j j ŒGhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.rmdir”j" t”bŒtrio.Path.samefile”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.samefile”j" t”bŒtrio.Path.stat”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.stat”j" t”bŒtrio.Path.symlink_to”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.symlink_to”j" t”bŒtrio.Path.touch”j )�”(j j ŒGhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.touch”j" t”bŒtrio.Path.unlink”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.unlink”j" t”bŒtrio.Path.with_name”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.with_name”j" t”bŒtrio.Path.with_stem”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.with_stem”j" t”bŒtrio.Path.with_suffix”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.with_suffix”j" t”bŒtrio.Path.write_bytes”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.write_bytes”j" t”bŒtrio.Path.write_text”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.write_text”j" t”bŒtrio.Process.kill”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Process.kill”j" t”bŒtrio.Process.poll”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Process.poll”j" t”bŒtrio.Process.send_signal”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Process.send_signal”j" t”bŒtrio.Process.terminate”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Process.terminate”j" t”bŒtrio.Process.wait”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Process.wait”j" t”bŒtrio.SSLListener.accept”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SSLListener.accept”j" t”bŒtrio.SSLListener.aclose”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SSLListener.aclose”j" t”bŒtrio.SSLStream.aclose”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SSLStream.aclose”j" t”bŒtrio.SSLStream.do_handshake”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SSLStream.do_handshake”j" t”bŒtrio.SSLStream.receive_some”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SSLStream.receive_some”j" t”bŒtrio.SSLStream.send_all”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SSLStream.send_all”j" t”bŒtrio.SSLStream.unwrap”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SSLStream.unwrap”j" t”bŒ,trio.SSLStream.wait_send_all_might_not_block”j )�”(j j Œdhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SSLStream.wait_send_all_might_not_block”j" t”bŒtrio.Semaphore.acquire”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Semaphore.acquire”j" t”bŒtrio.Semaphore.acquire_nowait”j )�”(j j ŒWhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Semaphore.acquire_nowait”j" t”bŒtrio.Semaphore.release”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Semaphore.release”j" t”bŒtrio.Semaphore.statistics”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Semaphore.statistics”j" t”bŒtrio.SocketListener.accept”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SocketListener.accept”j" t”bŒtrio.SocketListener.aclose”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SocketListener.aclose”j" t”bŒtrio.SocketStream.aclose”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SocketStream.aclose”j" t”bŒtrio.SocketStream.getsockopt”j )�”(j j ŒThttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SocketStream.getsockopt”j" t”bŒtrio.SocketStream.receive_some”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SocketStream.receive_some”j" t”bŒtrio.SocketStream.send_all”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SocketStream.send_all”j" t”bŒtrio.SocketStream.send_eof”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SocketStream.send_eof”j" t”bŒtrio.SocketStream.setsockopt”j )�”(j j ŒThttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SocketStream.setsockopt”j" t”bŒ/trio.SocketStream.wait_send_all_might_not_block”j )�”(j j Œghttps://trio.readthedocs.io/en/stable/reference-io.html#trio.SocketStream.wait_send_all_might_not_block”j" t”bŒtrio.StapledStream.aclose”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.StapledStream.aclose”j" t”bŒtrio.StapledStream.receive_some”j )�”(j j ŒWhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.StapledStream.receive_some”j" t”bŒtrio.StapledStream.send_all”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-io.html#trio.StapledStream.send_all”j" t”bŒtrio.StapledStream.send_eof”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-io.html#trio.StapledStream.send_eof”j" t”bŒ0trio.StapledStream.wait_send_all_might_not_block”j )�”(j j Œhhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.StapledStream.wait_send_all_might_not_block”j" t”bŒtrio.TaskStatus.started”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.TaskStatus.started”j" t”bŒ!trio._subprocess.HasFileno.fileno”j )�”(j j ŒYhttps://trio.readthedocs.io/en/stable/reference-io.html#trio._subprocess.HasFileno.fileno”j" t”bŒtrio.abc.AsyncResource.aclose”j )�”(j j ŒUhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.AsyncResource.aclose”j" t”bŒtrio.abc.Clock.current_time”j )�”(j j ŒUhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.abc.Clock.current_time”j" t”bŒ%trio.abc.Clock.deadline_to_sleep_time”j )�”(j j Œ_https://trio.readthedocs.io/en/stable/reference-core.html#trio.abc.Clock.deadline_to_sleep_time”j" t”bŒtrio.abc.Clock.start_clock”j )�”(j j ŒThttps://trio.readthedocs.io/en/stable/reference-core.html#trio.abc.Clock.start_clock”j" t”bŒ%trio.abc.HalfCloseableStream.send_eof”j )�”(j j Œ]https://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.HalfCloseableStream.send_eof”j" t”bŒ%trio.abc.HostnameResolver.getaddrinfo”j )�”(j j Œbhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.abc.HostnameResolver.getaddrinfo”j" t”bŒ%trio.abc.HostnameResolver.getnameinfo”j )�”(j j Œbhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.abc.HostnameResolver.getnameinfo”j" t”bŒ!trio.abc.Instrument.after_io_wait”j )�”(j j Œ_https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.abc.Instrument.after_io_wait”j" t”bŒtrio.abc.Instrument.after_run”j )�”(j j Œ[https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.abc.Instrument.after_run”j" t”bŒ#trio.abc.Instrument.after_task_step”j )�”(j j Œahttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.abc.Instrument.after_task_step”j" t”bŒ"trio.abc.Instrument.before_io_wait”j )�”(j j Œ`https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.abc.Instrument.before_io_wait”j" t”bŒtrio.abc.Instrument.before_run”j )�”(j j Œ\https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.abc.Instrument.before_run”j" t”bŒ$trio.abc.Instrument.before_task_step”j )�”(j j Œbhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.abc.Instrument.before_task_step”j" t”bŒtrio.abc.Instrument.task_exited”j )�”(j j Œ]https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.abc.Instrument.task_exited”j" t”bŒ"trio.abc.Instrument.task_scheduled”j )�”(j j Œ`https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.abc.Instrument.task_scheduled”j" t”bŒ trio.abc.Instrument.task_spawned”j )�”(j j Œ^https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.abc.Instrument.task_spawned”j" t”bŒtrio.abc.Listener.accept”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.Listener.accept”j" t”bŒtrio.abc.ReceiveChannel.receive”j )�”(j j ŒWhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.ReceiveChannel.receive”j" t”bŒ#trio.abc.ReceiveStream.receive_some”j )�”(j j Œ[https://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.ReceiveStream.receive_some”j" t”bŒtrio.abc.SendChannel.send”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.SendChannel.send”j" t”bŒtrio.abc.SendStream.send_all”j )�”(j j ŒThttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.SendStream.send_all”j" t”bŒ1trio.abc.SendStream.wait_send_all_might_not_block”j )�”(j j Œihttps://trio.readthedocs.io/en/stable/reference-io.html#trio.abc.SendStream.wait_send_all_might_not_block”j" t”bŒtrio.abc.SocketFactory.socket”j )�”(j j ŒZhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.abc.SocketFactory.socket”j" t”bŒ"trio.lowlevel.ParkingLot.break_lot”j )�”(j j Œ`https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.ParkingLot.break_lot”j" t”bŒtrio.lowlevel.ParkingLot.park”j )�”(j j Œ[https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.ParkingLot.park”j" t”bŒtrio.lowlevel.ParkingLot.repark”j )�”(j j Œ]https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.ParkingLot.repark”j" t”bŒ#trio.lowlevel.ParkingLot.repark_all”j )�”(j j Œahttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.ParkingLot.repark_all”j" t”bŒ#trio.lowlevel.ParkingLot.statistics”j )�”(j j Œahttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.ParkingLot.statistics”j" t”bŒtrio.lowlevel.ParkingLot.unpark”j )�”(j j Œ]https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.ParkingLot.unpark”j" t”bŒ#trio.lowlevel.ParkingLot.unpark_all”j )�”(j j Œahttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.ParkingLot.unpark_all”j" t”bŒ$trio.lowlevel.Task.iter_await_frames”j )�”(j j Œbhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.Task.iter_await_frames”j" t”bŒ%trio.lowlevel.TrioToken.run_sync_soon”j )�”(j j Œchttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.TrioToken.run_sync_soon”j" t”bŒtrio.socket.SocketType.connect”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.socket.SocketType.connect”j" t”bŒ"trio.socket.SocketType.is_readable”j )�”(j j ŒZhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.socket.SocketType.is_readable”j" t”bŒtrio.socket.SocketType.sendfile”j )�”(j j ŒWhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.socket.SocketType.sendfile”j" t”bŒtrio.testing.Matcher.matches”j )�”(j j ŒYhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.Matcher.matches”j" t”bŒ'trio.testing.MemoryReceiveStream.aclose”j )�”(j j Œdhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemoryReceiveStream.aclose”j" t”bŒ&trio.testing.MemoryReceiveStream.close”j )�”(j j Œchttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemoryReceiveStream.close”j" t”bŒ)trio.testing.MemoryReceiveStream.put_data”j )�”(j j Œfhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemoryReceiveStream.put_data”j" t”bŒ(trio.testing.MemoryReceiveStream.put_eof”j )�”(j j Œehttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemoryReceiveStream.put_eof”j" t”bŒ-trio.testing.MemoryReceiveStream.receive_some”j )�”(j j Œjhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemoryReceiveStream.receive_some”j" t”bŒ$trio.testing.MemorySendStream.aclose”j )�”(j j Œahttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemorySendStream.aclose”j" t”bŒ#trio.testing.MemorySendStream.close”j )�”(j j Œ`https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemorySendStream.close”j" t”bŒ&trio.testing.MemorySendStream.get_data”j )�”(j j Œchttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemorySendStream.get_data”j" t”bŒ-trio.testing.MemorySendStream.get_data_nowait”j )�”(j j Œjhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemorySendStream.get_data_nowait”j" t”bŒ&trio.testing.MemorySendStream.send_all”j )�”(j j Œchttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemorySendStream.send_all”j" t”bŒ;trio.testing.MemorySendStream.wait_send_all_might_not_block”j )�”(j j Œxhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MemorySendStream.wait_send_all_might_not_block”j" t”bŒtrio.testing.MockClock.jump”j )�”(j j ŒXhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.MockClock.jump”j" t”bŒ trio.testing.RaisesGroup.matches”j )�”(j j Œ]https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.RaisesGroup.matches”j" t”bŒ7trio.testing._raises_group._ExceptionInfo.fill_unfilled”j )�”(j j Œthttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing._raises_group._ExceptionInfo.fill_unfilled”j" t”bŒ3trio.testing._raises_group._ExceptionInfo.for_later”j )�”(j j Œphttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing._raises_group._ExceptionInfo.for_later”j" t”buŒ py:property”}”(Œ%trio.CapacityLimiter.available_tokens”j )�”(j j Œ_https://trio.readthedocs.io/en/stable/reference-core.html#trio.CapacityLimiter.available_tokens”j" t”bŒ$trio.CapacityLimiter.borrowed_tokens”j )�”(j j Œ^https://trio.readthedocs.io/en/stable/reference-core.html#trio.CapacityLimiter.borrowed_tokens”j" t”bŒ!trio.CapacityLimiter.total_tokens”j )�”(j j Œ[https://trio.readthedocs.io/en/stable/reference-core.html#trio.CapacityLimiter.total_tokens”j" t”bŒtrio.Nursery.child_tasks”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Nursery.child_tasks”j" t”bŒtrio.Nursery.parent_task”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Nursery.parent_task”j" t”bŒtrio.Path.anchor”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.anchor”j" t”bŒtrio.Path.drive”j )�”(j j ŒGhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.drive”j" t”bŒtrio.Path.name”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.name”j" t”bŒtrio.Path.parent”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.parent”j" t”bŒtrio.Path.parents”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.parents”j" t”bŒtrio.Path.parts”j )�”(j j ŒGhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.parts”j" t”bŒtrio.Path.root”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.root”j" t”bŒtrio.Path.stem”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.stem”j" t”bŒtrio.Path.suffix”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.suffix”j" t”bŒtrio.Path.suffixes”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.Path.suffixes”j" t”bŒtrio.Semaphore.max_value”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Semaphore.max_value”j" t”bŒtrio.Semaphore.value”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.Semaphore.value”j" t”bŒ,trio.testing._raises_group._ExceptionInfo.tb”j )�”(j j Œihttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing._raises_group._ExceptionInfo.tb”j" t”bŒ.trio.testing._raises_group._ExceptionInfo.type”j )�”(j j Œkhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing._raises_group._ExceptionInfo.type”j" t”bŒ/trio.testing._raises_group._ExceptionInfo.value”j )�”(j j Œlhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing._raises_group._ExceptionInfo.value”j" t”buŒ py:function”}”(Œtrio.aclose_forcefully”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.aclose_forcefully”j" t”bŒtrio.as_safe_channel”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.as_safe_channel”j" t”bŒtrio.current_effective_deadline”j )�”(j j ŒYhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.current_effective_deadline”j" t”bŒtrio.current_time”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.current_time”j" t”bŒtrio.fail_after”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.fail_after”j" t”bŒ trio.fail_at”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.fail_at”j" t”bŒ trio.from_thread.check_cancelled”j )�”(j j ŒZhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.from_thread.check_cancelled”j" t”bŒtrio.from_thread.run”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.from_thread.run”j" t”bŒtrio.from_thread.run_sync”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-core.html#trio.from_thread.run_sync”j" t”bŒ!trio.lowlevel.WaitForSingleObject”j )�”(j j Œ_https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.WaitForSingleObject”j" t”bŒtrio.lowlevel.add_instrument”j )�”(j j ŒZhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.add_instrument”j" t”bŒ%trio.lowlevel.add_parking_lot_breaker”j )�”(j j Œchttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.add_parking_lot_breaker”j" t”bŒ(trio.lowlevel.cancel_shielded_checkpoint”j )�”(j j Œfhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.cancel_shielded_checkpoint”j" t”bŒtrio.lowlevel.checkpoint”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.checkpoint”j" t”bŒ%trio.lowlevel.checkpoint_if_cancelled”j )�”(j j Œchttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.checkpoint_if_cancelled”j" t”bŒtrio.lowlevel.current_clock”j )�”(j j ŒYhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.current_clock”j" t”bŒtrio.lowlevel.current_iocp”j )�”(j j ŒXhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.current_iocp”j" t”bŒtrio.lowlevel.current_kqueue”j )�”(j j ŒZhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.current_kqueue”j" t”bŒtrio.lowlevel.current_root_task”j )�”(j j Œ]https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.current_root_task”j" t”bŒ trio.lowlevel.current_statistics”j )�”(j j Œ^https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.current_statistics”j" t”bŒtrio.lowlevel.current_task”j )�”(j j ŒXhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.current_task”j" t”bŒ trio.lowlevel.current_trio_token”j )�”(j j Œ^https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.current_trio_token”j" t”bŒ$trio.lowlevel.currently_ki_protected”j )�”(j j Œbhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.currently_ki_protected”j" t”bŒ#trio.lowlevel.disable_ki_protection”j )�”(j j Œahttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.disable_ki_protection”j" t”bŒ"trio.lowlevel.enable_ki_protection”j )�”(j j Œ`https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.enable_ki_protection”j" t”bŒtrio.lowlevel.in_trio_run”j )�”(j j ŒWhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.in_trio_run”j" t”bŒtrio.lowlevel.in_trio_task”j )�”(j j ŒXhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.in_trio_task”j" t”bŒ$trio.lowlevel.monitor_completion_key”j )�”(j j Œbhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.monitor_completion_key”j" t”bŒtrio.lowlevel.monitor_kevent”j )�”(j j ŒZhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.monitor_kevent”j" t”bŒtrio.lowlevel.notify_closing”j )�”(j j ŒZhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.notify_closing”j" t”bŒtrio.lowlevel.open_process”j )�”(j j ŒXhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.open_process”j" t”bŒ1trio.lowlevel.permanently_detach_coroutine_object”j )�”(j j Œohttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.permanently_detach_coroutine_object”j" t”bŒ!trio.lowlevel.readinto_overlapped”j )�”(j j Œ_https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.readinto_overlapped”j" t”bŒ0trio.lowlevel.reattach_detached_coroutine_object”j )�”(j j Œnhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.reattach_detached_coroutine_object”j" t”bŒ trio.lowlevel.register_with_iocp”j )�”(j j Œ^https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.register_with_iocp”j" t”bŒtrio.lowlevel.remove_instrument”j )�”(j j Œ]https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.remove_instrument”j" t”bŒ(trio.lowlevel.remove_parking_lot_breaker”j )�”(j j Œfhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.remove_parking_lot_breaker”j" t”bŒtrio.lowlevel.reschedule”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.reschedule”j" t”bŒtrio.lowlevel.spawn_system_task”j )�”(j j Œ]https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.spawn_system_task”j" t”bŒtrio.lowlevel.start_guest_run”j )�”(j j Œ[https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.start_guest_run”j" t”bŒtrio.lowlevel.start_thread_soon”j )�”(j j Œ]https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.start_thread_soon”j" t”bŒ1trio.lowlevel.temporarily_detach_coroutine_object”j )�”(j j Œohttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.temporarily_detach_coroutine_object”j" t”bŒtrio.lowlevel.wait_kevent”j )�”(j j ŒWhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.wait_kevent”j" t”bŒtrio.lowlevel.wait_overlapped”j )�”(j j Œ[https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.wait_overlapped”j" t”bŒtrio.lowlevel.wait_readable”j )�”(j j ŒYhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.wait_readable”j" t”bŒ#trio.lowlevel.wait_task_rescheduled”j )�”(j j Œahttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.wait_task_rescheduled”j" t”bŒtrio.lowlevel.wait_writable”j )�”(j j ŒYhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.wait_writable”j" t”bŒtrio.lowlevel.write_overlapped”j )�”(j j Œ\https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.write_overlapped”j" t”bŒtrio.move_on_after”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.move_on_after”j" t”bŒtrio.move_on_at”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.move_on_at”j" t”bŒtrio.open_file”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.open_file”j" t”bŒtrio.open_memory_channel”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.open_memory_channel”j" t”bŒtrio.open_nursery”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.open_nursery”j" t”bŒtrio.open_signal_receiver”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.open_signal_receiver”j" t”bŒ trio.open_ssl_over_tcp_listeners”j )�”(j j ŒXhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.open_ssl_over_tcp_listeners”j" t”bŒtrio.open_ssl_over_tcp_stream”j )�”(j j ŒUhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.open_ssl_over_tcp_stream”j" t”bŒtrio.open_tcp_listeners”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.open_tcp_listeners”j" t”bŒtrio.open_tcp_stream”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.open_tcp_stream”j" t”bŒtrio.open_unix_socket”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.open_unix_socket”j" t”bŒtrio.run”j )�”(j j ŒBhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.run”j" t”bŒtrio.run_process”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.run_process”j" t”bŒtrio.serve_listeners”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.serve_listeners”j" t”bŒtrio.serve_ssl_over_tcp”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.serve_ssl_over_tcp”j" t”bŒtrio.serve_tcp”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.serve_tcp”j" t”bŒ trio.sleep”j )�”(j j ŒDhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.sleep”j" t”bŒtrio.sleep_forever”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.sleep_forever”j" t”bŒtrio.sleep_until”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.sleep_until”j" t”bŒtrio.socket.from_stdlib_socket”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.socket.from_stdlib_socket”j" t”bŒtrio.socket.fromfd”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.socket.fromfd”j" t”bŒtrio.socket.fromshare”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.socket.fromshare”j" t”bŒtrio.socket.getaddrinfo”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.socket.getaddrinfo”j" t”bŒtrio.socket.getnameinfo”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.socket.getnameinfo”j" t”bŒtrio.socket.getprotobyname”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.socket.getprotobyname”j" t”bŒ(trio.socket.set_custom_hostname_resolver”j )�”(j j Œehttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.socket.set_custom_hostname_resolver”j" t”bŒ%trio.socket.set_custom_socket_factory”j )�”(j j Œbhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.socket.set_custom_socket_factory”j" t”bŒtrio.socket.socket”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.socket.socket”j" t”bŒtrio.socket.socketpair”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.socket.socketpair”j" t”bŒ trio.testing.active_thread_count”j )�”(j j Œ]https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.active_thread_count”j" t”bŒtrio.testing.assert_checkpoints”j )�”(j j Œ\https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.assert_checkpoints”j" t”bŒ"trio.testing.assert_no_checkpoints”j )�”(j j Œ_https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.assert_no_checkpoints”j" t”bŒ(trio.testing.check_half_closeable_stream”j )�”(j j Œehttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.check_half_closeable_stream”j" t”bŒ!trio.testing.check_one_way_stream”j )�”(j j Œ^https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.check_one_way_stream”j" t”bŒ!trio.testing.check_two_way_stream”j )�”(j j Œ^https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.check_two_way_stream”j" t”bŒ)trio.testing.lockstep_stream_one_way_pair”j )�”(j j Œfhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.lockstep_stream_one_way_pair”j" t”bŒ!trio.testing.lockstep_stream_pair”j )�”(j j Œ^https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.lockstep_stream_pair”j" t”bŒ'trio.testing.memory_stream_one_way_pair”j )�”(j j Œdhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.memory_stream_one_way_pair”j" t”bŒtrio.testing.memory_stream_pair”j )�”(j j Œ\https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.memory_stream_pair”j" t”bŒtrio.testing.memory_stream_pump”j )�”(j j Œ\https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.memory_stream_pump”j" t”bŒ+trio.testing.open_stream_to_socket_listener”j )�”(j j Œhhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.open_stream_to_socket_listener”j" t”bŒ#trio.testing.wait_all_tasks_blocked”j )�”(j j Œ`https://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.wait_all_tasks_blocked”j" t”bŒ'trio.testing.wait_all_threads_completed”j )�”(j j Œdhttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.wait_all_threads_completed”j" t”bŒ-trio.to_thread.current_default_thread_limiter”j )�”(j j Œghttps://trio.readthedocs.io/en/stable/reference-core.html#trio.to_thread.current_default_thread_limiter”j" t”bŒtrio.to_thread.run_sync”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-core.html#trio.to_thread.run_sync”j" t”bŒtrio.wrap_file”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-io.html#trio.wrap_file”j" t”buŒpy:data”}”(Œtrio.lowlevel.Abort.FAILED”j )�”(j j ŒXhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.Abort.FAILED”j" t”bŒtrio.lowlevel.Abort.SUCCEEDED”j )�”(j j Œ[https://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio.lowlevel.Abort.SUCCEEDED”j" t”buŒ py:decorator”}”Œtrio.testing.trio_test”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-testing.html#trio.testing.trio_test”j" t”bsŒ std:label”}”(Œabstract-stream-api”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-io.html#abstract-stream-api”ŒThe abstract Stream API”t”bŒ async-file-io”j )�”(j j ŒEhttps://trio.readthedocs.io/en/stable/reference-io.html#async-file-io”ŒAsynchronous filesystem I/O”t”bŒasync-file-io-overview”j )�”(j j ŒNhttps://trio.readthedocs.io/en/stable/reference-io.html#async-file-io-overview”Œ API overview”t”bŒasync-file-objects”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#async-file-objects”ŒAsynchronous file objects”t”bŒasync-generators”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-core.html#async-generators”ŒNotes on async generators”t”bŒasync-sandwich”j )�”(j j ŒBhttps://trio.readthedocs.io/en/stable/tutorial.html#async-sandwich”j" t”bŒblocking-cleanup-example”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-core.html#blocking-cleanup-example”j" t”bŒcancellable-primitives”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-core.html#cancellable-primitives”Œ%Cancellation and primitive operations”t”bŒ cancellation”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-core.html#cancellation”ŒCancellation and timeouts”t”bŒchannel-buffering”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-core.html#channel-buffering”ŒBuffering in channels”t”bŒ channel-mpmc”j )�”(j j ŒFhttps://trio.readthedocs.io/en/stable/reference-core.html#channel-mpmc”Œ5Managing multiple producers and/or multiple consumers”t”bŒchannel-shutdown”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-core.html#channel-shutdown”ŒClean shutdown with channels”t”bŒchannels”j )�”(j j ŒBhttps://trio.readthedocs.io/en/stable/reference-core.html#channels”Œ+Using channels to pass values between tasks”t”bŒcheckpoint-rule”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-core.html#checkpoint-rule”j" t”bŒ checkpoints”j )�”(j j ŒEhttps://trio.readthedocs.io/en/stable/reference-core.html#checkpoints”Œ Checkpoints”t”bŒcoc-contacting-maintainers”j )�”(j j ŒUhttps://trio.readthedocs.io/en/stable/code-of-conduct.html#coc-contacting-maintainers”ŒContacting Maintainers”t”bŒcoc-enforcement-examples”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/code-of-conduct.html#coc-enforcement-examples”ŒEnforcement Examples”t”bŒcoc-further-enforcement”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/code-of-conduct.html#coc-further-enforcement”ŒFurther Enforcement”t”bŒcoc-other-community-standards”j )�”(j j ŒXhttps://trio.readthedocs.io/en/stable/code-of-conduct.html#coc-other-community-standards”ŒOther Community Standards”t”bŒcoc-when-something-happens”j )�”(j j ŒUhttps://trio.readthedocs.io/en/stable/code-of-conduct.html#coc-when-something-happens”ŒWhen Something Happens”t”bŒcode-of-conduct”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/code-of-conduct.html#code-of-conduct”ŒCode of Conduct”t”bŒ contributing”j )�”(j j ŒDhttps://trio.readthedocs.io/en/stable/contributing.html#contributing”Œ)Contributing to Trio and related projects”t”bŒexceptiongroups”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-core.html#exceptiongroups”ŒErrors in multiple child tasks”t”bŒgenindex”j )�”(j j Œ3https://trio.readthedocs.io/en/stable/genindex.html”ŒIndex”t”bŒglossary”j )�”(j j ŒUsing “guest modeâ€� to run Trio on top of other event loops”t”bŒguest-run-implementation”j )�”(j j ŒVhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#guest-run-implementation”Œ4Implementing guest mode for your favorite event loop”t”bŒhandling_exception_groups”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-core.html#handling-exception-groups”ŒDesigning for multiple errors”t”bŒhigh-level-networking”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-io.html#high-level-networking”ŒSockets and networking”t”bŒinstrumentation”j )�”(j j ŒMhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#instrumentation”ŒInstrument API”t”bŒinteractive debugging”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/reference-core.html#interactive-debugging”ŒInteractive debugging”t”bŒjoining-the-team”j )�”(j j ŒHhttps://trio.readthedocs.io/en/stable/contributing.html#joining-the-team”ŒJoining the team”t”bŒlive-coroutine-handoff”j )�”(j j ŒThttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#live-coroutine-handoff”Œhttps://trio.readthedocs.io/en/stable/releasing.html#releasing”ŒPreparing a release”t”bŒsearch”j )�”(j j Œ1https://trio.readthedocs.io/en/stable/search.html”Œ Search Page”t”bŒstrict_exception_groups”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/reference-core.html#strict-exception-groups”Œ1Historical Note: “non-strictâ€� ExceptionGroups”t”bŒ subprocess”j )�”(j j ŒBhttps://trio.readthedocs.io/en/stable/reference-io.html#subprocess”ŒSpawning subprocesses”t”bŒsubprocess-options”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#subprocess-options”Œ!Options for starting subprocesses”t”bŒsubprocess-quoting”j )�”(j j ŒJhttps://trio.readthedocs.io/en/stable/reference-io.html#subprocess-quoting”Œ%Quoting: more than you wanted to know”t”bŒsynchronization”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-core.html#synchronization”Œ-Synchronizing and communicating between tasks”t”bŒtask-local-storage”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-core.html#task-local-storage”ŒTask-local storage”t”bŒtasks”j )�”(j j Œ?https://trio.readthedocs.io/en/stable/reference-core.html#tasks”Œ(Tasks let you do multiple things at once”t”bŒtesting-custom-streams”j )�”(j j ŒShttps://trio.readthedocs.io/en/stable/reference-testing.html#testing-custom-streams”Œ%Testing custom stream implementations”t”bŒtesting-streams”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-testing.html#testing-streams”ŒStreams”t”bŒ testing-time”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-testing.html#testing-time”ŒTime and timeouts”t”bŒthreads”j )�”(j j ŒAhttps://trio.readthedocs.io/en/stable/reference-core.html#threads”ŒThreads (if you must)”t”bŒtime-and-clocks”j )�”(j j ŒIhttps://trio.readthedocs.io/en/stable/reference-core.html#time-and-clocks”ŒTime and clocks”t”bŒ trio_contexts”j )�”(j j ŒKhttps://trio.readthedocs.io/en/stable/reference-lowlevel.html#trio-contexts”ŒChecking for Trio”t”bŒtutorial-echo-client-example”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/tutorial.html#tutorial-echo-client-example”j" t”bŒtutorial-echo-server-example”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/tutorial.html#tutorial-echo-server-example”ŒAn echo server”t”bŒtutorial-example-tasks-intro”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/tutorial.html#tutorial-example-tasks-intro”j" t”bŒtutorial-instrument-example”j )�”(j j ŒOhttps://trio.readthedocs.io/en/stable/tutorial.html#tutorial-instrument-example”ŒTask switching illustrated”t”bŒvirtual-network-hooks”j )�”(j j ŒRhttps://trio.readthedocs.io/en/stable/reference-testing.html#virtual-network-hooks”ŒVirtual networking for testing”t”bŒvirtual-streams”j )�”(j j ŒLhttps://trio.readthedocs.io/en/stable/reference-testing.html#virtual-streams”ŒVirtual, controllable streams”t”bŒworker-thread-limiting”j )�”(j j ŒPhttps://trio.readthedocs.io/en/stable/reference-core.html#worker-thread-limiting”Œ1Trio’s philosophy about managing worker threads”t”buŒstd:term”}”Œasynchronous file object”j )�”(j j ŒQhttps://trio.readthedocs.io/en/stable/glossary.html#term-asynchronous-file-object”j" t”bsŒstd:doc”}”(Œawesome-trio-libraries”j )�”(j j ŒAhttps://trio.readthedocs.io/en/stable/awesome-trio-libraries.html”ŒAwesome Trio Libraries”t”bŒcode-of-conduct”j )�”(j j Œ:https://trio.readthedocs.io/en/stable/code-of-conduct.html”ŒCode of Conduct”t”bŒ contributing”j )�”(j j Œ7https://trio.readthedocs.io/en/stable/contributing.html”Œ)Contributing to Trio and related projects”t”bŒdesign”j )�”(j j Œ1https://trio.readthedocs.io/en/stable/design.html”ŒDesign and internals”t”bŒglossary”j )�”(j j Œ3https://trio.readthedocs.io/en/stable/glossary.html”ŒGlossary”t”bŒhistory”j )�”(j j Œ2https://trio.readthedocs.io/en/stable/history.html”ŒRelease history”t”bŒindex”j )�”(j j Œ0https://trio.readthedocs.io/en/stable/index.html”Œ=Trio: a friendly Python library for async concurrency and I/O”t”bŒreference-core”j )�”(j j Œ9https://trio.readthedocs.io/en/stable/reference-core.html”ŒTrio’s core functionality”t”bŒ reference-io”j )�”(j j Œ7https://trio.readthedocs.io/en/stable/reference-io.html”Œ I/O in Trio”t”bŒreference-lowlevel”j )�”(j j Œ=https://trio.readthedocs.io/en/stable/reference-lowlevel.html”Œ3Introspecting and extending Trio with trio.lowlevel”t”bŒreference-testing”j )�”(j j Œhttps://docs.python.org/3/c-api/code.html#c.CO_ASYNC_GENERATOR”j" t”bŒ CO_COROUTINE”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/code.html#c.CO_COROUTINE”j" t”bŒCO_FUTURE_ABSOLUTE_IMPORT”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/code.html#c.CO_FUTURE_ABSOLUTE_IMPORT”j" t”bŒCO_FUTURE_ANNOTATIONS”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/code.html#c.CO_FUTURE_ANNOTATIONS”j" t”bŒCO_FUTURE_DIVISION”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/code.html#c.CO_FUTURE_DIVISION”j" t”bŒCO_FUTURE_GENERATOR_STOP”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/code.html#c.CO_FUTURE_GENERATOR_STOP”j" t”bŒCO_FUTURE_PRINT_FUNCTION”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/code.html#c.CO_FUTURE_PRINT_FUNCTION”j" t”bŒCO_FUTURE_UNICODE_LITERALS”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/code.html#c.CO_FUTURE_UNICODE_LITERALS”j" t”bŒCO_FUTURE_WITH_STATEMENT”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/code.html#c.CO_FUTURE_WITH_STATEMENT”j" t”bŒ CO_GENERATOR”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/code.html#c.CO_GENERATOR”j" t”bŒCO_HAS_DOCSTRING”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/structures.html#c.METH_COEXIST”j" t”bŒ METH_FASTCALL”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/structures.html#c.METH_FASTCALL”j" t”bŒ METH_KEYWORDS”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/structures.html#c.METH_KEYWORDS”j" t”bŒ METH_METHOD”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/structures.html#c.METH_METHOD”j" t”bŒ METH_NOARGS”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/structures.html#c.METH_NOARGS”j" t”bŒMETH_O”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/structures.html#c.METH_O”j" t”bŒ METH_STATIC”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/structures.html#c.METH_STATIC”j" t”bŒ METH_VARARGS”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/structures.html#c.METH_VARARGS”j" t”bŒPYMEM_DOMAIN_MEM”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/memory.html#c.PYMEM_DOMAIN_MEM”j" t”bŒPYMEM_DOMAIN_OBJ”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/memory.html#c.PYMEM_DOMAIN_OBJ”j" t”bŒPYMEM_DOMAIN_RAW”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/memory.html#c.PYMEM_DOMAIN_RAW”j" t”bŒPYTHON_ABI_VERSION”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/module.html#c.PYTHON_ABI_VERSION”j" t”bŒPYTHON_API_VERSION”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/module.html#c.PYTHON_API_VERSION”j" t”bŒPYTHREAD_INVALID_THREAD_ID”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/threads.html#c.PYTHREAD_INVALID_THREAD_ID”j" t”bŒ PY_CXX_CONST”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/arg.html#c.PY_CXX_CONST”j" t”bŒPY_HAVE_THREAD_NATIVE_ID”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/threads.html#c.PY_HAVE_THREAD_NATIVE_ID”j" t”bŒPY_INVALID_STACK_EFFECT”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/veryhigh.html#c.PY_INVALID_STACK_EFFECT”j" t”bŒPY_MAJOR_VERSION”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/apiabiversion.html#c.PY_MAJOR_VERSION”j" t”bŒPY_MICRO_VERSION”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/apiabiversion.html#c.PY_MICRO_VERSION”j" t”bŒPY_MINOR_VERSION”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/apiabiversion.html#c.PY_MINOR_VERSION”j" t”bŒPY_MONITORING_EVENT_BRANCH_LEFT”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_BRANCH_LEFT”j" t”bŒ PY_MONITORING_EVENT_BRANCH_RIGHT”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_BRANCH_RIGHT”j" t”bŒPY_MONITORING_EVENT_CALL”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_CALL”j" t”bŒPY_MONITORING_EVENT_C_RAISE”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_C_RAISE”j" t”bŒPY_MONITORING_EVENT_C_RETURN”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_C_RETURN”j" t”bŒ%PY_MONITORING_EVENT_EXCEPTION_HANDLED”j )�”(jT(jU(ŒWhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_EXCEPTION_HANDLED”j" t”bŒPY_MONITORING_EVENT_INSTRUCTION”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_INSTRUCTION”j" t”bŒPY_MONITORING_EVENT_JUMP”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_JUMP”j" t”bŒPY_MONITORING_EVENT_LINE”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_LINE”j" t”bŒPY_MONITORING_EVENT_PY_RESUME”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_PY_RESUME”j" t”bŒPY_MONITORING_EVENT_PY_RETURN”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_PY_RETURN”j" t”bŒPY_MONITORING_EVENT_PY_START”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_PY_START”j" t”bŒPY_MONITORING_EVENT_PY_THROW”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_PY_THROW”j" t”bŒPY_MONITORING_EVENT_PY_UNWIND”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_PY_UNWIND”j" t”bŒPY_MONITORING_EVENT_PY_YIELD”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_PY_YIELD”j" t”bŒPY_MONITORING_EVENT_RAISE”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_RAISE”j" t”bŒPY_MONITORING_EVENT_RERAISE”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_RERAISE”j" t”bŒ"PY_MONITORING_EVENT_STOP_ITERATION”j )�”(jT(jU(ŒThttps://docs.python.org/3/c-api/monitoring.html#c.PY_MONITORING_EVENT_STOP_ITERATION”j" t”bŒPY_RELEASE_LEVEL”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/apiabiversion.html#c.PY_RELEASE_LEVEL”j" t”bŒPY_RELEASE_SERIAL”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/apiabiversion.html#c.PY_RELEASE_SERIAL”j" t”bŒPY_VECTORCALL_ARGUMENTS_OFFSET”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/call.html#c.PY_VECTORCALL_ARGUMENTS_OFFSET”j" t”bŒPY_VERSION_HEX”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/apiabiversion.html#c.PY_VERSION_HEX”j" t”bŒ PyAPI_DATA”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/intro.html#c.PyAPI_DATA”j" t”bŒ PyAPI_FUNC”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/intro.html#c.PyAPI_FUNC”j" t”bŒPyAsyncGenASend_CheckExact”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/gen.html#c.PyAsyncGenASend_CheckExact”j" t”bŒPyBUF_ANY_CONTIGUOUS”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/buffer.html#c.PyBUF_ANY_CONTIGUOUS”j" t”bŒ PyBUF_CONTIG”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/buffer.html#c.PyBUF_CONTIG”j" t”bŒPyBUF_CONTIG_RO”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/buffer.html#c.PyBUF_CONTIG_RO”j" t”bŒPyBUF_C_CONTIGUOUS”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/buffer.html#c.PyBUF_C_CONTIGUOUS”j" t”bŒ PyBUF_FORMAT”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/buffer.html#c.PyBUF_FORMAT”j" t”bŒ PyBUF_FULL”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/buffer.html#c.PyBUF_FULL”j" t”bŒ PyBUF_FULL_RO”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/buffer.html#c.PyBUF_FULL_RO”j" t”bŒPyBUF_F_CONTIGUOUS”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/buffer.html#c.PyBUF_F_CONTIGUOUS”j" t”bŒPyBUF_INDIRECT”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/buffer.html#c.PyBUF_RECORDS_RO”j" t”bŒ PyBUF_SIMPLE”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/buffer.html#c.PyBUF_SIMPLE”j" t”bŒ PyBUF_STRIDED”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/buffer.html#c.PyBUF_STRIDED”j" t”bŒPyBUF_STRIDED_RO”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/buffer.html#c.PyBUF_STRIDED_RO”j" t”bŒ PyBUF_STRIDES”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/buffer.html#c.PyBUF_STRIDES”j" t”bŒPyBUF_WRITABLE”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/allocation.html#c.PyObject_DEL”j" t”bŒ PyObject_Del”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/allocation.html#c.PyObject_Del”j" t”bŒ PyObject_FREE”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/allocation.html#c.PyObject_FREE”j" t”bŒPyObject_GC_New”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_New”j" t”bŒPyObject_GC_NewVar”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_NewVar”j" t”bŒPyObject_GC_Resize”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_Resize”j" t”bŒ PyObject_HEAD”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/structures.html#c.PyObject_HEAD”j" t”bŒPyObject_HEAD_INIT”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/structures.html#c.PyObject_HEAD_INIT”j" t”bŒ PyObject_INIT”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/allocation.html#c.PyObject_INIT”j" t”bŒPyObject_INIT_VAR”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/allocation.html#c.PyObject_INIT_VAR”j" t”bŒPyObject_MALLOC”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/allocation.html#c.PyObject_MALLOC”j" t”bŒ PyObject_NEW”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/allocation.html#c.PyObject_NEW”j" t”bŒPyObject_NEW_VAR”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/allocation.html#c.PyObject_NEW_VAR”j" t”bŒ PyObject_New”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/allocation.html#c.PyObject_New”j" t”bŒPyObject_NewVar”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/allocation.html#c.PyObject_NewVar”j" t”bŒPyObject_REALLOC”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/allocation.html#c.PyObject_REALLOC”j" t”bŒPyObject_VAR_HEAD”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/structures.html#c.PyObject_VAR_HEAD”j" t”bŒ PySet_MINSIZE”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/set.html#c.PySet_MINSIZE”j" t”bŒPyUnicode_1BYTE_KIND”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_1BYTE_KIND”j" t”bŒPyUnicode_2BYTE_KIND”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_2BYTE_KIND”j" t”bŒPyUnicode_4BYTE_KIND”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_4BYTE_KIND”j" t”bŒPyUnicode_IS_COMPACT”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_IS_COMPACT”j" t”bŒPyUnicode_IS_COMPACT_ASCII”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_IS_COMPACT_ASCII”j" t”bŒPyVarObject_HEAD_INIT”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/structures.html#c.PyVarObject_HEAD_INIT”j" t”bŒPy_ABS”j )�”(jT(jU(Œ3https://docs.python.org/3/c-api/intro.html#c.Py_ABS”j" t”bŒ Py_ALIGNED”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/intro.html#c.Py_ALIGNED”j" t”bŒPy_ALWAYS_INLINE”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/intro.html#c.Py_ALWAYS_INLINE”j" t”bŒPy_ARITHMETIC_RIGHT_SHIFT”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/intro.html#c.Py_ARITHMETIC_RIGHT_SHIFT”j" t”bŒPy_ARRAY_LENGTH”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/object.html#c.Py_CONSTANT_NONE”j" t”bŒPy_CONSTANT_NOT_IMPLEMENTED”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/object.html#c.Py_CONSTANT_NOT_IMPLEMENTED”j" t”bŒPy_CONSTANT_ONE”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/object.html#c.Py_CONSTANT_ONE”j" t”bŒPy_CONSTANT_TRUE”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.Py_CONSTANT_TRUE”j" t”bŒPy_CONSTANT_ZERO”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.Py_CONSTANT_ZERO”j" t”bŒPy_DEBUG”j )�”(jT(jU(•7Œ5https://docs.python.org/3/c-api/intro.html#c.Py_DEBUG”j" t”bŒ Py_DEPRECATED”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/intro.html#c.Py_DEPRECATED”j" t”bŒPy_DTSF_ADD_DOT_0”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/conversion.html#c.Py_DTSF_ADD_DOT_0”j" t”bŒ Py_DTSF_ALT”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/conversion.html#c.Py_DTSF_ALT”j" t”bŒPy_DTSF_NO_NEG_0”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/conversion.html#c.Py_DTSF_NO_NEG_0”j" t”bŒ Py_DTSF_SIGN”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/conversion.html#c.Py_DTSF_SIGN”j" t”bŒPy_DTST_FINITE”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/conversion.html#c.Py_DTST_FINITE”j" t”bŒPy_DTST_INFINITE”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/conversion.html#c.Py_DTST_INFINITE”j" t”bŒ Py_DTST_NAN”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/conversion.html#c.Py_DTST_NAN”j" t”bŒPy_END_ALLOW_THREADS”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/threads.html#c.Py_END_ALLOW_THREADS”j" t”bŒPy_END_CRITICAL_SECTION”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/synchronization.html#c.Py_END_CRITICAL_SECTION”j" t”bŒPy_END_CRITICAL_SECTION2”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/synchronization.html#c.Py_END_CRITICAL_SECTION2”j" t”bŒPy_EQ”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/typeobj.html#c.Py_EQ”j" t”bŒPy_EXPORTED_SYMBOL”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/intro.html#c.Py_EXPORTED_SYMBOL”j" t”bŒPy_FORCE_EXPANSION”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/intro.html#c.Py_FORCE_EXPANSION”j" t”bŒPy_GCC_ATTRIBUTE”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/intro.html#c.Py_GCC_ATTRIBUTE”j" t”bŒPy_GE”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/typeobj.html#c.Py_GE”j" t”bŒ Py_GETENV”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/intro.html#c.Py_GETENV”j" t”bŒPy_GT”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/typeobj.html#c.Py_GT”j" t”bŒPy_HASH_ALGORITHM”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/hash.html#c.Py_HASH_ALGORITHM”j" t”bŒPy_HASH_CUTOFF”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/hash.html#c.Py_HASH_CUTOFF”j" t”bŒ Py_HASH_FNV”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/hash.html#c.Py_HASH_FNV”j" t”bŒPy_HASH_SIPHASH13”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/hash.html#c.Py_HASH_SIPHASH13”j" t”bŒPy_HASH_SIPHASH24”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/hash.html#c.Py_HASH_SIPHASH24”j" t”bŒ Py_HUGE_VAL”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/float.html#c.Py_HUGE_VAL”j" t”bŒPy_IMPORTED_SYMBOL”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/intro.html#c.Py_IMPORTED_SYMBOL”j" t”bŒ Py_INFINITY”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/float.html#c.Py_INFINITY”j" t”bŒ Py_ISALNUM”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/typeobj.html#c.Py_bf_getbuffer”j" t”bŒPy_bf_releasebuffer”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/typeobj.html#c.Py_bf_releasebuffer”j" t”bŒ Py_mod_create”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/module.html#c.Py_mod_create”j" t”bŒ Py_mod_exec”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/module.html#c.Py_mod_exec”j" t”bŒ Py_mod_gil”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/module.html#c.Py_mod_gil”j" t”bŒPy_mod_multiple_interpreters”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/module.html#c.Py_mod_multiple_interpreters”j" t”bŒPy_mp_ass_subscript”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/typeobj.html#c.Py_mp_ass_subscript”j" t”bŒ Py_mp_length”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/typeobj.html#c.Py_mp_length”j" t”bŒPy_mp_subscript”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/typeobj.html#c.Py_mp_subscript”j" t”bŒPy_nb_absolute”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_absolute”j" t”bŒ Py_nb_add”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_add”j" t”bŒ Py_nb_and”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_and”j" t”bŒ Py_nb_bool”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_bool”j" t”bŒ Py_nb_divmod”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_divmod”j" t”bŒ Py_nb_float”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_float”j" t”bŒPy_nb_floor_divide”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/typeobj.html#c.Py_nb_floor_divide”j" t”bŒ Py_nb_index”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_index”j" t”bŒPy_nb_inplace_add”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_inplace_add”j" t”bŒPy_nb_inplace_and”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_inplace_and”j" t”bŒPy_nb_inplace_floor_divide”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/typeobj.html#c.Py_nb_inplace_floor_divide”j" t”bŒPy_nb_inplace_lshift”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/typeobj.html#c.Py_nb_inplace_lshift”j" t”bŒPy_nb_inplace_matrix_multiply”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/typeobj.html#c.Py_nb_inplace_matrix_multiply”j" t”bŒPy_nb_inplace_multiply”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/typeobj.html#c.Py_nb_inplace_multiply”j" t”bŒPy_nb_inplace_or”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_inplace_or”j" t”bŒPy_nb_inplace_power”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/typeobj.html#c.Py_nb_inplace_power”j" t”bŒPy_nb_inplace_remainder”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/typeobj.html#c.Py_nb_inplace_remainder”j" t”bŒPy_nb_inplace_rshift”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/typeobj.html#c.Py_nb_inplace_rshift”j" t”bŒPy_nb_inplace_subtract”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/typeobj.html#c.Py_nb_inplace_subtract”j" t”bŒPy_nb_inplace_true_divide”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/typeobj.html#c.Py_nb_inplace_true_divide”j" t”bŒPy_nb_inplace_xor”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_inplace_xor”j" t”bŒ Py_nb_int”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_int”j" t”bŒ Py_nb_invert”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_invert”j" t”bŒ Py_nb_lshift”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_lshift”j" t”bŒPy_nb_matrix_multiply”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/typeobj.html#c.Py_nb_matrix_multiply”j" t”bŒPy_nb_multiply”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_multiply”j" t”bŒPy_nb_negative”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_negative”j" t”bŒPy_nb_or”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_or”j" t”bŒPy_nb_positive”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_positive”j" t”bŒ Py_nb_power”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_power”j" t”bŒPy_nb_remainder”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_remainder”j" t”bŒ Py_nb_rshift”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_rshift”j" t”bŒPy_nb_subtract”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_subtract”j" t”bŒPy_nb_true_divide”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_true_divide”j" t”bŒ Py_nb_xor”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/typeobj.html#c.Py_nb_xor”j" t”bŒPy_sq_ass_item”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/typeobj.html#c.Py_sq_ass_item”j" t”bŒ Py_sq_concat”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/typeobj.html#c.Py_sq_concat”j" t”bŒPy_sq_contains”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/typeobj.html#c.Py_sq_contains”j" t”bŒPy_sq_inplace_concat”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/typeobj.html#c.Py_sq_inplace_concat”j" t”bŒPy_sq_inplace_repeat”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/typeobj.html#c.Py_sq_inplace_repeat”j" t”bŒ Py_sq_item”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/typeobj.html#c.Py_sq_item”j" t”bŒ Py_sq_length”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/typeobj.html#c.Py_sq_length”j" t”bŒ Py_sq_repeat”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/typeobj.html#c.Py_sq_repeat”j" t”bŒ Py_tp_alloc”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/typeobj.html#c.Py_tp_alloc”j" t”bŒ Py_tp_base”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/typeobj.html#c.Py_tp_base”j" t”bŒ Py_tp_bases”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/typeobj.html#c.Py_tp_bases”j" t”bŒ Py_tp_call”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/typeobj.html#c.Py_tp_call”j" t”bŒ Py_tp_clear”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/typeobj.html#c.Py_tp_clear”j" t”bŒ Py_tp_dealloc”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/typeobj.html#c.Py_tp_descr_get”j" t”bŒPy_tp_descr_set”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/typeobj.html#c.Py_tp_descr_set”j" t”bŒ Py_tp_doc”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/typeobj.html#c.Py_tp_doc”j" t”bŒPy_tp_finalize”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/typeobj.html#c.Py_tp_finalize”j" t”bŒ Py_tp_free”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/typeobj.html#c.Py_tp_free”j" t”bŒ Py_tp_getattr”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/set.html#c.PyAnySet_CheckExact”j" t”bŒ PyArg_Parse”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/arg.html#c.PyArg_Parse”j" t”bŒPyArg_ParseTuple”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTuple”j" t”bŒPyArg_ParseTupleAndKeywords”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleAndKeywords”j" t”bŒPyArg_UnpackTuple”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_Release”j" t”bŒPyBuffer_SizeFromFormat”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_SizeFromFormat”j" t”bŒPyBuffer_ToContiguous”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_ToContiguous”j" t”bŒPyByteArray_AS_STRING”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_AS_STRING”j" t”bŒPyByteArray_AsString”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_AsString”j" t”bŒPyByteArray_Check”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Check”j" t”bŒPyByteArray_CheckExact”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_CheckExact”j" t”bŒPyByteArray_Concat”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Concat”j" t”bŒPyByteArray_FromObject”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromObject”j" t”bŒPyByteArray_FromStringAndSize”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromStringAndSize”j" t”bŒPyByteArray_GET_SIZE”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_GET_SIZE”j" t”bŒPyByteArray_Resize”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Resize”j" t”bŒPyByteArray_Size”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Size”j" t”bŒPyBytes_AS_STRING”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/bytes.html#c.PyBytes_AS_STRING”j" t”bŒPyBytes_AsString”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsString”j" t”bŒPyBytes_AsStringAndSize”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringAndSize”j" t”bŒ PyBytes_Check”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Check”j" t”bŒPyBytes_CheckExact”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_CheckExact”j" t”bŒPyBytes_Concat”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Concat”j" t”bŒPyBytes_ConcatAndDel”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_ConcatAndDel”j" t”bŒPyBytes_DecodeEscape”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_DecodeEscape”j" t”bŒPyBytes_FromFormat”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormat”j" t”bŒPyBytes_FromFormatV”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormatV”j" t”bŒPyBytes_FromObject”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromObject”j" t”bŒPyBytes_FromString”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromString”j" t”bŒPyBytes_FromStringAndSize”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromStringAndSize”j" t”bŒPyBytes_GET_SIZE”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/bytes.html#c.PyBytes_GET_SIZE”j" t”bŒ PyBytes_Join”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Join”j" t”bŒ PyBytes_Repr”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Repr”j" t”bŒ PyBytes_Size”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Size”j" t”bŒPyCFunction_Check”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_Check”j" t”bŒPyCFunction_CheckExact”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_CheckExact”j" t”bŒPyCFunction_GET_FLAGS”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_GET_FLAGS”j" t”bŒPyCFunction_GET_FUNCTION”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_GET_FUNCTION”j" t”bŒPyCFunction_GET_SELF”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_GET_SELF”j" t”bŒPyCFunction_GetFlags”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_GetFlags”j" t”bŒPyCFunction_GetFunction”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_GetFunction”j" t”bŒPyCFunction_GetSelf”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_GetSelf”j" t”bŒPyCFunction_New”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_New”j" t”bŒPyCFunction_NewEx”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_NewEx”j" t”bŒPyCMethod_Check”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#c.PyCMethod_Check”j" t”bŒPyCMethod_CheckExact”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/structures.html#c.PyCMethod_CheckExact”j" t”bŒ PyCMethod_New”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/structures.html#c.PyCMethod_New”j" t”bŒPyCallIter_Check”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/iterator.html#c.PyCallIter_Check”j" t”bŒPyCallIter_New”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/iterator.html#c.PyCallIter_New”j" t”bŒPyCallable_Check”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/code.html#c.PyCode_GetCellvars”j" t”bŒPyCode_GetCode”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/code.html#c.PyCode_GetCode”j" t”bŒPyCode_GetFreevars”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/code.html#c.PyCode_GetFreevars”j" t”bŒPyCode_GetNumFree”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/code.html#c.PyCode_GetNumFree”j" t”bŒPyCode_GetVarnames”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/code.html#c.PyCode_GetVarnames”j" t”bŒPyCode_NewEmpty”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/code.html#c.PyCode_NewEmpty”j" t”bŒPyCode_NewWithPosOnlyArgs”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/code.html#c.PyCode_NewWithPosOnlyArgs”j" t”bŒPyCode_Optimize”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/code.html#c.PyCode_Optimize”j" t”bŒPyCodec_BackslashReplaceErrors”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/codec.html#c.PyCodec_BackslashReplaceErrors”j" t”bŒPyCodec_Decode”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/codec.html#c.PyCodec_Decode”j" t”bŒPyCodec_Decoder”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_Check”j" t”bŒPyComplex_CheckExact”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/complex.html#c.PyComplex_CheckExact”j" t”bŒPyComplex_FromCComplex”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_FromCComplex”j" t”bŒPyComplex_FromDoubles”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_FromDoubles”j" t”bŒPyComplex_ImagAsDouble”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_ImagAsDouble”j" t”bŒPyComplex_RealAsDouble”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_RealAsDouble”j" t”bŒPyConfig_Clear”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_Clear”j" t”bŒ PyConfig_Get”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/init_config.html#c.PyConfig_Get”j" t”bŒPyConfig_GetInt”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_GetInt”j" t”bŒPyConfig_InitIsolatedConfig”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_InitIsolatedConfig”j" t”bŒPyConfig_InitPythonConfig”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_InitPythonConfig”j" t”bŒPyConfig_Names”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_Names”j" t”bŒ PyConfig_Read”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/init_config.html#c.PyConfig_Read”j" t”bŒ PyConfig_Set”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/init_config.html#c.PyConfig_Set”j" t”bŒPyConfig_SetArgv”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetArgv”j" t”bŒPyConfig_SetBytesArgv”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesArgv”j" t”bŒPyConfig_SetBytesString”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesString”j" t”bŒPyConfig_SetString”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetString”j" t”bŒPyConfig_SetWideStringList”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetWideStringList”j" t”bŒPyContextToken_CheckExact”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextToken_CheckExact”j" t”bŒPyContextVar_CheckExact”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_CheckExact”j" t”bŒPyContextVar_Get”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Get”j" t”bŒPyContextVar_New”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_New”j" t”bŒPyContextVar_Reset”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Reset”j" t”bŒPyContextVar_Set”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Set”j" t”bŒPyContext_AddWatcher”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_AddWatcher”j" t”bŒPyContext_CheckExact”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_CheckExact”j" t”bŒPyContext_ClearWatcher”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_ClearWatcher”j" t”bŒPyContext_Copy”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Copy”j" t”bŒPyContext_CopyCurrent”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_CopyCurrent”j" t”bŒPyContext_Enter”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Enter”j" t”bŒPyContext_Exit”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Exit”j" t”bŒ PyContext_New”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/contextvars.html#c.PyContext_New”j" t”bŒPyCoro_CheckExact”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/coro.html#c.PyCoro_CheckExact”j" t”bŒ PyCoro_New”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/coro.html#c.PyCoro_New”j" t”bŒPyCursesWindow_Check”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/curses.html#c.PyCursesWindow_Check”j" t”bŒPyDTrace_AUDIT”j )�”(jT(jU(ŒEhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_AUDIT”j" t”bŒPyDTrace_AUDIT_ENABLED”j )�”(jT(jU(ŒMhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_AUDIT_ENABLED”j" t”bŒPyDTrace_FUNCTION_ENTRY”j )�”(jT(jU(ŒNhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_FUNCTION_ENTRY”j" t”bŒPyDTrace_FUNCTION_ENTRY_ENABLED”j )�”(jT(jU(ŒVhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_FUNCTION_ENTRY_ENABLED”j" t”bŒPyDTrace_FUNCTION_RETURN”j )�”(jT(jU(ŒOhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_FUNCTION_RETURN”j" t”bŒ PyDTrace_FUNCTION_RETURN_ENABLED”j )�”(jT(jU(ŒWhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_FUNCTION_RETURN_ENABLED”j" t”bŒPyDTrace_GC_DONE”j )�”(jT(jU(ŒGhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_GC_DONE”j" t”bŒPyDTrace_GC_DONE_ENABLED”j )�”(jT(jU(ŒOhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_GC_DONE_ENABLED”j" t”bŒPyDTrace_GC_START”j )�”(jT(jU(ŒHhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_GC_START”j" t”bŒPyDTrace_GC_START_ENABLED”j )�”(jT(jU(ŒPhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_GC_START_ENABLED”j" t”bŒPyDTrace_IMPORT_FIND_LOAD_DONE”j )�”(jT(jU(ŒUhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_IMPORT_FIND_LOAD_DONE”j" t”bŒ&PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED”j )�”(jT(jU(Œ]https://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED”j" t”bŒPyDTrace_IMPORT_FIND_LOAD_START”j )�”(jT(jU(ŒVhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_IMPORT_FIND_LOAD_START”j" t”bŒ'PyDTrace_IMPORT_FIND_LOAD_START_ENABLED”j )�”(jT(jU(Œ^https://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_IMPORT_FIND_LOAD_START_ENABLED”j" t”bŒPyDTrace_INSTANCE_DELETE_DONE”j )�”(jT(jU(ŒThttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_INSTANCE_DELETE_DONE”j" t”bŒ%PyDTrace_INSTANCE_DELETE_DONE_ENABLED”j )�”(jT(jU(Œ\https://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_INSTANCE_DELETE_DONE_ENABLED”j" t”bŒPyDTrace_INSTANCE_DELETE_START”j )�”(jT(jU(ŒUhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_INSTANCE_DELETE_START”j" t”bŒ&PyDTrace_INSTANCE_DELETE_START_ENABLED”j )�”(jT(jU(Œ]https://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_INSTANCE_DELETE_START_ENABLED”j" t”bŒPyDTrace_INSTANCE_NEW_DONE”j )�”(jT(jU(ŒQhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_INSTANCE_NEW_DONE”j" t”bŒ"PyDTrace_INSTANCE_NEW_DONE_ENABLED”j )�”(jT(jU(ŒYhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_INSTANCE_NEW_DONE_ENABLED”j" t”bŒPyDTrace_INSTANCE_NEW_START”j )�”(jT(jU(ŒRhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_INSTANCE_NEW_START”j" t”bŒ#PyDTrace_INSTANCE_NEW_START_ENABLED”j )�”(jT(jU(ŒZhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_INSTANCE_NEW_START_ENABLED”j" t”bŒ PyDTrace_LINE”j )�”(jT(jU(ŒDhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_LINE”j" t”bŒPyDTrace_LINE_ENABLED”j )�”(jT(jU(ŒLhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_LINE_ENABLED”j" t”bŒPyDateTime_Check”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/datetime.html#c.PyDateTime_Check”j" t”bŒPyDateTime_CheckExact”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_CheckExact”j" t”bŒPyDateTime_DATE_GET_FOLD”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_FOLD”j" t”bŒPyDateTime_DATE_GET_HOUR”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_HOUR”j" t”bŒPyDateTime_DATE_GET_MICROSECOND”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_MICROSECOND”j" t”bŒPyDateTime_DATE_GET_MINUTE”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_MINUTE”j" t”bŒPyDateTime_DATE_GET_SECOND”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_SECOND”j" t”bŒPyDateTime_DATE_GET_TZINFO”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_TZINFO”j" t”bŒPyDateTime_DELTA_GET_DAYS”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_DAYS”j" t”bŒ!PyDateTime_DELTA_GET_MICROSECONDS”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_MICROSECONDS”j" t”bŒPyDateTime_DELTA_GET_SECONDS”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_SECONDS”j" t”bŒPyDateTime_FromDateAndTime”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTime”j" t”bŒ!PyDateTime_FromDateAndTimeAndFold”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFold”j" t”bŒPyDateTime_FromTimestamp”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromTimestamp”j" t”bŒPyDateTime_GET_DAY”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_DAY”j" t”bŒPyDateTime_GET_MONTH”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_MONTH”j" t”bŒPyDateTime_GET_YEAR”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_YEAR”j" t”bŒPyDateTime_TIME_GET_FOLD”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_FOLD”j" t”bŒPyDateTime_TIME_GET_HOUR”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_HOUR”j" t”bŒPyDateTime_TIME_GET_MICROSECOND”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_MICROSECOND”j" t”bŒPyDateTime_TIME_GET_MINUTE”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_MINUTE”j" t”bŒPyDateTime_TIME_GET_SECOND”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_SECOND”j" t”bŒPyDateTime_TIME_GET_TZINFO”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_TZINFO”j" t”bŒ PyDate_Check”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/dict.html#c.PyDictValues_Check”j" t”bŒPyDictViewSet_Check”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/dict.html#c.PyDictViewSet_Check”j" t”bŒPyDict_AddWatcher”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/dict.html#c.PyDict_AddWatcher”j" t”bŒ PyDict_Check”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/dict.html#c.PyDict_Check”j" t”bŒPyDict_CheckExact”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/dict.html#c.PyDict_CheckExact”j" t”bŒ PyDict_Clear”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/dict.html#c.PyDict_Clear”j" t”bŒPyDict_ClearWatcher”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/dict.html#c.PyDict_ClearWatcher”j" t”bŒPyDict_Contains”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/dict.html#c.PyDict_Contains”j" t”bŒPyDict_ContainsString”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/dict.html#c.PyDict_ContainsString”j" t”bŒ PyDict_Copy”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/dict.html#c.PyDict_Copy”j" t”bŒPyDict_DelItem”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/dict.html#c.PyDict_DelItem”j" t”bŒPyDict_DelItemString”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/dict.html#c.PyDict_DelItemString”j" t”bŒPyDict_GET_SIZE”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/dict.html#c.PyDict_GET_SIZE”j" t”bŒPyDict_GetItem”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/dict.html#c.PyDict_GetItem”j" t”bŒPyDict_GetItemRef”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemRef”j" t”bŒPyDict_GetItemString”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemString”j" t”bŒPyDict_GetItemStringRef”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemStringRef”j" t”bŒPyDict_GetItemWithError”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemWithError”j" t”bŒ PyDict_Items”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/dict.html#c.PyDict_Items”j" t”bŒ PyDict_Keys”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/dict.html#c.PyDict_Keys”j" t”bŒ PyDict_Merge”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/dict.html#c.PyDict_Merge”j" t”bŒPyDict_MergeFromSeq2”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/dict.html#c.PyDict_MergeFromSeq2”j" t”bŒ PyDict_New”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/dict.html#c.PyDict_New”j" t”bŒ PyDict_Next”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/dict.html#c.PyDict_Next”j" t”bŒ PyDict_Pop”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/dict.html#c.PyDict_Pop”j" t”bŒPyDict_PopString”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_Format”j" t”bŒPyErr_FormatUnraisable”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_FormatUnraisable”j" t”bŒ PyErr_FormatV”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_FormatV”j" t”bŒPyErr_GetExcInfo”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GetExcInfo”j" t”bŒPyErr_GetHandledException”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GetHandledException”j" t”bŒPyErr_GetRaisedException”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GetRaisedException”j" t”bŒPyErr_GivenExceptionMatches”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GivenExceptionMatches”j" t”bŒPyErr_NewException”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewException”j" t”bŒPyErr_NewExceptionWithDoc”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionWithDoc”j" t”bŒPyErr_NoMemory”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/exceptions.html#c.PyErr_NoMemory”j" t”bŒPyErr_NormalizeException”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NormalizeException”j" t”bŒPyErr_Occurred”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Occurred”j" t”bŒ PyErr_Print”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Print”j" t”bŒ PyErr_PrintEx”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_PrintEx”j" t”bŒPyErr_ProgramText”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ProgramText”j" t”bŒPyErr_ProgramTextObject”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ProgramTextObject”j" t”bŒ PyErr_RangedSyntaxLocationObject”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_RangedSyntaxLocationObject”j" t”bŒPyErr_ResourceWarning”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ResourceWarning”j" t”bŒ PyErr_Restore”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Restore”j" t”bŒPyErr_SetExcFromWindowsErr”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErr”j" t”bŒ&PyErr_SetExcFromWindowsErrWithFilename”j )�”(jT(jU(ŒXhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilename”j" t”bŒ,PyErr_SetExcFromWindowsErrWithFilenameObject”j )�”(jT(jU(Œ^https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObject”j" t”bŒ-PyErr_SetExcFromWindowsErrWithFilenameObjects”j )�”(jT(jU(Œ_https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjects”j" t”bŒPyErr_SetExcInfo”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcInfo”j" t”bŒPyErr_SetFromErrno”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrno”j" t”bŒPyErr_SetFromErrnoWithFilename”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilename”j" t”bŒ$PyErr_SetFromErrnoWithFilenameObject”j )�”(jT(jU(ŒVhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObject”j" t”bŒ%PyErr_SetFromErrnoWithFilenameObjects”j )�”(jT(jU(ŒWhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjects”j" t”bŒPyErr_SetFromWindowsErr”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErr”j" t”bŒ#PyErr_SetFromWindowsErrWithFilename”j )�”(jT(jU(ŒUhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErrWithFilename”j" t”bŒPyErr_SetHandledException”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetHandledException”j" t”bŒPyErr_SetImportError”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportError”j" t”bŒPyErr_SetImportErrorSubclass”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorSubclass”j" t”bŒPyErr_SetInterrupt”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetInterrupt”j" t”bŒPyErr_SetInterruptEx”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetInterruptEx”j" t”bŒ PyErr_SetNone”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetNone”j" t”bŒPyErr_SetObject”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetObject”j" t”bŒPyErr_SetRaisedException”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetRaisedException”j" t”bŒPyErr_SetString”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetString”j" t”bŒPyErr_SyntaxLocation”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocation”j" t”bŒPyErr_SyntaxLocationEx”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationEx”j" t”bŒPyErr_SyntaxLocationObject”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationObject”j" t”bŒ PyErr_WarnEx”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnEx”j" t”bŒPyErr_WarnExplicit”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicit”j" t”bŒPyErr_WarnExplicitFormat”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitFormat”j" t”bŒPyErr_WarnExplicitObject”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObject”j" t”bŒPyErr_WarnFormat”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnFormat”j" t”bŒPyErr_WriteUnraisable”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WriteUnraisable”j" t”bŒPyEval_AcquireThread”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/threads.html#c.PyEval_AcquireThread”j" t”bŒPyEval_EvalCode”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCode”j" t”bŒPyEval_EvalCodeEx”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeEx”j" t”bŒPyEval_EvalFrame”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFrame”j" t”bŒPyEval_EvalFrameEx”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFrameEx”j" t”bŒPyEval_GetBuiltins”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetBuiltins”j" t”bŒPyEval_GetFrame”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFrame”j" t”bŒPyEval_GetFrameBuiltins”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFrameBuiltins”j" t”bŒPyEval_GetFrameGlobals”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFrameGlobals”j" t”bŒPyEval_GetFrameLocals”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFrameLocals”j" t”bŒPyEval_GetFuncDesc”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFuncDesc”j" t”bŒPyEval_GetFuncName”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFuncName”j" t”bŒPyEval_GetGlobals”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetGlobals”j" t”bŒPyEval_GetLocals”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetLocals”j" t”bŒPyEval_InitThreads”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/threads.html#c.PyEval_InitThreads”j" t”bŒPyEval_MergeCompilerFlags”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_MergeCompilerFlags”j" t”bŒPyEval_ReleaseThread”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/threads.html#c.PyEval_ReleaseThread”j" t”bŒPyEval_RestoreThread”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/threads.html#c.PyEval_RestoreThread”j" t”bŒPyEval_SaveThread”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/threads.html#c.PyEval_SaveThread”j" t”bŒPyEval_SetProfile”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/profiling.html#c.PyEval_SetProfile”j" t”bŒPyEval_SetProfileAllThreads”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/profiling.html#c.PyEval_SetProfileAllThreads”j" t”bŒPyEval_SetTrace”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/profiling.html#c.PyEval_SetTrace”j" t”bŒPyEval_SetTraceAllThreads”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/profiling.html#c.PyEval_SetTraceAllThreads”•j" t”bŒPyExceptionClass_Check”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/exceptions.html#c.PyExceptionClass_Check”j" t”bŒPyExceptionClass_Name”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/exceptions.html#c.PyExceptionClass_Name”j" t”bŒPyExceptionInstance_Check”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/exceptions.html#c.PyExceptionInstance_Check”j" t”bŒPyException_GetArgs”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetArgs”j" t”bŒPyException_GetCause”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetCause”j" t”bŒPyException_GetContext”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetContext”j" t”bŒPyException_GetTraceback”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetTraceback”j" t”bŒPyException_SetArgs”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetArgs”j" t”bŒPyException_SetCause”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetCause”j" t”bŒPyException_SetContext”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetContext”j" t”bŒPyException_SetTraceback”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetTraceback”j" t”bŒ PyFile_FromFd”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFd”j" t”bŒPyFile_GetLine”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/file.html#c.PyFile_GetLine”j" t”bŒPyFile_NewStdPrinter”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/file.html#c.PyFile_NewStdPrinter”j" t”bŒPyFile_OpenCode”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/file.html#c.PyFile_OpenCode”j" t”bŒPyFile_OpenCodeObject”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/file.html#c.PyFile_OpenCodeObject”j" t”bŒPyFile_SetOpenCodeHook”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/file.html#c.PyFile_SetOpenCodeHook”j" t”bŒPyFile_WriteObject”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/file.html#c.PyFile_WriteObject”j" t”bŒPyFile_WriteString”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/file.html#c.PyFile_WriteString”j" t”bŒPyFloat_AS_DOUBLE”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/float.html#c.PyFloat_AS_DOUBLE”j" t”bŒPyFloat_AsDouble”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/float.html#c.PyFloat_AsDouble”j" t”bŒ PyFloat_Check”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/float.html#c.PyFloat_Check”j" t”bŒPyFloat_CheckExact”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/float.html#c.PyFloat_CheckExact”j" t”bŒPyFloat_FromDouble”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/float.html#c.PyFloat_FromDouble”j" t”bŒPyFloat_FromString”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/float.html#c.PyFloat_FromString”j" t”bŒPyFloat_GetInfo”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/frame.html#c.PyFrame_GetLocals”j" t”bŒPyFrame_GetVar”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/frame.html#c.PyFrame_GetVar”j" t”bŒPyFrame_GetVarString”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/frame.html#c.PyFrame_GetVarString”j" t”bŒPyFrame_LocalsToFast”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/frame.html#c.PyFrame_LocalsToFast”j" t”bŒ PyFrame_New”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/frame.html#c.PyFrame_New”j" t”bŒPyFrozenSet_Check”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/function.html#c.PyFunction_New”j" t”bŒPyFunction_NewWithQualName”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/function.html#c.PyFunction_NewWithQualName”j" t”bŒPyFunction_SetAnnotations”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetAnnotations”j" t”bŒPyFunction_SetClosure”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetClosure”j" t”bŒPyFunction_SetDefaults”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetDefaults”j" t”bŒPyFunction_SetKwDefaults”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetKwDefaults”j" t”bŒPyFunction_SetVectorcall”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetVectorcall”j" t”bŒ PyGC_Collect”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/gcsupport.html#c.PyGC_Collect”j" t”bŒ PyGC_Disable”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/gcsupport.html#c.PyGC_Disable”j" t”bŒ PyGC_Enable”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromSsize_t”j" t”bŒPyLong_FromString”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/long.html#c.PyLong_FromString”j" t”bŒPyLong_FromUInt32”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/long.html#c.PyLong_FromUInt32”j" t”bŒPyLong_FromUInt64”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/long.html#c.PyLong_FromUInt64”j" t”bŒPyLong_FromUnicodeObject”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnicodeObject”j" t”bŒPyLong_FromUnsignedLong”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedLong”j" t”bŒPyLong_FromUnsignedLongLong”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedLongLong”j" t”bŒPyLong_FromUnsignedNativeBytes”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedNativeBytes”j" t”bŒPyLong_FromVoidPtr”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/long.html#c.PyLong_FromVoidPtr”j" t”bŒPyLong_GetInfo”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/long.html#c.PyLong_GetInfo”j" t”bŒPyLong_GetNativeLayout”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/long.html#c.PyLong_GetNativeLayout”j" t”bŒPyLong_GetSign”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/long.html#c.PyLong_GetSign”j" t”bŒPyLong_IsNegative”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/long.html#c.PyLong_IsNegative”j" t”bŒPyLong_IsPositive”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/long.html#c.PyLong_IsPositive”j" t”bŒ PyLong_IsZero”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/long.html#c.PyLong_IsZero”j" t”bŒPyMapping_Check”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Check”j" t”bŒPyMapping_DelItem”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItem”j" t”bŒPyMapping_DelItemString”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItemString”j" t”bŒPyMapping_GetItemString”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetItemString”j" t”bŒPyMapping_GetOptionalItem”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetOptionalItem”j" t”bŒPyMapping_GetOptionalItemString”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetOptionalItemString”j" t”bŒPyMapping_HasKey”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKey”j" t”bŒPyMapping_HasKeyString”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyString”j" t”bŒPyMapping_HasKeyStringWithError”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyStringWithError”j" t”bŒPyMapping_HasKeyWithError”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyWithError”j" t”bŒPyMapping_Items”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Items”j" t”bŒPyMapping_Keys”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Keys”j" t”bŒPyMapping_Length”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Length”j" t”bŒPyMapping_SetItemString”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_SetItemString”j" t”bŒPyMapping_Size”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Size”j" t”bŒPyMapping_Values”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Values”j" t”bŒ PyMarshal_ReadLastObjectFromFile”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadLastObjectFromFile”j" t”bŒPyMarshal_ReadLongFromFile”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadLongFromFile”j" t”bŒPyMarshal_ReadObjectFromFile”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromFile”j" t”bŒPyMarshal_ReadObjectFromString”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromString”j" t”bŒPyMarshal_ReadShortFromFile”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadShortFromFile”j" t”bŒPyMarshal_WriteLongToFile”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteLongToFile”j" t”bŒPyMarshal_WriteObjectToFile”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToFile”j" t”bŒPyMarshal_WriteObjectToString”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToString”j" t”bŒ PyMem_Calloc”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/memory.html#c.PyMem_Calloc”j" t”bŒ PyMem_Del”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/memory.html#c.PyMem_Del”j" t”bŒ PyMem_Free”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/memory.html#c.PyMem_Free”j" t”bŒPyMem_GetAllocator”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/memory.html#c.PyMem_GetAllocator”j" t”bŒ PyMem_Malloc”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/memory.html#c.PyMem_Malloc”j" t”bŒPyMem_RawCalloc”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/memory.html#c.PyMem_RawCalloc”j" t”bŒ PyMem_RawFree”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/memory.html#c.PyMem_RawFree”j" t”bŒPyMem_RawMalloc”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/memory.html#c.PyMem_RawMalloc”j" t”bŒPyMem_RawRealloc”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/memory.html#c.PyMem_RawRealloc”j" t”bŒ PyMem_Realloc”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/memory.html#c.PyMem_Realloc”j" t”bŒPyMem_SetAllocator”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/memory.html#c.PyMem_SetAllocator”j" t”bŒPyMem_SetupDebugHooks”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/memory.html#c.PyMem_SetupDebugHooks”j" t”bŒPyMember_GetOne”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#c.PyMember_GetOne”j" t”bŒPyMember_SetOne”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#c.PyMember_SetOne”j" t”bŒPyMemoryView_Check”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_Check”j" t”bŒPyMemoryView_FromBuffer”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromBuffer”j" t”bŒPyMemoryView_FromMemory”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromMemory”j" t”bŒPyMemoryView_FromObject”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromObject”j" t”bŒPyMemoryView_GET_BASE”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GET_BASE”j" t”bŒPyMemoryView_GET_BUFFER”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GET_BUFFER”j" t”bŒPyMemoryView_GetContiguous”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GetContiguous”j" t”bŒPyMethod_Check”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/module.html#c.PyModule_AddType”j" t”bŒPyModule_Check”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/module.html#c.PyModule_Create2”j" t”bŒPyModule_ExecDef”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/module.html#c.PyModule_ExecDef”j" t”bŒPyModule_FromDefAndSpec”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpec”j" t”bŒPyModule_FromDefAndSpec2”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpec2”j" t”bŒPyModule_GetDef”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/module.html#c.PyModule_GetDef”j" t”bŒPyModule_GetDict”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/module.html#c.PyModule_GetDict”j" t”bŒPyModule_GetFilename”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/module.html#c.PyModule_GetFilename”j" t”bŒPyModule_GetFilenameObject”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/module.html#c.PyModule_GetFilenameObject”j" t”bŒPyModule_GetName”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/module.html#c.PyModule_GetName”j" t”bŒPyModule_GetNameObject”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/module.html#c.PyModule_GetNameObject”j" t”bŒPyModule_GetState”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/module.html#c.PyModule_GetState”j" t”bŒ PyModule_New”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/module.html#c.PyModule_New”j" t”bŒPyModule_NewObject”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/module.html#c.PyModule_NewObject”j" t”bŒPyModule_SetDocString”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/module.html#c.PyModule_SetDocString”j" t”bŒPyMonitoring_EnterScope”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_EnterScope”j" t”bŒPyMonitoring_ExitScope”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_ExitScope”j" t”bŒ PyMonitoring_FireBranchLeftEvent”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireBranchLeftEvent”j" t”bŒ!PyMonitoring_FireBranchRightEvent”j )�”(jT(jU(ŒShttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireBranchRightEvent”j" t”bŒPyMonitoring_FireCRaiseEvent”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCRaiseEvent”j" t”bŒPyMonitoring_FireCReturnEvent”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCReturnEvent”j" t”bŒPyMonitoring_FireCallEvent”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCallEvent”j" t”bŒ&PyMonitoring_FireExceptionHandledEvent”j )�”(jT(jU(ŒXhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireExceptionHandledEvent”j" t”bŒPyMonitoring_FireJumpEvent”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireJumpEvent”j" t”bŒPyMonitoring_FireLineEvent”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireLineEvent”j" t”bŒPyMonitoring_FirePyResumeEvent”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyResumeEvent”j" t”bŒPyMonitoring_FirePyReturnEvent”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyReturnEvent”j" t”bŒPyMonitoring_FirePyStartEvent”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyStartEvent”j" t”bŒPyMonitoring_FirePyThrowEvent”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyThrowEvent”j" t”bŒPyMonitoring_FirePyUnwindEvent”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyUnwindEvent”j" t”bŒPyMonitoring_FirePyYieldEvent”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyYieldEvent”j" t”bŒPyMonitoring_FireRaiseEvent”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireRaiseEvent”j" t”bŒPyMonitoring_FireReraiseEvent”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireReraiseEvent”j" t”bŒ#PyMonitoring_FireStopIterationEvent”j )�”(jT(jU(ŒUhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireStopIterationEvent”j" t”bŒPyMutex_IsLocked”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/synchronization.html#c.PyMutex_IsLocked”j" t”bŒ PyMutex_Lock”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/synchronization.html#c.PyMutex_Lock”j" t”bŒPyMutex_Unlock”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/synchronization.html#c.PyMutex_Unlock”j" t”bŒPyNumber_Absolute”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/number.html#c.PyNumber_Absolute”j" t”bŒ PyNumber_Add”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/number.html#c.PyNumber_Add”j" t”bŒ PyNumber_And”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/number.html#c.PyNumber_And”j" t”bŒPyNumber_AsSsize_t”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/number.html#c.PyNumber_AsSsize_t”j" t”bŒPyNumber_Check”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/dict.html#c.PyODict_CheckExact”j" t”bŒPyODict_DelItem”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/dict.html#c.PyODict_DelItem”j" t”bŒ PyODict_New”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/dict.html#c.PyODict_New”j" t”bŒPyODict_SetItem”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/dict.html#c.PyODict_SetItem”j" t”bŒPyOS_AfterFork”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/sys.html#c.PyOS_AfterFork”j" t”bŒPyOS_AfterFork_Child”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/sys.html#c.PyOS_AfterFork_Child”j" t”bŒPyOS_AfterFork_Parent”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/sys.html#c.PyOS_AfterFork_Parent”j" t”bŒPyOS_BeforeFork”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/sys.html#c.PyOS_BeforeFork”j" t”bŒPyOS_CheckStack”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/sys.html#c.PyOS_CheckStack”j" t”bŒ PyOS_FSPath”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/sys.html#c.PyOS_FSPath”j" t”bŒPyOS_InterruptOccurred”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/sys.html#c.PyOS_InterruptOccurred”j" t”bŒPyOS_double_to_string”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_double_to_string”j" t”bŒ PyOS_getsig”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/sys.html#c.PyOS_getsig”j" t”bŒPyOS_mystricmp”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/conversion.html#c.PyOS_mystricmp”j" t”bŒPyOS_mystrnicmp”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_mystrnicmp”j" t”bŒ PyOS_setsig”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/sys.html#c.PyOS_setsig”j" t”bŒ PyOS_snprintf”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/conversion.html#c.PyOS_snprintf”j" t”bŒ PyOS_stricmp”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/conversion.html#c.PyOS_stricmp”j" t”bŒPyOS_string_to_double”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_string_to_double”j" t”bŒ PyOS_strnicmp”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/conversion.html#c.PyOS_strnicmp”j" t”bŒ PyOS_strtol”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/conversion.html#c.PyOS_strtol”j" t”bŒ PyOS_strtoul”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/conversion.html#c.PyOS_strtoul”j" t”bŒPyOS_vsnprintf”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/conversion.html#c.PyOS_vsnprintf”j" t”bŒPyObject_ASCII”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/object.html#c.PyObject_DelAttr”j" t”bŒPyObject_DelAttrString”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_DelAttrString”j" t”bŒPyObject_DelItem”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_DelItem”j" t”bŒPyObject_DelItemString”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_DelItemString”j" t”bŒ PyObject_Dir”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/object.html#c.PyObject_Dir”j" t”bŒPyObject_Format”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/object.html#c.PyObject_Format”j" t”bŒ PyObject_Free”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/memory.html#c.PyObject_Free”j" t”bŒPyObject_GC_Del”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_Del”j" t”bŒPyObject_GC_IsFinalized”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_IsFinalized”j" t”bŒPyObject_GC_IsTracked”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_IsTracked”j" t”bŒPyObject_GC_Track”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_Track”j" t”bŒPyObject_GC_UnTrack”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_UnTrack”j" t”bŒPyObject_GenericGetAttr”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetAttr”j" t”bŒPyObject_GenericGetDict”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetDict”j" t”bŒPyObject_GenericHash”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/hash.html#c.PyObject_GenericHash”j" t”bŒPyObject_GenericSetAttr”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetAttr”j" t”bŒPyObject_GenericSetDict”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetDict”j" t”bŒPyObject_GetAIter”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/object.html#c.PyObject_GetAIter”j" t”bŒPyObject_GetArenaAllocator”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/memory.html#c.PyObject_GetArenaAllocator”j" t”bŒPyObject_GetAttr”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_GetAttr”j" t”bŒPyObject_GetAttrString”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetAttrString”j" t”bŒPyObject_GetBuffer”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/buffer.html#c.PyObject_GetBuffer”j" t”bŒPyObject_GetItem”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_GetItem”j" t”bŒPyObject_GetItemData”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetItemData”j" t”bŒPyObject_GetIter”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_GetIter”j" t”bŒPyObject_GetOptionalAttr”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetOptionalAttr”j" t”bŒPyObject_GetOptionalAttrString”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetOptionalAttrString”j" t”bŒPyObject_GetTypeData”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetTypeData”j" t”bŒPyObject_HasAttr”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_HasAttr”j" t”bŒPyObject_HasAttrString”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrString”j" t”bŒPyObject_HasAttrStringWithError”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrStringWithError”j" t”bŒPyObject_HasAttrWithError”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrWithError”j" t”bŒ PyObject_Hash”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/object.html#c.PyObject_Hash”j" t”bŒPyObject_HashNotImplemented”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/object.html#c.PyObject_HashNotImplemented”j" t”bŒPyObject_IS_GC”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/gcsupport.html#c.PyObject_IS_GC”j" t”bŒ PyObject_Init”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/allocation.html#c.PyObject_Init”j" t”bŒPyObject_InitVar”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/allocation.html#c.PyObject_InitVar”j" t”bŒPyObject_IsInstance”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/object.html#c.PyObject_IsInstance”j" t”bŒPyObject_IsSubclass”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/object.html#c.PyObject_IsSubclass”j" t”bŒPyObject_IsTrue”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/object.html#c.PyObject_IsTrue”j" t”bŒPyObject_Length”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/object.html#c.PyObject_Length”j" t”bŒPyObject_LengthHint”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/object.html#c.PyObject_LengthHint”j" t”bŒPyObject_Malloc”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/memory.html#c.PyObject_Malloc”j" t”bŒ PyObject_Not”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/object.html#c.PyObject_Not”j" t”bŒPyObject_Print”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/memory.html#c.PyObject_Realloc”j" t”bŒ PyObject_Repr”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/object.html#c.PyObject_Repr”j" t”bŒPyObject_RichCompare”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichCompare”j" t”bŒPyObject_RichCompareBool”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichCompareBool”j" t”bŒPyObject_SelfIter”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/object.html#c.PyObject_SelfIter”j" t”bŒPyObject_SetArenaAllocator”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/memory.html#c.PyObject_SetArenaAllocator”j" t”bŒPyObject_SetAttr”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_SetAttr”j" t”bŒPyObject_SetAttrString”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrString”j" t”bŒPyObject_SetItem”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_SetItem”j" t”bŒ PyObject_Size”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/object.html#c.PyObject_Size”j" t”bŒ PyObject_Str”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/object.html#c.PyObject_Str”j" t”bŒ PyObject_Type”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/object.html#c.PyObject_Type”j" t”bŒPyObject_TypeCheck”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/object.html#c.PyObject_TypeCheck”j" t”bŒPyObject_Vectorcall”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/call.html#c.PyObject_Vectorcall”j" t”bŒPyObject_VectorcallDict”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallDict”j" t”bŒPyObject_VectorcallMethod”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallMethod”j" t”bŒPyObject_VisitManagedDict”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/object.html#c.PyObject_VisitManagedDict”j" t”bŒPyPickleBuffer_Check”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/picklebuffer.html#c.PyPickleBuffer_Check”j" t”bŒPyPickleBuffer_FromObject”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/picklebuffer.html#c.PyPickleBuffer_FromObject”j" t”bŒPyPickleBuffer_GetBuffer”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/picklebuffer.html#c.PyPickleBuffer_GetBuffer”j" t”bŒPyPickleBuffer_Release”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/picklebuffer.html#c.PyPickleBuffer_Release”j" t”bŒPyPreConfig_InitIsolatedConfig”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig_InitIsolatedConfig”j" t”bŒPyPreConfig_InitPythonConfig”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig_InitPythonConfig”j" t”bŒ PyRange_Check”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/iterator.html#c.PyRange_Check”j" t”bŒPyRefTracer_GetTracer”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/profiling.html#c.PyRefTracer_GetTracer”j" t”bŒPyRefTracer_SetTracer”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/profiling.html#c.PyRefTracer_SetTracer”j" t”bŒ PyRun_AnyFile”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFile”j" t”bŒPyRun_AnyFileEx”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileEx”j" t”bŒPyRun_AnyFileExFlags”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExFlags”j" t”bŒPyRun_AnyFileFlags”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileFlags”j" t”bŒ PyRun_File”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_File”j" t”bŒ PyRun_FileEx”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/init_config.html#c.PyStatus_Ok”j" t”bŒPyStructSequence_GET_ITEM”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_GET_ITEM”j" t”bŒPyStructSequence_GetItem”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_GetItem”j" t”bŒPyStructSequence_InitType”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_InitType”j" t”bŒPyStructSequence_InitType2”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_InitType2”j" t”bŒPyStructSequence_New”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_New”j" t”bŒPyStructSequence_NewType”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_NewType”j" t”bŒPyStructSequence_SET_ITEM”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_SET_ITEM”j" t”bŒPyStructSequence_SetItem”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_SetItem”j" t”bŒPySys_AddAuditHook”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/sys.html#c.PySys_AddAuditHook”j" t”bŒ PySys_Audit”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/sys.html#c.PySys_Audit”j" t”bŒPySys_AuditTuple”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/sys.html#c.PySys_AuditTuple”j" t”bŒPySys_FormatStderr”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/sys.html#c.PySys_FormatStderr”j" t”bŒPySys_FormatStdout”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/sys.html#c.PySys_FormatStdout”j" t”bŒPySys_GetObject”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/sys.html#c.PySys_GetObject”j" t”bŒPySys_GetXOptions”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/datetime.html#c.PyTZInfo_Check”j" t”bŒPyTZInfo_CheckExact”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/datetime.html#c.PyTZInfo_CheckExact”j" t”bŒPyThreadState_Clear”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_Clear”j" t”bŒPyThreadState_Delete”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_Delete”j" t”bŒPyThreadState_DeleteCurrent”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_DeleteCurrent”j" t”bŒPyThreadState_EnterTracing”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_EnterTracing”j" t”bŒPyThreadState_Get”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/threads.html#c.PyThreadState_Get”j" t”bŒPyThreadState_GetDict”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_GetDict”j" t”bŒPyThreadState_GetFrame”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_GetFrame”j" t”bŒPyThreadState_GetID”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_GetID”j" t”bŒPyThreadState_GetInterpreter”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_GetInterpreter”j" t”bŒPyThreadState_GetUnchecked”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_GetUnchecked”j" t”bŒPyThreadState_LeaveTracing”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_LeaveTracing”j" t”bŒPyThreadState_New”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/threads.html#c.PyThreadState_New”j" t”bŒPyThreadState_Next”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/subinterpreters.html#c.PyThreadState_Next”j" t”bŒPyThreadState_SetAsyncExc”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_SetAsyncExc”j" t”bŒPyThreadState_Swap”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_Swap”j" t”bŒPyThread_GetInfo”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/threads.html#c.PyThread_GetInfo”j" t”bŒPyThread_ReInitTLS”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/tls.html#c.PyThread_ReInitTLS”j" t”bŒPyThread_acquire_lock”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/synchronization.html#c.PyThread_acquire_lock”j" t”bŒPyThread_acquire_lock_timed”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/synchronization.html#c.PyThread_acquire_lock_timed”j" t”bŒPyThread_allocate_lock”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/synchronization.html#c.PyThread_allocate_lock”j" t”bŒPyThread_create_key”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/tls.html#c.PyThread_create_key”j" t”bŒPyThread_delete_key”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/tls.html#c.PyThread_delete_key”j" t”bŒPyThread_delete_key_value”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/tls.html#c.PyThread_delete_key_value”j" t”bŒPyThread_exit_thread”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/threads.html#c.PyThread_exit_thread”j" t”bŒPyThread_free_lock”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/synchronization.html#c.PyThread_free_lock”j" t”bŒPyThread_get_key_value”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/tls.html#c.PyThread_get_key_value”j" t”bŒPyThread_get_stacksize”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/threads.html#c.PyThread_get_stacksize”j" t”bŒPyThread_get_thread_ident”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/threads.html#c.PyThread_get_thread_ident”j" t”bŒPyThread_get_thread_native_id”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/threads.html#c.PyThread_get_thread_native_id”j" t”bŒPyThread_init_thread”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/threads.html#c.PyThread_init_thread”j" t”bŒPyThread_release_lock”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/synchronization.html#c.PyThread_release_lock”j" t”bŒPyThread_set_key_value”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/tls.html#c.PyThread_set_key_value”j" t”bŒPyThread_set_stacksize”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/threads.html#c.PyThread_set_stacksize”j" t”bŒPyThread_start_new_thread”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/threads.html#c.PyThread_start_new_thread”j" t”bŒPyThread_tss_alloc”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/tls.html#c.PyThread_tss_alloc”j" t”bŒPyThread_tss_create”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/tls.html#c.PyThread_tss_create”j" t”bŒPyThread_tss_delete”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/tls.html#c.PyThread_tss_delete”j" t”bŒPyThread_tss_free”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/time.html#c.PyTime_PerfCounter”j" t”bŒPyTime_PerfCounterRaw”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/time.html#c.PyTime_PerfCounterRaw”j" t”bŒ PyTime_Time”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/time.html#c.PyTime_Time”j" t”bŒPyTime_TimeRaw”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/time.html#c.PyTime_TimeRaw”j" t”bŒPyTraceBack_Check”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/exceptions.html#c.PyTraceBack_Check”j" t”bŒPyTraceBack_Here”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyTraceBack_Here”j" t”bŒPyTraceBack_Print”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/exceptions.html#c.PyTraceBack_Print”j" t”bŒPyTraceMalloc_Track”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/memory.html#c.PyTraceMalloc_Track”j" t”bŒPyTraceMalloc_Untrack”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/memory.html#c.PyTraceMalloc_Untrack”j" t”bŒ PyTuple_Check”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/tuple.html#c.PyTuple_Check”j" t”bŒPyTuple_CheckExact”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/tuple.html#c.PyTuple_CheckExact”j" t”bŒPyTuple_GET_ITEM”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/tuple.html#c.PyTuple_GET_ITEM”j" t”bŒPyTuple_GET_SIZE”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/tuple.html#c.PyTuple_GET_SIZE”j" t”bŒPyTuple_GetItem”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/type.html#c.PyType_GetQualName”j" t”bŒPyType_GetSlot”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/type.html#c.PyType_GetSlot”j" t”bŒPyType_GetTypeDataSize”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyType_GetTypeDataSize”j" t”bŒPyType_HasFeature”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/type.html#c.PyType_HasFeature”j" t”bŒ PyType_IS_GC”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/type.html#c.PyType_IS_GC”j" t”bŒPyType_IsSubtype”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Check”j" t”bŒPyUnicode_CheckExact”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CheckExact”j" t”bŒPyUnicode_Compare”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Compare”j" t”bŒ PyUnicode_CompareWithASCIIString”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CompareWithASCIIString”j" t”bŒPyUnicode_Concat”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Concat”j" t”bŒPyUnicode_Contains”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Contains”j" t”bŒPyUnicode_CopyCharacters”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharacters”j" t”bŒPyUnicode_Count”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Count”j" t”bŒPyUnicode_DATA”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DATA”j" t”bŒPyUnicode_Decode”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Decode”j" t”bŒPyUnicode_DecodeASCII”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeASCII”j" t”bŒPyUnicode_DecodeCharmap”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCharmap”j" t”bŒ PyUnicode_DecodeCodePageStateful”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCodePageStateful”j" t”bŒPyUnicode_DecodeFSDefault”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefault”j" t”bŒ PyUnicode_DecodeFSDefaultAndSize”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefaultAndSize”j" t”bŒPyUnicode_DecodeLatin1”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLatin1”j" t”bŒPyUnicode_DecodeLocale”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocale”j" t”bŒPyUnicode_DecodeLocaleAndSize”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocaleAndSize”j" t”bŒPyUnicode_DecodeMBCS”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCS”j" t”bŒPyUnicode_DecodeMBCSStateful”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSStateful”j" t”bŒ PyUnicode_DecodeRawUnicodeEscape”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeRawUnicodeEscape”j" t”bŒPyUnicode_DecodeUTF16”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16”j" t”bŒPyUnicode_DecodeUTF16Stateful”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16Stateful”j" t”bŒPyUnicode_DecodeUTF32”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32”j" t”bŒPyUnicode_DecodeUTF32Stateful”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32Stateful”j" t”bŒPyUnicode_DecodeUTF7”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7”j" t”bŒPyUnicode_DecodeUTF7Stateful”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7Stateful”j" t”bŒPyUnicode_DecodeUTF8”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8”j" t”bŒPyUnicode_DecodeUTF8Stateful”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8Stateful”j" t”bŒPyUnicode_DecodeUnicodeEscape”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUnicodeEscape”j" t”bŒPyUnicode_EncodeCodePage”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeCodePage”j" t”bŒPyUnicode_EncodeFSDefault”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeFSDefault”j" t”bŒPyUnicode_EncodeLocale”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeLocale”j" t”bŒPyUnicode_Equal”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Equal”j" t”bŒPyUnicode_EqualToUTF8”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EqualToUTF8”j" t”bŒPyUnicode_EqualToUTF8AndSize”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EqualToUTF8AndSize”j" t”bŒPyUnicode_FSConverter”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSConverter”j" t”bŒPyUnicode_FSDecoder”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSDecoder”j" t”bŒPyUnicode_Fill”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Fill”j" t”bŒPyUnicode_Find”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Find”j" t”bŒPyUnicode_FindChar”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindChar”j" t”bŒPyUnicode_Format”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Format”j" t”bŒPyUnicode_FromEncodedObject”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromEncodedObject”j" t”bŒPyUnicode_FromFormat”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormat”j" t”bŒPyUnicode_FromFormatV”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormatV”j" t”bŒPyUnicode_FromKindAndData”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromKindAndData”j" t”bŒPyUnicode_FromObject”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromObject”j" t”bŒPyUnicode_FromOrdinal”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromOrdinal”j" t”bŒPyUnicode_FromString”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromString”j" t”bŒPyUnicode_FromStringAndSize”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromStringAndSize”j" t”bŒPyUnicode_FromWideChar”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromWideChar”j" t”bŒPyUnicode_GET_LENGTH”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_LENGTH”j" t”bŒPyUnicode_GetDefaultEncoding”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GetDefaultEncoding”j" t”bŒPyUnicode_GetLength”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GetLength”j" t”bŒPyUnicode_IS_ASCII”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_IS_ASCII”j" t”bŒPyUnicode_IS_READY”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_IS_READY”j" t”bŒPyUnicode_InternFromString”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_InternFromString”j" t”bŒPyUnicode_InternInPlace”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_InternInPlace”j" t”bŒPyUnicode_IsIdentifier”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_IsIdentifier”j" t”bŒPyUnicode_Join”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Join”j" t”bŒPyUnicode_KIND”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_KIND”j" t”bŒPyUnicode_MAX_CHAR_VALUE”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_MAX_CHAR_VALUE”j" t”bŒ PyUnicode_New”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READY”j" t”bŒPyUnicode_READ_CHAR”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READ_CHAR”j" t”bŒPyUnicode_RPartition”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RPartition”j" t”bŒPyUnicode_RSplit”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RSplit”j" t”bŒPyUnicode_ReadChar”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ReadChar”j" t”bŒPyUnicode_Replace”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Replace”j" t”bŒPyUnicode_Resize”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Resize”j" t”bŒPyUnicode_RichCompare”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RichCompare”j" t”bŒPyUnicode_Split”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Split”j" t”bŒPyUnicode_Splitlines”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Splitlines”j" t”bŒPyUnicode_Substring”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Substring”j" t”bŒPyUnicode_Tailmatch”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Tailmatch”j" t”bŒPyUnicode_Translate”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Translate”j" t”bŒPyUnicode_WRITE”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WRITE”j" t”bŒPyUnicode_WriteChar”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WriteChar”j" t”bŒPyUnstable_AtExit”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/interp-lifecycle.html#c.PyUnstable_AtExit”j" t”bŒPyUnstable_Code_GetExtra”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_GetExtra”j" t”bŒPyUnstable_Code_GetFirstFree”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_GetFirstFree”j" t”bŒPyUnstable_Code_New”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒ"PyUnstable_Code_NewWithPosOnlyArgs”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒPyUnstable_Code_SetExtra”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_SetExtra”j" t”bŒPyUnstable_EnableTryIncRef”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/object.html#c.PyUnstable_EnableTryIncRef”j" t”bŒ%PyUnstable_Eval_RequestCodeExtraIndex”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Eval_RequestCodeExtraIndex”j" t”bŒPyUnstable_Exc_PrepReraiseStar”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/exceptions.html#c.PyUnstable_Exc_PrepReraiseStar”j" t”bŒPyUnstable_GC_VisitObjects”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/gcsupport.html#c.PyUnstable_GC_VisitObjects”j" t”bŒ#PyUnstable_InterpreterFrame_GetCode”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/frame.html#c.PyUnstable_InterpreterFrame_GetCode”j" t”bŒ$PyUnstable_InterpreterFrame_GetLasti”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/frame.html#c.PyUnstable_InterpreterFrame_GetLasti”j" t”bŒ#PyUnstable_InterpreterFrame_GetLine”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/frame.html#c.PyUnstable_InterpreterFrame_GetLine”j" t”bŒPyUnstable_IsImmortal”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/object.html#c.PyUnstable_IsImmortal”j" t”bŒPyUnstable_Long_CompactValue”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/long.html#c.PyUnstable_Long_CompactValue”j" t”bŒPyUnstable_Long_IsCompact”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/long.html#c.PyUnstable_Long_IsCompact”j" t”bŒPyUnstable_Module_SetGIL”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/module.html#c.PyUnstable_Module_SetGIL”j" t”bŒ*PyUnstable_Object_ClearWeakRefsNoCallbacks”j )�”(jT(jU(ŒYhttps://docs.python.org/3/c-api/weakref.html#c.PyUnstable_Object_ClearWeakRefsNoCallbacks”j" t”bŒ(PyUnstable_Object_EnableDeferredRefcount”j )�”(jT(jU(ŒVhttps://docs.python.org/3/c-api/object.html#c.PyUnstable_Object_EnableDeferredRefcount”j" t”bŒ%PyUnstable_Object_GC_NewWithExtraData”j )�”(jT(jU(ŒVhttps://docs.python.org/3/c-api/gcsupport.html#c.PyUnstable_Object_GC_NewWithExtraData”j" t”bŒ-PyUnstable_Object_IsUniqueReferencedTemporary”j )�”(jT(jU(Œ[https://docs.python.org/3/c-api/object.html#c.PyUnstable_Object_IsUniqueReferencedTemporary”j" t”bŒ&PyUnstable_Object_IsUniquelyReferenced”j )�”(jT(jU(ŒThttps://docs.python.org/3/c-api/object.html#c.PyUnstable_Object_IsUniquelyReferenced”j" t”bŒPyUnstable_PerfMapState_Fini”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/perfmaps.html#c.PyUnstable_PerfMapState_Fini”j" t”bŒPyUnstable_PerfMapState_Init”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/perfmaps.html#c.PyUnstable_PerfMapState_Init”j" t”bŒ+PyUnstable_ThreadState_ResetStackProtection”j )�”(jT(jU(ŒZhttps://docs.python.org/3/c-api/threads.html#c.PyUnstable_ThreadState_ResetStackProtection”j" t”bŒ)PyUnstable_ThreadState_SetStackProtection”j )�”(jT(jU(ŒXhttps://docs.python.org/3/c-api/threads.html#c.PyUnstable_ThreadState_SetStackProtection”j" t”bŒPyUnstable_TryIncRef”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/object.html#c.PyUnstable_TryIncRef”j" t”bŒ PyUnstable_Type_AssignVersionTag”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/type.html#c.PyUnstable_Type_AssignVersionTag”j" t”bŒPyUnstable_WritePerfMapEntry”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/perfmaps.html#c.PyUnstable_WritePerfMapEntry”j" t”bŒPyVectorcall_Call”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/call.html#c.PyVectorcall_Call”j" t”bŒPyVectorcall_Function”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/call.html#c.PyVectorcall_Function”j" t”bŒPyVectorcall_NARGS”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/call.html#c.PyVectorcall_NARGS”j" t”bŒPyWeakref_Check”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_Check”j" t”bŒPyWeakref_CheckProxy”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckProxy”j" t”bŒPyWeakref_CheckRef”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckRef”j" t”bŒPyWeakref_CheckRefExact”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckRefExact”j" t”bŒPyWeakref_GET_OBJECT”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GET_OBJECT”j" t”bŒPyWeakref_GetObject”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GetObject”j" t”bŒPyWeakref_GetRef”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GetRef”j" t”bŒPyWeakref_IsDead”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_IsDead”j" t”bŒPyWeakref_NewProxy”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewProxy”j" t”bŒPyWeakref_NewRef”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewRef”j" t”bŒPyWideStringList_Append”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyWideStringList_Append”j" t”bŒPyWideStringList_Insert”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyWideStringList_Insert”j" t”bŒ PyWrapper_New”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/descriptor.html#c.PyWrapper_New”j" t”bŒPy_AddPendingCall”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/threads.html#c.Py_AddPendingCall”j" t”bŒ Py_AtExit”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/sys.html#c.Py_AtExit”j" t”bŒ Py_BuildValue”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/arg.html#c.Py_BuildValue”j" t”bŒ Py_BytesMain”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/interp-lifecycle.html#c.Py_BytesMain”j" t”bŒPy_CLEAR”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/refcounting.html#c.Py_CLEAR”j" t”bŒPy_CompileString”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileString”j" t”bŒPy_CompileStringExFlags”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringExFlags”j" t”bŒPy_CompileStringFlags”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringFlags”j" t”bŒPy_CompileStringObject”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringObject”j" t”bŒ Py_DECREF”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/exceptions.html#c.Py_ReprEnter”j" t”bŒ Py_ReprLeave”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/exceptions.html#c.Py_ReprLeave”j" t”bŒ Py_RunMain”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/interp-lifecycle.html#c.Py_RunMain”j" t”bŒ Py_SET_REFCNT”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/refcounting.html#c.Py_SET_REFCNT”j" t”bŒ Py_SET_SIZE”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/structures.html#c.Py_SET_SIZE”j" t”bŒ Py_SET_TYPE”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/structures.html#c.Py_SET_TYPE”j" t”bŒPy_SIZE”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/structures.html#c.Py_SIZE”j" t”bŒPy_SetProgramName”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/interp-lifecycle.html#c.Py_SetProgramName”j" t”bŒPy_SetPythonHome”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/interp-lifecycle.html#c.Py_SetPythonHome”j" t”bŒPy_SetRecursionLimit”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.Py_SetRecursionLimit”j" t”bŒPy_TYPE”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/structures.html#c.Py_TYPE”j" t”bŒPy_UNICODE_HIGH_SURROGATE”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_HIGH_SURROGATE”j" t”bŒPy_UNICODE_ISALNUM”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISALNUM”j" t”bŒPy_UNICODE_ISALPHA”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISALPHA”j" t”bŒPy_UNICODE_ISDECIMAL”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISDECIMAL”j" t”bŒPy_UNICODE_ISDIGIT”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISDIGIT”j" t”bŒPy_UNICODE_ISLINEBREAK”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISLINEBREAK”j" t”bŒPy_UNICODE_ISLOWER”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISLOWER”j" t”bŒPy_UNICODE_ISNUMERIC”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISNUMERIC”j" t”bŒPy_UNICODE_ISPRINTABLE”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISPRINTABLE”j" t”bŒPy_UNICODE_ISSPACE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISSPACE”j" t”bŒPy_UNICODE_ISTITLE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISTITLE”j" t”bŒPy_UNICODE_ISUPPER”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISUPPER”j" t”bŒPy_UNICODE_IS_HIGH_SURROGATE”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_HIGH_SURROGATE”j" t”bŒPy_UNICODE_IS_LOW_SURROGATE”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_LOW_SURROGATE”j" t”bŒPy_UNICODE_IS_SURROGATE”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_SURROGATE”j" t”bŒPy_UNICODE_JOIN_SURROGATES”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_JOIN_SURROGATES”j" t”bŒPy_UNICODE_LOW_SURROGATE”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_LOW_SURROGATE”j" t”bŒPy_UNICODE_TODECIMAL”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TODECIMAL”j" t”bŒPy_UNICODE_TODIGIT”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TODIGIT”j" t”bŒPy_UNICODE_TOLOWER”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TOLOWER”j" t”bŒPy_UNICODE_TONUMERIC”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TONUMERIC”j" t”bŒPy_UNICODE_TOTITLE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TOTITLE”j" t”bŒPy_UNICODE_TOUPPER”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TOUPPER”j" t”bŒPy_VaBuildValue”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/arg.html#c.Py_VaBuildValue”j" t”bŒ Py_XDECREF”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/refcounting.html#c.Py_XDECREF”j" t”bŒ Py_XINCREF”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/refcounting.html#c.Py_XINCREF”j" t”bŒ Py_XNewRef”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/refcounting.html#c.Py_XNewRef”j" t”bŒ Py_fclose”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/sys.html#c.Py_fclose”j" t”bŒPy_fopen”j )�”(jT(jU(Œ3https://docs.python.org/3/c-api/sys.html#c.Py_fopen”j" t”bŒPy_mod_create.create_module”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/module.html#c.Py_mod_create.create_module”j" t”bŒPy_mod_exec.exec_module”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/module.html#c.Py_mod_exec.exec_module”j" t”bŒ_PyBytes_Resize”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/set.html#c.PyAnySet_CheckExact”j" t”bŒPyArg_Parse.args”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/arg.html#c.PyArg_Parse”j" t”bŒPyArg_Parse.format”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/arg.html#c.PyArg_Parse”j" t”bŒPyArg_ParseTuple.args”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTuple”j" t”bŒPyArg_ParseTuple.format”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTuple”j" t”bŒ PyArg_ParseTupleAndKeywords.args”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleAndKeywords”j" t”bŒ"PyArg_ParseTupleAndKeywords.format”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleAndKeywords”j" t”bŒ$PyArg_ParseTupleAndKeywords.keywords”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleAndKeywords”j" t”bŒPyArg_ParseTupleAndKeywords.kw”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTupleAndKeywords”j" t”bŒPyArg_UnpackTuple.args”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_Release”j" t”bŒPyBuffer_SizeFromFormat.format”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_SizeFromFormat”j" t”bŒPyBuffer_ToContiguous.buf”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_ToContiguous”j" t”bŒPyBuffer_ToContiguous.len”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_ToContiguous”j" t”bŒPyBuffer_ToContiguous.order”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_ToContiguous”j" t”bŒPyBuffer_ToContiguous.src”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/buffer.html#c.PyBuffer_ToContiguous”j" t”bŒPyByteArray_AS_STRING.bytearray”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_AS_STRING”j" t”bŒPyByteArray_AsString.bytearray”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_AsString”j" t”bŒPyByteArray_Check.o”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Check”j" t”bŒPyByteArray_CheckExact.o”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_CheckExact”j" t”bŒPyByteArray_Concat.a”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Concat”j" t”bŒPyByteArray_Concat.b”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Concat”j" t”bŒPyByteArray_FromObject.o”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromObject”j" t”bŒ!PyByteArray_FromStringAndSize.len”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromStringAndSize”j" t”bŒ$PyByteArray_FromStringAndSize.string”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_FromStringAndSize”j" t”bŒPyByteArray_GET_SIZE.bytearray”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_GET_SIZE”j" t”bŒPyByteArray_Resize.bytearray”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Resize”j" t”bŒPyByteArray_Resize.len”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Resize”j" t”bŒPyByteArray_Size.bytearray”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Size”j" t”bŒPyBytes_AS_STRING.string”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/bytes.html#c.PyBytes_AS_STRING”j" t”bŒPyBytes_AsString.o”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsString”j" t”bŒPyBytes_AsStringAndSize.buffer”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringAndSize”j" t”bŒPyBytes_AsStringAndSize.length”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringAndSize”j" t”bŒPyBytes_AsStringAndSize.obj”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_AsStringAndSize”j" t”bŒPyBytes_Check.o”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Check”j" t”bŒPyBytes_CheckExact.o”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_CheckExact”j" t”bŒPyBytes_Concat.bytes”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Concat”j" t”bŒPyBytes_Concat.newpart”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Concat”j" t”bŒPyBytes_ConcatAndDel.bytes”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_ConcatAndDel”j" t”bŒPyBytes_ConcatAndDel.newpart”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_ConcatAndDel”j" t”bŒPyBytes_DecodeEscape.errors”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_DecodeEscape”j" t”bŒPyBytes_DecodeEscape.len”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_DecodeEscape”j" t”bŒ$PyBytes_DecodeEscape.recode_encoding”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_DecodeEscape”j" t”bŒPyBytes_DecodeEscape.s”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_DecodeEscape”j" t”bŒPyBytes_DecodeEscape.unicode”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_DecodeEscape”j" t”bŒPyBytes_FromFormat.format”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormat”j" t”bŒPyBytes_FromFormatV.format”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormatV”j" t”bŒPyBytes_FromFormatV.vargs”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromFormatV”j" t”bŒPyBytes_FromObject.o”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromObject”j" t”bŒPyBytes_FromString.v”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromString”j" t”bŒPyBytes_FromStringAndSize.len”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromStringAndSize”j" t”bŒPyBytes_FromStringAndSize.v”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/bytes.html#c.PyBytes_FromStringAndSize”j" t”bŒPyBytes_GET_SIZE.o”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/bytes.html#c.PyBytes_GET_SIZE”j" t”bŒPyBytes_Join.iterable”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Join”j" t”bŒPyBytes_Join.sep”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Join”j" t”bŒPyBytes_Repr.bytes”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Repr”j" t”bŒPyBytes_Repr.smartquotes”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Repr”j" t”bŒPyBytes_Size.o”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Size”j" t”bŒPyCFunction_Check.op”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_Check”j" t”bŒPyCFunction_CheckExact.op”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_CheckExact”j" t”bŒPyCFunction_GET_FLAGS.func”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_GET_FLAGS”j" t”bŒPyCFunction_GET_FUNCTION.func”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_GET_FUNCTION”j" t”bŒPyCFunction_GET_SELF.func”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_GET_SELF”j" t”bŒPyCFunction_GetFlags.func”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_GetFlags”j" t”bŒPyCFunction_GetFunction.func”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_GetFunction”j" t”bŒPyCFunction_GetSelf.func”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_GetSelf”j" t”bŒPyCFunction_New.ml”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_New”j" t”bŒPyCFunction_New.self”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_New”j" t”bŒPyCFunction_NewEx.ml”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_NewEx”j" t”bŒPyCFunction_NewEx.module”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_NewEx”j" t”bŒPyCFunction_NewEx.self”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_NewEx”j" t”bŒPyCMethod_Check.op”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#c.PyCMethod_Check”j" t”bŒPyCMethod_CheckExact.op”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/structures.html#c.PyCMethod_CheckExact”j" t”bŒPyCMethod_New.cls”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/structures.html#c.PyCMethod_New”j" t”bŒPyCMethod_New.ml”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/structures.html#c.PyCMethod_New”j" t”bŒPyCMethod_New.module”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/structures.html#c.PyCMethod_New”j" t”bŒPyCMethod_New.self”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/structures.html#c.PyCMethod_New”j" t”bŒPyCallIter_Check.op”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/iterator.html#c.PyCallIter_Check”j" t”bŒPyCallIter_New.callable”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/iterator.html#c.PyCallIter_New”j" t”bŒPyCallIter_New.sentinel”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/iterator.html#c.PyCallIter_New”j" t”bŒPyCallable_Check.o”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/code.html#c.PyCode_GetCellvars”j" t”bŒPyCode_GetCode.co”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/code.html#c.PyCode_GetCode”j" t”bŒPyCode_GetFreevars.co”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/code.html#c.PyCode_GetFreevars”j" t”bŒPyCode_GetNumFree.co”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/code.html#c.PyCode_GetNumFree”j" t”bŒPyCode_GetVarnames.co”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/code.html#c.PyCode_GetVarnames”j" t”bŒPyCode_NewEmpty.filename”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/code.html#c.PyCode_NewEmpty”j" t”bŒPyCode_NewEmpty.firstlineno”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/code.html#c.PyCode_NewEmpty”j" t”bŒPyCode_NewEmpty.funcname”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/code.html#c.PyCode_NewEmpty”j" t”bŒPyCode_Optimize.code”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/code.html#c.PyCode_Optimize”j" t”bŒPyCode_Optimize.consts”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/code.html#c.PyCode_Optimize”j" t”bŒPyCode_Optimize.lnotab_obj”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/code.html#c.PyCode_Optimize”j" t”bŒPyCode_Optimize.names”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/code.html#c.PyCode_Optimize”j" t”bŒ"PyCodec_BackslashReplaceErrors.exc”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/codec.html#c.PyCodec_BackslashReplaceErrors”j" t”bŒPyCodec_Decode.encoding”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/codec.html#c.PyCodec_Decode”j" t”bŒPyCodec_Decode.errors”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/codec.html#c.PyCodec_Decode”j" t”bŒPyCodec_Decode.object”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/codec.html#c.PyCodec_Decode”j" t”bŒPyCodec_Decoder.encoding”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_Check”j" t”bŒPyComplex_CheckExact.p”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/complex.html#c.PyComplex_CheckExact”j" t”bŒPyComplex_FromCComplex.v”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_FromCComplex”j" t”bŒPyComplex_FromDoubles.imag”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_FromDoubles”j" t”bŒPyComplex_FromDoubles.real”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_FromDoubles”j" t”bŒPyComplex_ImagAsDouble.op”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_ImagAsDouble”j" t”bŒPyComplex_RealAsDouble.op”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/complex.html#c.PyComplex_RealAsDouble”j" t”bŒPyConfig_Clear.config”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_Clear”j" t”bŒPyConfig_Get.name”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/init_config.html#c.PyConfig_Get”j" t”bŒPyConfig_GetInt.name”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_GetInt”j" t”bŒPyConfig_GetInt.value”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_GetInt”j" t”bŒ"PyConfig_InitIsolatedConfig.config”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_InitIsolatedConfig”j" t”bŒ PyConfig_InitPythonConfig.config”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_InitPythonConfig”j" t”bŒPyConfig_Read.config”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/init_config.html#c.PyConfig_Read”j" t”bŒPyConfig_Set.name”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/init_config.html#c.PyConfig_Set”j" t”bŒPyConfig_Set.value”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/init_config.html#c.PyConfig_Set”j" t”bŒPyConfig_SetArgv.argc”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetArgv”j" t”bŒPyConfig_SetArgv.argv”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetArgv”j" t”bŒPyConfig_SetArgv.config”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetArgv”j" t”bŒPyConfig_SetBytesArgv.argc”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesArgv”j" t”bŒPyConfig_SetBytesArgv.argv”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesArgv”j" t”bŒPyConfig_SetBytesArgv.config”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesArgv”j" t”bŒPyConfig_SetBytesString.config”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesString”j" t”bŒ"PyConfig_SetBytesString.config_str”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesString”j" t”bŒPyConfig_SetBytesString.str”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetBytesString”j" t”bŒPyConfig_SetString.config”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetString”j" t”bŒPyConfig_SetString.config_str”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetString”j" t”bŒPyConfig_SetString.str”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetString”j" t”bŒ!PyConfig_SetWideStringList.config”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetWideStringList”j" t”bŒ PyConfig_SetWideStringList.items”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetWideStringList”j" t”bŒ!PyConfig_SetWideStringList.length”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetWideStringList”j" t”bŒPyConfig_SetWideStringList.list”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig_SetWideStringList”j" t”bŒPyContextToken_CheckExact.o”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextToken_CheckExact”j" t”bŒPyContextVar_CheckExact.o”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_CheckExact”j" t”bŒPyContextVar_Get.default_value”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Get”j" t”bŒPyContextVar_Get.value”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Get”j" t”bŒPyContextVar_Get.var”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Get”j" t”bŒPyContextVar_New.def”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_New”j" t”bŒPyContextVar_New.name”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_New”j" t”bŒPyContextVar_Reset.token”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Reset”j" t”bŒPyContextVar_Reset.var”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Reset”j" t”bŒPyContextVar_Set.value”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Set”j" t”bŒPyContextVar_Set.var”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Set”j" t”bŒPyContext_AddWatcher.callback”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_AddWatcher”j" t”bŒPyContext_CheckExact.o”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_CheckExact”j" t”bŒ!PyContext_ClearWatcher.watcher_id”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_ClearWatcher”j" t”bŒPyContext_Copy.ctx”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Copy”j" t”bŒPyContext_Enter.ctx”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Enter”j" t”bŒPyContext_Exit.ctx”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Exit”j" t”bŒPyCoro_CheckExact.ob”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/coro.html#c.PyCoro_CheckExact”j" t”bŒPyCoro_New.frame”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/coro.html#c.PyCoro_New”j" t”bŒPyCoro_New.name”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/coro.html#c.PyCoro_New”j" t”bŒPyCoro_New.qualname”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/coro.html#c.PyCoro_New”j" t”bŒPyCursesWindow_Check.op”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/curses.html#c.PyCursesWindow_Check”j" t”bŒPyDTrace_AUDIT.arg0”j )�”(jT(jU(ŒEhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_AUDIT”j" t”bŒPyDTrace_AUDIT.arg1”j )�”(jT(jU(ŒEhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_AUDIT”j" t”bŒPyDTrace_FUNCTION_ENTRY.arg0”j )�”(jT(jU(ŒNhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_FUNCTION_ENTRY”j" t”bŒPyDTrace_FUNCTION_ENTRY.arg1”j )�”(jT(jU(ŒNhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_FUNCTION_ENTRY”j" t”bŒPyDTrace_FUNCTION_ENTRY.arg2”j )�”(jT(jU(ŒNhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_FUNCTION_ENTRY”j" t”bŒPyDTrace_FUNCTION_RETURN.arg0”j )�”(jT(jU(ŒOhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_FUNCTION_RETURN”j" t”bŒPyDTrace_FUNCTION_RETURN.arg1”j )�”(jT(jU(ŒOhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_FUNCTION_RETURN”j" t”bŒPyDTrace_FUNCTION_RETURN.arg2”j )�”(jT(jU(ŒOhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_FUNCTION_RETURN”j" t”bŒPyDTrace_GC_DONE.arg0”j )�”(jT(jU(ŒGhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_GC_DONE”j" t”bŒPyDTrace_GC_START.arg0”j )�”(jT(jU(ŒHhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_GC_START”j" t”bŒ#PyDTrace_IMPORT_FIND_LOAD_DONE.arg0”j )�”(jT(jU(ŒUhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_IMPORT_FIND_LOAD_DONE”j" t”bŒ#PyDTrace_IMPORT_FIND_LOAD_DONE.arg1”j )�”(jT(jU(ŒUhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_IMPORT_FIND_LOAD_DONE”j" t”bŒ$PyDTrace_IMPORT_FIND_LOAD_START.arg0”j )�”(jT(jU(ŒVhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_IMPORT_FIND_LOAD_START”j" t”bŒ"PyDTrace_INSTANCE_DELETE_DONE.arg0”j )�”(jT(jU(ŒThttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_INSTANCE_DELETE_DONE”j" t”bŒ#PyDTrace_INSTANCE_DELETE_START.arg0”j )�”(jT(jU(ŒUhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_INSTANCE_DELETE_START”j" t”bŒPyDTrace_INSTANCE_NEW_DONE.arg0”j )�”(jT(jU(ŒQhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_INSTANCE_NEW_DONE”j" t”bŒ PyDTrace_INSTANCE_NEW_START.arg0”j )�”(jT(jU(ŒRhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_INSTANCE_NEW_START”j" t”bŒPyDTrace_LINE.arg0”j )�”(jT(jU(ŒDhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_LINE”j" t”bŒPyDTrace_LINE.arg1”j )�”(jT(jU(ŒDhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_LINE”j" t”bŒPyDTrace_LINE.arg2”j )�”(jT(jU(ŒDhttps://docs.python.org/3/howto/instrumentation.html#c.PyDTrace_LINE”j" t”bŒPyDateTime_Check.ob”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/datetime.html#c.PyDateTime_Check”j" t”bŒPyDateTime_CheckExact.ob”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_CheckExact”j" t”bŒPyDateTime_DATE_GET_FOLD.o”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_FOLD”j" t”bŒPyDateTime_DATE_GET_HOUR.o”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_HOUR”j" t”bŒ!PyDateTime_DATE_GET_MICROSECOND.o”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_MICROSECOND”j" t”bŒPyDateTime_DATE_GET_MINUTE.o”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_MINUTE”j" t”bŒPyDateTime_DATE_GET_SECOND.o”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_SECOND”j" t”bŒPyDateTime_DATE_GET_TZINFO.o”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DATE_GET_TZINFO”j" t”bŒPyDateTime_DELTA_GET_DAYS.o”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_DAYS”j" t”bŒ#PyDateTime_DELTA_GET_MICROSECONDS.o”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_MICROSECONDS”j" t”bŒPyDateTime_DELTA_GET_SECONDS.o”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DELTA_GET_SECONDS”j" t”bŒPyDateTime_FromDateAndTime.day”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTime”j" t”bŒPyDateTime_FromDateAndTime.hour”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTime”j" t”bŒ!PyDateTime_FromDateAndTime.minute”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTime”j" t”bŒ PyDateTime_FromDateAndTime.month”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTime”j" t”bŒ!PyDateTime_FromDateAndTime.second”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTime”j" t”bŒ"PyDateTime_FromDateAndTime.usecond”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTime”j" t”bŒPyDateTime_FromDateAndTime.year”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTime”j" t”bŒ%PyDateTime_FromDateAndTimeAndFold.day”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFold”j" t”bŒ&PyDateTime_FromDateAndTimeAndFold.fold”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFold”j" t”bŒ&PyDateTime_FromDateAndTimeAndFold.hour”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFold”j" t”bŒ(PyDateTime_FromDateAndTimeAndFold.minute”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFold”j" t”bŒ'PyDateTime_FromDateAndTimeAndFold.month”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFold”j" t”bŒ(PyDateTime_FromDateAndTimeAndFold.second”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFold”j" t”bŒ)PyDateTime_FromDateAndTimeAndFold.usecond”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFold”j" t”bŒ&PyDateTime_FromDateAndTimeAndFold.year”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromDateAndTimeAndFold”j" t”bŒPyDateTime_FromTimestamp.args”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_FromTimestamp”j" t”bŒPyDateTime_GET_DAY.o”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_DAY”j" t”bŒPyDateTime_GET_MONTH.o”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_MONTH”j" t”bŒPyDateTime_GET_YEAR.o”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_GET_YEAR”j" t”bŒPyDateTime_TIME_GET_FOLD.o”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_FOLD”j" t”bŒPyDateTime_TIME_GET_HOUR.o”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_HOUR”j" t”bŒ!PyDateTime_TIME_GET_MICROSECOND.o”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_MICROSECOND”j" t”bŒPyDateTime_TIME_GET_MINUTE.o”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_MINUTE”j" t”bŒPyDateTime_TIME_GET_SECOND.o”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_SECOND”j" t”bŒPyDateTime_TIME_GET_TZINFO.o”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TIME_GET_TZINFO”j" t”bŒPyDate_Check.ob”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/dict.html#c.PyDictValues_Check”j" t”bŒPyDictViewSet_Check.op”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/dict.html#c.PyDictViewSet_Check”j" t”bŒPyDict_AddWatcher.callback”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/dict.html#c.PyDict_AddWatcher”j" t”bŒPyDict_Check.p”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/dict.html#c.PyDict_Check”j" t”bŒPyDict_CheckExact.p”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/dict.html#c.PyDict_CheckExact”j" t”bŒPyDict_Clear.p”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/dict.html#c.PyDict_Clear”j" t”bŒPyDict_ClearWatcher.watcher_id”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/dict.html#c.PyDict_ClearWatcher”j" t”bŒPyDict_Contains.key”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/dict.html#c.PyDict_Contains”j" t”bŒPyDict_Contains.p”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/dict.html#c.PyDict_Contains”j" t”bŒPyDict_ContainsString.key”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/dict.html#c.PyDict_ContainsString”j" t”bŒPyDict_ContainsString.p”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/dict.html#c.PyDict_ContainsString”j" t”bŒ PyDict_Copy.p”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/dict.html#c.PyDict_Copy”j" t”bŒPyDict_DelItem.key”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/dict.html#c.PyDict_DelItem”j" t”bŒPyDict_DelItem.p”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/dict.html#c.PyDict_DelItem”j" t”bŒPyDict_DelItemString.key”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/dict.html#c.PyDict_DelItemString”j" t”bŒPyDict_DelItemString.p”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/dict.html#c.PyDict_DelItemString”j" t”bŒPyDict_GET_SIZE.p”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/dict.html#c.PyDict_GET_SIZE”j" t”bŒPyDict_GetItem.key”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/dict.html#c.PyDict_GetItem”j" t”bŒPyDict_GetItem.p”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/dict.html#c.PyDict_GetItem”j" t”bŒPyDict_GetItemRef.key”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemRef”j" t”bŒPyDict_GetItemRef.p”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemRef”j" t”bŒPyDict_GetItemRef.result”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemRef”j" t”bŒPyDict_GetItemString.key”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemString”j" t”bŒPyDict_GetItemString.p”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemString”j" t”bŒPyDict_GetItemStringRef.key”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemStringRef”j" t”bŒPyDict_GetItemStringRef.p”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemStringRef”j" t”bŒPyDict_GetItemStringRef.result”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemStringRef”j" t”bŒPyDict_GetItemWithError.key”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemWithError”j" t”bŒPyDict_GetItemWithError.p”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/dict.html#c.PyDict_GetItemWithError”j" t”bŒPyDict_Items.p”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/dict.html#c.PyDict_Items”j" t”bŒ PyDict_Keys.p”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/dict.html#c.PyDict_Keys”j" t”bŒPyDict_Merge.a”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/dict.html#c.PyDict_Merge”j" t”bŒPyDict_Merge.b”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/dict.html#c.PyDict_Merge”j" t”bŒPyDict_Merge.override”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/dict.html#c.PyDict_Merge”j" t”bŒPyDict_MergeFromSeq2.a”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/dict.html#c.PyDict_MergeFromSeq2”j" t”bŒPyDict_MergeFromSeq2.override”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/dict.html#c.PyDict_MergeFromSeq2”j" t”bŒPyDict_MergeFromSeq2.seq2”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/dict.html#c.PyDict_MergeFromSeq2”j" t”bŒ PyDict_Next.p”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/dict.html#c.PyDict_Next”j" t”bŒPyDict_Next.pkey”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/dict.html#c.PyDict_Next”j" t”bŒPyDict_Next.ppos”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/dict.html#c.PyDict_Next”j" t”bŒPyDict_Next.pvalue”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/dict.html#c.PyDict_Next”j" t”bŒPyDict_Pop.key”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/dict.html#c.PyDict_Pop”j" t”bŒ PyDict_Pop.p”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/dict.html#c.PyDict_Pop”j" t”bŒPyDict_Pop.result”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/dict.html#c.PyDict_Pop”j" t”bŒPyDict_PopString.key”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_Format”j" t”bŒPyErr_Format.format”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Format”j" t”bŒPyErr_FormatUnraisable.format”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_FormatUnraisable”j" t”bŒPyErr_FormatV.exception”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_FormatV”j" t”bŒPyErr_FormatV.format”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_FormatV”j" t”bŒPyErr_FormatV.vargs”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_FormatV”j" t”bŒPyErr_GetExcInfo.ptraceback”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GetExcInfo”j" t”bŒPyErr_GetExcInfo.ptype”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GetExcInfo”j" t”bŒPyErr_GetExcInfo.pvalue”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GetExcInfo”j" t”bŒPyErr_GivenExceptionMatches.exc”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GivenExceptionMatches”j" t”bŒ!PyErr_GivenExceptionMatches.given”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_GivenExceptionMatches”j" t”bŒPyErr_NewException.base”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewException”j" t”bŒPyErr_NewException.dict”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewException”j" t”bŒPyErr_NewException.name”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewException”j" t”bŒPyErr_NewExceptionWithDoc.base”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionWithDoc”j" t”bŒPyErr_NewExceptionWithDoc.dict”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionWithDoc”j" t”bŒPyErr_NewExceptionWithDoc.doc”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionWithDoc”j" t”bŒPyErr_NewExceptionWithDoc.name”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NewExceptionWithDoc”j" t”bŒPyErr_NormalizeException.exc”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NormalizeException”j" t”bŒPyErr_NormalizeException.tb”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NormalizeException”j" t”bŒPyErr_NormalizeException.val”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_NormalizeException”j" t”bŒPyErr_PrintEx.set_sys_last_vars”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_PrintEx”j" t”bŒPyErr_ProgramText.filename”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ProgramText”j" t”bŒPyErr_ProgramText.lineno”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ProgramText”j" t”bŒ PyErr_ProgramTextObject.filename”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ProgramTextObject”j" t”bŒPyErr_ProgramTextObject.lineno”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ProgramTextObject”j" t”bŒ+PyErr_RangedSyntaxLocationObject.col_offset”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_RangedSyntaxLocationObject”j" t”bŒ/PyErr_RangedSyntaxLocationObject.end_col_offset”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_RangedSyntaxLocationObject”j" t”bŒ+PyErr_RangedSyntaxLocationObject.end_lineno”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_RangedSyntaxLocationObject”j" t”bŒ)PyErr_RangedSyntaxLocationObject.filename”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_RangedSyntaxLocationObject”j" t”bŒ'PyErr_RangedSyntaxLocationObject.lineno”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_RangedSyntaxLocationObject”j" t”bŒPyErr_ResourceWarning.format”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ResourceWarning”j" t”bŒPyErr_ResourceWarning.source”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ResourceWarning”j" t”bŒ!PyErr_ResourceWarning.stack_level”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_ResourceWarning”j" t”bŒPyErr_Restore.traceback”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Restore”j" t”bŒPyErr_Restore.type”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Restore”j" t”bŒPyErr_Restore.value”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_Restore”j" t”bŒPyErr_SetExcFromWindowsErr.ierr”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErr”j" t”bŒPyErr_SetExcFromWindowsErr.type”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErr”j" t”bŒ/PyErr_SetExcFromWindowsErrWithFilename.filename”j )�”(jT(jU(ŒXhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilename”j" t”bŒ+PyErr_SetExcFromWindowsErrWithFilename.ierr”j )�”(jT(jU(ŒXhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilename”j" t”bŒ+PyErr_SetExcFromWindowsErrWithFilename.type”j )�”(jT(jU(ŒXhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilename”j" t”bŒ5PyErr_SetExcFromWindowsErrWithFilenameObject.filename”j )�”(jT(jU(Œ^https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObject”j" t”bŒ1PyErr_SetExcFromWindowsErrWithFilenameObject.ierr”j )�”(jT(jU(Œ^https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObject”j" t”bŒ1PyErr_SetExcFromWindowsErrWithFilenameObject.type”j )�”(jT(jU(Œ^https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObject”j" t”bŒ6PyErr_SetExcFromWindowsErrWithFilenameObjects.filename”j )�”(jT(jU(Œ_https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjects”j" t”bŒ7PyErr_SetExcFromWindowsErrWithFilenameObjects.filename2”j )�”(jT(jU(Œ_https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjects”j" t”bŒ2PyErr_SetExcFromWindowsErrWithFilenameObjects.ierr”j )�”(jT(jU(Œ_https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjects”j" t”bŒ2PyErr_SetExcFromWindowsErrWithFilenameObjects.type”j )�”(jT(jU(Œ_https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilenameObjects”j" t”bŒPyErr_SetExcInfo.traceback”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcInfo”j" t”bŒPyErr_SetExcInfo.type”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcInfo”j" t”bŒPyErr_SetExcInfo.value”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetExcInfo”j" t”bŒPyErr_SetFromErrno.type”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrno”j" t”bŒ'PyErr_SetFromErrnoWithFilename.filename”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilename”j" t”bŒ#PyErr_SetFromErrnoWithFilename.type”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilename”j" t”bŒ3PyErr_SetFromErrnoWithFilenameObject.filenameObject”j )�”(jT(jU(ŒVhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObject”j" t”bŒ)PyErr_SetFromErrnoWithFilenameObject.type”j )�”(jT(jU(ŒVhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObject”j" t”bŒ4PyErr_SetFromErrnoWithFilenameObjects.filenameObject”j )�”(jT(jU(ŒWhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjects”j" t”bŒ5PyErr_SetFromErrnoWithFilenameObjects.filenameObject2”j )�”(jT(jU(ŒWhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjects”j" t”bŒ*PyErr_SetFromErrnoWithFilenameObjects.type”j )�”(jT(jU(ŒWhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilenameObjects”j" t”bŒPyErr_SetFromWindowsErr.ierr”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErr”j" t”bŒ,PyErr_SetFromWindowsErrWithFilename.filename”j )�”(jT(jU(ŒUhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErrWithFilename”j" t”bŒ(PyErr_SetFromWindowsErrWithFilename.ierr”j )�”(jT(jU(ŒUhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetFromWindowsErrWithFilename”j" t”bŒPyErr_SetHandledException.exc”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetHandledException”j" t”bŒPyErr_SetImportError.msg”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportError”j" t”bŒPyErr_SetImportError.name”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportError”j" t”bŒPyErr_SetImportError.path”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportError”j" t”bŒ&PyErr_SetImportErrorSubclass.exception”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorSubclass”j" t”bŒ PyErr_SetImportErrorSubclass.msg”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorSubclass”j" t”bŒ!PyErr_SetImportErrorSubclass.name”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorSubclass”j" t”bŒ!PyErr_SetImportErrorSubclass.path”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetImportErrorSubclass”j" t”bŒPyErr_SetInterruptEx.signum”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetInterruptEx”j" t”bŒPyErr_SetNone.type”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetNone”j" t”bŒPyErr_SetObject.type”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetObject”j" t”bŒPyErr_SetObject.value”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetObject”j" t”bŒPyErr_SetRaisedException.exc”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetRaisedException”j" t”bŒPyErr_SetString.message”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetString”j" t”bŒPyErr_SetString.type”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SetString”j" t”bŒPyErr_SyntaxLocation.filename”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocation”j" t”bŒPyErr_SyntaxLocation.lineno”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocation”j" t”bŒ!PyErr_SyntaxLocationEx.col_offset”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationEx”j" t”bŒPyErr_SyntaxLocationEx.filename”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationEx”j" t”bŒPyErr_SyntaxLocationEx.lineno”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationEx”j" t”bŒ%PyErr_SyntaxLocationObject.col_offset”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationObject”j" t”bŒ#PyErr_SyntaxLocationObject.filename”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationObject”j" t”bŒ!PyErr_SyntaxLocationObject.lineno”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_SyntaxLocationObject”j" t”bŒPyErr_WarnEx.category”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnEx”j" t”bŒPyErr_WarnEx.message”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnEx”j" t”bŒPyErr_WarnEx.stack_level”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnEx”j" t”bŒPyErr_WarnExplicit.category”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicit”j" t”bŒPyErr_WarnExplicit.filename”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicit”j" t”bŒPyErr_WarnExplicit.lineno”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicit”j" t”bŒPyErr_WarnExplicit.message”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicit”j" t”bŒPyErr_WarnExplicit.module”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicit”j" t”bŒPyErr_WarnExplicit.registry”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicit”j" t”bŒ!PyErr_WarnExplicitFormat.category”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitFormat”j" t”bŒ!PyErr_WarnExplicitFormat.filename”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitFormat”j" t”bŒPyErr_WarnExplicitFormat.format”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitFormat”j" t”bŒPyErr_WarnExplicitFormat.lineno”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitFormat”j" t”bŒPyErr_WarnExplicitFormat.module”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitFormat”j" t”bŒ!PyErr_WarnExplicitFormat.registry”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitFormat”j" t”bŒ!PyErr_WarnExplicitObject.category”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObject”j" t”bŒ!PyErr_WarnExplicitObject.filename”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObject”j" t”bŒPyErr_WarnExplicitObject.lineno”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObject”j" t”bŒ PyErr_WarnExplicitObject.message”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObject”j" t”bŒPyErr_WarnExplicitObject.module”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObject”j" t”bŒ!PyErr_WarnExplicitObject.registry”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnExplicitObject”j" t”bŒPyErr_WarnFormat.category”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnFormat”j" t”bŒPyErr_WarnFormat.format”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnFormat”j" t”bŒPyErr_WarnFormat.stack_level”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WarnFormat”j" t”bŒPyErr_WriteUnraisable.obj”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/exceptions.html#c.PyErr_WriteUnraisable”j" t”bŒPyEval_AcquireThread.tstate”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/threads.html#c.PyEval_AcquireThread”j" t”bŒPyEval_EvalCode.co”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCode”j" t”bŒPyEval_EvalCode.globals”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCode”j" t”bŒPyEval_EvalCode.locals”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCode”j" t”bŒPyEval_EvalCodeEx.argcount”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeEx”j" t”bŒPyEval_EvalCodeEx.args”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeEx”j" t”bŒPyEval_EvalCodeEx.closure”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeEx”j" t”bŒPyEval_EvalCodeEx.co”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeEx”j" t”bŒPyEval_EvalCodeEx.defcount”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeEx”j" t”bŒPyEval_EvalCodeEx.defs”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeEx”j" t”bŒPyEval_EvalCodeEx.globals”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeEx”j" t”bŒPyEval_EvalCodeEx.kwcount”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeEx”j" t”bŒPyEval_EvalCodeEx.kwdefs”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeEx”j" t”bŒPyEval_EvalCodeEx.kws”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeEx”j" t”bŒPyEval_EvalCodeEx.locals”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalCodeEx”j" t”bŒPyEval_EvalFrame.f”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFrame”j" t”bŒPyEval_EvalFrameEx.f”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFrameEx”j" t”bŒPyEval_EvalFrameEx.throwflag”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_EvalFrameEx”j" t”bŒPyEval_GetFuncDesc.func”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFuncDesc”j" t”bŒPyEval_GetFuncName.func”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/reflection.html#c.PyEval_GetFuncName”j" t”bŒPyEval_MergeCompilerFlags.cf”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/veryhigh.html#c.PyEval_MergeCompilerFlags”j" t”bŒPyEval_ReleaseThread.tstate”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/threads.html#c.PyEval_ReleaseThread”j" t”bŒPyEval_RestoreThread.tstate”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/threads.html#c.PyEval_RestoreThread”j" t”bŒPyEval_SetProfile.func”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/profiling.html#c.PyEval_SetProfile”j" t”bŒPyEval_SetProfile.obj”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/profiling.html#c.PyEval_SetProfile”j" t”bŒ PyEval_SetProfileAllThreads.func”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/profiling.html#c.PyEval_SetProfileAllThreads”j" t”bŒPyEval_SetProfileAllThreads.obj”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/profiling.html#c.PyEval_SetProfileAllThreads”j" t”bŒPyEval_SetTrace.func”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/profiling.html#c.PyEval_SetTrace”j" t”bŒPyEval_SetTrace.obj”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/profiling.html#c.PyEval_SetTrace”j" t”bŒPyEval_SetTraceAllThreads.func”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/profiling.html#c.PyEval_SetTraceAllThreads”j" t”bŒPyEval_SetTraceAllThreads.obj”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/profiling.html#c.PyEval_SetTraceAllThreads”j" t”bŒPyExceptionClass_Check.ob”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/exceptions.html#c.PyExceptionClass_Check”j" t”bŒPyExceptionClass_Name.ob”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/exceptions.html#c.PyExceptionClass_Name”j" t”bŒPyExceptionInstance_Check.op”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/exceptions.html#c.PyExceptionInstance_Check”j" t”bŒPyException_GetArgs.ex”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetArgs”j" t”bŒPyException_GetCause.ex”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetCause”j" t”bŒPyException_GetContext.ex”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetContext”j" t”bŒPyException_GetTraceback.ex”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_GetTraceback”j" t”bŒPyException_SetArgs.args”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetArgs”j" t”bŒPyException_SetArgs.ex”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetArgs”j" t”bŒPyException_SetCause.cause”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetCause”j" t”bŒPyException_SetCause.ex”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetCause”j" t”bŒPyException_SetContext.ctx”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetContext”j" t”bŒPyException_SetContext.ex”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetContext”j" t”bŒPyException_SetTraceback.ex”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetTraceback”j" t”bŒPyException_SetTraceback.tb”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/exceptions.html#c.PyException_SetTraceback”j" t”bŒPyFile_FromFd.buffering”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFd”j" t”bŒPyFile_FromFd.closefd”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFd”j" t”bŒPyFile_FromFd.encoding”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFd”j" t”bŒPyFile_FromFd.errors”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFd”j" t”bŒPyFile_FromFd.fd”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFd”j" t”bŒPyFile_FromFd.mode”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFd”j" t”bŒPyFile_FromFd.name”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFd”j" t”bŒPyFile_FromFd.newline”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/file.html#c.PyFile_FromFd”j" t”bŒPyFile_GetLine.n”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/file.html#c.PyFile_GetLine”j" t”bŒPyFile_GetLine.p”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/file.html#c.PyFile_GetLine”j" t”bŒPyFile_NewStdPrinter.fd”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/file.html#c.PyFile_NewStdPrinter”j" t”bŒPyFile_OpenCode.path”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/file.html#c.PyFile_OpenCode”j" t”bŒPyFile_OpenCodeObject.path”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/file.html#c.PyFile_OpenCodeObject”j" t”bŒPyFile_SetOpenCodeHook.handler”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/file.html#c.PyFile_SetOpenCodeHook”j" t”bŒPyFile_WriteObject.flags”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/file.html#c.PyFile_WriteObject”j" t”bŒPyFile_WriteObject.obj”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/file.html#c.PyFile_WriteObject”j" t”bŒPyFile_WriteObject.p”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/file.html#c.PyFile_WriteObject”j" t”bŒPyFile_WriteString.p”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/file.html#c.PyFile_WriteString”j" t”bŒPyFile_WriteString.s”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/file.html#c.PyFile_WriteString”j" t”bŒPyFloat_AS_DOUBLE.pyfloat”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/float.html#c.PyFloat_AS_DOUBLE”j" t”bŒPyFloat_AsDouble.pyfloat”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/float.html#c.PyFloat_AsDouble”j" t”bŒPyFloat_Check.p”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/float.html#c.PyFloat_Check”j" t”bŒPyFloat_CheckExact.p”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/float.html#c.PyFloat_CheckExact”j" t”bŒPyFloat_FromDouble.v”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/float.html#c.PyFloat_FromDouble”j" t”bŒPyFloat_FromString.str”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/float.html#c.PyFloat_FromString”j" t”bŒPyFloat_Pack2.le”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack2”j" t”bŒPyFloat_Pack2.p”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack2”j" t”bŒPyFloat_Pack2.x”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack2”j" t”bŒPyFloat_Pack4.le”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack4”j" t”bŒPyFloat_Pack4.p”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack4”j" t”bŒPyFloat_Pack4.x”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack4”j" t”bŒPyFloat_Pack8.le”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack8”j" t”bŒPyFloat_Pack8.p”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack8”j" t”bŒPyFloat_Pack8.x”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/float.html#c.PyFloat_Pack8”j" t”bŒPyFloat_Unpack2.le”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/frame.html#c.PyFrame_GetLocals”j" t”bŒPyFrame_GetVar.frame”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/frame.html#c.PyFrame_GetVar”j" t”bŒPyFrame_GetVar.name”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/frame.html#c.PyFrame_GetVar”j" t”bŒPyFrame_GetVarString.frame”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/frame.html#c.PyFrame_GetVarString”j" t”bŒPyFrame_GetVarString.name”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/frame.html#c.PyFrame_GetVarString”j" t”bŒPyFrame_LocalsToFast.clear”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/frame.html#c.PyFrame_LocalsToFast”j" t”bŒPyFrame_LocalsToFast.f”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/frame.html#c.PyFrame_LocalsToFast”j" t”bŒPyFrame_New.code”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/frame.html#c.PyFrame_New”j" t”bŒPyFrame_New.globals”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/frame.html#c.PyFrame_New”j" t”bŒPyFrame_New.locals”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/frame.html#c.PyFrame_New”j" t”bŒPyFrame_New.tstate”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/frame.html#c.PyFrame_New”j" t”bŒPyFrozenSet_Check.p”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/function.html#c.PyFunction_New”j" t”bŒPyFunction_New.globals”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/function.html#c.PyFunction_New”j" t”bŒPyFunction_NewWithQualName.code”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/function.html#c.PyFunction_NewWithQualName”j" t”bŒ"PyFunction_NewWithQualName.globals”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/function.html#c.PyFunction_NewWithQualName”j" t”bŒ#PyFunction_NewWithQualName.qualname”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/function.html#c.PyFunction_NewWithQualName”j" t”bŒ%PyFunction_SetAnnotations.annotations”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetAnnotations”j" t”bŒPyFunction_SetAnnotations.op”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetAnnotations”j" t”bŒPyFunction_SetClosure.closure”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetClosure”j" t”bŒPyFunction_SetClosure.op”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetClosure”j" t”bŒPyFunction_SetDefaults.defaults”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetDefaults”j" t”bŒPyFunction_SetDefaults.op”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetDefaults”j" t”bŒ!PyFunction_SetKwDefaults.defaults”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetKwDefaults”j" t”bŒPyFunction_SetKwDefaults.op”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetKwDefaults”j" t”bŒPyFunction_SetVectorcall.func”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetVectorcall”j" t”bŒ#PyFunction_SetVectorcall.vectorcall”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/function.html#c.PyFunction_SetVectorcall”j" t”bŒPyGen_Check.ob”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/gen.html#c.PyGen_Check”j" t”bŒPyGen_CheckExact.ob”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/gen.html#c.PyGen_CheckExact”j" t”bŒPyGen_GetCode.gen”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/gen.html#c.PyGen_GetCode”j" t”bŒPyGen_New.frame”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/gen.html#c.PyGen_New”j" t”bŒPyGen_NewWithQualName.frame”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/gen.html#c.PyGen_NewWithQualName”j" t”bŒPyGen_NewWithQualName.name”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/gen.html#c.PyGen_NewWithQualName”j" t”bŒPyGen_NewWithQualName.qualname”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/gen.html#c.PyGen_NewWithQualName”j" t”bŒPyImport_AddModule.name”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/import.html#c.PyImport_AddModule”j" t”bŒPyImport_AddModuleObject.name”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/import.html#c.PyImport_AddModuleObject”j" t”bŒPyImport_AddModuleRef.name”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/import.html#c.PyImport_AddModuleRef”j" t”bŒPyImport_AppendInittab.initfunc”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/import.html#c.PyImport_AppendInittab”j" t”bŒPyImport_AppendInittab.name”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/import.html#c.PyImport_AppendInittab”j" t”bŒPyImport_ExecCodeModule.co”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModule”j" t”bŒPyImport_ExecCodeModule.name”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModule”j" t”bŒPyImport_ExecCodeModuleEx.co”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleEx”j" t”bŒPyImport_ExecCodeModuleEx.name”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleEx”j" t”bŒ"PyImport_ExecCodeModuleEx.pathname”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleEx”j" t”bŒ PyImport_ExecCodeModuleObject.co”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleObject”j" t”bŒ'PyImport_ExecCodeModuleObject.cpathname”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleObject”j" t”bŒ"PyImport_ExecCodeModuleObject.name”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleObject”j" t”bŒ&PyImport_ExecCodeModuleObject.pathname”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleObject”j" t”bŒ'PyImport_ExecCodeModuleWithPathnames.co”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleWithPathnames”j" t”bŒ.PyImport_ExecCodeModuleWithPathnames.cpathname”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleWithPathnames”j" t”bŒ)PyImport_ExecCodeModuleWithPathnames.name”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleWithPathnames”j" t”bŒ-PyImport_ExecCodeModuleWithPathnames.pathname”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExecCodeModuleWithPathnames”j" t”bŒPyImport_ExtendInittab.newtab”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/import.html#c.PyImport_ExtendInittab”j" t”bŒPyImport_GetImporter.path”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/import.html#c.PyImport_GetImporter”j" t”bŒPyImport_GetModule.name”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/import.html#c.PyImport_GetModule”j" t”bŒPyImport_Import.name”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/import.html#c.PyImport_Import”j" t”bŒ PyImport_ImportFrozenModule.name”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportFrozenModule”j" t”bŒ&PyImport_ImportFrozenModuleObject.name”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportFrozenModuleObject”j" t”bŒPyImport_ImportModule.name”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModule”j" t”bŒ#PyImport_ImportModuleAttr.attr_name”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleAttr”j" t”bŒ"PyImport_ImportModuleAttr.mod_name”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleAttr”j" t”bŒ)PyImport_ImportModuleAttrString.attr_name”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleAttrString”j" t”bŒ(PyImport_ImportModuleAttrString.mod_name”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleAttrString”j" t”bŒ PyImport_ImportModuleEx.fromlist”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleEx”j" t”bŒPyImport_ImportModuleEx.globals”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleEx”j" t”bŒPyImport_ImportModuleEx.locals”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleEx”j" t”bŒPyImport_ImportModuleEx.name”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleEx”j" t”bŒ#PyImport_ImportModuleLevel.fromlist”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevel”j" t”bŒ"PyImport_ImportModuleLevel.globals”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevel”j" t”bŒ PyImport_ImportModuleLevel.level”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevel”j" t”bŒ!PyImport_ImportModuleLevel.locals”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevel”j" t”bŒPyImport_ImportModuleLevel.name”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevel”j" t”bŒ)PyImport_ImportModuleLevelObject.fromlist”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelObject”j" t”bŒ(PyImport_ImportModuleLevelObject.globals”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelObject”j" t”bŒ&PyImport_ImportModuleLevelObject.level”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelObject”j" t”bŒ'PyImport_ImportModuleLevelObject.locals”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelObject”j" t”bŒ%PyImport_ImportModuleLevelObject.name”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleLevelObject”j" t”bŒ!PyImport_ImportModuleNoBlock.name”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/import.html#c.PyImport_ImportModuleNoBlock”j" t”bŒPyImport_ReloadModule.m”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/import.html#c.PyImport_ReloadModule”j" t”bŒPyIndex_Check.o”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/number.html#c.PyIndex_Check”j" t”bŒPyInitConfig_AddModule.config”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_AddModule”j" t”bŒPyInitConfig_AddModule.initfunc”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_AddModule”j" t”bŒPyInitConfig_AddModule.name”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_AddModule”j" t”bŒPyInitConfig_Free.config”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_Free”j" t”bŒPyInitConfig_FreeStrList.items”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_FreeStrList”j" t”bŒPyInitConfig_FreeStrList.length”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_FreeStrList”j" t”bŒPyInitConfig_GetError.config”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetError”j" t”bŒPyInitConfig_GetError.err_msg”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetError”j" t”bŒPyInitConfig_GetExitCode.config”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetExitCode”j" t”bŒ!PyInitConfig_GetExitCode.exitcode”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetExitCode”j" t”bŒPyInitConfig_GetInt.config”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetInt”j" t”bŒPyInitConfig_GetInt.name”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetInt”j" t”bŒPyInitConfig_GetInt.value”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetInt”j" t”bŒPyInitConfig_GetStr.config”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetStr”j" t”bŒPyInitConfig_GetStr.name”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetStr”j" t”bŒPyInitConfig_GetStr.value”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetStr”j" t”bŒPyInitConfig_GetStrList.config”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetStrList”j" t”bŒPyInitConfig_GetStrList.items”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetStrList”j" t”bŒPyInitConfig_GetStrList.length”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetStrList”j" t”bŒPyInitConfig_GetStrList.name”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_GetStrList”j" t”bŒPyInitConfig_HasOption.config”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_HasOption”j" t”bŒPyInitConfig_HasOption.name”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_HasOption”j" t”bŒPyInitConfig_SetInt.config”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_SetInt”j" t”bŒPyInitConfig_SetInt.name”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_SetInt”j" t”bŒPyInitConfig_SetInt.value”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_SetInt”j" t”bŒPyInitConfig_SetStr.config”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_SetStr”j" t”bŒPyInitConfig_SetStr.name”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_SetStr”j" t”bŒPyInitConfig_SetStr.value”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_SetStr”j" t”bŒPyInitConfig_SetStrList.config”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_SetStrList”j" t”bŒPyInitConfig_SetStrList.items”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_SetStrList”j" t”bŒPyInitConfig_SetStrList.length”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_SetStrList”j" t”bŒPyInitConfig_SetStrList.name”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyInitConfig_SetStrList”j" t”bŒPyInstanceMethod_Check.o”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_Check”j" t”bŒPyInstanceMethod_Function.im”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_Function”j" t”bŒ PyInstanceMethod_GET_FUNCTION.im”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_GET_FUNCTION”j" t”bŒPyInstanceMethod_New.func”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_New”j" t”bŒPyInterpreterState_Clear.interp”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/subinterpreters.html#c.PyInterpreterState_Clear”j" t”bŒ PyInterpreterState_Delete.interp”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/subinterpreters.html#c.PyInterpreterState_Delete”j" t”bŒ!PyInterpreterState_GetDict.interp”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/subinterpreters.html#c.PyInterpreterState_GetDict”j" t”bŒPyInterpreterState_GetID.interp”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/subinterpreters.html#c.PyInterpreterState_GetID”j" t”bŒPyInterpreterState_Next.interp”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/subinterpreters.html#c.PyInterpreterState_Next”j" t”bŒ$PyInterpreterState_ThreadHead.interp”j )�”(jT(jU(ŒThttps://docs.python.org/3/c-api/subinterpreters.html#c.PyInterpreterState_ThreadHead”j" t”bŒPyIter_Check.o”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/iter.html#c.PyIter_Check”j" t”bŒ PyIter_Next.o”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/iter.html#c.PyIter_Next”j" t”bŒPyIter_NextItem.item”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/iter.html#c.PyIter_NextItem”j" t”bŒPyIter_NextItem.iter”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/iter.html#c.PyIter_NextItem”j" t”bŒPyIter_Send.arg”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/iter.html#c.PyIter_Send”j" t”bŒPyIter_Send.iter”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/iter.html#c.PyIter_Send”j" t”bŒPyIter_Send.presult”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/iter.html#c.PyIter_Send”j" t”bŒPyList_Append.item”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/list.html#c.PyList_Append”j" t”bŒPyList_Append.list”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/list.html#c.PyList_Append”j" t”bŒPyList_AsTuple.list”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/list.html#c.PyList_AsTuple”j" t”bŒPyList_Check.p”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/list.html#c.PyList_Check”j" t”bŒPyList_CheckExact.p”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/list.html#c.PyList_CheckExact”j" t”bŒPyList_Clear.list”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/list.html#c.PyList_Clear”j" t”bŒPyList_Extend.iterable”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/list.html#c.PyList_Extend”j" t”bŒPyList_Extend.list”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/list.html#c.PyList_Extend”j" t”bŒPyList_GET_ITEM.i”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/list.html#c.PyList_GET_ITEM”j" t”bŒPyList_GET_ITEM.list”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/list.html#c.PyList_GET_ITEM”j" t”bŒPyList_GET_SIZE.list”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/list.html#c.PyList_GET_SIZE”j" t”bŒPyList_GetItem.index”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/list.html#c.PyList_GetItem”j" t”bŒPyList_GetItem.list”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/list.html#c.PyList_GetItem”j" t”bŒPyList_GetItemRef.index”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/list.html#c.PyList_GetItemRef”j" t”bŒPyList_GetItemRef.list”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/list.html#c.PyList_GetItemRef”j" t”bŒPyList_GetSlice.high”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/list.html#c.PyList_GetSlice”j" t”bŒPyList_GetSlice.list”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/list.html#c.PyList_GetSlice”j" t”bŒPyList_GetSlice.low”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/list.html#c.PyList_GetSlice”j" t”bŒPyList_Insert.index”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/list.html#c.PyList_Insert”j" t”bŒPyList_Insert.item”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/list.html#c.PyList_Insert”j" t”bŒPyList_Insert.list”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/list.html#c.PyList_Insert”j" t”bŒPyList_New.len”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/list.html#c.PyList_New”j" t”bŒPyList_Reverse.list”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/list.html#c.PyList_Reverse”j" t”bŒPyList_SET_ITEM.i”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/list.html#c.PyList_SET_ITEM”j" t”bŒPyList_SET_ITEM.list”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/list.html#c.PyList_SET_ITEM”j" t”bŒPyList_SET_ITEM.o”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/list.html#c.PyList_SET_ITEM”j" t”bŒPyList_SetItem.index”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/list.html#c.PyList_SetItem”j" t”bŒPyList_SetItem.item”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/list.html#c.PyList_SetItem”j" t”bŒPyList_SetItem.list”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/list.html#c.PyList_SetItem”j" t”bŒPyList_SetSlice.high”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/list.html#c.PyList_SetSlice”j" t”bŒPyList_SetSlice.itemlist”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/list.html#c.PyList_SetSlice”j" t”bŒPyList_SetSlice.list”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/list.html#c.PyList_SetSlice”j" t”bŒPyList_SetSlice.low”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/list.html#c.PyList_SetSlice”j" t”bŒPyList_Size.list”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/list.html#c.PyList_Size”j" t”bŒPyList_Sort.list”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/list.html#c.PyList_Sort”j" t”bŒPyLongWriter_Create.digits”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/long.html#c.PyLongWriter_Create”j" t”bŒPyLongWriter_Create.ndigits”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/long.html#c.PyLongWriter_Create”j" t”bŒPyLongWriter_Create.negative”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/long.html#c.PyLongWriter_Create”j" t”bŒPyLongWriter_Discard.writer”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/long.html#c.PyLongWriter_Discard”j" t”bŒPyLongWriter_Finish.writer”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/long.html#c.PyLongWriter_Finish”j" t”bŒPyLong_AS_LONG.obj”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/long.html#c.PyLong_AS_LONG”j" t”bŒPyLong_AsDouble.pylong”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/long.html#c.PyLong_AsDouble”j" t”bŒPyLong_AsInt.obj”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/long.html#c.PyLong_AsInt”j" t”bŒPyLong_AsInt32.obj”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/long.html#c.PyLong_AsInt32”j" t”bŒPyLong_AsInt32.value”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/long.html#c.PyLong_AsInt32”j" t”bŒPyLong_AsInt64.obj”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/long.html#c.PyLong_AsInt64”j" t”bŒPyLong_AsInt64.value”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/long.html#c.PyLong_AsInt64”j" t”bŒPyLong_AsLong.obj”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/long.html#c.PyLong_AsLong”j" t”bŒPyLong_AsLongAndOverflow.obj”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/long.html#c.PyLong_AsLongAndOverflow”j" t”bŒ!PyLong_AsLongAndOverflow.overflow”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/long.html#c.PyLong_AsLongAndOverflow”j" t”bŒPyLong_AsLongLong.obj”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/long.html#c.PyLong_AsLongLong”j" t”bŒ PyLong_AsLongLongAndOverflow.obj”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/long.html#c.PyLong_AsLongLongAndOverflow”j" t”bŒ%PyLong_AsLongLongAndOverflow.overflow”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/long.html#c.PyLong_AsLongLongAndOverflow”j" t”bŒPyLong_AsNativeBytes.buffer”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/long.html#c.PyLong_AsNativeBytes”j" t”bŒPyLong_AsNativeBytes.flags”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/long.html#c.PyLong_AsNativeBytes”j" t”bŒPyLong_AsNativeBytes.n_bytes”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/long.html#c.PyLong_AsNativeBytes”j" t”bŒPyLong_AsNativeBytes.pylong”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/long.html#c.PyLong_AsNativeBytes”j" t”bŒPyLong_AsSize_t.pylong”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/long.html#c.PyLong_AsSize_t”j" t”bŒPyLong_AsSsize_t.pylong”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromSsize_t”j" t”bŒPyLong_FromString.base”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/long.html#c.PyLong_FromString”j" t”bŒPyLong_FromString.pend”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/long.html#c.PyLong_FromString”j" t”bŒPyLong_FromString.str”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/long.html#c.PyLong_FromString”j" t”bŒPyLong_FromUInt32.value”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/long.html#c.PyLong_FromUInt32”j" t”bŒPyLong_FromUInt64.value”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/long.html#c.PyLong_FromUInt64”j" t”bŒPyLong_FromUnicodeObject.base”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnicodeObject”j" t”bŒPyLong_FromUnicodeObject.u”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnicodeObject”j" t”bŒPyLong_FromUnsignedLong.v”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedLong”j" t”bŒPyLong_FromUnsignedLongLong.v”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedLongLong”j" t”bŒ%PyLong_FromUnsignedNativeBytes.buffer”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedNativeBytes”j" t”bŒ$PyLong_FromUnsignedNativeBytes.flags”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedNativeBytes”j" t”bŒ&PyLong_FromUnsignedNativeBytes.n_bytes”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/long.html#c.PyLong_FromUnsignedNativeBytes”j" t”bŒPyLong_FromVoidPtr.p”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/long.html#c.PyLong_FromVoidPtr”j" t”bŒPyLong_GetSign.obj”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/long.html#c.PyLong_GetSign”j" t”bŒPyLong_GetSign.sign”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/long.html#c.PyLong_GetSign”j" t”bŒPyLong_IsNegative.obj”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/long.html#c.PyLong_IsNegative”j" t”bŒPyLong_IsPositive.obj”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/long.html#c.PyLong_IsPositive”j" t”bŒPyLong_IsZero.obj”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/long.html#c.PyLong_IsZero”j" t”bŒPyMapping_Check.o”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Check”j" t”bŒPyMapping_DelItem.key”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItem”j" t”bŒPyMapping_DelItem.o”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItem”j" t”bŒPyMapping_DelItemString.key”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItemString”j" t”bŒPyMapping_DelItemString.o”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_DelItemString”j" t”bŒPyMapping_GetItemString.key”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetItemString”j" t”bŒPyMapping_GetItemString.o”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetItemString”j" t”bŒPyMapping_GetOptionalItem.key”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetOptionalItem”j" t”bŒPyMapping_GetOptionalItem.obj”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetOptionalItem”j" t”bŒ PyMapping_GetOptionalItem.result”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetOptionalItem”j" t”bŒ#PyMapping_GetOptionalItemString.key”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetOptionalItemString”j" t”bŒ#PyMapping_GetOptionalItemString.obj”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetOptionalItemString”j" t”bŒ&PyMapping_GetOptionalItemString.result”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_GetOptionalItemString”j" t”bŒPyMapping_HasKey.key”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKey”j" t”bŒPyMapping_HasKey.o”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKey”j" t”bŒPyMapping_HasKeyString.key”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyString”j" t”bŒPyMapping_HasKeyString.o”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyString”j" t”bŒ#PyMapping_HasKeyStringWithError.key”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyStringWithError”j" t”bŒ!PyMapping_HasKeyStringWithError.o”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyStringWithError”j" t”bŒPyMapping_HasKeyWithError.key”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyWithError”j" t”bŒPyMapping_HasKeyWithError.o”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_HasKeyWithError”j" t”bŒPyMapping_Items.o”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Items”j" t”bŒPyMapping_Keys.o”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Keys”j" t”bŒPyMapping_Length.o”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Length”j" t”bŒPyMapping_SetItemString.key”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_SetItemString”j" t”bŒPyMapping_SetItemString.o”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_SetItemString”j" t”bŒPyMapping_SetItemString.v”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/mapping.html#c.PyMapping_SetItemString”j" t”bŒPyMapping_Size.o”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Size”j" t”bŒPyMapping_Values.o”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/mapping.html#c.PyMapping_Values”j" t”bŒ%PyMarshal_ReadLastObjectFromFile.file”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadLastObjectFromFile”j" t”bŒPyMarshal_ReadLongFromFile.file”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadLongFromFile”j" t”bŒ!PyMarshal_ReadObjectFromFile.file”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromFile”j" t”bŒ#PyMarshal_ReadObjectFromString.data”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromString”j" t”bŒ"PyMarshal_ReadObjectFromString.len”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadObjectFromString”j" t”bŒ PyMarshal_ReadShortFromFile.file”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_ReadShortFromFile”j" t”bŒPyMarshal_WriteLongToFile.file”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteLongToFile”j" t”bŒPyMarshal_WriteLongToFile.value”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteLongToFile”j" t”bŒ!PyMarshal_WriteLongToFile.version”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteLongToFile”j" t”bŒ PyMarshal_WriteObjectToFile.file”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToFile”j" t”bŒ!PyMarshal_WriteObjectToFile.value”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToFile”j" t”bŒ#PyMarshal_WriteObjectToFile.version”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToFile”j" t”bŒ#PyMarshal_WriteObjectToString.value”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToString”j" t”bŒ%PyMarshal_WriteObjectToString.version”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/marshal.html#c.PyMarshal_WriteObjectToString”j" t”bŒPyMem_Calloc.elsize”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/memory.html#c.PyMem_Calloc”j" t”bŒPyMem_Calloc.nelem”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/memory.html#c.PyMem_Calloc”j" t”bŒ PyMem_Del.p”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/memory.html#c.PyMem_Del”j" t”bŒ PyMem_Free.p”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/memory.html#c.PyMem_Free”j" t”bŒPyMem_GetAllocator.allocator”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/memory.html#c.PyMem_GetAllocator”j" t”bŒPyMem_GetAllocator.domain”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/memory.html#c.PyMem_GetAllocator”j" t”bŒPyMem_Malloc.n”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/memory.html#c.PyMem_Malloc”j" t”bŒPyMem_RawCalloc.elsize”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/memory.html#c.PyMem_RawCalloc”j" t”bŒPyMem_RawCalloc.nelem”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/memory.html#c.PyMem_RawCalloc”j" t”bŒPyMem_RawFree.p”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/memory.html#c.PyMem_RawFree”j" t”bŒPyMem_RawMalloc.n”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/memory.html#c.PyMem_RawMalloc”j" t”bŒPyMem_RawRealloc.n”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/memory.html#c.PyMem_RawRealloc”j" t”bŒPyMem_RawRealloc.p”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/memory.html#c.PyMem_RawRealloc”j" t”bŒPyMem_Realloc.n”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/memory.html#c.PyMem_Realloc”j" t”bŒPyMem_Realloc.p”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/memory.html#c.PyMem_Realloc”j" t”bŒPyMem_SetAllocator.allocator”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/memory.html#c.PyMem_SetAllocator”j" t”bŒPyMem_SetAllocator.domain”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/memory.html#c.PyMem_SetAllocator”j" t”bŒPyMember_GetOne.m”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#c.PyMember_GetOne”j" t”bŒPyMember_GetOne.obj_addr”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#c.PyMember_GetOne”j" t”bŒPyMember_SetOne.m”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#c.PyMember_SetOne”j" t”bŒPyMember_SetOne.o”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#c.PyMember_SetOne”j" t”bŒPyMember_SetOne.obj_addr”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#c.PyMember_SetOne”j" t”bŒPyMemoryView_Check.obj”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_Check”j" t”bŒPyMemoryView_FromBuffer.view”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromBuffer”j" t”bŒPyMemoryView_FromMemory.flags”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromMemory”j" t”bŒPyMemoryView_FromMemory.mem”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromMemory”j" t”bŒPyMemoryView_FromMemory.size”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromMemory”j" t”bŒPyMemoryView_FromObject.obj”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_FromObject”j" t”bŒPyMemoryView_GET_BASE.mview”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GET_BASE”j" t”bŒPyMemoryView_GET_BUFFER.mview”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GET_BUFFER”j" t”bŒ%PyMemoryView_GetContiguous.buffertype”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GetContiguous”j" t”bŒPyMemoryView_GetContiguous.obj”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GetContiguous”j" t”bŒ PyMemoryView_GetContiguous.order”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_GetContiguous”j" t”bŒPyMethod_Check.o”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/module.html#c.PyModule_AddType”j" t”bŒPyModule_AddType.type”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/module.html#c.PyModule_AddType”j" t”bŒPyModule_Check.p”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/module.html#c.PyModule_Create2”j" t”bŒ#PyModule_Create2.module_api_version”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/module.html#c.PyModule_Create2”j" t”bŒPyModule_ExecDef.def”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/module.html#c.PyModule_ExecDef”j" t”bŒPyModule_ExecDef.module”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/module.html#c.PyModule_ExecDef”j" t”bŒPyModule_FromDefAndSpec.def”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpec”j" t”bŒPyModule_FromDefAndSpec.spec”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpec”j" t”bŒPyModule_FromDefAndSpec2.def”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpec2”j" t”bŒ+PyModule_FromDefAndSpec2.module_api_version”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpec2”j" t”bŒPyModule_FromDefAndSpec2.spec”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/module.html#c.PyModule_FromDefAndSpec2”j" t”bŒPyModule_GetDef.module”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/module.html#c.PyModule_GetDef”j" t”bŒPyModule_GetDict.module”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/module.html#c.PyModule_GetDict”j" t”bŒPyModule_GetFilename.module”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/module.html#c.PyModule_GetFilename”j" t”bŒ!PyModule_GetFilenameObject.module”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/module.html#c.PyModule_GetFilenameObject”j" t”bŒPyModule_GetName.module”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/module.html#c.PyModule_GetName”j" t”bŒPyModule_GetNameObject.module”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/module.html#c.PyModule_GetNameObject”j" t”bŒPyModule_GetState.module”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/module.html#c.PyModule_GetState”j" t”bŒPyModule_New.name”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/module.html#c.PyModule_New”j" t”bŒPyModule_NewObject.name”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/module.html#c.PyModule_NewObject”j" t”bŒPyModule_SetDocString.docstring”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/module.html#c.PyModule_SetDocString”j" t”bu(ŒPyModule_SetDocString.module”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/module.html#c.PyModule_SetDocString”j" t”bŒ#PyMonitoring_EnterScope.event_types”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_EnterScope”j" t”bŒPyMonitoring_EnterScope.length”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_EnterScope”j" t”bŒ#PyMonitoring_EnterScope.state_array”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_EnterScope”j" t”bŒPyMonitoring_EnterScope.version”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_EnterScope”j" t”bŒ)PyMonitoring_FireBranchLeftEvent.codelike”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireBranchLeftEvent”j" t”bŒ'PyMonitoring_FireBranchLeftEvent.offset”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireBranchLeftEvent”j" t”bŒ&PyMonitoring_FireBranchLeftEvent.state”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireBranchLeftEvent”j" t”bŒ.PyMonitoring_FireBranchLeftEvent.target_offset”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireBranchLeftEvent”j" t”bŒ*PyMonitoring_FireBranchRightEvent.codelike”j )�”(jT(jU(ŒShttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireBranchRightEvent”j" t”bŒ(PyMonitoring_FireBranchRightEvent.offset”j )�”(jT(jU(ŒShttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireBranchRightEvent”j" t”bŒ'PyMonitoring_FireBranchRightEvent.state”j )�”(jT(jU(ŒShttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireBranchRightEvent”j" t”bŒ/PyMonitoring_FireBranchRightEvent.target_offset”j )�”(jT(jU(ŒShttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireBranchRightEvent”j" t”bŒ%PyMonitoring_FireCRaiseEvent.codelike”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCRaiseEvent”j" t”bŒ#PyMonitoring_FireCRaiseEvent.offset”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCRaiseEvent”j" t”bŒ"PyMonitoring_FireCRaiseEvent.state”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCRaiseEvent”j" t”bŒ&PyMonitoring_FireCReturnEvent.codelike”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCReturnEvent”j" t”bŒ$PyMonitoring_FireCReturnEvent.offset”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCReturnEvent”j" t”bŒ$PyMonitoring_FireCReturnEvent.retval”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCReturnEvent”j" t”bŒ#PyMonitoring_FireCReturnEvent.state”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCReturnEvent”j" t”bŒPyMonitoring_FireCallEvent.arg0”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCallEvent”j" t”bŒ#PyMonitoring_FireCallEvent.callable”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCallEvent”j" t”bŒ#PyMonitoring_FireCallEvent.codelike”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCallEvent”j" t”bŒ!PyMonitoring_FireCallEvent.offset”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCallEvent”j" t”bŒ PyMonitoring_FireCallEvent.state”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireCallEvent”j" t”bŒ/PyMonitoring_FireExceptionHandledEvent.codelike”j )�”(jT(jU(ŒXhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireExceptionHandledEvent”j" t”bŒ-PyMonitoring_FireExceptionHandledEvent.offset”j )�”(jT(jU(ŒXhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireExceptionHandledEvent”j" t”bŒ,PyMonitoring_FireExceptionHandledEvent.state”j )�”(jT(jU(ŒXhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireExceptionHandledEvent”j" t”bŒ#PyMonitoring_FireJumpEvent.codelike”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireJumpEvent”j" t”bŒ!PyMonitoring_FireJumpEvent.offset”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireJumpEvent”j" t”bŒ PyMonitoring_FireJumpEvent.state”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireJumpEvent”j" t”bŒ(PyMonitoring_FireJumpEvent.target_offset”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireJumpEvent”j" t”bŒ#PyMonitoring_FireLineEvent.codelike”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireLineEvent”j" t”bŒ!PyMonitoring_FireLineEvent.lineno”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireLineEvent”j" t”bŒ!PyMonitoring_FireLineEvent.offset”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireLineEvent”j" t”bŒ PyMonitoring_FireLineEvent.state”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireLineEvent”j" t”bŒ'PyMonitoring_FirePyResumeEvent.codelike”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyResumeEvent”j" t”bŒ%PyMonitoring_FirePyResumeEvent.offset”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyResumeEvent”j" t”bŒ$PyMonitoring_FirePyResumeEvent.state”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyResumeEvent”j" t”bŒ'PyMonitoring_FirePyReturnEvent.codelike”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyReturnEvent”j" t”bŒ%PyMonitoring_FirePyReturnEvent.offset”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyReturnEvent”j" t”bŒ%PyMonitoring_FirePyReturnEvent.retval”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyReturnEvent”j" t”bŒ$PyMonitoring_FirePyReturnEvent.state”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyReturnEvent”j" t”bŒ&PyMonitoring_FirePyStartEvent.codelike”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyStartEvent”j" t”bŒ$PyMonitoring_FirePyStartEvent.offset”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyStartEvent”j" t”bŒ#PyMonitoring_FirePyStartEvent.state”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyStartEvent”j" t”bŒ&PyMonitoring_FirePyThrowEvent.codelike”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyThrowEvent”j" t”bŒ$PyMonitoring_FirePyThrowEvent.offset”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyThrowEvent”j" t”bŒ#PyMonitoring_FirePyThrowEvent.state”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyThrowEvent”j" t”bŒ'PyMonitoring_FirePyUnwindEvent.codelike”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyUnwindEvent”j" t”bŒ%PyMonitoring_FirePyUnwindEvent.offset”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyUnwindEvent”j" t”bŒ$PyMonitoring_FirePyUnwindEvent.state”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyUnwindEvent”j" t”bŒ&PyMonitoring_FirePyYieldEvent.codelike”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyYieldEvent”j" t”bŒ$PyMonitoring_FirePyYieldEvent.offset”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyYieldEvent”j" t”bŒ$PyMonitoring_FirePyYieldEvent.retval”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyYieldEvent”j" t”bŒ#PyMonitoring_FirePyYieldEvent.state”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FirePyYieldEvent”j" t”bŒ$PyMonitoring_FireRaiseEvent.codelike”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireRaiseEvent”j" t”bŒ"PyMonitoring_FireRaiseEvent.offset”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireRaiseEvent”j" t”bŒ!PyMonitoring_FireRaiseEvent.state”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireRaiseEvent”j" t”bŒ&PyMonitoring_FireReraiseEvent.codelike”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireReraiseEvent”j" t”bŒ$PyMonitoring_FireReraiseEvent.offset”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireReraiseEvent”j" t”bŒ#PyMonitoring_FireReraiseEvent.state”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireReraiseEvent”j" t”bŒ,PyMonitoring_FireStopIterationEvent.codelike”j )�”(jT(jU(ŒUhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireStopIterationEvent”j" t”bŒ*PyMonitoring_FireStopIterationEvent.offset”j )�”(jT(jU(ŒUhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireStopIterationEvent”j" t”bŒ)PyMonitoring_FireStopIterationEvent.state”j )�”(jT(jU(ŒUhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireStopIterationEvent”j" t”bŒ)PyMonitoring_FireStopIterationEvent.value”j )�”(jT(jU(ŒUhttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoring_FireStopIterationEvent”j" t”bŒPyMutex_IsLocked.m”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/synchronization.html#c.PyMutex_IsLocked”j" t”bŒPyMutex_Lock.m”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/synchronization.html#c.PyMutex_Lock”j" t”bŒPyMutex_Unlock.m”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/synchronization.html#c.PyMutex_Unlock”j" t”bŒPyNumber_Absolute.o”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/number.html#c.PyNumber_Absolute”j" t”bŒPyNumber_Add.o1”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/number.html#c.PyNumber_Add”j" t”bŒPyNumber_Add.o2”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/number.html#c.PyNumber_Add”j" t”bŒPyNumber_And.o1”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/number.html#c.PyNumber_And”j" t”bŒPyNumber_And.o2”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/number.html#c.PyNumber_And”j" t”bŒPyNumber_AsSsize_t.exc”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/number.html#c.PyNumber_AsSsize_t”j" t”bŒPyNumber_AsSsize_t.o”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/number.html#c.PyNumber_AsSsize_t”j" t”bŒPyNumber_Check.o”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/dict.html#c.PyODict_CheckExact”j" t”bŒPyODict_DelItem.key”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/dict.html#c.PyODict_DelItem”j" t”bŒPyODict_DelItem.od”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/dict.html#c.PyODict_DelItem”j" t”bŒPyODict_SetItem.key”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/dict.html#c.PyODict_SetItem”j" t”bŒPyODict_SetItem.od”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/dict.html#c.PyODict_SetItem”j" t”bŒPyODict_SetItem.value”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/dict.html#c.PyODict_SetItem”j" t”bŒPyOS_FSPath.path”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/sys.html#c.PyOS_FSPath”j" t”bŒPyOS_double_to_string.flags”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_double_to_string”j" t”bŒ!PyOS_double_to_string.format_code”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_double_to_string”j" t”bŒPyOS_double_to_string.precision”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_double_to_string”j" t”bŒPyOS_double_to_string.ptype”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_double_to_string”j" t”bŒPyOS_double_to_string.val”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_double_to_string”j" t”bŒ PyOS_getsig.i”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/sys.html#c.PyOS_getsig”j" t”bŒPyOS_mystricmp.str1”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/conversion.html#c.PyOS_mystricmp”j" t”bŒPyOS_mystricmp.str2”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/conversion.html#c.PyOS_mystricmp”j" t”bŒPyOS_mystrnicmp.size”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_mystrnicmp”j" t”bŒPyOS_mystrnicmp.str1”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_mystrnicmp”j" t”bŒPyOS_mystrnicmp.str2”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_mystrnicmp”j" t”bŒ PyOS_setsig.h”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/sys.html#c.PyOS_setsig”j" t”bŒ PyOS_setsig.i”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/sys.html#c.PyOS_setsig”j" t”bŒPyOS_snprintf.format”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/conversion.html#c.PyOS_snprintf”j" t”bŒPyOS_snprintf.size”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/conversion.html#c.PyOS_snprintf”j" t”bŒPyOS_snprintf.str”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/conversion.html#c.PyOS_snprintf”• j" t”bŒPyOS_stricmp.str1”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/conversion.html#c.PyOS_stricmp”j" t”bŒPyOS_stricmp.str2”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/conversion.html#c.PyOS_stricmp”j" t”bŒPyOS_string_to_double.endptr”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_string_to_double”j" t”bŒ(PyOS_string_to_double.overflow_exception”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_string_to_double”j" t”bŒPyOS_string_to_double.s”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/conversion.html#c.PyOS_string_to_double”j" t”bŒPyOS_strnicmp.size”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/conversion.html#c.PyOS_strnicmp”j" t”bŒPyOS_strnicmp.str1”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/conversion.html#c.PyOS_strnicmp”j" t”bŒPyOS_strnicmp.str2”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/conversion.html#c.PyOS_strnicmp”j" t”bŒPyOS_strtol.base”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/conversion.html#c.PyOS_strtol”j" t”bŒPyOS_strtol.ptr”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/conversion.html#c.PyOS_strtol”j" t”bŒPyOS_strtol.str”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/conversion.html#c.PyOS_strtol”j" t”bŒPyOS_strtoul.base”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/conversion.html#c.PyOS_strtoul”j" t”bŒPyOS_strtoul.ptr”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/conversion.html#c.PyOS_strtoul”j" t”bŒPyOS_strtoul.str”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/conversion.html#c.PyOS_strtoul”j" t”bŒPyOS_vsnprintf.format”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/conversion.html#c.PyOS_vsnprintf”j" t”bŒPyOS_vsnprintf.size”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/conversion.html#c.PyOS_vsnprintf”j" t”bŒPyOS_vsnprintf.str”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/conversion.html#c.PyOS_vsnprintf”j" t”bŒPyOS_vsnprintf.va”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/conversion.html#c.PyOS_vsnprintf”j" t”bŒPyObject_ASCII.o”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/object.html#c.PyObject_DelAttr”j" t”bŒPyObject_DelAttr.o”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_DelAttr”j" t”bŒ PyObject_DelAttrString.attr_name”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_DelAttrString”j" t”bŒPyObject_DelAttrString.o”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_DelAttrString”j" t”bŒPyObject_DelItem.key”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_DelItem”j" t”bŒPyObject_DelItem.o”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_DelItem”j" t”bŒPyObject_DelItemString.key”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_DelItemString”j" t”bŒPyObject_DelItemString.o”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_DelItemString”j" t”bŒPyObject_Dir.o”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/object.html#c.PyObject_Dir”j" t”bŒPyObject_Format.format_spec”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/object.html#c.PyObject_Format”j" t”bŒPyObject_Format.obj”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/object.html#c.PyObject_Format”j" t”bŒPyObject_Free.p”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/memory.html#c.PyObject_Free”j" t”bŒPyObject_GC_Del.op”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_Del”j" t”bŒPyObject_GC_IsFinalized.op”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_IsFinalized”j" t”bŒPyObject_GC_IsTracked.op”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_IsTracked”j" t”bŒPyObject_GC_Track.op”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_Track”j" t”bŒPyObject_GC_UnTrack.op”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/gcsupport.html#c.PyObject_GC_UnTrack”j" t”bŒPyObject_GenericGetAttr.name”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetAttr”j" t”bŒPyObject_GenericGetAttr.o”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetAttr”j" t”bŒPyObject_GenericGetDict.context”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetDict”j" t”bŒPyObject_GenericGetDict.o”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericGetDict”j" t”bŒPyObject_GenericHash.obj”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/hash.html#c.PyObject_GenericHash”j" t”bŒPyObject_GenericSetAttr.name”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetAttr”j" t”bŒPyObject_GenericSetAttr.o”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetAttr”j" t”bŒPyObject_GenericSetAttr.value”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetAttr”j" t”bŒPyObject_GenericSetDict.context”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetDict”j" t”bŒPyObject_GenericSetDict.o”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetDict”j" t”bŒPyObject_GenericSetDict.value”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/object.html#c.PyObject_GenericSetDict”j" t”bŒPyObject_GetAIter.o”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/object.html#c.PyObject_GetAIter”j" t”bŒ$PyObject_GetArenaAllocator.allocator”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/memory.html#c.PyObject_GetArenaAllocator”j" t”bŒPyObject_GetAttr.attr_name”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_GetAttr”j" t”bŒPyObject_GetAttr.o”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_GetAttr”j" t”bŒ PyObject_GetAttrString.attr_name”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetAttrString”j" t”bŒPyObject_GetAttrString.o”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetAttrString”j" t”bŒPyObject_GetBuffer.exporter”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/buffer.html#c.PyObject_GetBuffer”j" t”bŒPyObject_GetBuffer.flags”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/buffer.html#c.PyObject_GetBuffer”j" t”bŒPyObject_GetBuffer.view”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/buffer.html#c.PyObject_GetBuffer”j" t”bŒPyObject_GetItem.key”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_GetItem”j" t”bŒPyObject_GetItem.o”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_GetItem”j" t”bŒPyObject_GetItemData.o”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetItemData”j" t”bŒPyObject_GetIter.o”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_GetIter”j" t”bŒ"PyObject_GetOptionalAttr.attr_name”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetOptionalAttr”j" t”bŒPyObject_GetOptionalAttr.obj”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetOptionalAttr”j" t”bŒPyObject_GetOptionalAttr.result”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetOptionalAttr”j" t”bŒ(PyObject_GetOptionalAttrString.attr_name”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetOptionalAttrString”j" t”bŒ"PyObject_GetOptionalAttrString.obj”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetOptionalAttrString”j" t”bŒ%PyObject_GetOptionalAttrString.result”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetOptionalAttrString”j" t”bŒPyObject_GetTypeData.cls”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetTypeData”j" t”bŒPyObject_GetTypeData.o”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/object.html#c.PyObject_GetTypeData”j" t”bŒPyObject_HasAttr.attr_name”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_HasAttr”j" t”bŒPyObject_HasAttr.o”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_HasAttr”j" t”bŒ PyObject_HasAttrString.attr_name”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrString”j" t”bŒPyObject_HasAttrString.o”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrString”j" t”bŒ)PyObject_HasAttrStringWithError.attr_name”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrStringWithError”j" t”bŒ!PyObject_HasAttrStringWithError.o”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrStringWithError”j" t”bŒ#PyObject_HasAttrWithError.attr_name”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrWithError”j" t”bŒPyObject_HasAttrWithError.o”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/object.html#c.PyObject_HasAttrWithError”j" t”bŒPyObject_Hash.o”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/object.html#c.PyObject_Hash”j" t”bŒPyObject_HashNotImplemented.o”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/object.html#c.PyObject_HashNotImplemented”j" t”bŒPyObject_IS_GC.obj”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/gcsupport.html#c.PyObject_IS_GC”j" t”bŒPyObject_Init.op”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/allocation.html#c.PyObject_Init”j" t”bŒPyObject_Init.type”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/allocation.html#c.PyObject_Init”j" t”bŒPyObject_InitVar.op”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/allocation.html#c.PyObject_InitVar”j" t”bŒPyObject_InitVar.size”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/allocation.html#c.PyObject_InitVar”j" t”bŒPyObject_InitVar.type”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/allocation.html#c.PyObject_InitVar”j" t”bŒPyObject_IsInstance.cls”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/object.html#c.PyObject_IsInstance”j" t”bŒPyObject_IsInstance.inst”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/object.html#c.PyObject_IsInstance”j" t”bŒPyObject_IsSubclass.cls”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/object.html#c.PyObject_IsSubclass”j" t”bŒPyObject_IsSubclass.derived”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/object.html#c.PyObject_IsSubclass”j" t”bŒPyObject_IsTrue.o”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/object.html#c.PyObject_IsTrue”j" t”bŒPyObject_Length.o”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/object.html#c.PyObject_Length”j" t”bŒ PyObject_LengthHint.defaultvalue”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/object.html#c.PyObject_LengthHint”j" t”bŒPyObject_LengthHint.o”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/object.html#c.PyObject_LengthHint”j" t”bŒPyObject_Malloc.n”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/memory.html#c.PyObject_Malloc”j" t”bŒPyObject_Not.o”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/object.html#c.PyObject_Not”j" t”bŒPyObject_Print.flags”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/memory.html#c.PyObject_Realloc”j" t”bŒPyObject_Realloc.p”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/memory.html#c.PyObject_Realloc”j" t”bŒPyObject_Repr.o”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/object.html#c.PyObject_Repr”j" t”bŒPyObject_RichCompare.o1”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichCompare”j" t”bŒPyObject_RichCompare.o2”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichCompare”j" t”bŒPyObject_RichCompare.opid”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichCompare”j" t”bŒPyObject_RichCompareBool.o1”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichCompareBool”j" t”bŒPyObject_RichCompareBool.o2”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichCompareBool”j" t”bŒPyObject_RichCompareBool.opid”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/object.html#c.PyObject_RichCompareBool”j" t”bŒPyObject_SelfIter.obj”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/object.html#c.PyObject_SelfIter”j" t”bŒ$PyObject_SetArenaAllocator.allocator”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/memory.html#c.PyObject_SetArenaAllocator”j" t”bŒPyObject_SetAttr.attr_name”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_SetAttr”j" t”bŒPyObject_SetAttr.o”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_SetAttr”j" t”bŒPyObject_SetAttr.v”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_SetAttr”j" t”bŒ PyObject_SetAttrString.attr_name”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrString”j" t”bŒPyObject_SetAttrString.o”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrString”j" t”bŒPyObject_SetAttrString.v”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyObject_SetAttrString”j" t”bŒPyObject_SetItem.key”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_SetItem”j" t”bŒPyObject_SetItem.o”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_SetItem”j" t”bŒPyObject_SetItem.v”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/object.html#c.PyObject_SetItem”j" t”bŒPyObject_Size.o”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/object.html#c.PyObject_Size”j" t”bŒPyObject_Str.o”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/object.html#c.PyObject_Str”j" t”bŒPyObject_Type.o”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/object.html#c.PyObject_Type”j" t”bŒPyObject_TypeCheck.o”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/object.html#c.PyObject_TypeCheck”j" t”bŒPyObject_TypeCheck.type”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/object.html#c.PyObject_TypeCheck”j" t”bŒPyObject_Vectorcall.args”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/call.html#c.PyObject_Vectorcall”j" t”bŒPyObject_Vectorcall.callable”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/call.html#c.PyObject_Vectorcall”j" t”bŒPyObject_Vectorcall.kwnames”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/call.html#c.PyObject_Vectorcall”j" t”bŒPyObject_Vectorcall.nargsf”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/call.html#c.PyObject_Vectorcall”j" t”bŒPyObject_VectorcallDict.args”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallDict”j" t”bŒ PyObject_VectorcallDict.callable”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallDict”j" t”bŒPyObject_VectorcallDict.kwdict”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallDict”j" t”bŒPyObject_VectorcallDict.nargsf”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallDict”j" t”bŒPyObject_VectorcallMethod.args”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallMethod”j" t”bŒ!PyObject_VectorcallMethod.kwnames”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallMethod”j" t”bŒPyObject_VectorcallMethod.name”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallMethod”j" t”bŒ PyObject_VectorcallMethod.nargsf”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/call.html#c.PyObject_VectorcallMethod”j" t”bŒPyObject_VisitManagedDict.arg”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/object.html#c.PyObject_VisitManagedDict”j" t”bŒPyObject_VisitManagedDict.obj”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/object.html#c.PyObject_VisitManagedDict”j" t”bŒPyObject_VisitManagedDict.visit”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/object.html#c.PyObject_VisitManagedDict”j" t”bŒPyPickleBuffer_Check.op”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/picklebuffer.html#c.PyPickleBuffer_Check”j" t”bŒPyPickleBuffer_FromObject.obj”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/picklebuffer.html#c.PyPickleBuffer_FromObject”j" t”bŒ"PyPickleBuffer_GetBuffer.picklebuf”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/picklebuffer.html#c.PyPickleBuffer_GetBuffer”j" t”bŒ PyPickleBuffer_Release.picklebuf”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/picklebuffer.html#c.PyPickleBuffer_Release”j" t”bŒ(PyPreConfig_InitIsolatedConfig.preconfig”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig_InitIsolatedConfig”j" t”bŒ&PyPreConfig_InitPythonConfig.preconfig”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig_InitPythonConfig”j" t”bŒPyRange_Check.o”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/iterator.html#c.PyRange_Check”j" t”bŒPyRefTracer_GetTracer.data”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/profiling.html#c.PyRefTracer_GetTracer”j" t”bŒPyRefTracer_SetTracer.data”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/profiling.html#c.PyRefTracer_SetTracer”j" t”bŒPyRefTracer_SetTracer.tracer”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/profiling.html#c.PyRefTracer_SetTracer”j" t”bŒPyRun_AnyFile.filename”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFile”j" t”bŒPyRun_AnyFile.fp”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFile”j" t”bŒPyRun_AnyFileEx.closeit”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileEx”j" t”bŒPyRun_AnyFileEx.filename”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileEx”j" t”bŒPyRun_AnyFileEx.fp”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileEx”j" t”bŒPyRun_AnyFileExFlags.closeit”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExFlags”j" t”bŒPyRun_AnyFileExFlags.filename”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExFlags”j" t”bŒPyRun_AnyFileExFlags.flags”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExFlags”j" t”bŒPyRun_AnyFileExFlags.fp”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileExFlags”j" t”bŒPyRun_AnyFileFlags.filename”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileFlags”j" t”bŒPyRun_AnyFileFlags.flags”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileFlags”j" t”bŒPyRun_AnyFileFlags.fp”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/veryhigh.html#c.PyRun_AnyFileFlags”j" t”bŒPyRun_File.filename”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_File”j" t”bŒ PyRun_File.fp”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_File”j" t”bŒPyRun_File.globals”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_File”j" t”bŒPyRun_File.locals”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_File”j" t”bŒPyRun_File.start”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/veryhigh.html#c.PyRun_File”j" t”bŒPyRun_FileEx.closeit”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/datetime.html#c.PyTZInfo_Check”j" t”bŒPyTZInfo_CheckExact.ob”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/datetime.html#c.PyTZInfo_CheckExact”j" t”bŒPyThreadState_Clear.tstate”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_Clear”j" t”bŒPyThreadState_Delete.tstate”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_Delete”j" t”bŒ!PyThreadState_EnterTracing.tstate”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_EnterTracing”j" t”bŒPyThreadState_GetFrame.tstate”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_GetFrame”j" t”bŒPyThreadState_GetID.tstate”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_GetID”j" t”bŒ#PyThreadState_GetInterpreter.tstate”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_GetInterpreter”j" t”bŒ!PyThreadState_LeaveTracing.tstate”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_LeaveTracing”j" t”bŒPyThreadState_New.interp”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/threads.html#c.PyThreadState_New”j" t”bŒPyThreadState_Next.tstate”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/subinterpreters.html#c.PyThreadState_Next”j" t”bŒPyThreadState_SetAsyncExc.exc”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_SetAsyncExc”j" t”bŒPyThreadState_SetAsyncExc.id”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_SetAsyncExc”j" t”bŒPyThreadState_Swap.tstate”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/threads.html#c.PyThreadState_Swap”j" t”bŒPyThread_acquire_lock.lock”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/synchronization.html#c.PyThread_acquire_lock”j" t”bŒPyThread_acquire_lock.waitflag”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/synchronization.html#c.PyThread_acquire_lock”j" t”bŒ%PyThread_acquire_lock_timed.intr_flag”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/synchronization.html#c.PyThread_acquire_lock_timed”j" t”bŒ PyThread_acquire_lock_timed.lock”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/synchronization.html#c.PyThread_acquire_lock_timed”j" t”bŒ(PyThread_acquire_lock_timed.microseconds”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/synchronization.html#c.PyThread_acquire_lock_timed”j" t”bŒPyThread_delete_key.key”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/tls.html#c.PyThread_delete_key”j" t”bŒPyThread_delete_key_value.key”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/tls.html#c.PyThread_delete_key_value”j" t”bŒPyThread_free_lock.lock”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/synchronization.html#c.PyThread_free_lock”j" t”bŒPyThread_get_key_value.key”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/tls.html#c.PyThread_get_key_value”j" t”bŒPyThread_release_lock.lock”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/synchronization.html#c.PyThread_release_lock”j" t”bŒPyThread_set_key_value.key”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/tls.html#c.PyThread_set_key_value”j" t”bŒPyThread_set_key_value.value”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/tls.html#c.PyThread_set_key_value”j" t”bŒPyThread_set_stacksize.size”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/threads.html#c.PyThread_set_stacksize”j" t”bŒPyThread_start_new_thread.arg”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/threads.html#c.PyThread_start_new_thread”j" t”bŒPyThread_start_new_thread.func”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/threads.html#c.PyThread_start_new_thread”j" t”bŒPyThread_tss_create.key”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/tls.html#c.PyThread_tss_create”j" t”bŒPyThread_tss_delete.key”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/tls.html#c.PyThread_tss_delete”j" t”bŒPyThread_tss_free.key”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/time.html#c.PyTime_PerfCounter”j" t”bŒPyTime_PerfCounterRaw.result”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/time.html#c.PyTime_PerfCounterRaw”j" t”bŒPyTime_Time.result”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/time.html#c.PyTime_Time”j" t”bŒPyTime_TimeRaw.result”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/time.html#c.PyTime_TimeRaw”j" t”bŒPyTraceBack_Check.op”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/exceptions.html#c.PyTraceBack_Check”j" t”bŒPyTraceBack_Here.f”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyTraceBack_Here”j" t”bŒPyTraceBack_Print.f”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/exceptions.html#c.PyTraceBack_Print”j" t”bŒPyTraceBack_Print.tb”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/exceptions.html#c.PyTraceBack_Print”j" t”bŒPyTraceMalloc_Track.domain”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/memory.html#c.PyTraceMalloc_Track”j" t”bŒPyTraceMalloc_Track.ptr”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/memory.html#c.PyTraceMalloc_Track”j" t”bŒPyTraceMalloc_Track.size”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/memory.html#c.PyTraceMalloc_Track”j" t”bŒPyTraceMalloc_Untrack.domain”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/memory.html#c.PyTraceMalloc_Untrack”j" t”bŒPyTraceMalloc_Untrack.ptr”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/memory.html#c.PyTraceMalloc_Untrack”j" t”bŒPyTuple_Check.p”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/tuple.html#c.PyTuple_Check”j" t”bŒPyTuple_CheckExact.p”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/tuple.html#c.PyTuple_CheckExact”j" t”bŒPyTuple_GET_ITEM.p”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/tuple.html#c.PyTuple_GET_ITEM”j" t”bŒPyTuple_GET_ITEM.pos”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/tuple.html#c.PyTuple_GET_ITEM”j" t”bŒPyTuple_GET_SIZE.p”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/tuple.html#c.PyTuple_GET_SIZE”j" t”bŒPyTuple_GetItem.p”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/type.html#c.PyType_GetQualName”j" t”bŒPyType_GetSlot.slot”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/type.html#c.PyType_GetSlot”j" t”bŒPyType_GetSlot.type”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/type.html#c.PyType_GetSlot”j" t”bŒPyType_GetTypeDataSize.cls”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/object.html#c.PyType_GetTypeDataSize”j" t”bŒPyType_HasFeature.feature”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/type.html#c.PyType_HasFeature”j" t”bŒPyType_HasFeature.o”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/type.html#c.PyType_HasFeature”j" t”bŒPyType_IS_GC.o”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/type.html#c.PyType_IS_GC”j" t”bŒPyType_IsSubtype.a”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Check”j" t”bŒPyUnicode_CheckExact.obj”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CheckExact”j" t”bŒPyUnicode_Compare.left”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Compare”j" t”bŒPyUnicode_Compare.right”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Compare”j" t”bŒ'PyUnicode_CompareWithASCIIString.string”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CompareWithASCIIString”j" t”bŒ(PyUnicode_CompareWithASCIIString.unicode”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CompareWithASCIIString”j" t”bŒPyUnicode_Concat.left”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Concat”j" t”bŒPyUnicode_Concat.right”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Concat”j" t”bŒPyUnicode_Contains.substr”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Contains”j" t”bŒPyUnicode_Contains.unicode”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Contains”j" t”bŒPyUnicode_CopyCharacters.from”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharacters”j" t”bŒ#PyUnicode_CopyCharacters.from_start”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharacters”j" t”bŒ!PyUnicode_CopyCharacters.how_many”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharacters”j" t”bŒPyUnicode_CopyCharacters.to”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharacters”j" t”bŒ!PyUnicode_CopyCharacters.to_start”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_CopyCharacters”j" t”bŒPyUnicode_Count.end”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Count”j" t”bŒPyUnicode_Count.start”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Count”j" t”bŒPyUnicode_Count.substr”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Count”j" t”bŒPyUnicode_Count.unicode”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Count”j" t”bŒPyUnicode_DATA.unicode”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DATA”j" t”bŒPyUnicode_Decode.encoding”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Decode”j" t”bŒPyUnicode_Decode.errors”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Decode”j" t”bŒPyUnicode_Decode.size”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Decode”j" t”bŒPyUnicode_Decode.str”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Decode”j" t”bŒPyUnicode_DecodeASCII.errors”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeASCII”j" t”bŒPyUnicode_DecodeASCII.size”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeASCII”j" t”bŒPyUnicode_DecodeASCII.str”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeASCII”j" t”bŒPyUnicode_DecodeCharmap.errors”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCharmap”j" t”bŒPyUnicode_DecodeCharmap.length”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCharmap”j" t”bŒPyUnicode_DecodeCharmap.mapping”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCharmap”j" t”bŒPyUnicode_DecodeCharmap.str”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCharmap”j" t”bŒ*PyUnicode_DecodeCodePageStateful.code_page”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCodePageStateful”j" t”bŒ)PyUnicode_DecodeCodePageStateful.consumed”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCodePageStateful”j" t”bŒ'PyUnicode_DecodeCodePageStateful.errors”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCodePageStateful”j" t”bŒ%PyUnicode_DecodeCodePageStateful.size”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCodePageStateful”j" t”bŒ$PyUnicode_DecodeCodePageStateful.str”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeCodePageStateful”j" t”bŒPyUnicode_DecodeFSDefault.str”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefault”j" t”bŒ%PyUnicode_DecodeFSDefaultAndSize.size”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefaultAndSize”j" t”bŒ$PyUnicode_DecodeFSDefaultAndSize.str”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeFSDefaultAndSize”j" t”bŒPyUnicode_DecodeLatin1.errors”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLatin1”j" t”bŒPyUnicode_DecodeLatin1.size”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLatin1”j" t”bŒPyUnicode_DecodeLatin1.str”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLatin1”j" t”bŒPyUnicode_DecodeLocale.errors”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocale”j" t”bŒPyUnicode_DecodeLocale.str”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocale”j" t”bŒ$PyUnicode_DecodeLocaleAndSize.errors”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocaleAndSize”j" t”bŒ$PyUnicode_DecodeLocaleAndSize.length”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocaleAndSize”j" t”bŒ!PyUnicode_DecodeLocaleAndSize.str”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeLocaleAndSize”j" t”bŒPyUnicode_DecodeMBCS.errors”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCS”j" t”bŒPyUnicode_DecodeMBCS.size”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCS”j" t”bŒPyUnicode_DecodeMBCS.str”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCS”j" t”bŒ%PyUnicode_DecodeMBCSStateful.consumed”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSStateful”j" t”bŒ#PyUnicode_DecodeMBCSStateful.errors”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSStateful”j" t”bŒ!PyUnicode_DecodeMBCSStateful.size”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSStateful”j" t”bŒ PyUnicode_DecodeMBCSStateful.str”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeMBCSStateful”j" t”bŒ'PyUnicode_DecodeRawUnicodeEscape.errors”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeRawUnicodeEscape”j" t”bŒ%PyUnicode_DecodeRawUnicodeEscape.size”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeRawUnicodeEscape”j" t”bŒ$PyUnicode_DecodeRawUnicodeEscape.str”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeRawUnicodeEscape”j" t”bŒPyUnicode_DecodeUTF16.byteorder”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16”j" t”bŒPyUnicode_DecodeUTF16.errors”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16”j" t”bŒPyUnicode_DecodeUTF16.size”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16”j" t”bŒPyUnicode_DecodeUTF16.str”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16”j" t”bŒ'PyUnicode_DecodeUTF16Stateful.byteorder”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16Stateful”j" t”bŒ&PyUnicode_DecodeUTF16Stateful.consumed”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16Stateful”j" t”bŒ$PyUnicode_DecodeUTF16Stateful.errors”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16Stateful”j" t”bŒ"PyUnicode_DecodeUTF16Stateful.size”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16Stateful”j" t”bŒ!PyUnicode_DecodeUTF16Stateful.str”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF16Stateful”j" t”bŒPyUnicode_DecodeUTF32.byteorder”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32”j" t”bŒPyUnicode_DecodeUTF32.errors”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32”j" t”bŒPyUnicode_DecodeUTF32.size”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32”j" t”bŒPyUnicode_DecodeUTF32.str”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32”j" t”bŒ'PyUnicode_DecodeUTF32Stateful.byteorder”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32Stateful”j" t”bŒ&PyUnicode_DecodeUTF32Stateful.consumed”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32Stateful”j" t”bŒ$PyUnicode_DecodeUTF32Stateful.errors”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32Stateful”j" t”bŒ"PyUnicode_DecodeUTF32Stateful.size”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32Stateful”j" t”bŒ!PyUnicode_DecodeUTF32Stateful.str”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF32Stateful”j" t”bŒPyUnicode_DecodeUTF7.errors”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7”j" t”bŒPyUnicode_DecodeUTF7.size”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7”j" t”bŒPyUnicode_DecodeUTF7.str”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7”j" t”bŒ%PyUnicode_DecodeUTF7Stateful.consumed”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7Stateful”j" t”bŒ#PyUnicode_DecodeUTF7Stateful.errors”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7Stateful”j" t”bŒ!PyUnicode_DecodeUTF7Stateful.size”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7Stateful”j" t”bŒ PyUnicode_DecodeUTF7Stateful.str”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF7Stateful”j" t”bŒPyUnicode_DecodeUTF8.errors”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8”j" t”bŒPyUnicode_DecodeUTF8.size”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8”j" t”bŒPyUnicode_DecodeUTF8.str”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8”j" t”bŒ%PyUnicode_DecodeUTF8Stateful.consumed”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8Stateful”j" t”bŒ#PyUnicode_DecodeUTF8Stateful.errors”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8Stateful”j" t”bŒ!PyUnicode_DecodeUTF8Stateful.size”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8Stateful”j" t”bŒ PyUnicode_DecodeUTF8Stateful.str”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUTF8Stateful”j" t”bŒ$PyUnicode_DecodeUnicodeEscape.errors”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUnicodeEscape”j" t”bŒ"PyUnicode_DecodeUnicodeEscape.size”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUnicodeEscape”j" t”bŒ!PyUnicode_DecodeUnicodeEscape.str”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_DecodeUnicodeEscape”j" t”bŒ"PyUnicode_EncodeCodePage.code_page”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeCodePage”j" t”bŒPyUnicode_EncodeCodePage.errors”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeCodePage”j" t”bŒ PyUnicode_EncodeCodePage.unicode”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeCodePage”j" t”bŒ!PyUnicode_EncodeFSDefault.unicode”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeFSDefault”j" t”bŒPyUnicode_EncodeLocale.errors”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeLocale”j" t”bŒPyUnicode_EncodeLocale.unicode”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EncodeLocale”j" t”bŒPyUnicode_Equal.a”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Equal”j" t”bŒPyUnicode_Equal.b”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Equal”j" t”bŒPyUnicode_EqualToUTF8.string”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EqualToUTF8”j" t”bŒPyUnicode_EqualToUTF8.unicode”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EqualToUTF8”j" t”bŒ!PyUnicode_EqualToUTF8AndSize.size”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EqualToUTF8AndSize”j" t”bŒ#PyUnicode_EqualToUTF8AndSize.string”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EqualToUTF8AndSize”j" t”bŒ$PyUnicode_EqualToUTF8AndSize.unicode”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_EqualToUTF8AndSize”j" t”bŒPyUnicode_FSConverter.obj”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSConverter”j" t”bŒPyUnicode_FSConverter.result”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSConverter”j" t”bŒPyUnicode_FSDecoder.obj”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSDecoder”j" t”bŒPyUnicode_FSDecoder.result”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FSDecoder”j" t”bŒPyUnicode_Fill.fill_char”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Fill”j" t”bŒPyUnicode_Fill.length”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Fill”j" t”bŒPyUnicode_Fill.start”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Fill”j" t”bŒPyUnicode_Fill.unicode”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Fill”j" t”bŒPyUnicode_Find.direction”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Find”j" t”bŒPyUnicode_Find.end”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Find”j" t”bŒPyUnicode_Find.start”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Find”j" t”bŒPyUnicode_Find.substr”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Find”j" t”bŒPyUnicode_Find.unicode”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Find”j" t”bŒPyUnicode_FindChar.ch”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindChar”j" t”bŒPyUnicode_FindChar.direction”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindChar”j" t”bŒPyUnicode_FindChar.end”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindChar”j" t”bŒPyUnicode_FindChar.start”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindChar”j" t”bŒPyUnicode_FindChar.unicode”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FindChar”j" t”bŒPyUnicode_Format.args”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Format”j" t”bŒPyUnicode_Format.format”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Format”j" t”bŒ$PyUnicode_FromEncodedObject.encoding”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromEncodedObject”j" t”bŒ"PyUnicode_FromEncodedObject.errors”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromEncodedObject”j" t”bŒPyUnicode_FromEncodedObject.obj”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromEncodedObject”j" t”bŒPyUnicode_FromFormat.format”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormat”j" t”bŒPyUnicode_FromFormatV.format”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormatV”j" t”bŒPyUnicode_FromFormatV.vargs”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromFormatV”j" t”bŒ PyUnicode_FromKindAndData.buffer”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromKindAndData”j" t”bŒPyUnicode_FromKindAndData.kind”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromKindAndData”j" t”bŒPyUnicode_FromKindAndData.size”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromKindAndData”j" t”bŒPyUnicode_FromObject.obj”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromObject”j" t”bŒPyUnicode_FromOrdinal.ordinal”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromOrdinal”j" t”bŒPyUnicode_FromString.str”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromString”j" t”bŒ PyUnicode_FromStringAndSize.size”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromStringAndSize”j" t”bŒPyUnicode_FromStringAndSize.str”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromStringAndSize”j" t”bŒPyUnicode_FromWideChar.size”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromWideChar”j" t”bŒPyUnicode_FromWideChar.wstr”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_FromWideChar”j" t”bŒPyUnicode_GET_LENGTH.unicode”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GET_LENGTH”j" t”bŒPyUnicode_GetLength.unicode”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_GetLength”j" t”bŒPyUnicode_IS_ASCII.unicode”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_IS_ASCII”j" t”bŒPyUnicode_IS_READY.unicode”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_IS_READY”j" t”bŒPyUnicode_InternFromString.str”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_InternFromString”j" t”bŒ!PyUnicode_InternInPlace.p_unicode”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_InternInPlace”j" t”bŒPyUnicode_IsIdentifier.unicode”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_IsIdentifier”j" t”bŒPyUnicode_Join.separator”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Join”j" t”bŒPyUnicode_Join.seq”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Join”j" t”bŒPyUnicode_KIND.unicode”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_KIND”j" t”bŒ PyUnicode_MAX_CHAR_VALUE.unicode”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_MAX_CHAR_VALUE”j" t”bŒPyUnicode_New.maxchar”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READY”j" t”bŒPyUnicode_READ_CHAR.index”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READ_CHAR”j" t”bŒPyUnicode_READ_CHAR.unicode”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_READ_CHAR”j" t”bŒPyUnicode_RPartition.sep”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RPartition”j" t”bŒPyUnicode_RPartition.unicode”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RPartition”j" t”bŒPyUnicode_RSplit.maxsplit”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RSplit”j" t”bŒPyUnicode_RSplit.sep”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RSplit”j" t”bŒPyUnicode_RSplit.unicode”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RSplit”j" t”bŒPyUnicode_ReadChar.index”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ReadChar”j" t”bŒPyUnicode_ReadChar.unicode”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_ReadChar”j" t”bŒPyUnicode_Replace.maxcount”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Replace”j" t”bŒPyUnicode_Replace.replstr”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Replace”j" t”bŒPyUnicode_Replace.substr”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Replace”j" t”bŒPyUnicode_Replace.unicode”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Replace”j" t”bŒPyUnicode_Resize.length”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Resize”j" t”bŒPyUnicode_Resize.unicode”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Resize”j" t”bŒPyUnicode_RichCompare.left”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RichCompare”j" t”bŒPyUnicode_RichCompare.op”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RichCompare”j" t”bŒPyUnicode_RichCompare.right”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_RichCompare”j" t”bŒPyUnicode_Split.maxsplit”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Split”j" t”bŒPyUnicode_Split.sep”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Split”j" t”bŒPyUnicode_Split.unicode”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Split”j" t”bŒPyUnicode_Splitlines.keepends”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Splitlines”j" t”bŒPyUnicode_Splitlines.unicode”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Splitlines”j" t”bŒPyUnicode_Substring.end”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Substring”j" t”bŒPyUnicode_Substring.start”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Substring”j" t”bŒPyUnicode_Substring.unicode”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Substring”j" t”bŒPyUnicode_Tailmatch.direction”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Tailmatch”j" t”bŒPyUnicode_Tailmatch.end”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Tailmatch”j" t”bŒPyUnicode_Tailmatch.start”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Tailmatch”j" t”bŒPyUnicode_Tailmatch.substr”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Tailmatch”j" t”bŒPyUnicode_Tailmatch.unicode”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Tailmatch”j" t”bŒPyUnicode_Translate.errors”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Translate”j" t”bŒPyUnicode_Translate.table”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Translate”j" t”bŒPyUnicode_Translate.unicode”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_Translate”j" t”bŒPyUnicode_WRITE.data”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WRITE”j" t”bŒPyUnicode_WRITE.index”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WRITE”j" t”bŒPyUnicode_WRITE.kind”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WRITE”j" t”bŒPyUnicode_WRITE.value”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WRITE”j" t”bŒPyUnicode_WriteChar.character”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WriteChar”j" t”bŒPyUnicode_WriteChar.index”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WriteChar”j" t”bŒPyUnicode_WriteChar.unicode”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicode_WriteChar”j" t”bŒPyUnstable_AtExit.data”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/interp-lifecycle.html#c.PyUnstable_AtExit”j" t”bŒPyUnstable_AtExit.func”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/interp-lifecycle.html#c.PyUnstable_AtExit”j" t”bŒPyUnstable_AtExit.interp”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/interp-lifecycle.html#c.PyUnstable_AtExit”j" t”bŒPyUnstable_Code_GetExtra.code”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_GetExtra”j" t”bŒPyUnstable_Code_GetExtra.extra”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_GetExtra”j" t”bŒPyUnstable_Code_GetExtra.index”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_GetExtra”j" t”bŒPyUnstable_Code_GetFirstFree.co”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_GetFirstFree”j" t”bŒPyUnstable_Code_New.argcount”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒPyUnstable_Code_New.cellvars”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒPyUnstable_Code_New.code”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒPyUnstable_Code_New.consts”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒ"PyUnstable_Code_New.exceptiontable”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒPyUnstable_Code_New.filename”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒPyUnstable_Code_New.firstlineno”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bu(ŒPyUnstable_Code_New.flags”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒPyUnstable_Code_New.freevars”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒ"PyUnstable_Code_New.kwonlyargcount”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒPyUnstable_Code_New.linetable”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒPyUnstable_Code_New.name”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒPyUnstable_Code_New.names”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒPyUnstable_Code_New.nlocals”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒPyUnstable_Code_New.qualname”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒPyUnstable_Code_New.stacksize”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒPyUnstable_Code_New.varnames”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_New”j" t”bŒ+PyUnstable_Code_NewWithPosOnlyArgs.argcount”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ+PyUnstable_Code_NewWithPosOnlyArgs.cellvars”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ'PyUnstable_Code_NewWithPosOnlyArgs.code”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ)PyUnstable_Code_NewWithPosOnlyArgs.consts”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ1PyUnstable_Code_NewWithPosOnlyArgs.exceptiontable”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ+PyUnstable_Code_NewWithPosOnlyArgs.filename”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ.PyUnstable_Code_NewWithPosOnlyArgs.firstlineno”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ(PyUnstable_Code_NewWithPosOnlyArgs.flags”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ+PyUnstable_Code_NewWithPosOnlyArgs.freevars”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ1PyUnstable_Code_NewWithPosOnlyArgs.kwonlyargcount”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ,PyUnstable_Code_NewWithPosOnlyArgs.linetable”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ'PyUnstable_Code_NewWithPosOnlyArgs.name”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ(PyUnstable_Code_NewWithPosOnlyArgs.names”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ*PyUnstable_Code_NewWithPosOnlyArgs.nlocals”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ2PyUnstable_Code_NewWithPosOnlyArgs.posonlyargcount”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ+PyUnstable_Code_NewWithPosOnlyArgs.qualname”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ,PyUnstable_Code_NewWithPosOnlyArgs.stacksize”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒ+PyUnstable_Code_NewWithPosOnlyArgs.varnames”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_NewWithPosOnlyArgs”j" t”bŒPyUnstable_Code_SetExtra.code”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_SetExtra”j" t”bŒPyUnstable_Code_SetExtra.extra”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_SetExtra”j" t”bŒPyUnstable_Code_SetExtra.index”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Code_SetExtra”j" t”bŒPyUnstable_EnableTryIncRef.obj”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/object.html#c.PyUnstable_EnableTryIncRef”j" t”bŒ*PyUnstable_Eval_RequestCodeExtraIndex.free”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/code.html#c.PyUnstable_Eval_RequestCodeExtraIndex”j" t”bŒ#PyUnstable_Exc_PrepReraiseStar.excs”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/exceptions.html#c.PyUnstable_Exc_PrepReraiseStar”j" t”bŒ#PyUnstable_Exc_PrepReraiseStar.orig”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/exceptions.html#c.PyUnstable_Exc_PrepReraiseStar”j" t”bŒPyUnstable_GC_VisitObjects.arg”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/gcsupport.html#c.PyUnstable_GC_VisitObjects”j" t”bŒ#PyUnstable_GC_VisitObjects.callback”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/gcsupport.html#c.PyUnstable_GC_VisitObjects”j" t”bŒ)PyUnstable_InterpreterFrame_GetCode.frame”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/frame.html#c.PyUnstable_InterpreterFrame_GetCode”j" t”bŒ*PyUnstable_InterpreterFrame_GetLasti.frame”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/frame.html#c.PyUnstable_InterpreterFrame_GetLasti”j" t”bŒ)PyUnstable_InterpreterFrame_GetLine.frame”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/frame.html#c.PyUnstable_InterpreterFrame_GetLine”j" t”bŒPyUnstable_IsImmortal.obj”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/object.html#c.PyUnstable_IsImmortal”j" t”bŒPyUnstable_Long_CompactValue.op”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/long.html#c.PyUnstable_Long_CompactValue”j" t”bŒPyUnstable_Long_IsCompact.op”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/long.html#c.PyUnstable_Long_IsCompact”j" t”bŒPyUnstable_Module_SetGIL.gil”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/module.html#c.PyUnstable_Module_SetGIL”j" t”bŒPyUnstable_Module_SetGIL.module”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/module.html#c.PyUnstable_Module_SetGIL”j" t”bŒ1PyUnstable_Object_ClearWeakRefsNoCallbacks.object”j )�”(jT(jU(ŒYhttps://docs.python.org/3/c-api/weakref.html#c.PyUnstable_Object_ClearWeakRefsNoCallbacks”j" t”bŒ,PyUnstable_Object_EnableDeferredRefcount.obj”j )�”(jT(jU(ŒVhttps://docs.python.org/3/c-api/object.html#c.PyUnstable_Object_EnableDeferredRefcount”j" t”bŒ0PyUnstable_Object_GC_NewWithExtraData.extra_size”j )�”(jT(jU(ŒVhttps://docs.python.org/3/c-api/gcsupport.html#c.PyUnstable_Object_GC_NewWithExtraData”j" t”bŒ*PyUnstable_Object_GC_NewWithExtraData.type”j )�”(jT(jU(ŒVhttps://docs.python.org/3/c-api/gcsupport.html#c.PyUnstable_Object_GC_NewWithExtraData”j" t”bŒ1PyUnstable_Object_IsUniqueReferencedTemporary.obj”j )�”(jT(jU(Œ[https://docs.python.org/3/c-api/object.html#c.PyUnstable_Object_IsUniqueReferencedTemporary”j" t”bŒ)PyUnstable_Object_IsUniquelyReferenced.op”j )�”(jT(jU(ŒThttps://docs.python.org/3/c-api/object.html#c.PyUnstable_Object_IsUniquelyReferenced”j" t”bŒ2PyUnstable_ThreadState_ResetStackProtection.tstate”j )�”(jT(jU(ŒZhttps://docs.python.org/3/c-api/threads.html#c.PyUnstable_ThreadState_ResetStackProtection”j" t”bŒ4PyUnstable_ThreadState_SetStackProtection.stack_size”j )�”(jT(jU(ŒXhttps://docs.python.org/3/c-api/threads.html#c.PyUnstable_ThreadState_SetStackProtection”j" t”bŒ:PyUnstable_ThreadState_SetStackProtection.stack_start_addr”j )�”(jT(jU(ŒXhttps://docs.python.org/3/c-api/threads.html#c.PyUnstable_ThreadState_SetStackProtection”j" t”bŒ0PyUnstable_ThreadState_SetStackProtection.tstate”j )�”(jT(jU(ŒXhttps://docs.python.org/3/c-api/threads.html#c.PyUnstable_ThreadState_SetStackProtection”j" t”bŒPyUnstable_TryIncRef.obj”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/object.html#c.PyUnstable_TryIncRef”j" t”bŒ%PyUnstable_Type_AssignVersionTag.type”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/type.html#c.PyUnstable_Type_AssignVersionTag”j" t”bŒ&PyUnstable_WritePerfMapEntry.code_addr”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/perfmaps.html#c.PyUnstable_WritePerfMapEntry”j" t”bŒ&PyUnstable_WritePerfMapEntry.code_size”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/perfmaps.html#c.PyUnstable_WritePerfMapEntry”j" t”bŒ'PyUnstable_WritePerfMapEntry.entry_name”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/perfmaps.html#c.PyUnstable_WritePerfMapEntry”j" t”bŒPyVectorcall_Call.callable”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/call.html#c.PyVectorcall_Call”j" t”bŒPyVectorcall_Call.dict”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/call.html#c.PyVectorcall_Call”j" t”bŒPyVectorcall_Call.tuple”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/call.html#c.PyVectorcall_Call”j" t”bŒPyVectorcall_Function.op”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/call.html#c.PyVectorcall_Function”j" t”bŒPyVectorcall_NARGS.nargsf”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/call.html#c.PyVectorcall_NARGS”j" t”bŒPyWeakref_Check.ob”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_Check”j" t”bŒPyWeakref_CheckProxy.ob”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckProxy”j" t”bŒPyWeakref_CheckRef.ob”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckRef”j" t”bŒPyWeakref_CheckRefExact.ob”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_CheckRefExact”j" t”bŒPyWeakref_GET_OBJECT.ref”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GET_OBJECT”j" t”bŒPyWeakref_GetObject.ref”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GetObject”j" t”bŒPyWeakref_GetRef.pobj”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GetRef”j" t”bŒPyWeakref_GetRef.ref”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_GetRef”j" t”bŒPyWeakref_IsDead.ref”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_IsDead”j" t”bŒPyWeakref_NewProxy.callback”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewProxy”j" t”bŒPyWeakref_NewProxy.ob”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewProxy”j" t”bŒPyWeakref_NewRef.callback”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewRef”j" t”bŒPyWeakref_NewRef.ob”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/weakref.html#c.PyWeakref_NewRef”j" t”bŒPyWideStringList_Append.item”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyWideStringList_Append”j" t”bŒPyWideStringList_Append.list”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyWideStringList_Append”j" t”bŒPyWideStringList_Insert.index”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyWideStringList_Insert”j" t”bŒPyWideStringList_Insert.item”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyWideStringList_Insert”j" t”bŒPyWideStringList_Insert.list”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyWideStringList_Insert”j" t”bŒPy_AddPendingCall.arg”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/threads.html#c.Py_AddPendingCall”j" t”bŒPy_AddPendingCall.func”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/threads.html#c.Py_AddPendingCall”j" t”bŒPy_AtExit.func”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/sys.html#c.Py_AtExit”j" t”bŒPy_BuildValue.format”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/arg.html#c.Py_BuildValue”j" t”bŒPy_BytesMain.argc”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/interp-lifecycle.html#c.Py_BytesMain”j" t”bŒPy_BytesMain.argv”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/interp-lifecycle.html#c.Py_BytesMain”j" t”bŒ Py_CLEAR.o”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/refcounting.html#c.Py_CLEAR”j" t”bŒPy_CompileString.filename”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileString”j" t”bŒPy_CompileString.start”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileString”j" t”bŒPy_CompileString.str”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileString”j" t”bŒ Py_CompileStringExFlags.filename”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringExFlags”j" t”bŒPy_CompileStringExFlags.flags”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringExFlags”j" t”bŒ Py_CompileStringExFlags.optimize”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringExFlags”j" t”bŒPy_CompileStringExFlags.start”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringExFlags”j" t”bŒPy_CompileStringExFlags.str”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringExFlags”j" t”bŒPy_CompileStringFlags.filename”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringFlags”j" t”bŒPy_CompileStringFlags.flags”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringFlags”j" t”bŒPy_CompileStringFlags.start”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringFlags”j" t”bŒPy_CompileStringFlags.str”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringFlags”j" t”bŒPy_CompileStringObject.filename”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringObject”j" t”bŒPy_CompileStringObject.flags”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringObject”j" t”bŒPy_CompileStringObject.optimize”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringObject”j" t”bŒPy_CompileStringObject.start”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringObject”j" t”bŒPy_CompileStringObject.str”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_CompileStringObject”j" t”bŒ Py_DECREF.o”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/exceptions.html#c.Py_ReprEnter”j" t”bŒPy_ReprLeave.object”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/exceptions.html#c.Py_ReprLeave”j" t”bŒPy_SET_REFCNT.o”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/refcounting.html#c.Py_SET_REFCNT”j" t”bŒPy_SET_REFCNT.refcnt”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/refcounting.html#c.Py_SET_REFCNT”j" t”bŒ Py_SET_SIZE.o”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/structures.html#c.Py_SET_SIZE”j" t”bŒPy_SET_SIZE.size”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/structures.html#c.Py_SET_SIZE”j" t”bŒ Py_SET_TYPE.o”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/structures.html#c.Py_SET_TYPE”j" t”bŒPy_SET_TYPE.type”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/structures.html#c.Py_SET_TYPE”j" t”bŒ Py_SIZE.o”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/structures.html#c.Py_SIZE”j" t”bŒPy_SetProgramName.name”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/interp-lifecycle.html#c.Py_SetProgramName”j" t”bŒPy_SetPythonHome.home”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/interp-lifecycle.html#c.Py_SetPythonHome”j" t”bŒPy_SetRecursionLimit.new_limit”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/exceptions.html#c.Py_SetRecursionLimit”j" t”bŒ Py_TYPE.o”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/structures.html#c.Py_TYPE”j" t”bŒPy_UNICODE_HIGH_SURROGATE.ch”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_HIGH_SURROGATE”j" t”bŒPy_UNICODE_ISALNUM.ch”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISALNUM”j" t”bŒPy_UNICODE_ISALPHA.ch”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISALPHA”j" t”bŒPy_UNICODE_ISDECIMAL.ch”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISDECIMAL”j" t”bŒPy_UNICODE_ISDIGIT.ch”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISDIGIT”j" t”bŒPy_UNICODE_ISLINEBREAK.ch”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISLINEBREAK”j" t”bŒPy_UNICODE_ISLOWER.ch”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISLOWER”j" t”bŒPy_UNICODE_ISNUMERIC.ch”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISNUMERIC”j" t”bŒPy_UNICODE_ISPRINTABLE.ch”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISPRINTABLE”j" t”bŒPy_UNICODE_ISSPACE.ch”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISSPACE”j" t”bŒPy_UNICODE_ISTITLE.ch”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISTITLE”j" t”bŒPy_UNICODE_ISUPPER.ch”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_ISUPPER”j" t”bŒPy_UNICODE_IS_HIGH_SURROGATE.ch”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_HIGH_SURROGATE”j" t”bŒPy_UNICODE_IS_LOW_SURROGATE.ch”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_LOW_SURROGATE”j" t”bŒPy_UNICODE_IS_SURROGATE.ch”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_IS_SURROGATE”j" t”bŒPy_UNICODE_JOIN_SURROGATES.high”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_JOIN_SURROGATES”j" t”bŒPy_UNICODE_JOIN_SURROGATES.low”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_JOIN_SURROGATES”j" t”bŒPy_UNICODE_LOW_SURROGATE.ch”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_LOW_SURROGATE”j" t”bŒPy_UNICODE_TODECIMAL.ch”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TODECIMAL”j" t”bŒPy_UNICODE_TODIGIT.ch”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TODIGIT”j" t”bŒPy_UNICODE_TOLOWER.ch”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TOLOWER”j" t”bŒPy_UNICODE_TONUMERIC.ch”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TONUMERIC”j" t”bŒPy_UNICODE_TOTITLE.ch”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TOTITLE”• j" t”bŒPy_UNICODE_TOUPPER.ch”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE_TOUPPER”j" t”bŒPy_VaBuildValue.format”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/arg.html#c.Py_VaBuildValue”j" t”bŒPy_VaBuildValue.vargs”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/arg.html#c.Py_VaBuildValue”j" t”bŒ Py_XDECREF.o”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/refcounting.html#c.Py_XDECREF”j" t”bŒ Py_XINCREF.o”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/refcounting.html#c.Py_XINCREF”j" t”bŒ Py_XNewRef.o”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/refcounting.html#c.Py_XNewRef”j" t”bŒPy_fclose.file”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/sys.html#c.Py_fclose”j" t”bŒ Py_fopen.mode”j )�”(jT(jU(Œ3https://docs.python.org/3/c-api/sys.html#c.Py_fopen”j" t”bŒ Py_fopen.path”j )�”(jT(jU(Œ3https://docs.python.org/3/c-api/sys.html#c.Py_fopen”j" t”bŒPy_mod_create.create_module.def”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/module.html#c.Py_mod_create.create_module”j" t”bŒ Py_mod_create.create_module.spec”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/module.html#c.Py_mod_create.create_module”j" t”bŒPy_mod_exec.exec_module.module”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/module.html#c.Py_mod_exec.exec_module”j" t”bŒ_PyBytes_Resize.bytes”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/complex.html#c.PyComplexObject”j" t”bŒPyConfig”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/init_config.html#c.PyConfig”j" t”bŒ PyContext”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/memory.html#c.PyMemAllocatorEx”j" t”bŒ PyMemberDef”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/structures.html#c.PyMemberDef”j" t”bŒ PyMethodDef”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/structures.html#c.PyMethodDef”j" t”bŒ PyModuleDef”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/module.html#c.PyModuleDef”j" t”bŒPyModuleDef_Slot”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/module.html#c.PyModuleDef_Slot”j" t”bŒPyMonitoringState”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/monitoring.html#c.PyMonitoringState”j" t”bŒPyMutex”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/synchronization.html#c.PyMutex”j" t”bŒPyNumberMethods”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods”j" t”bŒPyOS_sighandler_t”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig”j" t”bŒ PyRefTracer”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/unicode.html#c.PyUnicodeObject”j" t”bŒPyUnicodeWriter”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/unicode.html#c.PyUnicodeWriter”j" t”bŒ PyVarObject”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/structures.html#c.PyVarObject”j" t”bŒPyWideStringList”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/init_config.html#c.PyWideStringList”j" t”bŒPy_AuditHookFunction”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/sys.html#c.Py_AuditHookFunction”j" t”bŒPy_OpenCodeHookFunction”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/file.html#c.Py_OpenCodeHookFunction”j" t”bŒPy_UCS1”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/unicode.html#c.Py_UCS1”j" t”bŒPy_UCS2”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/unicode.html#c.Py_UCS2”j" t”bŒPy_UCS4”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/unicode.html#c.Py_UCS4”j" t”bŒ Py_UNICODE”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/unicode.html#c.Py_UNICODE”j" t”bŒ Py_buffer”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/buffer.html#c.Py_buffer”j" t”bŒ Py_complex”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/complex.html#c.Py_complex”j" t”bŒ Py_hash_t”j )�”(jT(jU(Œ5https://docs.python.org/3/c-api/hash.html#c.Py_hash_t”j" t”bŒ Py_ssize_t”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/intro.html#c.Py_ssize_t”j" t”bŒ Py_tracefunc”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/profiling.html#c.Py_tracefunc”j" t”bŒPy_tss_t”j )�”(jT(jU(Œ3https://docs.python.org/3/c-api/tls.html#c.Py_tss_t”j" t”bŒ Py_uhash_t”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/hash.html#c.Py_uhash_t”j" t”bŒ_PyFrameEvalFunction”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/subinterpreters.html#c._PyFrameEvalFunction”j" t”bŒ allocfunc”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/typeobj.html#c.allocfunc”j" t”bŒ binaryfunc”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/typeobj.html#c.binaryfunc”j" t”bŒ descrgetfunc”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/typeobj.html#c.descrgetfunc”j" t”bŒ descrsetfunc”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/typeobj.html#c.descrsetfunc”j" t”bŒ destructor”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/typeobj.html#c.destructor”j" t”bŒfreefunc”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/typeobj.html#c.freefunc”j" t”bŒgcvisitobjects_t”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/gcsupport.html#c.gcvisitobjects_t”j" t”bŒ getattrfunc”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/typeobj.html#c.getattrfunc”j" t”bŒ getattrofunc”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/typeobj.html#c.getattrofunc”j" t”bŒ getbufferproc”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/typeobj.html#c.ssizeobjargproc”j" t”bŒ ternaryfunc”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/typeobj.html#c.ternaryfunc”j" t”bŒ traverseproc”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/gcsupport.html#c.traverseproc”j" t”bŒ unaryfunc”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/typeobj.html#c.unaryfunc”j" t”bŒvectorcallfunc”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/call.html#c.vectorcallfunc”j" t”bŒ visitproc”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/gcsupport.html#c.visitproc”j" t”buŒc:member”}”(ŒPyAsyncGen_Type”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/gen.html#c.PyAsyncGen_Type”j" t”bŒPyAsyncMethods.am_aiter”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/typeobj.html#c.PyAsyncMethods.am_aiter”j" t”bŒPyAsyncMethods.am_anext”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/typeobj.html#c.PyAsyncMethods.am_anext”j" t”bŒPyAsyncMethods.am_await”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/typeobj.html#c.PyAsyncMethods.am_await”j" t”bŒPyAsyncMethods.am_send”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/typeobj.html#c.PyAsyncMethods.am_send”j" t”bŒPyBaseObject_Type”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/structures.html#c.PyBaseObject_Type”j" t”bŒ PyBool_Type”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/bool.html#c.PyBool_Type”j" t”bŒPyBufferProcs.bf_getbuffer”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/typeobj.html#c.PyBufferProcs.bf_getbuffer”j" t”bŒPyBufferProcs.bf_releasebuffer”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/typeobj.html#c.PyBufferProcs.bf_releasebuffer”j" t”bŒPyByteArrayIter_Type”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/iterator.html#c.PyByteArrayIter_Type”j" t”bŒPyByteArray_Type”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/bytearray.html#c.PyByteArray_Type”j" t”bŒPyBytesIter_Type”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/iterator.html#c.PyBytesIter_Type”j" t”bŒ PyBytes_Type”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/bytes.html#c.PyBytes_Type”j" t”bŒPyCFunction_Type”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/structures.html#c.PyCFunction_Type”j" t”bŒPyCMethod_Type”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/structures.html#c.PyCMethod_Type”j" t”bŒPyCallIter_Type”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/iterator.html#c.PyCallIter_Type”j" t”bŒPyCapsule_Type”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/capsule.html#c.PyCapsule_Type”j" t”bŒ PyCell_Type”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/cell.html#c.PyCell_Type”j" t”bŒPyClassMethodDescr_Type”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/descriptor.html#c.PyClassMethodDescr_Type”j" t”bŒPyClassMethod_Type”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/descriptor.html#c.PyClassMethod_Type”j" t”bŒ PyCode_Type”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/code.html#c.PyCode_Type”j" t”bŒ"PyCompilerFlags.cf_feature_version”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/veryhigh.html#c.PyCompilerFlags.cf_feature_version”j" t”bŒPyCompilerFlags.cf_flags”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/veryhigh.html#c.PyCompilerFlags.cf_flags”j" t”bŒPyComplex_Type”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/complex.html#c.PyComplex_Type”j" t”bŒPyConfig._pystats”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig._pystats”j" t”bŒ PyConfig.argv”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/init_config.html#c.PyConfig.argv”j" t”bŒPyConfig.base_exec_prefix”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.base_exec_prefix”j" t”bŒPyConfig.base_executable”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.base_executable”j" t”bŒPyConfig.base_prefix”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.base_prefix”j" t”bŒPyConfig.buffered_stdio”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.buffered_stdio”j" t”bŒPyConfig.bytes_warning”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.bytes_warning”j" t”bŒPyConfig.check_hash_pycs_mode”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.check_hash_pycs_mode”j" t”bŒPyConfig.code_debug_ranges”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.code_debug_ranges”j" t”bŒPyConfig.configure_c_stdio”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.configure_c_stdio”j" t”bŒPyConfig.cpu_count”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.cpu_count”j" t”bŒPyConfig.dev_mode”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.dev_mode”j" t”bŒPyConfig.dump_refs”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.dump_refs”j" t”bŒPyConfig.dump_refs_file”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.dump_refs_file”j" t”bŒPyConfig.exec_prefix”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.exec_prefix”j" t”bŒPyConfig.executable”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.executable”j" t”bŒPyConfig.faulthandler”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.faulthandler”j" t”bŒPyConfig.filesystem_encoding”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.filesystem_encoding”j" t”bŒPyConfig.filesystem_errors”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.filesystem_errors”j" t”bŒPyConfig.hash_seed”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.hash_seed”j" t”bŒ PyConfig.home”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/init_config.html#c.PyConfig.home”j" t”bŒPyConfig.import_time”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.import_time”j" t”bŒPyConfig.inspect”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.inspect”j" t”bŒ PyConfig.install_signal_handlers”j )�”(jT(jU(ŒShttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.install_signal_handlers”j" t”bŒPyConfig.int_max_str_digits”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.int_max_str_digits”j" t”bŒPyConfig.interactive”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.interactive”j" t”bŒPyConfig.isolated”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.isolated”j" t”bŒPyConfig.legacy_windows_stdio”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.legacy_windows_stdio”j" t”bŒPyConfig.malloc_stats”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.malloc_stats”j" t”bŒPyConfig.module_search_paths”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.module_search_paths”j" t”bŒ PyConfig.module_search_paths_set”j )�”(jT(jU(ŒShttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.module_search_paths_set”j" t”bŒPyConfig.optimization_level”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.optimization_level”j" t”bŒPyConfig.orig_argv”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.orig_argv”j" t”bŒPyConfig.parse_argv”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.parse_argv”j" t”bŒPyConfig.parser_debug”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.parser_debug”j" t”bŒPyConfig.pathconfig_warnings”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.pathconfig_warnings”j" t”bŒPyConfig.perf_profiling”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.perf_profiling”j" t”bŒPyConfig.platlibdir”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.platlibdir”j" t”bŒPyConfig.prefix”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.prefix”j" t”bŒPyConfig.program_name”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.program_name”j" t”bŒPyConfig.pycache_prefix”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.pycache_prefix”j" t”bŒPyConfig.pythonpath_env”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.pythonpath_env”j" t”bŒPyConfig.quiet”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.quiet”j" t”bŒPyConfig.run_command”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.run_command”j" t”bŒPyConfig.run_filename”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.run_filename”j" t”bŒPyConfig.run_module”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.run_module”j" t”bŒPyConfig.run_presite”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.run_presite”j" t”bŒPyConfig.safe_path”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.safe_path”j" t”bŒPyConfig.show_ref_count”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.show_ref_count”j" t”bŒPyConfig.site_import”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.site_import”j" t”bŒPyConfig.skip_source_first_line”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.skip_source_first_line”j" t”bŒPyConfig.stdio_encoding”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.stdio_encoding”j" t”bŒPyConfig.stdio_errors”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.stdio_errors”j" t”bŒPyConfig.stdlib_dir”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.stdlib_dir”j" t”bŒPyConfig.tracemalloc”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.tracemalloc”j" t”bŒPyConfig.use_environment”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.use_environment”j" t”bŒPyConfig.use_frozen_modules”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.use_frozen_modules”j" t”bŒPyConfig.use_hash_seed”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.use_hash_seed”j" t”bŒPyConfig.use_system_logger”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.use_system_logger”j" t”bŒPyConfig.user_site_directory”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.user_site_directory”j" t”bŒPyConfig.verbose”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.verbose”j" t”bŒPyConfig.warn_default_encoding”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.warn_default_encoding”j" t”bŒPyConfig.warnoptions”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.warnoptions”j" t”bŒPyConfig.write_bytecode”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.write_bytecode”j" t”bŒPyConfig.xoptions”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/init_config.html#c.PyConfig.xoptions”j" t”bŒPyContextToken_Type”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextToken_Type”j" t”bŒPyContextVar_Type”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/contextvars.html#c.PyContextVar_Type”j" t”bŒPyContext_Type”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/contextvars.html#c.PyContext_Type”j" t”bŒ PyCoro_Type”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/coro.html#c.PyCoro_Type”j" t”bŒPyCursesWindow_Type”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/curses.html#c.PyCursesWindow_Type”j" t”bŒ PyCurses_API”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/curses.html#c.PyCurses_API”j" t”bŒ PyDateTimeAPI”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/datetime.html#c.PyDateTimeAPI”j" t”bŒPyDateTime_DateTimeType”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DateTimeType”j" t”bŒPyDateTime_DateType”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DateType”j" t”bŒPyDateTime_DeltaType”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_DeltaType”j" t”bŒPyDateTime_TZInfoType”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TZInfoType”j" t”bŒPyDateTime_TimeType”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TimeType”j" t”bŒPyDateTime_TimeZone_UTC”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/datetime.html#c.PyDateTime_TimeZone_UTC”j" t”bŒPyDictItems_Type”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/import.html#c.PyImport_Inittab”j" t”bŒPyInstanceMethod_Type”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/method.html#c.PyInstanceMethod_Type”j" t”bŒ(PyInterpreterConfig.allow_daemon_threads”j )�”(jT(jU(Œ_https://docs.python.org/3/c-api/subinterpreters.html#c.PyInterpreterConfig.allow_daemon_threads”j" t”bŒPyInterpreterConfig.allow_exec”j )�”(jT(jU(ŒUhttps://docs.python.org/3/c-api/subinterpreters.html#c.PyInterpreterConfig.allow_exec”j" t”bŒPyInterpreterConfig.allow_fork”j )�”(jT(jU(ŒUhttps://docs.python.org/3/c-api/subinterpreters.html#c.PyInterpreterConfig.allow_fork”j" t”bŒ!PyInterpreterConfig.allow_threads”j )�”(jT(jU(ŒXhttps://docs.python.org/3/c-api/subinterpreters.html#c.PyInterpreterConfig.allow_threads”j" t”bŒ1PyInterpreterConfig.check_multi_interp_extensions”j )�”(jT(jU(Œhhttps://docs.python.org/3/c-api/subinterpreters.html#c.PyInterpreterConfig.check_multi_interp_extensions”j" t”bŒPyInterpreterConfig.gil”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/subinterpreters.html#c.PyInterpreterConfig.gil”j" t”bŒ%PyInterpreterConfig.use_main_obmalloc”j )�”(jT(jU(Œ\https://docs.python.org/3/c-api/subinterpreters.html#c.PyInterpreterConfig.use_main_obmalloc”j" t”bŒPyListIter_Type”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/iterator.html#c.PyListIter_Type”j" t”bŒPyListRevIter_Type”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/iterator.html#c.PyListRevIter_Type”j" t”bŒ PyList_Type”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/list.html#c.PyList_Type”j" t”bŒPyLongExport.digits”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/long.html#c.PyLongExport.digits”j" t”bŒPyLongExport.ndigits”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/long.html#c.PyLongExport.ndigits”j" t”bŒPyLongExport.negative”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/long.html#c.PyLongExport.negative”j" t”bŒPyLongExport.value”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/long.html#c.PyLongExport.value”j" t”bŒPyLongLayout.bits_per_digit”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/long.html#c.PyLongLayout.bits_per_digit”j" t”bŒPyLongLayout.digit_endianness”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/long.html#c.PyLongLayout.digit_endianness”j" t”bŒPyLongLayout.digit_size”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/long.html#c.PyLongLayout.digit_size”j" t”bŒPyLongLayout.digits_order”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/long.html#c.PyLongLayout.digits_order”j" t”bŒPyLongRangeIter_Type”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/iterator.html#c.PyLongRangeIter_Type”j" t”bŒ PyLong_Type”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/long.html#c.PyLong_Type”j" t”bŒ PyMap_Type”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/iterator.html#c.PyMap_Type”j" t”bŒ!PyMappingMethods.mp_ass_subscript”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethods.mp_ass_subscript”j" t”bŒPyMappingMethods.mp_length”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethods.mp_length”j" t”bŒPyMappingMethods.mp_subscript”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/typeobj.html#c.PyMappingMethods.mp_subscript”j" t”bŒPyMemberDef.doc”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#c.PyMemberDef.doc”j" t”bŒPyMemberDef.flags”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/structures.html#c.PyMemberDef.flags”j" t”bŒPyMemberDef.name”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/structures.html#c.PyMemberDef.name”j" t”bŒPyMemberDef.offset”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/structures.html#c.PyMemberDef.offset”j" t”bŒPyMemberDef.type”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/structures.html#c.PyMemberDef.type”j" t”bŒPyMemberDescr_Type”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/descriptor.html#c.PyMemberDescr_Type”j" t”bŒPyMemoryView_Type”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/memoryview.html#c.PyMemoryView_Type”j" t”bŒPyMethodDef.ml_doc”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/structures.html#c.PyMethodDef.ml_doc”j" t”bŒPyMethodDef.ml_flags”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/structures.html#c.PyMethodDef.ml_flags”j" t”bŒPyMethodDef.ml_meth”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/structures.html#c.PyMethodDef.ml_meth”j" t”bŒPyMethodDef.ml_name”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/structures.html#c.PyMethodDef.ml_name”j" t”bŒPyMethodDescr_Type”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/descriptor.html#c.PyMethodDescr_Type”j" t”bŒ PyMethod_Type”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/method.html#c.PyMethod_Type”j" t”bŒPyModuleDef.m_base”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_base”j" t”bŒPyModuleDef.m_clear”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_clear”j" t”bŒPyModuleDef.m_doc”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_doc”j" t”bŒPyModuleDef.m_free”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_free”j" t”bŒPyModuleDef.m_methods”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_methods”j" t”bŒPyModuleDef.m_name”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_name”j" t”bŒPyModuleDef.m_size”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_size”j" t”bŒPyModuleDef.m_slots”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_slots”j" t”bŒPyModuleDef.m_slots.m_reload”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_slots.m_reload”j" t”bŒPyModuleDef.m_traverse”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/module.html#c.PyModuleDef.m_traverse”j" t”bŒPyModuleDef_Slot.slot”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/module.html#c.PyModuleDef_Slot.slot”j" t”bŒPyModuleDef_Slot.value”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/module.html#c.PyModuleDef_Slot.value”j" t”bŒPyModuleDef_Type”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/module.html#c.PyModuleDef_Type”j" t”bŒ PyModule_Type”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/module.html#c.PyModule_Type”j" t”bŒPyNumberMethods.nb_absolute”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_absolute”j" t”bŒPyNumberMethods.nb_add”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_add”j" t”bŒPyNumberMethods.nb_and”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_and”j" t”bŒPyNumberMethods.nb_bool”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_bool”j" t”bŒPyNumberMethods.nb_divmod”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_divmod”j" t”bŒPyNumberMethods.nb_float”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_float”j" t”bŒPyNumberMethods.nb_floor_divide”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_floor_divide”j" t”bŒPyNumberMethods.nb_index”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_index”j" t”bŒPyNumberMethods.nb_inplace_add”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_add”j" t”bŒPyNumberMethods.nb_inplace_and”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_and”j" t”bŒ'PyNumberMethods.nb_inplace_floor_divide”j )�”(jT(jU(ŒVhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_floor_divide”j" t”bŒ!PyNumberMethods.nb_inplace_lshift”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_lshift”j" t”bŒ*PyNumberMethods.nb_inplace_matrix_multiply”j )�”(jT(jU(ŒYhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_matrix_multiply”j" t”bŒ#PyNumberMethods.nb_inplace_multiply”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_multiply”j" t”bŒPyNumberMethods.nb_inplace_or”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_or”j" t”bŒ PyNumberMethods.nb_inplace_power”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_power”j" t”bŒ$PyNumberMethods.nb_inplace_remainder”j )�”(jT(jU(ŒShttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_remainder”j" t”bŒ!PyNumberMethods.nb_inplace_rshift”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_rshift”j" t”bŒ#PyNumberMethods.nb_inplace_subtract”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_subtract”j" t”bŒ&PyNumberMethods.nb_inplace_true_divide”j )�”(jT(jU(ŒUhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_true_divide”j" t”bŒPyNumberMethods.nb_inplace_xor”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_inplace_xor”j" t”bŒPyNumberMethods.nb_int”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_int”j" t”bŒPyNumberMethods.nb_invert”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_invert”j" t”bŒPyNumberMethods.nb_lshift”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_lshift”j" t”bŒ"PyNumberMethods.nb_matrix_multiply”j )�”(jT(jU(ŒQhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_matrix_multiply”j" t”bŒPyNumberMethods.nb_multiply”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_multiply”j" t”bŒPyNumberMethods.nb_negative”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_negative”j" t”bŒPyNumberMethods.nb_or”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_or”j" t”bŒPyNumberMethods.nb_positive”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_positive”j" t”bŒPyNumberMethods.nb_power”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_power”j" t”bŒPyNumberMethods.nb_remainder”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_remainder”j" t”bŒPyNumberMethods.nb_reserved”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_reserved”j" t”bŒPyNumberMethods.nb_rshift”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_rshift”j" t”bŒPyNumberMethods.nb_subtract”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_subtract”j" t”bŒPyNumberMethods.nb_true_divide”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_true_divide”j" t”bŒPyNumberMethods.nb_xor”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/typeobj.html#c.PyNumberMethods.nb_xor”j" t”bŒPyODictItems_Type”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/dict.html#c.PyODictItems_Type”j" t”bŒPyODictIter_Type”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/iterator.html#c.PyODictIter_Type”j" t”bŒPyODictKeys_Type”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/dict.html#c.PyODictValues_Type”j" t”bŒ PyODict_Type”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/dict.html#c.PyODict_Type”j" t”bŒPyOS_InputHook”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/veryhigh.html#c.PyOS_InputHook”j" t”bŒPyOS_ReadlineFunctionPointer”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/veryhigh.html#c.PyOS_ReadlineFunctionPointer”j" t”bŒPyObject.ob_refcnt”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/structures.html#c.PyObject.ob_refcnt”j" t”bŒPyObject.ob_type”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/structures.html#c.PyObject.ob_type”j" t”bŒPyPickleBuffer_Type”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/picklebuffer.html#c.PyPickleBuffer_Type”j" t”bŒPyPreConfig.allocator”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.allocator”j" t”bŒPyPreConfig.coerce_c_locale”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.coerce_c_locale”j" t”bŒ PyPreConfig.coerce_c_locale_warn”j )�”(jT(jU(ŒShttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.coerce_c_locale_warn”j" t”bŒPyPreConfig.configure_locale”j )�”(jT(jU(ŒOhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.configure_locale”j" t”bŒPyPreConfig.dev_mode”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.dev_mode”j" t”bŒPyPreConfig.isolated”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.isolated”j" t”bŒ&PyPreConfig.legacy_windows_fs_encoding”j )�”(jT(jU(ŒYhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.legacy_windows_fs_encoding”j" t”bŒPyPreConfig.parse_argv”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.parse_argv”j" t”bŒPyPreConfig.use_environment”j )�”(jT(jU(ŒNhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.use_environment”j" t”bŒPyPreConfig.utf8_mode”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/init_config.html#c.PyPreConfig.utf8_mode”j" t”bŒPyProperty_Type”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/descriptor.html#c.PyProperty_Type”j" t”bŒPyRangeIter_Type”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/iterator.html#c.PyRangeIter_Type”j" t”bŒ PyRange_Type”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/iterator.html#c.PySeqIter_Type”j" t”bŒPySequenceMethods.sq_ass_item”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_ass_item”j" t”bŒPySequenceMethods.sq_concat”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_concat”j" t”bŒPySequenceMethods.sq_contains”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_contains”j" t”bŒ#PySequenceMethods.sq_inplace_concat”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_inplace_concat”j" t”bŒ#PySequenceMethods.sq_inplace_repeat”j )�”(jT(jU(ŒRhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_inplace_repeat”j" t”bŒPySequenceMethods.sq_item”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_item”j" t”bŒPySequenceMethods.sq_length”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_length”j" t”bŒPySequenceMethods.sq_repeat”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/typeobj.html#c.PySequenceMethods.sq_repeat”j" t”bŒPySetIter_Type”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/iterator.html#c.PySetIter_Type”j" t”bŒ PySet_Type”j )�”(jT(jU(Œ5https://docs.python.org/3/c-api/set.html#c.PySet_Type”j" t”bŒ PySlice_Type”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/slice.html#c.PySlice_Type”j" t”bŒPyStaticMethod_Type”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/descriptor.html#c.PyStaticMethod_Type”j" t”bŒPyStatus.err_msg”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/init_config.html#c.PyStatus.err_msg”j" t”bŒPyStatus.exitcode”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/init_config.html#c.PyStatus.exitcode”j" t”bŒ PyStatus.func”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/init_config.html#c.PyStatus.func”j" t”bŒPyStdPrinter_Type”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/file.html#c.PyStdPrinter_Type”j" t”bŒPyStructSequence_Desc.doc”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Desc.doc”j" t”bŒPyStructSequence_Desc.fields”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Desc.fields”j" t”bŒ#PyStructSequence_Desc.n_in_sequence”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Desc.n_in_sequence”j" t”bŒPyStructSequence_Desc.name”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Desc.name”j" t”bŒPyStructSequence_Field.doc”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Field.doc”j" t”bŒPyStructSequence_Field.name”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_Field.name”j" t”bŒPyStructSequence_UnnamedField”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/tuple.html#c.PyStructSequence_UnnamedField”j" t”bŒ PySuper_Type”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/descriptor.html#c.PySuper_Type”j" t”bŒPyThreadState.interp”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/threads.html#c.PyThreadState.interp”j" t”bŒ PyTime_MAX”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/time.html#c.PyTime_MAX”j" t”bŒ PyTime_MIN”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/time.html#c.PyTime_MIN”j" t”bŒPyTraceBack_Type”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/exceptions.html#c.PyTraceBack_Type”j" t”bŒ PyTrace_CALL”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/profiling.html#c.PyTrace_CALL”j" t”bŒPyTrace_C_CALL”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/profiling.html#c.PyTrace_C_CALL”j" t”bŒPyTrace_C_EXCEPTION”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/profiling.html#c.PyTrace_C_EXCEPTION”j" t”bŒPyTrace_C_RETURN”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/profiling.html#c.PyTrace_C_RETURN”j" t”bŒPyTrace_EXCEPTION”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/profiling.html#c.PyTrace_EXCEPTION”j" t”bŒ PyTrace_LINE”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/profiling.html#c.PyTrace_LINE”j" t”bŒPyTrace_OPCODE”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/profiling.html#c.PyTrace_OPCODE”j" t”bŒPyTrace_RETURN”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/profiling.html#c.PyTrace_RETURN”j" t”bŒPyTupleIter_Type”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/iterator.html#c.PyTupleIter_Type”j" t”bŒ PyTuple_Type”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/tuple.html#c.PyTuple_Type”j" t”bŒPyTypeObject.tp_alloc”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_alloc”j" t”bŒPyTypeObject.tp_as_async”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_as_async”j" t”bŒPyTypeObject.tp_as_buffer”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_as_buffer”j" t”bŒPyTypeObject.tp_as_mapping”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_as_mapping”j" t”bŒPyTypeObject.tp_as_number”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_as_number”j" t”bŒPyTypeObject.tp_as_sequence”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_as_sequence”j" t”bŒPyTypeObject.tp_base”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_base”j" t”bŒPyTypeObject.tp_bases”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_bases”j" t”bŒPyTypeObject.tp_basicsize”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_basicsize”j" t”bŒPyTypeObject.tp_cache”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_cache”j" t”bŒPyTypeObject.tp_call”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_call”j" t”bŒPyTypeObject.tp_clear”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_clear”j" t”bŒPyTypeObject.tp_dealloc”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_dealloc”j" t”bŒPyTypeObject.tp_del”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_del”j" t”bŒPyTypeObject.tp_descr_get”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_descr_get”j" t”bŒPyTypeObject.tp_descr_set”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_descr_set”j" t”bŒPyTypeObject.tp_dict”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_dict”j" t”bŒPyTypeObject.tp_dictoffset”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_dictoffset”•j" t”bŒPyTypeObject.tp_doc”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_doc”j" t”bŒPyTypeObject.tp_finalize”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_finalize”j" t”bŒPyTypeObject.tp_flags”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_flags”j" t”bŒPyTypeObject.tp_free”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_free”j" t”bŒPyTypeObject.tp_getattr”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_getattr”j" t”bŒPyTypeObject.tp_getattro”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_getattro”j" t”bŒPyTypeObject.tp_getset”j )�”(jT(jU(ŒEhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_getset”j" t”bŒPyTypeObject.tp_hash”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_hash”j" t”bŒPyTypeObject.tp_init”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_init”j" t”bŒPyTypeObject.tp_is_gc”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_is_gc”j" t”bŒPyTypeObject.tp_itemsize”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_itemsize”j" t”bŒPyTypeObject.tp_iter”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_iter”j" t”bŒPyTypeObject.tp_iternext”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_iternext”j" t”bŒPyTypeObject.tp_members”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_members”j" t”bŒPyTypeObject.tp_methods”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_methods”j" t”bŒPyTypeObject.tp_mro”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_mro”j" t”bŒPyTypeObject.tp_name”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_name”j" t”bŒPyTypeObject.tp_new”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_new”j" t”bŒPyTypeObject.tp_repr”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_repr”j" t”bŒPyTypeObject.tp_richcompare”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_richcompare”j" t”bŒPyTypeObject.tp_setattr”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_setattr”j" t”bŒPyTypeObject.tp_setattro”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_setattro”j" t”bŒPyTypeObject.tp_str”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_str”j" t”bŒPyTypeObject.tp_subclasses”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_subclasses”j" t”bŒPyTypeObject.tp_traverse”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_traverse”j" t”bŒPyTypeObject.tp_vectorcall”j )�”(jT(jU(ŒIhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_vectorcall”j" t”bŒ!PyTypeObject.tp_vectorcall_offset”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_vectorcall_offset”j" t”bŒPyTypeObject.tp_version_tag”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_version_tag”j" t”bŒPyTypeObject.tp_watched”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_watched”j" t”bŒPyTypeObject.tp_weaklist”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_weaklist”j" t”bŒPyTypeObject.tp_weaklistoffset”j )�”(jT(jU(ŒMhttps://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_weaklistoffset”j" t”bŒPyType_Slot.pfunc”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/type.html#c.PyType_Slot.pfunc”j" t”bŒPyType_Slot.slot”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/buffer.html#c.Py_buffer.format”j" t”bŒPy_buffer.internal”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/buffer.html#c.Py_buffer.internal”j" t”bŒPy_buffer.itemsize”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/buffer.html#c.Py_buffer.itemsize”j" t”bŒ Py_buffer.len”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/buffer.html#c.Py_buffer.len”j" t”bŒPy_buffer.ndim”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/complex.html#c.Py_complex.imag”j" t”bŒPy_complex.real”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/complex.html#c.Py_complex.real”j" t”bŒ Py_eval_input”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/veryhigh.html#c.Py_eval_input”j" t”bŒ Py_file_input”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/veryhigh.html#c.Py_file_input”j" t”bŒPy_func_type_input”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/veryhigh.html#c.Py_func_type_input”j" t”bŒ Py_hexdigits”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/codec.html#c.Py_hexdigits”j" t”bŒPy_single_input”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/veryhigh.html#c.Py_single_input”j" t”bŒ_Py_NoneStruct”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/allocation.html#c._Py_NoneStruct”j" t”bŒ_inittab.initfunc”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/import.html#c._inittab.initfunc”j" t”bŒ _inittab.name”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/import.html#c._inittab.name”j" t”buŒc:struct”}”(ŒPyCompilerFlags”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/veryhigh.html#c.PyCompilerFlags”j" t”bŒ PyInitConfig”j )�”(jT(jU(Œ?https://docs.python.org/3/c-api/init_config.html#c.PyInitConfig”j" t”bŒ PyLongExport”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/long.html#c.PyLongExport”j" t”bŒ PyLongLayout”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/long.html#c.PyLongLayout”j" t”bŒ PyLongWriter”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/long.html#c.PyLongWriter”j" t”bŒ_PyInterpreterFrame”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/frame.html#c._PyInterpreterFrame”j" t”bŒ_frozen”j )�”(jT(jU(Œ5https://docs.python.org/3/c-api/import.html#c._frozen”j" t”bŒ_inittab”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/import.html#c._inittab”j" t”buŒ py:exception”}”(ŒArithmeticError”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/exceptions.html#ArithmeticError”j" t”bŒAssertionError”j )�”(jT(jU(Œ@https://docs.python.org/3/library/exceptions.html#AssertionError”j" t”bŒAttributeError”j )�”(jT(jU(Œ@https://docs.python.org/3/library/exceptions.html#AttributeError”j" t”bŒ BaseException”j )�”(jT(jU(Œ?https://docs.python.org/3/library/exceptions.html#BaseException”j" t”bŒBaseExceptionGroup”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/exceptions.html#BaseExceptionGroup”j" t”bŒBlockingIOError”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/exceptions.html#BlockingIOError”j" t”bŒBrokenPipeError”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/exceptions.html#BrokenPipeError”j" t”bŒ BufferError”j )�”(jT(jU(Œ=https://docs.python.org/3/library/exceptions.html#BufferError”j" t”bŒ BytesWarning”j )�”(jT(jU(Œ>https://docs.python.org/3/library/exceptions.html#BytesWarning”j" t”bŒChildProcessError”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/exceptions.html#ChildProcessError”j" t”bŒConnectionAbortedError”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/exceptions.html#ConnectionAbortedError”j" t”bŒConnectionError”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/exceptions.html#ConnectionError”j" t”bŒConnectionRefusedError”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/exceptions.html#ConnectionRefusedError”j" t”bŒConnectionResetError”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/exceptions.html#ConnectionResetError”j" t”bŒDeprecationWarning”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/exceptions.html#DeprecationWarning”j" t”bŒEOFError”j )�”(jT(jU(Œ:https://docs.python.org/3/library/exceptions.html#EOFError”j" t”bŒEncodingWarning”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/exceptions.html#EncodingWarning”j" t”bŒEnvironmentError”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/exceptions.html#EnvironmentError”j" t”bŒ Exception”j )�”(jT(jU(Œ;https://docs.python.org/3/library/exceptions.html#Exception”j" t”bŒExceptionGroup”j )�”(jT(jU(Œ@https://docs.python.org/3/library/exceptions.html#ExceptionGroup”j" t”bŒFileExistsError”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/exceptions.html#FileExistsError”j" t”bŒFileNotFoundError”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/exceptions.html#FileNotFoundError”j" t”bŒFloatingPointError”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/exceptions.html#FloatingPointError”j" t”bŒ FutureWarning”j )�”(jT(jU(Œ?https://docs.python.org/3/library/exceptions.html#FutureWarning”j" t”bŒ GeneratorExit”j )�”(jT(jU(Œ?https://docs.python.org/3/library/exceptions.html#GeneratorExit”j" t”bŒIOError”j )�”(jT(jU(Œ9https://docs.python.org/3/library/exceptions.html#IOError”j" t”bŒ ImportError”j )�”(jT(jU(Œ=https://docs.python.org/3/library/exceptions.html#ImportError”j" t”bŒ ImportWarning”j )�”(jT(jU(Œ?https://docs.python.org/3/library/exceptions.html#ImportWarning”j" t”bŒIndentationError”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/exceptions.html#IndentationError”j" t”bŒ IndexError”j )�”(jT(jU(Œhttps://docs.python.org/3/library/exceptions.html#RuntimeError”j" t”bŒRuntimeWarning”j )�”(jT(jU(Œ@https://docs.python.org/3/library/exceptions.html#RuntimeWarning”j" t”bŒStopAsyncIteration”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/exceptions.html#StopAsyncIteration”j" t”bŒ StopIteration”j )�”(jT(jU(Œ?https://docs.python.org/3/library/exceptions.html#StopIteration”j" t”bŒ SyntaxError”j )�”(jT(jU(Œ=https://docs.python.org/3/library/exceptions.html#SyntaxError”j" t”bŒ SyntaxWarning”j )�”(jT(jU(Œ?https://docs.python.org/3/library/exceptions.html#SyntaxWarning”j" t”bŒ SystemError”j )�”(jT(jU(Œ=https://docs.python.org/3/library/exceptions.html#SystemError”j" t”bŒ SystemExit”j )�”(jT(jU(Œhttps://docs.python.org/3/library/exceptions.html#TimeoutError”j" t”bŒ TypeError”j )�”(jT(jU(Œ;https://docs.python.org/3/library/exceptions.html#TypeError”j" t”bŒUnboundLocalError”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/exceptions.html#UnboundLocalError”j" t”bŒUnicodeDecodeError”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/exceptions.html#UnicodeDecodeError”j" t”bŒUnicodeEncodeError”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/exceptions.html#UnicodeEncodeError”j" t”bŒ UnicodeError”j )�”(jT(jU(Œ>https://docs.python.org/3/library/exceptions.html#UnicodeError”j" t”bŒUnicodeTranslateError”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/exceptions.html#UnicodeTranslateError”j" t”bŒUnicodeWarning”j )�”(jT(jU(Œ@https://docs.python.org/3/library/exceptions.html#UnicodeWarning”j" t”bŒ UserWarning”j )�”(jT(jU(Œ=https://docs.python.org/3/library/exceptions.html#UserWarning”j" t”bŒ ValueError”j )�”(jT(jU(Œhttps://docs.python.org/3/library/exceptions.html#WindowsError”j" t”bŒZeroDivisionError”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/exceptions.html#ZeroDivisionError”j" t”bŒ _thread.error”j )�”(jT(jU(Œ;https://docs.python.org/3/library/_thread.html#thread.error”j" t”bŒargparse.ArgumentError”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentError”j" t”bŒargparse.ArgumentTypeError”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentTypeError”j" t”bŒasyncio.BrokenBarrierError”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/asyncio-sync.html#asyncio.BrokenBarrierError”j" t”bŒasyncio.CancelledError”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/asyncio-exceptions.html#asyncio.CancelledError”j" t”bŒasyncio.IncompleteReadError”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/asyncio-exceptions.html#asyncio.IncompleteReadError”j" t”bŒasyncio.InvalidStateError”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/asyncio-exceptions.html#asyncio.InvalidStateError”j" t”bŒasyncio.LimitOverrunError”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/asyncio-exceptions.html#asyncio.LimitOverrunError”j" t”bŒasyncio.QueueEmpty”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/asyncio-queue.html#asyncio.QueueEmpty”j" t”bŒasyncio.QueueFull”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/asyncio-queue.html#asyncio.QueueFull”j" t”bŒasyncio.QueueShutDown”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/asyncio-queue.html#asyncio.QueueShutDown”j" t”bŒ!asyncio.SendfileNotAvailableError”j )�”(jT(jU(Œ[https://docs.python.org/3/library/asyncio-exceptions.html#asyncio.SendfileNotAvailableError”j" t”bŒasyncio.TimeoutError”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/asyncio-exceptions.html#asyncio.TimeoutError”j" t”bŒ bdb.BdbQuit”j )�”(jT(jU(Œ6https://docs.python.org/3/library/bdb.html#bdb.BdbQuit”j" t”bŒbinascii.Error”j )�”(jT(jU(Œ>https://docs.python.org/3/library/binascii.html#binascii.Error”j" t”bŒbinascii.Incomplete”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/binascii.html#binascii.Incomplete”j" t”bŒcalendar.IllegalMonthError”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/calendar.html#calendar.IllegalMonthError”j" t”bŒcalendar.IllegalWeekdayError”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/calendar.html#calendar.IllegalWeekdayError”j" t”bŒcompression.zstd.ZstdError”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdError”j" t”bŒ!concurrent.futures.BrokenExecutor”j )�”(jT(jU(Œ[https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.BrokenExecutor”j" t”bŒ!concurrent.futures.CancelledError”j )�”(jT(jU(Œ[https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.CancelledError”j" t”bŒ$concurrent.futures.InvalidStateError”j )�”(jT(jU(Œ^https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.InvalidStateError”j" t”bŒconcurrent.futures.TimeoutError”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.TimeoutError”j" t”bŒ4concurrent.futures.interpreter.BrokenInterpreterPool”j )�”(jT(jU(Œnhttps://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.interpreter.BrokenInterpreterPool”j" t”bŒ,concurrent.futures.process.BrokenProcessPool”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.process.BrokenProcessPool”j" t”bŒ*concurrent.futures.thread.BrokenThreadPool”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.thread.BrokenThreadPool”j" t”bŒ'concurrent.interpreters.ExecutionFailed”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.ExecutionFailed”j" t”bŒ(concurrent.interpreters.InterpreterError”j )�”(jT(jU(Œghttps://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.InterpreterError”j" t”bŒ0concurrent.interpreters.InterpreterNotFoundError”j )�”(jT(jU(Œohttps://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.InterpreterNotFoundError”j" t”bŒ)concurrent.interpreters.NotShareableError”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.NotShareableError”j" t”bŒ'concurrent.interpreters.QueueEmptyError”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.QueueEmptyError”j" t”bŒ&concurrent.interpreters.QueueFullError”j )�”(jT(jU(Œehttps://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.QueueFullError”j" t”bŒ!configparser.DuplicateOptionError”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/configparser.html#configparser.DuplicateOptionError”j" t”bŒ"configparser.DuplicateSectionError”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/configparser.html#configparser.DuplicateSectionError”j" t”bŒconfigparser.Error”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/configparser.html#configparser.Error”j" t”bŒ$configparser.InterpolationDepthError”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/configparser.html#configparser.InterpolationDepthError”j" t”bŒconfigparser.InterpolationError”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/configparser.html#configparser.InterpolationError”j" t”bŒ,configparser.InterpolationMissingOptionError”j )�”(jT(jU(Œ`https://docs.python.org/3/library/configparser.html#configparser.InterpolationMissingOptionError”j" t”bŒ%configparser.InterpolationSyntaxError”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/configparser.html#configparser.InterpolationSyntaxError”j" t”bŒconfigparser.InvalidWriteError”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/configparser.html#configparser.InvalidWriteError”j" t”bŒ&configparser.MissingSectionHeaderError”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/configparser.html#configparser.MissingSectionHeaderError”j" t”bŒ'configparser.MultilineContinuationError”j )�”(jT(jU(Œ[https://docs.python.org/3/library/configparser.html#configparser.MultilineContinuationError”j" t”bŒconfigparser.NoOptionError”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/configparser.html#configparser.NoOptionError”j" t”bŒconfigparser.NoSectionError”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/configparser.html#configparser.NoSectionError”j" t”bŒconfigparser.ParsingError”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/configparser.html#configparser.ParsingError”j" t”bŒ(configparser.UnnamedSectionDisabledError”j )�”(jT(jU(Œ\https://docs.python.org/3/library/configparser.html#configparser.UnnamedSectionDisabledError”j" t”bŒ copy.Error”j )�”(jT(jU(Œ6https://docs.python.org/3/library/copy.html#copy.Error”j" t”bŒ csv.Error”j )�”(jT(jU(Œ4https://docs.python.org/3/library/csv.html#csv.Error”j" t”bŒctypes.ArgumentError”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/ctypes.html#ctypes.ArgumentError”j" t”bŒctypes.COMError”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ctypes.html#ctypes.COMError”j" t”bŒ curses.error”j )�”(jT(jU(Œ:https://docs.python.org/3/library/curses.html#curses.error”j" t”bŒdataclasses.FrozenInstanceError”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/dataclasses.html#dataclasses.FrozenInstanceError”j" t”bŒdbm.dumb.error”j )�”(jT(jU(Œ9https://docs.python.org/3/library/dbm.html#dbm.dumb.error”j" t”bŒ dbm.error”j )�”(jT(jU(Œ4https://docs.python.org/3/library/dbm.html#dbm.error”j" t”bŒ dbm.gnu.error”j )�”(jT(jU(Œ8https://docs.python.org/3/library/dbm.html#dbm.gnu.error”j" t”bŒdbm.ndbm.error”j )�”(jT(jU(Œ9https://docs.python.org/3/library/dbm.html#dbm.ndbm.error”j" t”bŒdoctest.DocTestFailure”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/doctest.html#doctest.DocTestFailure”j" t”bŒdoctest.UnexpectedException”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/doctest.html#doctest.UnexpectedException”j" t”bŒemail.errors.BoundaryError”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/email.errors.html#email.errors.BoundaryError”j" t”bŒ(email.errors.CloseBoundaryNotFoundDefect”j )�”(jT(jU(Œ\https://docs.python.org/3/library/email.errors.html#email.errors.CloseBoundaryNotFoundDefect”j" t”bŒ0email.errors.FirstHeaderLineIsContinuationDefect”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/email.errors.html#email.errors.FirstHeaderLineIsContinuationDefect”j" t”bŒemail.errors.HeaderDefect”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/email.errors.html#email.errors.HeaderDefect”j" t”bŒemail.errors.HeaderParseError”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/email.errors.html#email.errors.HeaderParseError”j" t”bŒemail.errors.HeaderWriteError”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/email.errors.html#email.errors.HeaderWriteError”j" t”bŒ*email.errors.InvalidBase64CharactersDefect”j )�”(jT(jU(Œ^https://docs.python.org/3/library/email.errors.html#email.errors.InvalidBase64CharactersDefect”j" t”bŒ&email.errors.InvalidBase64LengthDefect”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/email.errors.html#email.errors.InvalidBase64LengthDefect”j" t”bŒ'email.errors.InvalidBase64PaddingDefect”j )�”(jT(jU(Œ[https://docs.python.org/3/library/email.errors.html#email.errors.InvalidBase64PaddingDefect”j" t”bŒemail.errors.InvalidDateDefect”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/email.errors.html#email.errors.InvalidDateDefect”j" t”bŒ"email.errors.MalformedHeaderDefect”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/email.errors.html#email.errors.MalformedHeaderDefect”j" t”bŒemail.errors.MessageDefect”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/email.errors.html#email.errors.MessageDefect”j" t”bŒemail.errors.MessageError”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/email.errors.html#email.errors.MessageError”j" t”bŒemail.errors.MessageParseError”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/email.errors.html#email.errors.MessageParseError”j" t”bŒ*email.errors.MisplacedEnvelopeHeaderDefect”j )�”(jT(jU(Œ^https://docs.python.org/3/library/email.errors.html#email.errors.MisplacedEnvelopeHeaderDefect”j" t”bŒ-email.errors.MissingHeaderBodySeparatorDefect”j )�”(jT(jU(Œahttps://docs.python.org/3/library/email.errors.html#email.errors.MissingHeaderBodySeparatorDefect”j" t”bŒ%email.errors.MultipartConversionError”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/email.errors.html#email.errors.MultipartConversionError”j" t”bŒ.email.errors.MultipartInvariantViolationDefect”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/email.errors.html#email.errors.MultipartInvariantViolationDefect”j" t”bŒ(email.errors.NoBoundaryInMultipartDefect”j )�”(jT(jU(Œ\https://docs.python.org/3/library/email.errors.html#email.errors.NoBoundaryInMultipartDefect”j" t”bŒ(email.errors.StartBoundaryNotFoundDefect”j )�”(jT(jU(Œ\https://docs.python.org/3/library/email.errors.html#email.errors.StartBoundaryNotFoundDefect”j" t”bŒencodings.CodecRegistryError”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/codecs.html#encodings.CodecRegistryError”j" t”bŒftplib.error_perm”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ftplib.html#ftplib.error_perm”j" t”bŒftplib.error_proto”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ftplib.html#ftplib.error_proto”j" t”bŒftplib.error_reply”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ftplib.html#ftplib.error_reply”j" t”bŒftplib.error_temp”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ftplib.html#ftplib.error_temp”j" t”bŒgetopt.GetoptError”j )�”(jT(jU(Œ@https://docs.python.org/3/library/getopt.html#getopt.GetoptError”j" t”bŒ getopt.error”j )�”(jT(jU(Œ:https://docs.python.org/3/library/getopt.html#getopt.error”j" t”bŒgetpass.GetPassWarning”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/getpass.html#getpass.GetPassWarning”j" t”bŒgraphlib.CycleError”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/graphlib.html#graphlib.CycleError”j" t”bŒgzip.BadGzipFile”j )�”(jT(jU(Œhttps://docs.python.org/3/library/resource.html#resource.error”j" t”bŒ select.error”j )�”(jT(jU(Œ:https://docs.python.org/3/library/select.html#select.error”j" t”bŒ shutil.Error”j )�”(jT(jU(Œ:https://docs.python.org/3/library/shutil.html#shutil.Error”j" t”bŒshutil.SameFileError”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/shutil.html#shutil.SameFileError”j" t”bŒshutil.SpecialFileError”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/shutil.html#shutil.SpecialFileError”j" t”bŒsignal.ItimerError”j )�”(jT(jU(Œ@https://docs.python.org/3/library/signal.html#signal.ItimerError”j" t”bŒsmtplib.SMTPAuthenticationError”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPAuthenticationError”j" t”bŒsmtplib.SMTPConnectError”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPConnectError”j" t”bŒsmtplib.SMTPDataError”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPDataError”j" t”bŒsmtplib.SMTPException”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPException”j" t”bŒsmtplib.SMTPHeloError”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPHeloError”j" t”bŒsmtplib.SMTPNotSupportedError”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPNotSupportedError”j" t”bŒsmtplib.SMTPRecipientsRefused”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPRecipientsRefused”j" t”bŒsmtplib.SMTPResponseException”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPResponseException”j" t”bŒsmtplib.SMTPSenderRefused”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPSenderRefused”j" t”bŒsmtplib.SMTPServerDisconnected”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTPServerDisconnected”j" t”bŒ socket.error”j )�”(jT(jU(Œ:https://docs.python.org/3/library/socket.html#socket.error”j" t”bŒsocket.gaierror”j )�”(jT(jU(Œ=https://docs.python.org/3/library/socket.html#socket.gaierror”j" t”bŒ socket.herror”j )�”(jT(jU(Œ;https://docs.python.org/3/library/socket.html#socket.herror”j" t”bŒsocket.timeout”j )�”(jT(jU(Œhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Warning”j" t”bŒssl.CertificateError”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ssl.html#ssl.CertificateError”j" t”bŒssl.SSLCertVerificationError”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ssl.html#ssl.SSLCertVerificationError”j" t”bŒssl.SSLEOFError”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ssl.html#ssl.SSLEOFError”j" t”bŒ ssl.SSLError”j )�”(jT(jU(Œ7https://docs.python.org/3/library/ssl.html#ssl.SSLError”j" t”bŒssl.SSLSyscallError”j )�”(jT(jU(Œ>https://docs.python.org/3/library/ssl.html#ssl.SSLSyscallError”j" t”bŒssl.SSLWantReadError”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ssl.html#ssl.SSLWantReadError”j" t”bŒssl.SSLWantWriteError”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ssl.html#ssl.SSLWantWriteError”j" t”bŒssl.SSLZeroReturnError”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ssl.html#ssl.SSLZeroReturnError”j" t”bŒstatistics.StatisticsError”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/statistics.html#statistics.StatisticsError”j" t”bŒ struct.error”j )�”(jT(jU(Œ:https://docs.python.org/3/library/struct.html#struct.error”j" t”bŒsubprocess.CalledProcessError”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError”j" t”bŒsubprocess.SubprocessError”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/subprocess.html#subprocess.SubprocessError”j" t”bŒsubprocess.TimeoutExpired”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired”j" t”bŒtabnanny.NannyNag”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/tabnanny.html#tabnanny.NannyNag”j" t”bŒtarfile.AbsoluteLinkError”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/tarfile.html#tarfile.AbsoluteLinkError”j" t”bŒtarfile.AbsolutePathError”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/tarfile.html#tarfile.AbsolutePathError”j" t”bŒtarfile.CompressionError”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/tarfile.html#tarfile.CompressionError”j" t”bŒtarfile.ExtractError”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/tarfile.html#tarfile.ExtractError”j" t”bŒtarfile.FilterError”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tarfile.html#tarfile.FilterError”j" t”bŒtarfile.HeaderError”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tarfile.html#tarfile.HeaderError”j" t”bŒtarfile.LinkFallbackError”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/tarfile.html#tarfile.LinkFallbackError”j" t”bŒ#tarfile.LinkOutsideDestinationError”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/tarfile.html#tarfile.LinkOutsideDestinationError”j" t”bŒtarfile.OutsideDestinationError”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/tarfile.html#tarfile.OutsideDestinationError”j" t”bŒtarfile.ReadError”j )�”(jT(jU(Œ@https://docs.python.org/3/library/tarfile.html#tarfile.ReadError”j" t”bŒtarfile.SpecialFileError”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/tarfile.html#tarfile.SpecialFileError”j" t”bŒtarfile.StreamError”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tarfile.html#tarfile.StreamError”j" t”bŒtarfile.TarError”j )�”(jT(jU(Œ?https://docs.python.org/3/library/tarfile.html#tarfile.TarError”j" t”bŒtest.support.ResourceDenied”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/test.html#test.support.ResourceDenied”j" t”bŒtest.support.TestFailed”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/test.html#test.support.TestFailed”j" t”bŒthreading.BrokenBarrierError”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/threading.html#threading.BrokenBarrierError”j" t”bŒtokenize.TokenError”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/tokenize.html#tokenize.TokenError”j" t”bŒtomllib.TOMLDecodeError”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/tomllib.html#tomllib.TOMLDecodeError”j" t”bŒunittest.SkipTest”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/unittest.html#unittest.SkipTest”j" t”bŒ!urllib.error.ContentTooShortError”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/urllib.error.html#urllib.error.ContentTooShortError”j" t”bŒurllib.error.HTTPError”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/urllib.error.html#urllib.error.HTTPError”j" t”bŒurllib.error.URLError”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/urllib.error.html#urllib.error.URLError”j" t”bŒ wave.Error”j )�”(jT(jU(Œ6https://docs.python.org/3/library/wave.html#wave.Error”j" t”bŒwebbrowser.Error”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/webbrowser.html#webbrowser.Error”j" t”bŒxml.dom.DOMException”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/xml.dom.html#xml.dom.DOMException”j" t”bŒxml.dom.DomstringSizeErr”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/xml.dom.html#xml.dom.DomstringSizeErr”j" t”bŒxml.dom.HierarchyRequestErr”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/xml.dom.html#xml.dom.HierarchyRequestErr”j" t”bŒxml.dom.IndexSizeErr”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/xml.dom.html#xml.dom.IndexSizeErr”j" t”bŒxml.dom.InuseAttributeErr”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/xml.dom.html#xml.dom.InuseAttributeErr”j" t”bŒxml.dom.InvalidAccessErr”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidAccessErr”j" t”bŒxml.dom.InvalidCharacterErr”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidCharacterErr”j" t”bŒxml.dom.InvalidModificationErr”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidModificationErr”j" t”bŒxml.dom.InvalidStateErr”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/xml.dom.html#xml.dom.InvalidStateErr”j" t”bŒxml.dom.NamespaceErr”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/xml.dom.html#xml.dom.NamespaceErr”j" t”bŒxml.dom.NoDataAllowedErr”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/xml.dom.html#xml.dom.NoDataAllowedErr”j" t”bŒ xml.dom.NoModificationAllowedErr”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/xml.dom.html#xml.dom.NoModificationAllowedErr”j" t”bŒxml.dom.NotFoundErr”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/xml.dom.html#xml.dom.NotFoundErr”j" t”bŒxml.dom.NotSupportedErr”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/xml.dom.html#xml.dom.NotSupportedErr”j" t”bŒxml.dom.SyntaxErr”j )�”(jT(jU(Œ@https://docs.python.org/3/library/xml.dom.html#xml.dom.SyntaxErr”j" t”bŒxml.dom.WrongDocumentErr”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/xml.dom.html#xml.dom.WrongDocumentErr”j" t”bŒxml.parsers.expat.ExpatError”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ExpatError”j" t”bŒxml.parsers.expat.error”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.error”j" t”bŒxml.sax.SAXException”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/xml.sax.html#xml.sax.SAXException”j" t”bŒ!xml.sax.SAXNotRecognizedException”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/xml.sax.html#xml.sax.SAXNotRecognizedException”j" t”bŒ xml.sax.SAXNotSupportedException”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/xml.sax.html#xml.sax.SAXNotSupportedException”j" t”bŒxml.sax.SAXParseException”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/xml.sax.html#xml.sax.SAXParseException”j" t”bŒzipfile.BadZipFile”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/zipfile.html#zipfile.BadZipFile”j" t”bŒzipfile.BadZipfile”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/zipfile.html#zipfile.BadZipfile”j" t”bŒzipfile.LargeZipFile”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/zipfile.html#zipfile.LargeZipFile”j" t”bŒzipimport.ZipImportError”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/zipimport.html#zipimport.ZipImportError”j" t”bŒ zlib.error”j )�”(jT(jU(Œ6https://docs.python.org/3/library/zlib.html#zlib.error”j" t”bŒzoneinfo.InvalidTZPathWarning”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.InvalidTZPathWarning”j" t”bŒzoneinfo.ZoneInfoNotFoundError”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.ZoneInfoNotFoundError”j" t”buŒ py:attribute”}”(ŒAttributeError.name”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/exceptions.html#AttributeError.name”j" t”bŒAttributeError.obj”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/exceptions.html#AttributeError.obj”j" t”bŒBaseException.__cause__”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/exceptions.html#BaseException.__cause__”j" t”bŒBaseException.__context__”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/exceptions.html#BaseException.__context__”j" t”bŒBaseException.__notes__”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/exceptions.html#BaseException.__notes__”j" t”bŒ"BaseException.__suppress_context__”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/exceptions.html#BaseException.__suppress_context__”j" t”bŒBaseException.__traceback__”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/exceptions.html#BaseException.__traceback__”j" t”bŒBaseException.args”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/exceptions.html#BaseException.args”j" t”bŒBaseExceptionGroup.exceptions”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/exceptions.html#BaseExceptionGroup.exceptions”j" t”bŒBaseExceptionGroup.message”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/exceptions.html#BaseExceptionGroup.message”j" t”bŒ"BlockingIOError.characters_written”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/exceptions.html#BlockingIOError.characters_written”j" t”bŒImportError.name”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/exceptions.html#ImportError.name”j" t”bŒImportError.path”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/exceptions.html#ImportError.path”j" t”bŒNameError.name”j )�”(jT(jU(Œ@https://docs.python.org/3/library/exceptions.html#NameError.name”j" t”bŒ OSError.errno”j )�”(jT(jU(Œ?https://docs.python.org/3/library/exceptions.html#OSError.errno”j" t”bŒOSError.filename”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/exceptions.html#OSError.filename”j" t”bŒOSError.filename2”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/exceptions.html#OSError.filename2”j" t”bŒOSError.strerror”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/exceptions.html#OSError.strerror”j" t”bŒOSError.winerror”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/exceptions.html#OSError.winerror”j" t”bŒStopIteration.value”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/exceptions.html#StopIteration.value”j" t”bŒSyntaxError.end_lineno”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/exceptions.html#SyntaxError.end_lineno”j" t”bŒSyntaxError.end_offset”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/exceptions.html#SyntaxError.end_offset”j" t”bŒSyntaxError.filename”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/exceptions.html#SyntaxError.filename”j" t”bŒSyntaxError.lineno”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/exceptions.html#SyntaxError.lineno”j" t”bŒSyntaxError.offset”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/exceptions.html#SyntaxError.offset”j" t”bŒSyntaxError.text”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/exceptions.html#SyntaxError.text”j" t”bŒSystemExit.code”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/exceptions.html#SystemExit.code”j" t”bŒUnicodeError.encoding”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/exceptions.html#UnicodeError.encoding”j" t”bŒUnicodeError.end”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/exceptions.html#UnicodeError.end”j" t”bŒUnicodeError.object”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/exceptions.html#UnicodeError.object”j" t”bŒUnicodeError.reason”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/exceptions.html#UnicodeError.reason”j" t”bŒUnicodeError.start”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/exceptions.html#UnicodeError.start”j" t”bŒ!__future__._Feature.compiler_flag”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/__future__.html#future__._Feature.compiler_flag”j" t”bŒannotationlib.Format.FORWARDREF”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/annotationlib.html#annotationlib.Format.FORWARDREF”j" t”bŒannotationlib.Format.STRING”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/annotationlib.html#annotationlib.Format.STRING”j" t”bŒannotationlib.Format.VALUE”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/annotationlib.html#annotationlib.Format.VALUE”j" t”bŒ,annotationlib.Format.VALUE_WITH_FAKE_GLOBALS”j )�”(jT(jU(Œahttps://docs.python.org/3/library/annotationlib.html#annotationlib.Format.VALUE_WITH_FAKE_GLOBALS”j" t”bŒ(annotationlib.ForwardRef.__forward_arg__”j )�”(jT(jU(Œ]https://docs.python.org/3/library/annotationlib.html#annotationlib.ForwardRef.__forward_arg__”j" t”bŒarray.array.itemsize”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/array.html#array.array.itemsize”j" t”bŒarray.array.typecode”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/array.html#array.array.typecode”j" t”bŒast.AST._field_types”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ast.html#ast.AST._field_types”j" t”bŒast.AST._fields”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ast.html#ast.AST._fields”j" t”bŒast.AST.col_offset”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ast.html#ast.AST.col_offset”j" t”bŒast.AST.end_col_offset”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ast.html#ast.AST.end_col_offset”j" t”bŒast.AST.end_lineno”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ast.html#ast.AST.end_lineno”j" t”bŒast.AST.lineno”j )�”(jT(jU(Œ9https://docs.python.org/3/library/ast.html#ast.AST.lineno”j" t”bŒast.Assign.type_comment”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/ast.html#ast.Assign.type_comment”j" t”bŒast.For.type_comment”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ast.html#ast.For.type_comment”j" t”bŒast.FunctionDef.type_comment”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ast.html#ast.FunctionDef.type_comment”j" t”bŒast.With.type_comment”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ast.html#ast.With.type_comment”j" t”bŒast.arg.type_comment”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ast.html#ast.arg.type_comment”j" t”bŒasyncio.Barrier.broken”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/asyncio-sync.html#asyncio.Barrier.broken”j" t”bŒasyncio.Barrier.n_waiting”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/asyncio-sync.html#asyncio.Barrier.n_waiting”j" t”bŒasyncio.Barrier.parties”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/asyncio-sync.html#asyncio.Barrier.parties”j" t”bŒ$asyncio.IncompleteReadError.expected”j )�”(jT(jU(Œ^https://docs.python.org/3/library/asyncio-exceptions.html#asyncio.IncompleteReadError.expected”j" t”bŒ#asyncio.IncompleteReadError.partial”j )�”(jT(jU(Œ]https://docs.python.org/3/library/asyncio-exceptions.html#asyncio.IncompleteReadError.partial”j" t”bŒ"asyncio.LimitOverrunError.consumed”j )�”(jT(jU(Œ\https://docs.python.org/3/library/asyncio-exceptions.html#asyncio.LimitOverrunError.consumed”j" t”bŒasyncio.Queue.maxsize”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/asyncio-queue.html#asyncio.Queue.maxsize”j" t”bŒasyncio.Server.sockets”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio.Server.sockets”j" t”bŒasyncio.StreamWriter.transport”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamWriter.transport”j" t”bŒ#asyncio.loop.slow_callback_duration”j )�”(jT(jU(Œ\https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.slow_callback_duration”j" t”bŒasyncio.subprocess.Process.pid”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/asyncio-subprocess.html#asyncio.subprocess.Process.pid”j" t”bŒ%asyncio.subprocess.Process.returncode”j )�”(jT(jU(Œ_https://docs.python.org/3/library/asyncio-subprocess.html#asyncio.subprocess.Process.returncode”j" t”bŒ!asyncio.subprocess.Process.stderr”j )�”(jT(jU(Œ[https://docs.python.org/3/library/asyncio-subprocess.html#asyncio.subprocess.Process.stderr”j" t”bŒ asyncio.subprocess.Process.stdin”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/asyncio-subprocess.html#asyncio.subprocess.Process.stdin”j" t”bŒ!asyncio.subprocess.Process.stdout”j )�”(jT(jU(Œ[https://docs.python.org/3/library/asyncio-subprocess.html#asyncio.subprocess.Process.stdout”j" t”bŒbdb.Breakpoint.bpbynumber”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.bpbynumber”j" t”bŒbdb.Breakpoint.bplist”j )�”(jT(jU(Œ@https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.bplist”j" t”bŒbdb.Breakpoint.cond”j )�”(jT(jU(Œ>https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.cond”j" t”bŒbdb.Breakpoint.enabled”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.enabled”j" t”bŒbdb.Breakpoint.file”j )�”(jT(jU(Œ>https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.file”j" t”bŒbdb.Breakpoint.funcname”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.funcname”j" t”bŒbdb.Breakpoint.hits”j )�”(jT(jU(Œ>https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.hits”j" t”bŒbdb.Breakpoint.ignore”j )�”(jT(jU(Œ@https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.ignore”j" t”bŒbdb.Breakpoint.line”j )�”(jT(jU(Œ>https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.line”j" t”bŒbdb.Breakpoint.temporary”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.temporary”j" t”bŒbz2.BZ2Decompressor.eof”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.eof”j" t”bŒbz2.BZ2Decompressor.needs_input”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.needs_input”j" t”bŒbz2.BZ2Decompressor.unused_data”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.unused_data”j" t”bŒbz2.BZ2File.mode”j )�”(jT(jU(Œ;https://docs.python.org/3/library/bz2.html#bz2.BZ2File.mode”j" t”bŒbz2.BZ2File.name”j )�”(jT(jU(Œ;https://docs.python.org/3/library/bz2.html#bz2.BZ2File.name”j" t”bŒcalendar.Calendar.firstweekday”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/calendar.html#calendar.Calendar.firstweekday”j" t”bŒ$calendar.HTMLCalendar.cssclass_month”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclass_month”j" t”bŒ)calendar.HTMLCalendar.cssclass_month_head”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclass_month_head”j" t”bŒ$calendar.HTMLCalendar.cssclass_noday”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclass_noday”j" t”bŒ#calendar.HTMLCalendar.cssclass_year”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclass_year”j" t”bŒ(calendar.HTMLCalendar.cssclass_year_head”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclass_year_head”j" t”bŒ calendar.HTMLCalendar.cssclasses”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclasses”j" t”bŒ-calendar.HTMLCalendar.cssclasses_weekday_head”j )�”(jT(jU(Œ]https://docs.python.org/3/library/calendar.html#calendar.HTMLCalendar.cssclasses_weekday_head”j" t”bŒ calendar.IllegalMonthError.month”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/calendar.html#calendar.IllegalMonthError.month”j" t”bŒ$calendar.IllegalWeekdayError.weekday”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/calendar.html#calendar.IllegalWeekdayError.weekday”j" t”bŒcmd.Cmd.cmdqueue”j )�”(jT(jU(Œ;https://docs.python.org/3/library/cmd.html#cmd.Cmd.cmdqueue”j" t”bŒcmd.Cmd.doc_header”j )�”(jT(jU(Œ=https://docs.python.org/3/library/cmd.html#cmd.Cmd.doc_header”j" t”bŒcmd.Cmd.identchars”j )�”(jT(jU(Œ=https://docs.python.org/3/library/cmd.html#cmd.Cmd.identchars”j" t”bŒ cmd.Cmd.intro”j )�”(jT(jU(Œ8https://docs.python.org/3/library/cmd.html#cmd.Cmd.intro”j" t”bŒcmd.Cmd.lastcmd”j )�”(jT(jU(Œ:https://docs.python.org/3/library/cmd.html#cmd.Cmd.lastcmd”j" t”bŒcmd.Cmd.misc_header”j )�”(jT(jU(Œ>https://docs.python.org/3/library/cmd.html#cmd.Cmd.misc_header”j" t”bŒcmd.Cmd.prompt”j )�”(jT(jU(Œ9https://docs.python.org/3/library/cmd.html#cmd.Cmd.prompt”j" t”bŒ cmd.Cmd.ruler”j )�”(jT(jU(Œ8https://docs.python.org/3/library/cmd.html#cmd.Cmd.ruler”j" t”bŒcmd.Cmd.undoc_header”j )�”(jT(jU(Œ?https://docs.python.org/3/library/cmd.html#cmd.Cmd.undoc_header”j" t”bŒcmd.Cmd.use_rawinput”j )�”(jT(jU(Œ?https://docs.python.org/3/library/cmd.html#cmd.Cmd.use_rawinput”j" t”bŒcodecs.CodecInfo.decode”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.decode”j" t”bŒcodecs.CodecInfo.encode”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.encode”j" t”bŒ#codecs.CodecInfo.incrementaldecoder”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.incrementaldecoder”j" t”bŒ#codecs.CodecInfo.incrementalencoder”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.incrementalencoder”j" t”bŒcodecs.CodecInfo.name”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.name”j" t”bŒcodecs.CodecInfo.streamreader”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.streamreader”j" t”bŒcodecs.CodecInfo.streamwriter”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/codecs.html#codecs.CodecInfo.streamwriter”j" t”bŒcodeobject.co_argcount”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_argcount”j" t”bŒcodeobject.co_cellvars”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_cellvars”j" t”bŒcodeobject.co_code”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_code”j" t”bŒcodeobject.co_consts”j )�”(jT(jU(ŒGhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_consts”j" t”bŒcodeobject.co_filename”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_filename”•"j" t”bŒcodeobject.co_firstlineno”j )�”(jT(jU(ŒLhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_firstlineno”j" t”bŒcodeobject.co_flags”j )�”(jT(jU(ŒFhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_flags”j" t”bŒcodeobject.co_freevars”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_freevars”j" t”bŒcodeobject.co_kwonlyargcount”j )�”(jT(jU(ŒOhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_kwonlyargcount”j" t”bŒcodeobject.co_lnotab”j )�”(jT(jU(ŒGhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_lnotab”j" t”bŒcodeobject.co_name”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_name”j" t”bŒcodeobject.co_names”j )�”(jT(jU(ŒFhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_names”j" t”bŒcodeobject.co_nlocals”j )�”(jT(jU(ŒHhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_nlocals”j" t”bŒcodeobject.co_posonlyargcount”j )�”(jT(jU(ŒPhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_posonlyargcount”j" t”bŒcodeobject.co_qualname”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_qualname”j" t”bŒcodeobject.co_stacksize”j )�”(jT(jU(ŒJhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_stacksize”j" t”bŒcodeobject.co_varnames”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/datamodel.html#codeobject.co_varnames”j" t”bŒcollections.ChainMap.maps”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/collections.html#collections.ChainMap.maps”j" t”bŒcollections.ChainMap.parents”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/collections.html#collections.ChainMap.parents”j" t”bŒcollections.UserDict.data”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/collections.html#collections.UserDict.data”j" t”bŒcollections.UserList.data”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/collections.html#collections.UserList.data”j" t”bŒcollections.UserString.data”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/collections.html#collections.UserString.data”j" t”bŒ'collections.defaultdict.default_factory”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/collections.html#collections.defaultdict.default_factory”j" t”bŒcollections.deque.maxlen”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/collections.html#collections.deque.maxlen”j" t”bŒ*collections.somenamedtuple._field_defaults”j )�”(jT(jU(Œ]https://docs.python.org/3/library/collections.html#collections.somenamedtuple._field_defaults”j" t”bŒ"collections.somenamedtuple._fields”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/collections.html#collections.somenamedtuple._fields”j" t”bŒ*compression.zstd.COMPRESSION_LEVEL_DEFAULT”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.COMPRESSION_LEVEL_DEFAULT”j" t”bŒ/compression.zstd.CompressionParameter.chain_log”j )�”(jT(jU(Œghttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.chain_log”j" t”bŒ3compression.zstd.CompressionParameter.checksum_flag”j )�”(jT(jU(Œkhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.checksum_flag”j" t”bŒ7compression.zstd.CompressionParameter.compression_level”j )�”(jT(jU(Œohttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.compression_level”j" t”bŒ7compression.zstd.CompressionParameter.content_size_flag”j )�”(jT(jU(Œohttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.content_size_flag”j" t”bŒ2compression.zstd.CompressionParameter.dict_id_flag”j )�”(jT(jU(Œjhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.dict_id_flag”j" t”bŒCcompression.zstd.CompressionParameter.enable_long_distance_matching”j )�”(jT(jU(Œ{https://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.enable_long_distance_matching”j" t”bŒ.compression.zstd.CompressionParameter.hash_log”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.hash_log”j" t”bŒ.compression.zstd.CompressionParameter.job_size”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.job_size”j" t”bŒ9compression.zstd.CompressionParameter.ldm_bucket_size_log”j )�”(jT(jU(Œqhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.ldm_bucket_size_log”j" t”bŒ2compression.zstd.CompressionParameter.ldm_hash_log”j )�”(jT(jU(Œjhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.ldm_hash_log”j" t”bŒ7compression.zstd.CompressionParameter.ldm_hash_rate_log”j )�”(jT(jU(Œohttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.ldm_hash_rate_log”j" t”bŒ3compression.zstd.CompressionParameter.ldm_min_match”j )�”(jT(jU(Œkhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.ldm_min_match”j" t”bŒ/compression.zstd.CompressionParameter.min_match”j )�”(jT(jU(Œghttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.min_match”j" t”bŒ0compression.zstd.CompressionParameter.nb_workers”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.nb_workers”j" t”bŒ1compression.zstd.CompressionParameter.overlap_log”j )�”(jT(jU(Œihttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.overlap_log”j" t”bŒ0compression.zstd.CompressionParameter.search_log”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.search_log”j" t”bŒ.compression.zstd.CompressionParameter.strategy”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.strategy”j" t”bŒ3compression.zstd.CompressionParameter.target_length”j )�”(jT(jU(Œkhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.target_length”j" t”bŒ0compression.zstd.CompressionParameter.window_log”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.CompressionParameter.window_log”j" t”bŒ6compression.zstd.DecompressionParameter.window_log_max”j )�”(jT(jU(Œnhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.DecompressionParameter.window_log_max”j" t”bŒ,compression.zstd.FrameInfo.decompressed_size”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.FrameInfo.decompressed_size”j" t”bŒ(compression.zstd.FrameInfo.dictionary_id”j )�”(jT(jU(Œ`https://docs.python.org/3/library/compression.zstd.html#compression.zstd.FrameInfo.dictionary_id”j" t”bŒ!compression.zstd.Strategy.btlazy2”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.Strategy.btlazy2”j" t”bŒcompression.zstd.Strategy.btopt”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.Strategy.btopt”j" t”bŒ!compression.zstd.Strategy.btultra”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.Strategy.btultra”j" t”bŒ"compression.zstd.Strategy.btultra2”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.Strategy.btultra2”j" t”bŒcompression.zstd.Strategy.dfast”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.Strategy.dfast”j" t”bŒcompression.zstd.Strategy.fast”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.Strategy.fast”j" t”bŒ compression.zstd.Strategy.greedy”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.Strategy.greedy”j" t”bŒcompression.zstd.Strategy.lazy”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.Strategy.lazy”j" t”bŒcompression.zstd.Strategy.lazy2”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.Strategy.lazy2”j" t”bŒ(compression.zstd.ZstdCompressor.CONTINUE”j )�”(jT(jU(Œ`https://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdCompressor.CONTINUE”j" t”bŒ+compression.zstd.ZstdCompressor.FLUSH_BLOCK”j )�”(jT(jU(Œchttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdCompressor.FLUSH_BLOCK”j" t”bŒ+compression.zstd.ZstdCompressor.FLUSH_FRAME”j )�”(jT(jU(Œchttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdCompressor.FLUSH_FRAME”j" t”bŒ)compression.zstd.ZstdCompressor.last_mode”j )�”(jT(jU(Œahttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdCompressor.last_mode”j" t”bŒ%compression.zstd.ZstdDecompressor.eof”j )�”(jT(jU(Œ]https://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdDecompressor.eof”j" t”bŒ-compression.zstd.ZstdDecompressor.needs_input”j )�”(jT(jU(Œehttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdDecompressor.needs_input”j" t”bŒ-compression.zstd.ZstdDecompressor.unused_data”j )�”(jT(jU(Œehttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdDecompressor.unused_data”j" t”bŒ*compression.zstd.ZstdDict.as_digested_dict”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdDict.as_digested_dict”j" t”bŒ,compression.zstd.ZstdDict.as_undigested_dict”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdDict.as_undigested_dict”j" t”bŒ&compression.zstd.ZstdDict.dict_content”j )�”(jT(jU(Œ^https://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdDict.dict_content”j" t”bŒ!compression.zstd.ZstdDict.dict_id”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdDict.dict_id”j" t”bŒcompression.zstd.ZstdFile.mode”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdFile.mode”j" t”bŒcompression.zstd.ZstdFile.name”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.ZstdFile.name”j" t”bŒ"compression.zstd.zstd_version_info”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.zstd_version_info”j" t”bŒ/concurrent.interpreters.ExecutionFailed.excinfo”j )�”(jT(jU(Œnhttps://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.ExecutionFailed.excinfo”j" t”bŒ&concurrent.interpreters.Interpreter.id”j )�”(jT(jU(Œehttps://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.Interpreter.id”j" t”bŒ*concurrent.interpreters.Interpreter.whence”j )�”(jT(jU(Œihttps://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.Interpreter.whence”j" t”bŒ concurrent.interpreters.Queue.id”j )�”(jT(jU(Œ_https://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.Queue.id”j" t”bŒ(configparser.ConfigParser.BOOLEAN_STATES”j )�”(jT(jU(Œ\https://docs.python.org/3/library/configparser.html#configparser.ConfigParser.BOOLEAN_STATES”j" t”bŒ!configparser.ConfigParser.SECTCRE”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/configparser.html#configparser.ConfigParser.SECTCRE”j" t”bŒcontextvars.ContextVar.name”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/contextvars.html#contextvars.ContextVar.name”j" t”bŒcontextvars.Token.MISSING”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/contextvars.html#contextvars.Token.MISSING”j" t”bŒcontextvars.Token.old_value”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/contextvars.html#contextvars.Token.old_value”j" t”bŒcontextvars.Token.var”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/contextvars.html#contextvars.Token.var”j" t”bŒcsv.Dialect.delimiter”j )�”(jT(jU(Œ@https://docs.python.org/3/library/csv.html#csv.Dialect.delimiter”j" t”bŒcsv.Dialect.doublequote”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/csv.html#csv.Dialect.doublequote”j" t”bŒcsv.Dialect.escapechar”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/csv.html#csv.Dialect.escapechar”j" t”bŒcsv.Dialect.lineterminator”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/csv.html#csv.Dialect.lineterminator”j" t”bŒcsv.Dialect.quotechar”j )�”(jT(jU(Œ@https://docs.python.org/3/library/csv.html#csv.Dialect.quotechar”j" t”bŒcsv.Dialect.quoting”j )�”(jT(jU(Œ>https://docs.python.org/3/library/csv.html#csv.Dialect.quoting”j" t”bŒcsv.Dialect.skipinitialspace”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/csv.html#csv.Dialect.skipinitialspace”j" t”bŒcsv.Dialect.strict”j )�”(jT(jU(Œ=https://docs.python.org/3/library/csv.html#csv.Dialect.strict”j" t”bŒcsv.DictReader.fieldnames”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/csv.html#csv.DictReader.fieldnames”j" t”bŒcsv.csvreader.dialect”j )�”(jT(jU(Œ@https://docs.python.org/3/library/csv.html#csv.csvreader.dialect”j" t”bŒcsv.csvreader.line_num”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/csv.html#csv.csvreader.line_num”j" t”bŒcsv.csvwriter.dialect”j )�”(jT(jU(Œ@https://docs.python.org/3/library/csv.html#csv.csvwriter.dialect”j" t”bŒctypes.Array._length_”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/ctypes.html#ctypes.Array._length_”j" t”bŒctypes.Array._type_”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ctypes.html#ctypes.Array._type_”j" t”bŒctypes.CDLL._handle”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ctypes.html#ctypes.CDLL._handle”j" t”bŒctypes.CDLL._name”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ctypes.html#ctypes.CDLL._name”j" t”bŒctypes.CField.bit_offset”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/ctypes.html#ctypes.CField.bit_offset”j" t”bŒctypes.CField.bit_size”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/ctypes.html#ctypes.CField.bit_size”j" t”bŒctypes.CField.byte_offset”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ctypes.html#ctypes.CField.byte_offset”j" t”bŒctypes.CField.byte_size”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ctypes.html#ctypes.CField.byte_size”j" t”bŒctypes.CField.is_anonymous”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/ctypes.html#ctypes.CField.is_anonymous”j" t”bŒctypes.CField.is_bitfield”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ctypes.html#ctypes.CField.is_bitfield”j" t”bŒctypes.CField.name”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ctypes.html#ctypes.CField.name”j" t”bŒctypes.CField.offset”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/ctypes.html#ctypes.CField.offset”j" t”bŒctypes.CField.size”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ctypes.html#ctypes.CField.size”j" t”bŒctypes.CField.type”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ctypes.html#ctypes.CField.type”j" t”bŒctypes.COMError.details”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ctypes.html#ctypes.COMError.details”j" t”bŒctypes.COMError.hresult”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ctypes.html#ctypes.COMError.hresult”j" t”bŒctypes.COMError.text”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/ctypes.html#ctypes.COMError.text”j" t”bŒctypes.Structure._align_”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/ctypes.html#ctypes.Structure._align_”j" t”bŒctypes.Structure._anonymous_”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/ctypes.html#ctypes.Structure._anonymous_”j" t”bŒctypes.Structure._fields_”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ctypes.html#ctypes.Structure._fields_”j" t”bŒctypes.Structure._layout_”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ctypes.html#ctypes.Structure._layout_”j" t”bŒctypes.Structure._pack_”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ctypes.html#ctypes.Structure._pack_”j" t”bŒctypes._CData.__pointer_type__”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/ctypes.html#ctypes._CData.__pointer_type__”j" t”bŒctypes._CData._b_base_”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/ctypes.html#ctypes._CData._b_base_”j" t”bŒctypes._CData._b_needsfree_”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/ctypes.html#ctypes._CData._b_needsfree_”j" t”bŒctypes._CData._objects”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/ctypes.html#ctypes._CData._objects”j" t”bŒctypes._CFuncPtr.argtypes”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ctypes.html#ctypes._CFuncPtr.argtypes”j" t”bŒctypes._CFuncPtr.errcheck”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ctypes.html#ctypes._CFuncPtr.errcheck”j" t”bŒctypes._CFuncPtr.restype”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/ctypes.html#ctypes._CFuncPtr.restype”j" t”bŒctypes._Pointer._type_”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/ctypes.html#ctypes._Pointer._type_”j" t”bŒctypes._Pointer.contents”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/ctypes.html#ctypes._Pointer.contents”j" t”bŒctypes._SimpleCData._type_”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/ctypes.html#ctypes._SimpleCData._type_”j" t”bŒctypes._SimpleCData.value”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ctypes.html#ctypes._SimpleCData.value”j" t”bŒ"curses.textpad.Textbox.stripspaces”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/curses.html#curses.textpad.Textbox.stripspaces”j" t”bŒcurses.window.encoding”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.html#curses.window.encoding”j" t”bŒdatetime.date.day”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/datetime.html#datetime.date.day”j" t”bŒdatetime.date.max”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/datetime.html#datetime.date.max”j" t”bŒdatetime.date.min”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/datetime.html#datetime.date.min”j" t”bŒdatetime.date.month”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/datetime.html#datetime.date.month”j" t”bŒdatetime.date.resolution”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/datetime.html#datetime.date.resolution”j" t”bŒdatetime.date.year”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/datetime.html#datetime.date.year”j" t”bŒdatetime.datetime.day”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/datetime.html#datetime.datetime.day”j" t”bŒdatetime.datetime.fold”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/datetime.html#datetime.datetime.fold”j" t”bŒdatetime.datetime.hour”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/datetime.html#datetime.datetime.hour”j" t”bŒdatetime.datetime.max”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/datetime.html#datetime.datetime.max”j" t”bŒdatetime.datetime.microsecond”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/datetime.html#datetime.datetime.microsecond”j" t”bŒdatetime.datetime.min”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/datetime.html#datetime.datetime.min”j" t”bŒdatetime.datetime.minute”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/datetime.html#datetime.datetime.minute”j" t”bŒdatetime.datetime.month”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/datetime.html#datetime.datetime.month”j" t”bŒdatetime.datetime.resolution”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/datetime.html#datetime.datetime.resolution”j" t”bŒdatetime.datetime.second”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/datetime.html#datetime.datetime.second”j" t”bŒdatetime.datetime.tzinfo”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/datetime.html#datetime.datetime.tzinfo”j" t”bŒdatetime.datetime.year”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/datetime.html#datetime.datetime.year”j" t”bŒdatetime.time.fold”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/datetime.html#datetime.time.fold”j" t”bŒdatetime.time.hour”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/datetime.html#datetime.time.hour”j" t”bŒdatetime.time.max”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/datetime.html#datetime.time.max”j" t”bŒdatetime.time.microsecond”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/datetime.html#datetime.time.microsecond”j" t”bŒdatetime.time.min”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/datetime.html#datetime.time.min”j" t”bŒdatetime.time.minute”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/datetime.html#datetime.time.minute”j" t”bŒdatetime.time.resolution”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/datetime.html#datetime.time.resolution”j" t”bŒdatetime.time.second”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/datetime.html#datetime.time.second”j" t”bŒdatetime.time.tzinfo”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/datetime.html#datetime.time.tzinfo”j" t”bŒdatetime.timedelta.days”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/datetime.html#datetime.timedelta.days”j" t”bŒdatetime.timedelta.max”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/datetime.html#datetime.timedelta.max”j" t”bŒdatetime.timedelta.microseconds”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/datetime.html#datetime.timedelta.microseconds”j" t”bŒdatetime.timedelta.min”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/datetime.html#datetime.timedelta.min”j" t”bŒdatetime.timedelta.resolution”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/datetime.html#datetime.timedelta.resolution”j" t”bŒdatetime.timedelta.seconds”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/datetime.html#datetime.timedelta.seconds”j" t”bŒdatetime.timezone.utc”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/datetime.html#datetime.timezone.utc”j" t”bŒdecimal.Context.Emax”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/decimal.html#decimal.Context.Emax”j" t”bŒdecimal.Context.Emin”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/decimal.html#decimal.Context.Emin”j" t”bŒdecimal.Context.capitals”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/decimal.html#decimal.Context.capitals”j" t”bŒdecimal.Context.clamp”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/decimal.html#decimal.Context.clamp”j" t”bŒdecimal.Context.flags”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/decimal.html#decimal.Context.flags”j" t”bŒdecimal.Context.prec”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/decimal.html#decimal.Context.prec”j" t”bŒdecimal.Context.rounding”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/decimal.html#decimal.Context.rounding”j" t”bŒdecimal.Context.traps”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/decimal.html#decimal.Context.traps”j" t”bŒdefinition.__doc__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/stdtypes.html#definition.__doc__”j" t”bŒdefinition.__module__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/stdtypes.html#definition.__module__”j" t”bŒdefinition.__name__”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/stdtypes.html#definition.__name__”j" t”bŒdefinition.__qualname__”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/stdtypes.html#definition.__qualname__”j" t”bŒdefinition.__type_params__”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/stdtypes.html#definition.__type_params__”j" t”bŒdoctest.DocTest.docstring”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/doctest.html#doctest.DocTest.docstring”j" t”bŒdoctest.DocTest.examples”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/doctest.html#doctest.DocTest.examples”j" t”bŒdoctest.DocTest.filename”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/doctest.html#doctest.DocTest.filename”j" t”bŒdoctest.DocTest.globs”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/doctest.html#doctest.DocTest.globs”j" t”bŒdoctest.DocTest.lineno”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/doctest.html#doctest.DocTest.lineno”j" t”bŒdoctest.DocTest.name”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/doctest.html#doctest.DocTest.name”j" t”bŒdoctest.DocTestFailure.example”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/doctest.html#doctest.DocTestFailure.example”j" t”bŒdoctest.DocTestFailure.got”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/doctest.html#doctest.DocTestFailure.got”j" t”bŒdoctest.DocTestFailure.test”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/doctest.html#doctest.DocTestFailure.test”j" t”bŒdoctest.DocTestRunner.failures”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.failures”j" t”bŒdoctest.DocTestRunner.skips”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.skips”j" t”bŒdoctest.DocTestRunner.tries”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/doctest.html#doctest.DocTestRunner.tries”j" t”bŒdoctest.Example.exc_msg”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/doctest.html#doctest.Example.exc_msg”j" t”bŒdoctest.Example.indent”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/doctest.html#doctest.Example.indent”j" t”bŒdoctest.Example.lineno”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/doctest.html#doctest.Example.lineno”j" t”bŒdoctest.Example.options”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/doctest.html#doctest.Example.options”j" t”bŒdoctest.Example.source”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/doctest.html#doctest.Example.source”j" t”bŒdoctest.Example.want”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/doctest.html#doctest.Example.want”j" t”bŒdoctest.TestResults.attempted”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/doctest.html#doctest.TestResults.attempted”j" t”bŒdoctest.TestResults.failed”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/doctest.html#doctest.TestResults.failed”j" t”bŒdoctest.TestResults.skipped”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/doctest.html#doctest.TestResults.skipped”j" t”bŒ#doctest.UnexpectedException.example”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/doctest.html#doctest.UnexpectedException.example”j" t”bŒ$doctest.UnexpectedException.exc_info”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/doctest.html#doctest.UnexpectedException.exc_info”j" t”bŒ doctest.UnexpectedException.test”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/doctest.html#doctest.UnexpectedException.test”j" t”bŒ#email.charset.Charset.body_encoding”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/email.charset.html#email.charset.Charset.body_encoding”j" t”bŒ%email.charset.Charset.header_encoding”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/email.charset.html#email.charset.Charset.header_encoding”j" t”bŒ#email.charset.Charset.input_charset”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/email.charset.html#email.charset.Charset.input_charset”j" t”bŒ!email.charset.Charset.input_codec”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/email.charset.html#email.charset.Charset.input_codec”j" t”bŒ$email.charset.Charset.output_charset”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/email.charset.html#email.charset.Charset.output_charset”j" t”bŒ"email.charset.Charset.output_codec”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/email.charset.html#email.charset.Charset.output_codec”j" t”bŒ&email.headerregistry.Address.addr_spec”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.addr_spec”j" t”bŒ)email.headerregistry.Address.display_name”j )�”(jT(jU(Œehttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.display_name”j" t”bŒ#email.headerregistry.Address.domain”j )�”(jT(jU(Œ_https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.domain”j" t”bŒ%email.headerregistry.Address.username”j )�”(jT(jU(Œahttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address.username”j" t”bŒ,email.headerregistry.AddressHeader.addresses”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.AddressHeader.addresses”j" t”bŒ)email.headerregistry.AddressHeader.groups”j )�”(jT(jU(Œehttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.AddressHeader.groups”j" t”bŒ'email.headerregistry.BaseHeader.defects”j )�”(jT(jU(Œchttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeader.defects”j" t”bŒ)email.headerregistry.BaseHeader.max_count”j )�”(jT(jU(Œehttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeader.max_count”j" t”bŒ$email.headerregistry.BaseHeader.name”j )�”(jT(jU(Œ`https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeader.name”j" t”bŒAemail.headerregistry.ContentDispositionHeader.content_disposition”j )�”(jT(jU(Œ}https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentDispositionHeader.content_disposition”j" t”bŒ6email.headerregistry.ContentTransferEncodingHeader.cte”j )�”(jT(jU(Œrhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTransferEncodingHeader.cte”j" t”bŒ3email.headerregistry.ContentTypeHeader.content_type”j )�”(jT(jU(Œohttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTypeHeader.content_type”j" t”bŒ/email.headerregistry.ContentTypeHeader.maintype”j )�”(jT(jU(Œkhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTypeHeader.maintype”j" t”bŒ.email.headerregistry.ContentTypeHeader.subtype”j )�”(jT(jU(Œjhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTypeHeader.subtype”j" t”bŒ(email.headerregistry.DateHeader.datetime”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.DateHeader.datetime”j" t”bŒ$email.headerregistry.Group.addresses”j )�”(jT(jU(Œ`https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Group.addresses”j" t”bŒ'email.headerregistry.Group.display_name”j )�”(jT(jU(Œchttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Group.display_name”j" t”bŒ,email.headerregistry.MIMEVersionHeader.major”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.MIMEVersionHeader.major”j" t”bŒ,email.headerregistry.MIMEVersionHeader.minor”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.MIMEVersionHeader.minor”j" t”bŒ.email.headerregistry.MIMEVersionHeader.version”j )�”(jT(jU(Œjhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.MIMEVersionHeader.version”j" t”bŒ3email.headerregistry.ParameterizedMIMEHeader.params”j )�”(jT(jU(Œohttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ParameterizedMIMEHeader.params”j" t”bŒ0email.headerregistry.SingleAddressHeader.address”j )�”(jT(jU(Œlhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.SingleAddressHeader.address”j" t”bŒ"email.message.EmailMessage.defects”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/email.message.html#email.message.EmailMessage.defects”j" t”bŒ#email.message.EmailMessage.epilogue”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/email.message.html#email.message.EmailMessage.epilogue”j" t”bŒ#email.message.EmailMessage.preamble”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/email.message.html#email.message.EmailMessage.preamble”j" t”bŒemail.message.Message.defects”j )�”(jT(jU(Œ[https://docs.python.org/3/library/email.compat32-message.html#email.message.Message.defects”j" t”bŒemail.message.Message.epilogue”j )�”(jT(jU(Œ\https://docs.python.org/3/library/email.compat32-message.html#email.message.Message.epilogue”j" t”bŒemail.message.Message.preamble”j )�”(jT(jU(Œ\https://docs.python.org/3/library/email.compat32-message.html#email.message.Message.preamble”j" t”bŒ"email.policy.Compat32.mangle_from_”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/email.policy.html#email.policy.Compat32.mangle_from_”j" t”bŒ(email.policy.EmailPolicy.content_manager”j )�”(jT(jU(Œ\https://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.content_manager”j" t”bŒ'email.policy.EmailPolicy.header_factory”j )�”(jT(jU(Œ[https://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.header_factory”j" t”bŒ&email.policy.EmailPolicy.refold_source”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.refold_source”j" t”bŒemail.policy.EmailPolicy.utf8”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy.utf8”j" t”bŒemail.policy.Policy.cte_type”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/email.policy.html#email.policy.Policy.cte_type”j" t”bŒemail.policy.Policy.linesep”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/email.policy.html#email.policy.Policy.linesep”j" t”bŒ email.policy.Policy.mangle_from_”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/email.policy.html#email.policy.Policy.mangle_from_”j" t”bŒ#email.policy.Policy.max_line_length”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/email.policy.html#email.policy.Policy.max_line_length”j" t”bŒ#email.policy.Policy.message_factory”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/email.policy.html#email.policy.Policy.message_factory”j" t”bŒ#email.policy.Policy.raise_on_defect”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/email.policy.html#email.policy.Policy.raise_on_defect”j" t”bŒ,email.policy.Policy.verify_generated_headers”j )�”(jT(jU(Œ`https://docs.python.org/3/library/email.policy.html#email.policy.Policy.verify_generated_headers”j" t”bŒenum.Enum._ignore_”j )�”(jT(jU(Œ>https://docs.python.org/3/library/enum.html#enum.Enum._ignore_”j" t”bŒenum.Enum._name_”j )�”(jT(jU(Œhttps://docs.python.org/3/library/gzip.html#gzip.GzipFile.mode”j" t”bŒgzip.GzipFile.mtime”j )�”(jT(jU(Œ?https://docs.python.org/3/library/gzip.html#gzip.GzipFile.mtime”j" t”bŒgzip.GzipFile.name”j )�”(jT(jU(Œ>https://docs.python.org/3/library/gzip.html#gzip.GzipFile.name”j" t”bŒhashlib.hash.name”j )�”(jT(jU(Œ@https://docs.python.org/3/library/hashlib.html#hashlib.hash.name”j" t”bŒhmac.HMAC.block_size”j )�”(jT(jU(Œ@https://docs.python.org/3/library/hmac.html#hmac.HMAC.block_size”j" t”bŒhmac.HMAC.digest_size”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/hmac.html#hmac.HMAC.digest_size”j" t”bŒhmac.HMAC.name”j )�”(jT(jU(Œ:https://docs.python.org/3/library/hmac.html#hmac.HMAC.name”j" t”bŒ$http.client.HTTPConnection.blocksize”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/http.client.html#http.client.HTTPConnection.blocksize”j" t”bŒhttp.client.HTTPResponse.closed”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.closed”j" t”bŒ#http.client.HTTPResponse.debuglevel”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.debuglevel”j" t”bŒ http.client.HTTPResponse.headers”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.headers”j" t”bŒhttp.client.HTTPResponse.msg”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.msg”j" t”bŒhttp.client.HTTPResponse.reason”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.reason”j" t”bŒhttp.client.HTTPResponse.status”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.status”j" t”bŒhttp.client.HTTPResponse.url”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.url”j" t”bŒ http.client.HTTPResponse.version”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/http.client.html#http.client.HTTPResponse.version”j" t”bŒhttp.cookiejar.Cookie.comment”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.comment”j" t”bŒ!http.cookiejar.Cookie.comment_url”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.comment_url”j" t”bŒhttp.cookiejar.Cookie.discard”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.discard”j" t”bŒhttp.cookiejar.Cookie.domain”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.domain”j" t”bŒ(http.cookiejar.Cookie.domain_initial_dot”j )�”(jT(jU(Œ^https://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.domain_initial_dot”j" t”bŒ&http.cookiejar.Cookie.domain_specified”j )�”(jT(jU(Œ\https://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.domain_specified”j" t”bŒhttp.cookiejar.Cookie.expires”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.expires”j" t”bŒhttp.cookiejar.Cookie.name”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.name”j" t”bŒhttp.cookiejar.Cookie.path”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.path”j" t”bŒhttp.cookiejar.Cookie.port”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.port”j" t”bŒ$http.cookiejar.Cookie.port_specified”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.port_specified”j" t”bŒhttp.cookiejar.Cookie.rfc2109”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.rfc2109”j" t”bŒhttp.cookiejar.Cookie.secure”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.secure”j" t”bŒhttp.cookiejar.Cookie.value”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.value”j" t”bŒhttp.cookiejar.Cookie.version”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.Cookie.version”j" t”bŒ(http.cookiejar.CookiePolicy.hide_cookie2”j )�”(jT(jU(Œ^https://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.hide_cookie2”j" t”bŒ$http.cookiejar.CookiePolicy.netscape”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.netscape”j" t”bŒ#http.cookiejar.CookiePolicy.rfc2965”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.CookiePolicy.rfc2965”j" t”bŒ0http.cookiejar.DefaultCookiePolicy.DomainLiberal”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainLiberal”j" t”bŒ5http.cookiejar.DefaultCookiePolicy.DomainRFC2965Match”j )�”(jT(jU(Œkhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainRFC2965Match”j" t”bŒ/http.cookiejar.DefaultCookiePolicy.DomainStrict”j )�”(jT(jU(Œehttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainStrict”j" t”bŒ5http.cookiejar.DefaultCookiePolicy.DomainStrictNoDots”j )�”(jT(jU(Œkhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainStrictNoDots”j" t”bŒ8http.cookiejar.DefaultCookiePolicy.DomainStrictNonDomain”j )�”(jT(jU(Œnhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.DomainStrictNonDomain”j" t”bŒ6http.cookiejar.DefaultCookiePolicy.rfc2109_as_netscape”j )�”(jT(jU(Œlhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.rfc2109_as_netscape”j" t”bŒ0http.cookiejar.DefaultCookiePolicy.strict_domain”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_domain”j" t”bŒ3http.cookiejar.DefaultCookiePolicy.strict_ns_domain”j )�”(jT(jU(Œihttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_domain”j" t”bŒ?http.cookiejar.DefaultCookiePolicy.strict_ns_set_initial_dollar”j )�”(jT(jU(Œuhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_set_initial_dollar”j" t”bŒ5http.cookiejar.DefaultCookiePolicy.strict_ns_set_path”j )�”(jT(jU(Œkhttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_set_path”j" t”bŒ9http.cookiejar.DefaultCookiePolicy.strict_ns_unverifiable”j )�”(jT(jU(Œohttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_ns_unverifiable”j" t”bŒ>http.cookiejar.DefaultCookiePolicy.strict_rfc2965_unverifiable”j )�”(jT(jU(Œthttps://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy.strict_rfc2965_unverifiable”j" t”bŒ&http.cookiejar.FileCookieJar.delayload”j )�”(jT(jU(Œ\https://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.delayload”j" t”bŒ%http.cookiejar.FileCookieJar.filename”j )�”(jT(jU(Œ[https://docs.python.org/3/library/http.cookiejar.html#http.cookiejar.FileCookieJar.filename”j" t”bŒhttp.cookies.Morsel.coded_value”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.coded_value”j" t”bŒhttp.cookies.Morsel.comment”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.comment”j" t”bŒhttp.cookies.Morsel.domain”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.domain”j" t”bŒhttp.cookies.Morsel.expires”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.expires”j" t”bŒhttp.cookies.Morsel.httponly”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.httponly”j" t”bŒhttp.cookies.Morsel.key”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.key”j" t”bŒhttp.cookies.Morsel.partitioned”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.partitioned”j" t”bŒhttp.cookies.Morsel.path”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.path”j" t”bŒhttp.cookies.Morsel.samesite”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.samesite”j" t”bŒhttp.cookies.Morsel.secure”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.secure”j" t”bŒhttp.cookies.Morsel.value”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.value”j" t”bŒhttp.cookies.Morsel.version”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel.version”j" t”bŒ/http.server.BaseHTTPRequestHandler.MessageClass”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.MessageClass”j" t”bŒ1http.server.BaseHTTPRequestHandler.client_address”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.client_address”j" t”bŒ3http.server.BaseHTTPRequestHandler.close_connection”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.close_connection”j" t”bŒ*http.server.BaseHTTPRequestHandler.command”j )�”(jT(jU(Œ]https://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.command”j" t”bŒ5http.server.BaseHTTPRequestHandler.error_content_type”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.error_content_type”j" t”bŒ7http.server.BaseHTTPRequestHandler.error_message_format”j )�”(jT(jU(Œjhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.error_message_format”j" t”bŒ*http.server.BaseHTTPRequestHandler.headers”j )�”(jT(jU(Œ]https://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.headers”j" t”bŒ'http.server.BaseHTTPRequestHandler.path”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.path”j" t”bŒ3http.server.BaseHTTPRequestHandler.protocol_version”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.protocol_version”j" t”bŒ2http.server.BaseHTTPRequestHandler.request_version”j )�”(jT(jU(Œehttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.request_version”j" t”bŒ.http.server.BaseHTTPRequestHandler.requestline”j )�”(jT(jU(Œahttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.requestline”j" t”bŒ,http.server.BaseHTTPRequestHandler.responses”j )�”(jT(jU(Œ_https://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.responses”j" t”bŒ(http.server.BaseHTTPRequestHandler.rfile”j )�”(jT(jU(Œ[https://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.rfile”j" t”bŒ)http.server.BaseHTTPRequestHandler.server”j )�”(jT(jU(Œ\https://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.server”j" t”bŒ1http.server.BaseHTTPRequestHandler.server_version”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.server_version”j" t”bŒ.http.server.BaseHTTPRequestHandler.sys_version”j )�”(jT(jU(Œahttps://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.sys_version”j" t”bŒ(http.server.BaseHTTPRequestHandler.wfile”j )�”(jT(jU(Œ[https://docs.python.org/3/library/http.server.html#http.server.BaseHTTPRequestHandler.wfile”j" t”bŒ1http.server.CGIHTTPRequestHandler.cgi_directories”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/http.server.html#http.server.CGIHTTPRequestHandler.cgi_directories”j" t”bŒ3http.server.SimpleHTTPRequestHandler.extensions_map”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler.extensions_map”j" t”bŒ3http.server.SimpleHTTPRequestHandler.server_version”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler.server_version”j" t”bŒimaplib.IMAP4.PROTOCOL_VERSION”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.PROTOCOL_VERSION”j" t”bŒimaplib.IMAP4.debug”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.debug”j" t”bŒimaplib.IMAP4.utf8_enabled”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/imaplib.html#imaplib.IMAP4.utf8_enabled”j" t”bŒimportlib.abc.FileLoader.name”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.name”j" t”bŒimportlib.abc.FileLoader.path”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/importlib.html#importlib.abc.FileLoader.path”j" t”bŒ-importlib.machinery.AppleFrameworkLoader.name”j )�”(jT(jU(Œ^https://docs.python.org/3/library/importlib.html#importlib.machinery.AppleFrameworkLoader.name”j" t”bŒ-importlib.machinery.AppleFrameworkLoader.path”j )�”(jT(jU(Œ^https://docs.python.org/3/library/importlib.html#importlib.machinery.AppleFrameworkLoader.path”j" t”bŒ,importlib.machinery.ExtensionFileLoader.name”j )�”(jT(jU(Œ]https://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.name”j" t”bŒ,importlib.machinery.ExtensionFileLoader.path”j )�”(jT(jU(Œ]https://docs.python.org/3/library/importlib.html#importlib.machinery.ExtensionFileLoader.path”j" t”bŒ#importlib.machinery.FileFinder.path”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/importlib.html#importlib.machinery.FileFinder.path”j" t”bŒ%importlib.machinery.ModuleSpec.cached”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.cached”j" t”bŒ+importlib.machinery.ModuleSpec.has_location”j )�”(jT(jU(Œ\https://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.has_location”j" t”bŒ%importlib.machinery.ModuleSpec.loader”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.loader”j" t”bŒ+importlib.machinery.ModuleSpec.loader_state”j )�”(jT(jU(Œ\https://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.loader_state”j" t”bŒ#importlib.machinery.ModuleSpec.name”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.name”j" t”bŒ%importlib.machinery.ModuleSpec.origin”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.origin”j" t”bŒ%importlib.machinery.ModuleSpec.parent”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.parent”j" t”bŒ9importlib.machinery.ModuleSpec.submodule_search_locations”j )�”(jT(jU(Œjhttps://docs.python.org/3/library/importlib.html#importlib.machinery.ModuleSpec.submodule_search_locations”j" t”bŒ)importlib.machinery.SourceFileLoader.name”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.name”j" t”bŒ)importlib.machinery.SourceFileLoader.path”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/importlib.html#importlib.machinery.SourceFileLoader.path”j" t”bŒ-importlib.machinery.SourcelessFileLoader.name”j )�”(jT(jU(Œ^https://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.name”j" t”bŒ-importlib.machinery.SourcelessFileLoader.path”j )�”(jT(jU(Œ^https://docs.python.org/3/library/importlib.html#importlib.machinery.SourcelessFileLoader.path”j" t”bŒ(importlib.resources.abc.Traversable.name”j )�”(jT(jU(Œghttps://docs.python.org/3/library/importlib.resources.abc.html#importlib.resources.abc.Traversable.name”j" t”bŒinspect.BoundArguments.args”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/inspect.html#inspect.BoundArguments.args”j" t”bŒ inspect.BoundArguments.arguments”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/inspect.html#inspect.BoundArguments.arguments”j" t”bŒinspect.BoundArguments.kwargs”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/inspect.html#inspect.BoundArguments.kwargs”j" t”bŒ inspect.BoundArguments.signature”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/inspect.html#inspect.BoundArguments.signature”j" t”bŒ"inspect.BufferFlags.ANY_CONTIGUOUS”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.ANY_CONTIGUOUS”j" t”bŒinspect.BufferFlags.CONTIG”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.CONTIG”j" t”bŒinspect.BufferFlags.CONTIG_RO”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.CONTIG_RO”j" t”bŒ inspect.BufferFlags.C_CONTIGUOUS”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.C_CONTIGUOUS”j" t”bŒinspect.BufferFlags.FORMAT”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.FORMAT”j" t”bŒinspect.BufferFlags.FULL”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.FULL”j" t”bŒinspect.BufferFlags.FULL_RO”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.FULL_RO”j" t”bŒ inspect.BufferFlags.F_CONTIGUOUS”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.F_CONTIGUOUS”j" t”bŒinspect.BufferFlags.INDIRECT”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.INDIRECT”j" t”bŒinspect.BufferFlags.ND”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.ND”j" t”bŒinspect.BufferFlags.READ”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.READ”j" t”bŒinspect.BufferFlags.RECORDS”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.RECORDS”j" t”bŒinspect.BufferFlags.RECORDS_RO”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.RECORDS_RO”j" t”bŒinspect.BufferFlags.SIMPLE”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.SIMPLE”j" t”bŒinspect.BufferFlags.STRIDED”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.STRIDED”j" t”bŒinspect.BufferFlags.STRIDED_RO”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.STRIDED_RO”j" t”bŒinspect.BufferFlags.STRIDES”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.STRIDES”j" t”bŒinspect.BufferFlags.WRITABLE”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.WRITABLE”j" t”bŒinspect.BufferFlags.WRITE”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/inspect.html#inspect.BufferFlags.WRITE”j" t”bŒinspect.FrameInfo.code_context”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.code_context”j" t”bŒinspect.FrameInfo.filename”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.filename”j" t”bŒinspect.FrameInfo.frame”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.frame”j" t”bŒinspect.FrameInfo.function”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.function”j" t”bŒinspect.FrameInfo.index”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.index”j" t”bŒinspect.FrameInfo.lineno”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.lineno”j" t”bŒinspect.FrameInfo.positions”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/inspect.html#inspect.FrameInfo.positions”j" t”bŒinspect.Parameter.annotation”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/inspect.html#inspect.Parameter.annotation”j" t”bŒinspect.Parameter.default”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/inspect.html#inspect.Parameter.default”j" t”bŒinspect.Parameter.empty”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/inspect.html#inspect.Parameter.empty”j" t”bŒinspect.Parameter.kind”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/inspect.html#inspect.Parameter.kind”j" t”bŒ"inspect.Parameter.kind.description”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/inspect.html#inspect.Parameter.kind.description”j" t”bŒinspect.Parameter.name”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/inspect.html#inspect.Parameter.name”j" t”bŒinspect.Signature.empty”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/inspect.html#inspect.Signature.empty”j" t”bŒinspect.Signature.parameters”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/inspect.html#inspect.Signature.parameters”j" t”bŒ#inspect.Signature.return_annotation”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/inspect.html#inspect.Signature.return_annotation”j" t”bŒinspect.Traceback.code_context”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/inspect.html#inspect.Traceback.code_context”j" t”bŒinspect.Traceback.filename”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/inspect.html#inspect.Traceback.filename”j" t”bŒinspect.Traceback.function”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/inspect.html#inspect.Traceback.function”j" t”bŒinspect.Traceback.index”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/inspect.html#inspect.Traceback.index”j" t”bŒinspect.Traceback.lineno”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/inspect.html#inspect.Traceback.lineno”j" t”bŒinspect.Traceback.positions”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/inspect.html#inspect.Traceback.positions”j" t”bŒio.BufferedIOBase.raw”j )�”(jT(jU(Œ?https://docs.python.org/3/library/io.html#io.BufferedIOBase.raw”j" t”bŒio.FileIO.mode”j )�”(jT(jU(Œ8https://docs.python.org/3/library/io.html#io.FileIO.mode”j" t”bŒio.FileIO.name”j )�”(jT(jU(Œ8https://docs.python.org/3/library/io.html#io.FileIO.name”•j" t”bŒio.IOBase.closed”j )�”(jT(jU(Œ:https://docs.python.org/3/library/io.html#io.IOBase.closed”j" t”bŒio.TextIOBase.buffer”j )�”(jT(jU(Œ>https://docs.python.org/3/library/io.html#io.TextIOBase.buffer”j" t”bŒio.TextIOBase.encoding”j )�”(jT(jU(Œ@https://docs.python.org/3/library/io.html#io.TextIOBase.encoding”j" t”bŒio.TextIOBase.errors”j )�”(jT(jU(Œ>https://docs.python.org/3/library/io.html#io.TextIOBase.errors”j" t”bŒio.TextIOBase.newlines”j )�”(jT(jU(Œ@https://docs.python.org/3/library/io.html#io.TextIOBase.newlines”j" t”bŒio.TextIOWrapper.line_buffering”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/io.html#io.TextIOWrapper.line_buffering”j" t”bŒio.TextIOWrapper.write_through”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/io.html#io.TextIOWrapper.write_through”j" t”bŒ ipaddress.IPv4Address.compressed”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.compressed”j" t”bŒipaddress.IPv4Address.exploded”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.exploded”j" t”bŒ!ipaddress.IPv4Address.ipv6_mapped”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.ipv6_mapped”j" t”bŒipaddress.IPv4Address.is_global”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_global”j" t”bŒ#ipaddress.IPv4Address.is_link_local”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_link_local”j" t”bŒ!ipaddress.IPv4Address.is_loopback”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_loopback”j" t”bŒ"ipaddress.IPv4Address.is_multicast”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_multicast”j" t”bŒ ipaddress.IPv4Address.is_private”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_private”j" t”bŒ!ipaddress.IPv4Address.is_reserved”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_reserved”j" t”bŒ$ipaddress.IPv4Address.is_unspecified”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_unspecified”j" t”bŒ#ipaddress.IPv4Address.max_prefixlen”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.max_prefixlen”j" t”bŒipaddress.IPv4Address.packed”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.packed”j" t”bŒ%ipaddress.IPv4Address.reverse_pointer”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.reverse_pointer”j" t”bŒipaddress.IPv4Address.version”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.version”j" t”bŒipaddress.IPv4Interface.ip”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.ip”j" t”bŒipaddress.IPv4Interface.network”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.network”j" t”bŒ%ipaddress.IPv4Interface.with_hostmask”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.with_hostmask”j" t”bŒ$ipaddress.IPv4Interface.with_netmask”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.with_netmask”j" t”bŒ&ipaddress.IPv4Interface.with_prefixlen”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Interface.with_prefixlen”j" t”bŒ'ipaddress.IPv4Network.broadcast_address”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.broadcast_address”j" t”bŒ ipaddress.IPv4Network.compressed”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.compressed”j" t”bŒipaddress.IPv4Network.exploded”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.exploded”j" t”bŒipaddress.IPv4Network.hostmask”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.hostmask”j" t”bŒ#ipaddress.IPv4Network.is_link_local”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_link_local”j" t”bŒ!ipaddress.IPv4Network.is_loopback”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_loopback”j" t”bŒ"ipaddress.IPv4Network.is_multicast”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_multicast”j" t”bŒ ipaddress.IPv4Network.is_private”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_private”j" t”bŒ!ipaddress.IPv4Network.is_reserved”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_reserved”j" t”bŒ$ipaddress.IPv4Network.is_unspecified”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.is_unspecified”j" t”bŒ#ipaddress.IPv4Network.max_prefixlen”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.max_prefixlen”j" t”bŒipaddress.IPv4Network.netmask”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.netmask”j" t”bŒ%ipaddress.IPv4Network.network_address”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.network_address”j" t”bŒ#ipaddress.IPv4Network.num_addresses”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.num_addresses”j" t”bŒipaddress.IPv4Network.prefixlen”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.prefixlen”j" t”bŒipaddress.IPv4Network.version”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.version”j" t”bŒ#ipaddress.IPv4Network.with_hostmask”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.with_hostmask”j" t”bŒ"ipaddress.IPv4Network.with_netmask”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.with_netmask”j" t”bŒ$ipaddress.IPv4Network.with_prefixlen”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.with_prefixlen”j" t”bŒ ipaddress.IPv6Address.compressed”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.compressed”j" t”bŒipaddress.IPv6Address.exploded”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.exploded”j" t”bŒ!ipaddress.IPv6Address.ipv4_mapped”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.ipv4_mapped”j" t”bŒipaddress.IPv6Address.is_global”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_global”j" t”bŒ#ipaddress.IPv6Address.is_link_local”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_link_local”j" t”bŒ!ipaddress.IPv6Address.is_loopback”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_loopback”j" t”bŒ"ipaddress.IPv6Address.is_multicast”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_multicast”j" t”bŒ ipaddress.IPv6Address.is_private”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_private”j" t”bŒ!ipaddress.IPv6Address.is_reserved”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_reserved”j" t”bŒ#ipaddress.IPv6Address.is_site_local”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_site_local”j" t”bŒ$ipaddress.IPv6Address.is_unspecified”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.is_unspecified”j" t”bŒ#ipaddress.IPv6Address.max_prefixlen”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.max_prefixlen”j" t”bŒipaddress.IPv6Address.packed”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.packed”j" t”bŒ%ipaddress.IPv6Address.reverse_pointer”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.reverse_pointer”j" t”bŒipaddress.IPv6Address.scope_id”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.scope_id”j" t”bŒipaddress.IPv6Address.sixtofour”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.sixtofour”j" t”bŒipaddress.IPv6Address.teredo”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.teredo”j" t”bŒipaddress.IPv6Address.version”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.version”j" t”bŒipaddress.IPv6Interface.ip”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.ip”j" t”bŒipaddress.IPv6Interface.network”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.network”j" t”bŒ%ipaddress.IPv6Interface.with_hostmask”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.with_hostmask”j" t”bŒ$ipaddress.IPv6Interface.with_netmask”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.with_netmask”j" t”bŒ&ipaddress.IPv6Interface.with_prefixlen”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Interface.with_prefixlen”j" t”bŒ'ipaddress.IPv6Network.broadcast_address”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.broadcast_address”j" t”bŒ ipaddress.IPv6Network.compressed”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.compressed”j" t”bŒipaddress.IPv6Network.exploded”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.exploded”j" t”bŒipaddress.IPv6Network.hostmask”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.hostmask”j" t”bŒ#ipaddress.IPv6Network.is_link_local”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_link_local”j" t”bŒ!ipaddress.IPv6Network.is_loopback”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_loopback”j" t”bŒ"ipaddress.IPv6Network.is_multicast”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_multicast”j" t”bŒ ipaddress.IPv6Network.is_private”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_private”j" t”bŒ!ipaddress.IPv6Network.is_reserved”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_reserved”j" t”bŒ#ipaddress.IPv6Network.is_site_local”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_site_local”j" t”bŒ$ipaddress.IPv6Network.is_unspecified”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.is_unspecified”j" t”bŒ#ipaddress.IPv6Network.max_prefixlen”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.max_prefixlen”j" t”bŒipaddress.IPv6Network.netmask”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.netmask”j" t”bŒ%ipaddress.IPv6Network.network_address”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.network_address”j" t”bŒ#ipaddress.IPv6Network.num_addresses”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.num_addresses”j" t”bŒipaddress.IPv6Network.prefixlen”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.prefixlen”j" t”bŒipaddress.IPv6Network.version”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.version”j" t”bŒ#ipaddress.IPv6Network.with_hostmask”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.with_hostmask”j" t”bŒ"ipaddress.IPv6Network.with_netmask”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.with_netmask”j" t”bŒ$ipaddress.IPv6Network.with_prefixlen”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Network.with_prefixlen”j" t”bŒjson.JSONDecodeError.colno”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/json.html#json.JSONDecodeError.colno”j" t”bŒjson.JSONDecodeError.doc”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/json.html#json.JSONDecodeError.doc”j" t”bŒjson.JSONDecodeError.lineno”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/json.html#json.JSONDecodeError.lineno”j" t”bŒjson.JSONDecodeError.msg”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/json.html#json.JSONDecodeError.msg”j" t”bŒjson.JSONDecodeError.pos”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/json.html#json.JSONDecodeError.pos”j" t”bŒlogging.Logger.disabled”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/logging.html#logging.Logger.disabled”j" t”bŒlogging.Logger.handlers”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/logging.html#logging.Logger.handlers”j" t”bŒlogging.Logger.level”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/logging.html#logging.Logger.level”j" t”bŒlogging.Logger.name”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/logging.html#logging.Logger.name”j" t”bŒlogging.Logger.parent”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/logging.html#logging.Logger.parent”j" t”bŒlogging.Logger.propagate”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/logging.html#logging.Logger.propagate”j" t”bŒlogging.LoggerAdapter._log”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/logging.html#logging.LoggerAdapter._log”j" t”bŒlogging.LoggerAdapter.manager”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/logging.html#logging.LoggerAdapter.manager”j" t”bŒ logging.StreamHandler.terminator”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/logging.handlers.html#logging.StreamHandler.terminator”j" t”bŒ*logging.handlers.BaseRotatingHandler.namer”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler.namer”j" t”bŒ,logging.handlers.BaseRotatingHandler.rotator”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler.rotator”j" t”bŒ&logging.handlers.QueueHandler.listener”j )�”(jT(jU(Œ^https://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueHandler.listener”j" t”bŒlzma.LZMADecompressor.check”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.check”j" t”bŒlzma.LZMADecompressor.eof”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.eof”j" t”bŒ!lzma.LZMADecompressor.needs_input”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.needs_input”j" t”bŒ!lzma.LZMADecompressor.unused_data”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor.unused_data”j" t”bŒlzma.LZMAFile.mode”j )�”(jT(jU(Œ>https://docs.python.org/3/library/lzma.html#lzma.LZMAFile.mode”j" t”bŒlzma.LZMAFile.name”j )�”(jT(jU(Œ>https://docs.python.org/3/library/lzma.html#lzma.LZMAFile.name”j" t”bŒmailbox.Maildir.colon”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.colon”j" t”bŒmemoryview.c_contiguous”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/stdtypes.html#memoryview.c_contiguous”j" t”bŒmemoryview.contiguous”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/stdtypes.html#memoryview.contiguous”j" t”bŒmemoryview.f_contiguous”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/stdtypes.html#memoryview.f_contiguous”j" t”bŒmemoryview.format”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#memoryview.format”j" t”bŒmemoryview.itemsize”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/stdtypes.html#memoryview.itemsize”j" t”bŒmemoryview.nbytes”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#memoryview.nbytes”j" t”bŒmemoryview.ndim”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#memoryview.ndim”j" t”bŒmemoryview.obj”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#memoryview.obj”j" t”bŒmemoryview.readonly”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/stdtypes.html#memoryview.readonly”j" t”bŒmemoryview.shape”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#memoryview.shape”j" t”bŒmemoryview.strides”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/stdtypes.html#memoryview.strides”j" t”bŒmemoryview.suboffsets”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/stdtypes.html#memoryview.suboffsets”j" t”bŒmethod.__doc__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#method.__doc__”j" t”bŒmethod.__func__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#method.__func__”j" t”bŒmethod.__module__”j )�”(jT(jU(ŒDhttps://docs.python.org/3/reference/datamodel.html#method.__module__”j" t”bŒmethod.__name__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#method.__name__”j" t”bŒmethod.__self__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#method.__self__”j" t”bŒ!mimetypes.MimeTypes.encodings_map”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.encodings_map”j" t”bŒmimetypes.MimeTypes.suffix_map”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.suffix_map”j" t”bŒmimetypes.MimeTypes.types_map”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.types_map”j" t”bŒ!mimetypes.MimeTypes.types_map_inv”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.types_map_inv”j" t”bŒmmap.mmap.closed”j )�”(jT(jU(Œhttps://docs.python.org/3/library/doctest.html#module.__test__”j" t”bŒ!modulefinder.ModuleFinder.modules”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/modulefinder.html#modulefinder.ModuleFinder.modules”j" t”bŒmultiprocessing.Process.authkey”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.authkey”j" t”bŒmultiprocessing.Process.daemon”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.daemon”j" t”bŒ multiprocessing.Process.exitcode”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.exitcode”j" t”bŒmultiprocessing.Process.name”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.name”j" t”bŒmultiprocessing.Process.pid”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.pid”j" t”bŒ multiprocessing.Process.sentinel”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.sentinel”j" t”bŒ+multiprocessing.connection.Listener.address”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Listener.address”j" t”bŒ1multiprocessing.connection.Listener.last_accepted”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Listener.last_accepted”j" t”bŒ,multiprocessing.managers.BaseManager.address”j )�”(jT(jU(Œchttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.address”j" t”bŒ2multiprocessing.shared_memory.ShareableList.format”j )�”(jT(jU(Œwhttps://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.ShareableList.format”j" t”bŒ/multiprocessing.shared_memory.ShareableList.shm”j )�”(jT(jU(Œthttps://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.ShareableList.shm”j" t”bŒ.multiprocessing.shared_memory.SharedMemory.buf”j )�”(jT(jU(Œshttps://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.SharedMemory.buf”j" t”bŒ/multiprocessing.shared_memory.SharedMemory.name”j )�”(jT(jU(Œthttps://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.SharedMemory.name”j" t”bŒ/multiprocessing.shared_memory.SharedMemory.size”j )�”(jT(jU(Œthttps://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.SharedMemory.size”j" t”bŒnetrc.NetrcParseError.filename”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/netrc.html#netrc.NetrcParseError.filename”j" t”bŒnetrc.NetrcParseError.lineno”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/netrc.html#netrc.NetrcParseError.lineno”j" t”bŒnetrc.NetrcParseError.msg”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/netrc.html#netrc.NetrcParseError.msg”j" t”bŒnetrc.netrc.hosts”j )�”(jT(jU(Œ>https://docs.python.org/3/library/netrc.html#netrc.netrc.hosts”j" t”bŒnetrc.netrc.macros”j )�”(jT(jU(Œ?https://docs.python.org/3/library/netrc.html#netrc.netrc.macros”j" t”bŒnumbers.Complex.imag”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/numbers.html#numbers.Complex.imag”j" t”bŒnumbers.Complex.real”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/numbers.html#numbers.Complex.real”j" t”bŒnumbers.Rational.denominator”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/numbers.html#numbers.Rational.denominator”j" t”bŒnumbers.Rational.numerator”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/numbers.html#numbers.Rational.numerator”j" t”bŒobject.__annotations__”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/datamodel.html#object.__annotations__”j" t”bŒobject.__class__”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/datamodel.html#object.__class__”j" t”bŒobject.__dict__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__dict__”j" t”bŒobject.__objclass__”j )�”(jT(jU(ŒFhttps://docs.python.org/3/reference/datamodel.html#object.__objclass__”j" t”bŒoptparse.Option.ACTIONS”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/optparse.html#optparse.Option.ACTIONS”j" t”bŒ$optparse.Option.ALWAYS_TYPED_ACTIONS”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/optparse.html#optparse.Option.ALWAYS_TYPED_ACTIONS”j" t”bŒoptparse.Option.STORE_ACTIONS”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/optparse.html#optparse.Option.STORE_ACTIONS”j" t”bŒoptparse.Option.TYPED_ACTIONS”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/optparse.html#optparse.Option.TYPED_ACTIONS”j" t”bŒoptparse.Option.TYPES”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/optparse.html#optparse.Option.TYPES”j" t”bŒoptparse.Option.TYPE_CHECKER”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/optparse.html#optparse.Option.TYPE_CHECKER”j" t”bŒoptparse.Option.action”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/optparse.html#optparse.Option.action”j" t”bŒoptparse.Option.callback”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/optparse.html#optparse.Option.callback”j" t”bŒoptparse.Option.callback_args”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/optparse.html#optparse.Option.callback_args”j" t”bŒoptparse.Option.callback_kwargs”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/optparse.html#optparse.Option.callback_kwargs”j" t”bŒoptparse.Option.choices”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/optparse.html#optparse.Option.choices”j" t”bŒoptparse.Option.const”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/optparse.html#optparse.Option.const”j" t”bŒoptparse.Option.default”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/optparse.html#optparse.Option.default”j" t”bŒoptparse.Option.dest”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/optparse.html#optparse.Option.dest”j" t”bŒoptparse.Option.help”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/optparse.html#optparse.Option.help”j" t”bŒoptparse.Option.metavar”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/optparse.html#optparse.Option.metavar”j" t”bŒoptparse.Option.nargs”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/optparse.html#optparse.Option.nargs”j" t”bŒoptparse.Option.type”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/optparse.html#optparse.Option.type”j" t”bŒos.DirEntry.name”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.DirEntry.name”j" t”bŒos.DirEntry.path”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.DirEntry.path”j" t”bŒos.sched_param.sched_priority”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/os.html#os.sched_param.sched_priority”j" t”bŒos.stat_result.st_atime”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/os.html#os.stat_result.st_atime”j" t”bŒos.stat_result.st_atime_ns”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/os.html#os.stat_result.st_atime_ns”j" t”bŒos.stat_result.st_birthtime”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/os.html#os.stat_result.st_birthtime”j" t”bŒos.stat_result.st_birthtime_ns”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/os.html#os.stat_result.st_birthtime_ns”j" t”bŒos.stat_result.st_blksize”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/os.html#os.stat_result.st_blksize”j" t”bŒos.stat_result.st_blocks”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/os.html#os.stat_result.st_blocks”j" t”bŒos.stat_result.st_creator”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/os.html#os.stat_result.st_creator”j" t”bŒos.stat_result.st_ctime”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/os.html#os.stat_result.st_ctime”j" t”bŒos.stat_result.st_ctime_ns”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/os.html#os.stat_result.st_ctime_ns”j" t”bŒos.stat_result.st_dev”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.html#os.stat_result.st_dev”j" t”bŒ!os.stat_result.st_file_attributes”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/os.html#os.stat_result.st_file_attributes”j" t”bŒos.stat_result.st_flags”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/os.html#os.stat_result.st_flags”j" t”bŒos.stat_result.st_fstype”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/os.html#os.stat_result.st_fstype”j" t”bŒos.stat_result.st_gen”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.html#os.stat_result.st_gen”j" t”bŒos.stat_result.st_gid”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.html#os.stat_result.st_gid”j" t”bŒos.stat_result.st_ino”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.html#os.stat_result.st_ino”j" t”bŒos.stat_result.st_mode”j )�”(jT(jU(Œ@https://docs.python.org/3/library/os.html#os.stat_result.st_mode”j" t”bŒos.stat_result.st_mtime”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/os.html#os.stat_result.st_mtime”j" t”bŒos.stat_result.st_mtime_ns”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/os.html#os.stat_result.st_mtime_ns”j" t”bŒos.stat_result.st_nlink”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/os.html#os.stat_result.st_nlink”j" t”bŒos.stat_result.st_rdev”j )�”(jT(jU(Œ@https://docs.python.org/3/library/os.html#os.stat_result.st_rdev”j" t”bŒos.stat_result.st_reparse_tag”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/os.html#os.stat_result.st_reparse_tag”j" t”bŒos.stat_result.st_rsize”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/os.html#os.stat_result.st_rsize”j" t”bŒos.stat_result.st_size”j )�”(jT(jU(Œ@https://docs.python.org/3/library/os.html#os.stat_result.st_size”j" t”bŒos.stat_result.st_type”j )�”(jT(jU(Œ@https://docs.python.org/3/library/os.html#os.stat_result.st_type”j" t”bŒos.stat_result.st_uid”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.html#os.stat_result.st_uid”j" t”bŒos.terminal_size.columns”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/os.html#os.terminal_size.columns”j" t”bŒos.terminal_size.lines”j )�”(jT(jU(Œ@https://docs.python.org/3/library/os.html#os.terminal_size.lines”j" t”bŒpathlib.Path.info”j )�”(jT(jU(Œ@https://docs.python.org/3/library/pathlib.html#pathlib.Path.info”j" t”bŒpathlib.PurePath.anchor”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.anchor”j" t”bŒpathlib.PurePath.drive”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.drive”j" t”bŒpathlib.PurePath.name”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.name”j" t”bŒpathlib.PurePath.parent”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.parent”j" t”bŒpathlib.PurePath.parents”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.parents”j" t”bŒpathlib.PurePath.parser”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.parser”j" t”bŒpathlib.PurePath.parts”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.parts”j" t”bŒpathlib.PurePath.root”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.root”j" t”bŒpathlib.PurePath.stem”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.stem”j" t”bŒpathlib.PurePath.suffix”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.suffix”j" t”bŒpathlib.PurePath.suffixes”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePath.suffixes”j" t”bŒpickle.Pickler.dispatch_table”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/pickle.html#pickle.Pickler.dispatch_table”j" t”bŒpickle.Pickler.fast”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/pickle.html#pickle.Pickler.fast”j" t”bŒplistlib.UID.data”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/plistlib.html#plistlib.UID.data”j" t”bŒproperty.__name__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/functions.html#property.__name__”j" t”bŒ+py_compile.PycInvalidationMode.CHECKED_HASH”j )�”(jT(jU(Œ]https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode.CHECKED_HASH”j" t”bŒ(py_compile.PycInvalidationMode.TIMESTAMP”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode.TIMESTAMP”j" t”bŒ-py_compile.PycInvalidationMode.UNCHECKED_HASH”j )�”(jT(jU(Œ_https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode.UNCHECKED_HASH”j" t”bŒpyclbr.Class.children”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/pyclbr.html#pyclbr.Class.children”j" t”bŒpyclbr.Class.file”j )�”(jT(jU(Œ?https://docs.python.org/3/library/pyclbr.html#pyclbr.Class.file”j" t”bŒpyclbr.Class.lineno”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Class.lineno”j" t”bŒpyclbr.Class.methods”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Class.methods”j" t”bŒpyclbr.Class.module”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Class.module”j" t”bŒpyclbr.Class.name”j )�”(jT(jU(Œ?https://docs.python.org/3/library/pyclbr.html#pyclbr.Class.name”j" t”bŒpyclbr.Class.parent”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Class.parent”j" t”bŒpyclbr.Class.super”j )�”(jT(jU(Œ@https://docs.python.org/3/library/pyclbr.html#pyclbr.Class.super”j" t”bŒpyclbr.Function.children”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.children”j" t”bŒpyclbr.Function.file”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.file”j" t”bŒpyclbr.Function.is_async”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.is_async”j" t”bŒpyclbr.Function.lineno”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.lineno”j" t”bŒpyclbr.Function.module”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.module”j" t”bŒpyclbr.Function.name”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.name”j" t”bŒpyclbr.Function.parent”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/pyclbr.html#pyclbr.Function.parent”j" t”bŒ range.start”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#range.start”j" t”bŒ range.step”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#range.step”j" t”bŒ range.stop”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#range.stop”j" t”bŒre.Match.endpos”j )�”(jT(jU(Œ9https://docs.python.org/3/library/re.html#re.Match.endpos”j" t”bŒre.Match.lastgroup”j )�”(jT(jU(Œhttps://docs.python.org/3/library/shlex.html#shlex.shlex.debug”j" t”bŒshlex.shlex.eof”j )�”(jT(jU(Œhttps://docs.python.org/3/library/shlex.html#shlex.shlex.token”j" t”bŒshlex.shlex.whitespace”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/shlex.html#shlex.shlex.whitespace”j" t”bŒshlex.shlex.whitespace_split”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/shlex.html#shlex.shlex.whitespace_split”j" t”bŒshlex.shlex.wordchars”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/shlex.html#shlex.shlex.wordchars”j" t”bŒ$shutil.rmtree.avoids_symlink_attacks”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/shutil.html#shutil.rmtree.avoids_symlink_attacks”j" t”bŒ slice.start”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ssl.html#ssl.SSLError.reason”j" t”bŒssl.SSLSession.has_ticket”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/ssl.html#ssl.SSLSession.has_ticket”j" t”bŒssl.SSLSession.id”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ssl.html#ssl.SSLSession.time”j" t”bŒssl.SSLSession.timeout”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ssl.html#ssl.SSLSession.timeout”j" t”bŒssl.SSLSocket.context”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.context”j" t”bŒssl.SSLSocket.server_hostname”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.server_hostname”j" t”bŒssl.SSLSocket.server_side”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.server_side”j" t”bŒssl.SSLSocket.session”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.session”j" t”bŒssl.SSLSocket.session_reused”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.session_reused”j" t”bŒ ssl.TLSVersion.MAXIMUM_SUPPORTED”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/ssl.html#ssl.TLSVersion.MAXIMUM_SUPPORTED”j" t”bŒ ssl.TLSVersion.MINIMUM_SUPPORTED”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/ssl.html#ssl.TLSVersion.MINIMUM_SUPPORTED”j" t”bŒssl.TLSVersion.SSLv3”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ssl.html#ssl.TLSVersion.SSLv3”j" t”bŒssl.TLSVersion.TLSv1”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ssl.html#ssl.TLSVersion.TLSv1”j" t”bŒssl.TLSVersion.TLSv1_1”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ssl.html#ssl.TLSVersion.TLSv1_1”j" t”bŒssl.TLSVersion.TLSv1_2”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ssl.html#ssl.TLSVersion.TLSv1_2”j" t”bŒssl.TLSVersion.TLSv1_3”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ssl.html#ssl.TLSVersion.TLSv1_3”j" t”bŒstatistics.NormalDist.mean”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.mean”j" t”bŒstatistics.NormalDist.median”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.median”j" t”bŒstatistics.NormalDist.mode”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.mode”j" t”bŒstatistics.NormalDist.stdev”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.stdev”j" t”bŒstatistics.NormalDist.variance”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.variance”j" t”bŒstring.Template.template”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/string.html#string.Template.template”j" t”bŒ+string.templatelib.Interpolation.conversion”j )�”(jT(jU(Œehttps://docs.python.org/3/library/string.templatelib.html#string.templatelib.Interpolation.conversion”j" t”bŒ+string.templatelib.Interpolation.expression”j )�”(jT(jU(Œehttps://docs.python.org/3/library/string.templatelib.html#string.templatelib.Interpolation.expression”j" t”bŒ,string.templatelib.Interpolation.format_spec”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/string.templatelib.html#string.templatelib.Interpolation.format_spec”j" t”bŒ&string.templatelib.Interpolation.value”j )�”(jT(jU(Œ`https://docs.python.org/3/library/string.templatelib.html#string.templatelib.Interpolation.value”j" t”bŒ*string.templatelib.Template.interpolations”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/string.templatelib.html#string.templatelib.Template.interpolations”j" t”bŒ#string.templatelib.Template.strings”j )�”(jT(jU(Œ]https://docs.python.org/3/library/string.templatelib.html#string.templatelib.Template.strings”j" t”bŒ"string.templatelib.Template.values”j )�”(jT(jU(Œ\https://docs.python.org/3/library/string.templatelib.html#string.templatelib.Template.values”j" t”bŒstruct.Struct.format”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/struct.html#struct.Struct.format”j" t”bŒstruct.Struct.size”j )�”(jT(jU(Œ@https://docs.python.org/3/library/struct.html#struct.Struct.size”j" t”bŒ!subprocess.CalledProcessError.cmd”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.cmd”j" t”bŒ$subprocess.CalledProcessError.output”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.output”j" t”bŒ(subprocess.CalledProcessError.returncode”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.returncode”j" t”bŒ$subprocess.CalledProcessError.stderr”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.stderr”j" t”bŒ$subprocess.CalledProcessError.stdout”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError.stdout”j" t”bŒ subprocess.CompletedProcess.args”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/subprocess.html#subprocess.CompletedProcess.args”j" t”bŒ&subprocess.CompletedProcess.returncode”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/subprocess.html#subprocess.CompletedProcess.returncode”j" t”bŒ"subprocess.CompletedProcess.stderr”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/subprocess.html#subprocess.CompletedProcess.stderr”j" t”bŒ"subprocess.CompletedProcess.stdout”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/subprocess.html#subprocess.CompletedProcess.stdout”j" t”bŒsubprocess.Popen.args”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/subprocess.html#subprocess.Popen.args”j" t”bŒsubprocess.Popen.pid”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/subprocess.html#subprocess.Popen.pid”j" t”bŒsubprocess.Popen.returncode”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/subprocess.html#subprocess.Popen.returncode”j" t”bŒsubprocess.Popen.stderr”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/subprocess.html#subprocess.Popen.stderr”j" t”bŒsubprocess.Popen.stdin”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/subprocess.html#subprocess.Popen.stdin”j" t”bŒsubprocess.Popen.stdout”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/subprocess.html#subprocess.Popen.stdout”j" t”bu(Œsubprocess.STARTUPINFO.dwFlags”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.dwFlags”j" t”bŒ subprocess.STARTUPINFO.hStdError”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.hStdError”j" t”bŒ subprocess.STARTUPINFO.hStdInput”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.hStdInput”j" t”bŒ!subprocess.STARTUPINFO.hStdOutput”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.hStdOutput”j" t”bŒ&subprocess.STARTUPINFO.lpAttributeList”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.lpAttributeList”j" t”bŒ"subprocess.STARTUPINFO.wShowWindow”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO.wShowWindow”j" t”bŒsubprocess.TimeoutExpired.cmd”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.cmd”j" t”bŒ subprocess.TimeoutExpired.output”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.output”j" t”bŒ subprocess.TimeoutExpired.stderr”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.stderr”j" t”bŒ subprocess.TimeoutExpired.stdout”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.stdout”j" t”bŒ!subprocess.TimeoutExpired.timeout”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/subprocess.html#subprocess.TimeoutExpired.timeout”j" t”bŒ#symtable.SymbolTableType.ANNOTATION”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/symtable.html#symtable.SymbolTableType.ANNOTATION”j" t”bŒsymtable.SymbolTableType.CLASS”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/symtable.html#symtable.SymbolTableType.CLASS”j" t”bŒ!symtable.SymbolTableType.FUNCTION”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/symtable.html#symtable.SymbolTableType.FUNCTION”j" t”bŒsymtable.SymbolTableType.MODULE”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/symtable.html#symtable.SymbolTableType.MODULE”j" t”bŒ#symtable.SymbolTableType.TYPE_ALIAS”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/symtable.html#symtable.SymbolTableType.TYPE_ALIAS”j" t”bŒ(symtable.SymbolTableType.TYPE_PARAMETERS”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/symtable.html#symtable.SymbolTableType.TYPE_PARAMETERS”j" t”bŒ&symtable.SymbolTableType.TYPE_VARIABLE”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/symtable.html#symtable.SymbolTableType.TYPE_VARIABLE”j" t”bŒ'sys._emscripten_info.emscripten_version”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/sys.html#sys._emscripten_info.emscripten_version”j" t”bŒsys._emscripten_info.pthreads”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/sys.html#sys._emscripten_info.pthreads”j" t”bŒsys._emscripten_info.runtime”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/sys.html#sys._emscripten_info.runtime”j" t”bŒ"sys._emscripten_info.shared_memory”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/sys.html#sys._emscripten_info.shared_memory”j" t”bŒsys.flags.bytes_warning”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/sys.html#sys.flags.bytes_warning”j" t”bŒ sys.flags.context_aware_warnings”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/sys.html#sys.flags.context_aware_warnings”j" t”bŒsys.flags.debug”j )�”(jT(jU(Œ:https://docs.python.org/3/library/sys.html#sys.flags.debug”j" t”bŒsys.flags.dev_mode”j )�”(jT(jU(Œ=https://docs.python.org/3/library/sys.html#sys.flags.dev_mode”j" t”bŒsys.flags.dont_write_bytecode”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/sys.html#sys.flags.dont_write_bytecode”j" t”bŒ sys.flags.gil”j )�”(jT(jU(Œ8https://docs.python.org/3/library/sys.html#sys.flags.gil”j" t”bŒsys.flags.hash_randomization”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/sys.html#sys.flags.hash_randomization”j" t”bŒsys.flags.ignore_environment”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/sys.html#sys.flags.ignore_environment”j" t”bŒsys.flags.inspect”j )�”(jT(jU(Œhttps://docs.python.org/3/library/sys.html#sys.flags.safe_path”j" t”bŒ sys.flags.thread_inherit_context”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/sys.html#sys.flags.thread_inherit_context”j" t”bŒsys.flags.utf8_mode”j )�”(jT(jU(Œ>https://docs.python.org/3/library/sys.html#sys.flags.utf8_mode”j" t”bŒsys.flags.verbose”j )�”(jT(jU(Œhttps://docs.python.org/3/library/sys.html#sys.hash_info.width”j" t”bŒsys.int_info.bits_per_digit”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/sys.html#sys.int_info.bits_per_digit”j" t”bŒ#sys.int_info.default_max_str_digits”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/sys.html#sys.int_info.default_max_str_digits”j" t”bŒsys.int_info.sizeof_digit”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/sys.html#sys.int_info.sizeof_digit”j" t”bŒ'sys.int_info.str_digits_check_threshold”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/sys.html#sys.int_info.str_digits_check_threshold”j" t”bŒsys.thread_info.lock”j )�”(jT(jU(Œ?https://docs.python.org/3/library/sys.html#sys.thread_info.lock”j" t”bŒsys.thread_info.name”j )�”(jT(jU(Œ?https://docs.python.org/3/library/sys.html#sys.thread_info.name”j" t”bŒsys.thread_info.version”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/sys.html#sys.thread_info.version”j" t”bŒtarfile.FilterError.tarinfo”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/tarfile.html#tarfile.FilterError.tarinfo”j" t”bŒtarfile.TarFile.errorlevel”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/tarfile.html#tarfile.TarFile.errorlevel”j" t”bŒ!tarfile.TarFile.extraction_filter”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extraction_filter”j" t”bŒtarfile.TarFile.pax_headers”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/tarfile.html#tarfile.TarFile.pax_headers”j" t”bŒtarfile.TarInfo.chksum”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.chksum”j" t”bŒtarfile.TarInfo.devmajor”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.devmajor”j" t”bŒtarfile.TarInfo.devminor”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.devminor”j" t”bŒtarfile.TarInfo.gid”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.gid”j" t”bŒtarfile.TarInfo.gname”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.gname”j" t”bŒtarfile.TarInfo.linkname”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.linkname”j" t”bŒtarfile.TarInfo.mode”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.mode”j" t”bŒtarfile.TarInfo.mtime”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.mtime”j" t”bŒtarfile.TarInfo.name”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.name”j" t”bŒtarfile.TarInfo.offset”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.offset”j" t”bŒtarfile.TarInfo.offset_data”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.offset_data”j" t”bŒtarfile.TarInfo.pax_headers”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.pax_headers”j" t”bŒtarfile.TarInfo.size”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.size”j" t”bŒtarfile.TarInfo.sparse”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.sparse”j" t”bŒtarfile.TarInfo.type”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.type”j" t”bŒtarfile.TarInfo.uid”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.uid”j" t”bŒtarfile.TarInfo.uname”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/tarfile.html#tarfile.TarInfo.uname”j" t”bŒ tempfile.TemporaryDirectory.name”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/tempfile.html#tempfile.TemporaryDirectory.name”j" t”bŒ%textwrap.TextWrapper.break_long_words”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.break_long_words”j" t”bŒ%textwrap.TextWrapper.break_on_hyphens”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.break_on_hyphens”j" t”bŒ$textwrap.TextWrapper.drop_whitespace”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.drop_whitespace”j" t”bŒ textwrap.TextWrapper.expand_tabs”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.expand_tabs”j" t”bŒ)textwrap.TextWrapper.fix_sentence_endings”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.fix_sentence_endings”j" t”bŒ#textwrap.TextWrapper.initial_indent”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.initial_indent”j" t”bŒtextwrap.TextWrapper.max_lines”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.max_lines”j" t”bŒ textwrap.TextWrapper.placeholder”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.placeholder”j" t”bŒ'textwrap.TextWrapper.replace_whitespace”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.replace_whitespace”j" t”bŒ&textwrap.TextWrapper.subsequent_indent”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.subsequent_indent”j" t”bŒtextwrap.TextWrapper.tabsize”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.tabsize”j" t”bŒtextwrap.TextWrapper.width”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.width”j" t”bŒthreading.Barrier.broken”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/threading.html#threading.Barrier.broken”j" t”bŒthreading.Barrier.n_waiting”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/threading.html#threading.Barrier.n_waiting”j" t”bŒthreading.Barrier.parties”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/threading.html#threading.Barrier.parties”j" t”bŒthreading.Thread.daemon”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/threading.html#threading.Thread.daemon”j" t”bŒthreading.Thread.ident”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/threading.html#threading.Thread.ident”j" t”bŒthreading.Thread.name”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/threading.html#threading.Thread.name”j" t”bŒthreading.Thread.native_id”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/threading.html#threading.Thread.native_id”j" t”bŒtime.struct_time.tm_gmtoff”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/time.html#time.struct_time.tm_gmtoff”j" t”bŒtime.struct_time.tm_hour”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/time.html#time.struct_time.tm_hour”j" t”bŒtime.struct_time.tm_isdst”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/time.html#time.struct_time.tm_isdst”j" t”bŒtime.struct_time.tm_mday”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/time.html#time.struct_time.tm_mday”j" t”bŒtime.struct_time.tm_min”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/time.html#time.struct_time.tm_min”j" t”bŒtime.struct_time.tm_mon”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/time.html#time.struct_time.tm_mon”j" t”bŒtime.struct_time.tm_sec”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/time.html#time.struct_time.tm_sec”j" t”bŒtime.struct_time.tm_wday”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/time.html#time.struct_time.tm_wday”j" t”bŒtime.struct_time.tm_yday”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/time.html#time.struct_time.tm_yday”j" t”bŒtime.struct_time.tm_year”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/time.html#time.struct_time.tm_year”j" t”bŒtime.struct_time.tm_zone”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/time.html#time.struct_time.tm_zone”j" t”bŒtkinter.Tk.children”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tkinter.html#tkinter.Tk.children”j" t”bŒtkinter.Tk.master”j )�”(jT(jU(Œ@https://docs.python.org/3/library/tkinter.html#tkinter.Tk.master”j" t”bŒ tkinter.Tk.tk”j )�”(jT(jU(Œhttps://docs.python.org/3/library/uuid.html#uuid.SafeUUID.safe”j" t”bŒuuid.SafeUUID.unknown”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/uuid.html#uuid.SafeUUID.unknown”j" t”bŒuuid.SafeUUID.unsafe”j )�”(jT(jU(Œ@https://docs.python.org/3/library/uuid.html#uuid.SafeUUID.unsafe”j" t”bŒuuid.UUID.bytes”j )�”(jT(jU(Œ;https://docs.python.org/3/library/uuid.html#uuid.UUID.bytes”j" t”bŒuuid.UUID.bytes_le”j )�”(jT(jU(Œ>https://docs.python.org/3/library/uuid.html#uuid.UUID.bytes_le”j" t”bŒuuid.UUID.clock_seq”j )�”(jT(jU(Œ?https://docs.python.org/3/library/uuid.html#uuid.UUID.clock_seq”j" t”bŒuuid.UUID.clock_seq_hi_variant”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/uuid.html#uuid.UUID.clock_seq_hi_variant”j" t”bŒuuid.UUID.clock_seq_low”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/uuid.html#uuid.UUID.clock_seq_low”j" t”bŒuuid.UUID.fields”j )�”(jT(jU(Œhttps://docs.python.org/3/library/uuid.html#uuid.UUID.time_low”j" t”bŒuuid.UUID.time_mid”j )�”(jT(jU(Œ>https://docs.python.org/3/library/uuid.html#uuid.UUID.time_mid”j" t”bŒ uuid.UUID.urn”j )�”(jT(jU(Œ9https://docs.python.org/3/library/uuid.html#uuid.UUID.urn”j" t”bŒuuid.UUID.variant”j )�”(jT(jU(Œ=https://docs.python.org/3/library/uuid.html#uuid.UUID.variant”j" t”bŒuuid.UUID.version”j )�”(jT(jU(Œ=https://docs.python.org/3/library/uuid.html#uuid.UUID.version”j" t”bŒweakref.finalize.alive”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/weakref.html#weakref.finalize.alive”j" t”bŒweakref.finalize.atexit”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/weakref.html#weakref.finalize.atexit”j" t”bŒweakref.ref.__callback__”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/weakref.html#weakref.ref.__callback__”j" t”bŒwebbrowser.controller.name”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/webbrowser.html#webbrowser.controller.name”j" t”bŒ'wsgiref.handlers.BaseHandler.error_body”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.error_body”j" t”bŒ*wsgiref.handlers.BaseHandler.error_headers”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.error_headers”j" t”bŒ)wsgiref.handlers.BaseHandler.error_status”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.error_status”j" t”bŒ)wsgiref.handlers.BaseHandler.http_version”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.http_version”j" t”bŒ*wsgiref.handlers.BaseHandler.origin_server”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.origin_server”j" t”bŒ'wsgiref.handlers.BaseHandler.os_environ”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.os_environ”j" t”bŒ,wsgiref.handlers.BaseHandler.server_software”j )�”(jT(jU(Œ[https://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.server_software”j" t”bŒ,wsgiref.handlers.BaseHandler.traceback_limit”j )�”(jT(jU(Œ[https://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.traceback_limit”j" t”bŒ.wsgiref.handlers.BaseHandler.wsgi_file_wrapper”j )�”(jT(jU(Œ]https://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.wsgi_file_wrapper”j" t”bŒ.wsgiref.handlers.BaseHandler.wsgi_multiprocess”j )�”(jT(jU(Œ]https://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.wsgi_multiprocess”j" t”bŒ-wsgiref.handlers.BaseHandler.wsgi_multithread”j )�”(jT(jU(Œ\https://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.wsgi_multithread”j" t”bŒ*wsgiref.handlers.BaseHandler.wsgi_run_once”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler.wsgi_run_once”j" t”bŒxml.dom.Attr.localName”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Attr.localName”j" t”bŒxml.dom.Attr.name”j )�”(jT(jU(Œ@https://docs.python.org/3/library/xml.dom.html#xml.dom.Attr.name”j" t”bŒxml.dom.Attr.prefix”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Attr.prefix”j" t”bŒxml.dom.Attr.value”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Attr.value”j" t”bŒxml.dom.Comment.data”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/xml.dom.html#xml.dom.Comment.data”j" t”bŒ xml.dom.Document.documentElement”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Document.documentElement”j" t”bŒxml.dom.DocumentType.entities”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.entities”j" t”bŒ#xml.dom.DocumentType.internalSubset”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.internalSubset”j" t”bŒxml.dom.DocumentType.name”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.name”j" t”bŒxml.dom.DocumentType.notations”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.notations”j" t”bŒxml.dom.DocumentType.publicId”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.publicId”j" t”bŒxml.dom.DocumentType.systemId”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/xml.dom.html#xml.dom.DocumentType.systemId”j" t”bŒxml.dom.Element.tagName”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Element.tagName”j" t”bŒxml.dom.NamedNodeMap.length”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/xml.dom.html#xml.dom.NamedNodeMap.length”j" t”bŒxml.dom.Node.attributes”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Node.attributes”j" t”bŒxml.dom.Node.childNodes”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Node.childNodes”j" t”bŒxml.dom.Node.firstChild”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Node.firstChild”j" t”bŒxml.dom.Node.lastChild”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Node.lastChild”j" t”bŒxml.dom.Node.localName”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Node.localName”j" t”bŒxml.dom.Node.namespaceURI”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Node.namespaceURI”j" t”bŒxml.dom.Node.nextSibling”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Node.nextSibling”j" t”bŒxml.dom.Node.nodeName”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Node.nodeName”j" t”bŒxml.dom.Node.nodeType”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Node.nodeType”j" t”bŒxml.dom.Node.nodeValue”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Node.nodeValue”j" t”bŒxml.dom.Node.parentNode”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Node.parentNode”j" t”bŒxml.dom.Node.prefix”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Node.prefix”j" t”bŒxml.dom.Node.previousSibling”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/xml.dom.html#xml.dom.Node.previousSibling”j" t”bŒxml.dom.NodeList.length”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/xml.dom.html#xml.dom.NodeList.length”j" t”bŒ"xml.dom.ProcessingInstruction.data”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/xml.dom.html#xml.dom.ProcessingInstruction.data”j" t”bŒ$xml.dom.ProcessingInstruction.target”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/xml.dom.html#xml.dom.ProcessingInstruction.target”j" t”bŒxml.dom.Text.data”j )�”(jT(jU(Œ@https://docs.python.org/3/library/xml.dom.html#xml.dom.Text.data”j" t”bŒ$xml.etree.ElementTree.Element.attrib”j )�”(jT(jU(Œahttps://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.attrib”j" t”bŒ!xml.etree.ElementTree.Element.tag”j )�”(jT(jU(Œ^https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.tag”j" t”bŒ"xml.etree.ElementTree.Element.tail”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.tail”j" t”bŒ"xml.etree.ElementTree.Element.text”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.text”j" t”bŒ%xml.etree.ElementTree.ParseError.code”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ParseError.code”j" t”bŒ)xml.etree.ElementTree.ParseError.position”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ParseError.position”j" t”bŒ!xml.parsers.expat.ExpatError.code”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ExpatError.code”j" t”bŒ#xml.parsers.expat.ExpatError.lineno”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ExpatError.lineno”j" t”bŒ#xml.parsers.expat.ExpatError.offset”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.ExpatError.offset”j" t”bŒ,xml.parsers.expat.xmlparser.CurrentByteIndex”j )�”(jT(jU(Œ[https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.CurrentByteIndex”j" t”bŒ/xml.parsers.expat.xmlparser.CurrentColumnNumber”j )�”(jT(jU(Œ^https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.CurrentColumnNumber”j" t”bŒ-xml.parsers.expat.xmlparser.CurrentLineNumber”j )�”(jT(jU(Œ\https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.CurrentLineNumber”j" t”bŒ*xml.parsers.expat.xmlparser.ErrorByteIndex”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ErrorByteIndex”j" t”bŒ%xml.parsers.expat.xmlparser.ErrorCode”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ErrorCode”j" t”bŒ-xml.parsers.expat.xmlparser.ErrorColumnNumber”j )�”(jT(jU(Œ\https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ErrorColumnNumber”j" t”bŒ+xml.parsers.expat.xmlparser.ErrorLineNumber”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ErrorLineNumber”j" t”bŒ'xml.parsers.expat.xmlparser.buffer_size”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.buffer_size”j" t”bŒ'xml.parsers.expat.xmlparser.buffer_text”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.buffer_text”j" t”bŒ'xml.parsers.expat.xmlparser.buffer_used”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.buffer_used”j" t”bŒ.xml.parsers.expat.xmlparser.ordered_attributes”j )�”(jT(jU(Œ]https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.ordered_attributes”j" t”bŒ0xml.parsers.expat.xmlparser.specified_attributes”j )�”(jT(jU(Œ_https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.specified_attributes”j" t”bŒxmlrpc.client.Binary.data”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Binary.data”j" t”bŒxmlrpc.client.Fault.faultCode”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Fault.faultCode”j" t”bŒxmlrpc.client.Fault.faultString”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Fault.faultString”j" t”bŒ#xmlrpc.client.ProtocolError.errcode”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolError.errcode”j" t”bŒ"xmlrpc.client.ProtocolError.errmsg”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolError.errmsg”j" t”bŒ#xmlrpc.client.ProtocolError.headers”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolError.headers”j" t”bŒxmlrpc.client.ProtocolError.url”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolError.url”j" t”bŒ2xmlrpc.server.SimpleXMLRPCRequestHandler.rpc_paths”j )�”(jT(jU(Œghttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCRequestHandler.rpc_paths”j" t”bŒzipfile.Path.name”j )�”(jT(jU(Œ@https://docs.python.org/3/library/zipfile.html#zipfile.Path.name”j" t”bŒzipfile.ZipFile.comment”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.comment”j" t”bŒzipfile.ZipFile.debug”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.debug”j" t”bŒzipfile.ZipFile.filename”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.filename”j" t”bŒzipfile.ZipInfo.CRC”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.CRC”j" t”bŒzipfile.ZipInfo.comment”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.comment”j" t”bŒzipfile.ZipInfo.compress_size”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.compress_size”j" t”bŒzipfile.ZipInfo.compress_type”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.compress_type”j" t”bŒzipfile.ZipInfo.create_system”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.create_system”j" t”bŒzipfile.ZipInfo.create_version”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.create_version”j" t”bŒzipfile.ZipInfo.date_time”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.date_time”j" t”bŒzipfile.ZipInfo.external_attr”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.external_attr”j" t”bŒzipfile.ZipInfo.extra”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.extra”j" t”bŒzipfile.ZipInfo.extract_version”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.extract_version”j" t”bŒzipfile.ZipInfo.file_size”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.file_size”j" t”bŒzipfile.ZipInfo.filename”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.filename”j" t”bŒzipfile.ZipInfo.flag_bits”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.flag_bits”j" t”bŒzipfile.ZipInfo.header_offset”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.header_offset”j" t”bŒzipfile.ZipInfo.internal_attr”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.internal_attr”j" t”bŒzipfile.ZipInfo.reserved”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.reserved”j" t”bŒzipfile.ZipInfo.volume”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.volume”j" t”bŒzipimport.zipimporter.archive”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.archive”j" t”bŒzipimport.zipimporter.prefix”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.prefix”j" t”bŒzlib.Decompress.eof”j )�”(jT(jU(Œ?https://docs.python.org/3/library/zlib.html#zlib.Decompress.eof”j" t”bŒzlib.Decompress.unconsumed_tail”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/zlib.html#zlib.Decompress.unconsumed_tail”j" t”bŒzlib.Decompress.unused_data”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/zlib.html#zlib.Decompress.unused_data”j" t”bŒzoneinfo.ZoneInfo.key”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.ZoneInfo.key”j" t”buŒ py:method”}”(ŒBaseException.add_note”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/exceptions.html#BaseException.add_note”j" t”bŒBaseException.with_traceback”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/exceptions.html#BaseException.with_traceback”j" t”bŒBaseExceptionGroup.derive”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/exceptions.html#BaseExceptionGroup.derive”j" t”bŒBaseExceptionGroup.split”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/exceptions.html#BaseExceptionGroup.split”j" t”bŒBaseExceptionGroup.subgroup”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/exceptions.html#BaseExceptionGroup.subgroup”j" t”bŒ'__future__._Feature.getMandatoryRelease”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/__future__.html#future__._Feature.getMandatoryRelease”j" t”bŒ&__future__._Feature.getOptionalRelease”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/__future__.html#future__._Feature.getOptionalRelease”j" t”bŒ_thread.lock.acquire”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/_thread.html#thread.lock.acquire”j" t”bŒ_thread.lock.locked”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/_thread.html#thread.lock.locked”j" t”bŒ_thread.lock.release”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/_thread.html#thread.lock.release”j" t”bŒ$_tkinter.Widget.tk.createfilehandler”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/tkinter.html#tkinter.Widget.tk.createfilehandler”j" t”bŒ$_tkinter.Widget.tk.deletefilehandler”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/tkinter.html#tkinter.Widget.tk.deletefilehandler”j" t”bŒabc.ABCMeta.__subclasshook__”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/abc.html#abc.ABCMeta.__subclasshook__”j" t”bŒabc.ABCMeta.register”j )�”(jT(jU(Œ?https://docs.python.org/3/library/abc.html#abc.ABCMeta.register”j" t”bŒagen.__anext__”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/expressions.html#agen.__anext__”j" t”bŒ agen.aclose”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/expressions.html#agen.aclose”j" t”bŒ agen.asend”j )�”(jT(jU(Œ?https://docs.python.org/3/reference/expressions.html#agen.asend”j" t”bŒ agen.athrow”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/expressions.html#agen.athrow”j" t”bŒ!annotationlib.ForwardRef.evaluate”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/annotationlib.html#annotationlib.ForwardRef.evaluate”j" t”bŒargparse.Action.__call__”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/argparse.html#argparse.Action.__call__”j" t”bŒargparse.Action.format_usage”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/argparse.html#argparse.Action.format_usage”j" t”bŒ$argparse.ArgumentParser.add_argument”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument”j" t”bŒ*argparse.ArgumentParser.add_argument_group”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument_group”j" t”bŒ4argparse.ArgumentParser.add_mutually_exclusive_group”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_mutually_exclusive_group”j" t”bŒ&argparse.ArgumentParser.add_subparsers”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_subparsers”j" t”bŒ0argparse.ArgumentParser.convert_arg_line_to_args”j )�”(jT(jU(Œ`https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.convert_arg_line_to_args”j" t”bŒargparse.ArgumentParser.error”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.error”j" t”bŒargparse.ArgumentParser.exit”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.exit”j" t”bŒ#argparse.ArgumentParser.format_help”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.format_help”j" t”bŒ$argparse.ArgumentParser.format_usage”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.format_usage”j" t”bŒ#argparse.ArgumentParser.get_default”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.get_default”j" t”bŒ"argparse.ArgumentParser.parse_args”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_args”j" t”bŒ-argparse.ArgumentParser.parse_intermixed_args”j )�”(jT(jU(Œ]https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_intermixed_args”j" t”bŒ(argparse.ArgumentParser.parse_known_args”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_known_args”j" t”bŒ3argparse.ArgumentParser.parse_known_intermixed_args”j )�”(jT(jU(Œchttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_known_intermixed_args”j" t”bŒ"argparse.ArgumentParser.print_help”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.print_help”j" t”bŒ#argparse.ArgumentParser.print_usage”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.print_usage”j" t”bŒ argparse.ArgumentParser.register”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.register”j" t”bŒ$argparse.ArgumentParser.set_defaults”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.set_defaults”j" t”bŒarray.array.append”j )�”(jT(jU(Œ?https://docs.python.org/3/library/array.html#array.array.append”j" t”bŒarray.array.buffer_info”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/array.html#array.array.buffer_info”j" t”bŒarray.array.byteswap”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/array.html#array.array.byteswap”j" t”bŒarray.array.clear”j )�”(jT(jU(Œ>https://docs.python.org/3/library/array.html#array.array.clear”j" t”bŒarray.array.count”j )�”(jT(jU(Œ>https://docs.python.org/3/library/array.html#array.array.count”j" t”bŒarray.array.extend”j )�”(jT(jU(Œ?https://docs.python.org/3/library/array.html#array.array.extend”j" t”bŒarray.array.frombytes”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/array.html#array.array.frombytes”j" t”bŒarray.array.fromfile”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/array.html#array.array.fromfile”j" t”bŒarray.array.fromlist”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/array.html#array.array.fromlist”j" t”bŒarray.array.fromunicode”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/array.html#array.array.fromunicode”j" t”bŒarray.array.index”j )�”(jT(jU(Œ>https://docs.python.org/3/library/array.html#array.array.index”j" t”bŒarray.array.insert”j )�”(jT(jU(Œ?https://docs.python.org/3/library/array.html#array.array.insert”j" t”bŒarray.array.pop”j )�”(jT(jU(Œhttps://docs.python.org/3/library/bdb.html#bdb.Bdb.clear_break”j" t”bŒbdb.Bdb.disable_current_event”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/bdb.html#bdb.Bdb.disable_current_event”j" t”bŒbdb.Bdb.dispatch_call”j )�”(jT(jU(Œ@https://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_call”j" t”bŒbdb.Bdb.dispatch_exception”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_exception”j" t”bŒbdb.Bdb.dispatch_line”j )�”(jT(jU(Œ@https://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_line”j" t”bŒbdb.Bdb.dispatch_return”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/bdb.html#bdb.Bdb.dispatch_return”j" t”bŒbdb.Bdb.do_clear”j )�”(jT(jU(Œ;https://docs.python.org/3/library/bdb.html#bdb.Bdb.do_clear”j" t”bŒbdb.Bdb.format_stack_entry”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/bdb.html#bdb.Bdb.format_stack_entry”j" t”bŒbdb.Bdb.get_all_breaks”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/bdb.html#bdb.Bdb.get_all_breaks”j" t”bŒbdb.Bdb.get_bpbynumber”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/bdb.html#bdb.Bdb.get_bpbynumber”j" t”bŒbdb.Bdb.get_break”j )�”(jT(jU(Œhttps://docs.python.org/3/library/bdb.html#bdb.Bdb.start_trace”j" t”bŒbdb.Bdb.stop_here”j )�”(jT(jU(Œhttps://docs.python.org/3/library/bdb.html#bdb.Bdb.user_return”j" t”bŒbdb.Breakpoint.bpformat”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.bpformat”j" t”bŒbdb.Breakpoint.bpprint”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.bpprint”j" t”bŒbdb.Breakpoint.deleteMe”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.deleteMe”j" t”bŒbdb.Breakpoint.disable”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/bdb.html#bdb.Breakpoint.disable”j" t”bŒbdb.Breakpoint.enable”j )�”(jT(jU(Œ@https://docs.python.org/3/library/bdb.html#bdb.Breakpoint.enable”j" t”bŒbytearray.append”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#bytearray.append”j" t”bŒbytearray.capitalize”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/stdtypes.html#bytearray.capitalize”j" t”bŒbytearray.center”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#bytearray.center”j" t”bŒbytearray.clear”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#bytearray.clear”j" t”bŒbytearray.copy”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#bytearray.copy”j" t”bŒbytearray.count”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#bytearray.count”j" t”bŒbytearray.decode”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#bytearray.decode”j" t”bŒbytearray.endswith”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/stdtypes.html#bytearray.endswith”j" t”bŒbytearray.expandtabs”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/stdtypes.html#bytearray.expandtabs”j" t”bŒbytearray.extend”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#bytearray.extend”j" t”bŒbytearray.find”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#bytearray.find”j" t”bŒbytearray.fromhex”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#bytearray.fromhex”j" t”bŒ bytearray.hex”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#bytearray.hex”j" t”bŒbytearray.index”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#bytearray.index”j" t”bŒbytearray.insert”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#bytearray.insert”j" t”bŒbytearray.isalnum”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#bytearray.isalnum”j" t”bŒbytearray.isalpha”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#bytearray.isalpha”j" t”bŒbytearray.isascii”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#bytearray.isascii”j" t”bŒbytearray.isdigit”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#bytearray.isdigit”j" t”bŒbytearray.islower”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#bytearray.islower”j" t”bŒbytearray.isspace”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#bytearray.isspace”j" t”bŒbytearray.istitle”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#bytearray.istitle”j" t”bŒbytearray.isupper”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#bytearray.isupper”j" t”bŒbytearray.join”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#bytearray.join”j" t”bŒbytearray.ljust”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#bytearray.ljust”j" t”bŒbytearray.lower”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#bytearray.lower”j" t”bŒbytearray.lstrip”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#bytearray.lstrip”j" t”bŒbytearray.maketrans”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/stdtypes.html#bytearray.maketrans”j" t”bŒbytearray.partition”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/stdtypes.html#bytearray.partition”j" t”bŒ bytearray.pop”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#bytearray.pop”j" t”bŒbytearray.remove”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#bytearray.remove”j" t”bŒbytearray.removeprefix”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/stdtypes.html#bytearray.removeprefix”j" t”bŒbytearray.removesuffix”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/stdtypes.html#bytearray.removesuffix”j" t”bŒbytearray.replace”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#bytearray.replace”j" t”bŒbytearray.resize”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#bytearray.resize”j" t”bŒbytearray.reverse”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#bytearray.reverse”j" t”bŒbytearray.rfind”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#bytearray.rfind”j" t”bŒbytearray.rindex”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#bytearray.rindex”j" t”bŒbytearray.rjust”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#bytearray.rjust”j" t”bŒbytearray.rpartition”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/stdtypes.html#bytearray.rpartition”j" t”bŒbytearray.rsplit”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#bytearray.rsplit”j" t”bŒbytearray.rstrip”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#bytearray.rstrip”j" t”bŒbytearray.split”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#bytearray.split”j" t”bŒbytearray.splitlines”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/stdtypes.html#bytearray.splitlines”j" t”bŒbytearray.startswith”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/stdtypes.html#bytearray.startswith”j" t”bŒbytearray.strip”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#bytearray.strip”j" t”bŒbytearray.swapcase”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/stdtypes.html#bytearray.swapcase”j" t”bŒbytearray.title”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#bytearray.title”j" t”bŒbytearray.translate”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/stdtypes.html#bytearray.translate”j" t”bŒbytearray.upper”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#bytearray.upper”j" t”bŒbytearray.zfill”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#bytearray.zfill”j" t”bŒbytes.capitalize”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#bytes.capitalize”j" t”bŒ bytes.center”j )�”(jT(jU(Œhttps://docs.python.org/3/library/stdtypes.html#bytes.endswith”j" t”bŒbytes.expandtabs”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#bytes.expandtabs”j" t”bŒ bytes.find”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#bytes.find”j" t”bŒ bytes.fromhex”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#bytes.fromhex”j" t”bŒ bytes.hex”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stdtypes.html#bytes.hex”j" t”bŒ bytes.index”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#bytes.index”j" t”bŒ bytes.isalnum”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#bytes.isalnum”j" t”bŒ bytes.isalpha”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#bytes.isalpha”j" t”bŒ bytes.isascii”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#bytes.isascii”j" t”bŒ bytes.isdigit”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#bytes.isdigit”j" t”bŒ bytes.islower”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#bytes.islower”j" t”bŒ bytes.isspace”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#bytes.isspace”j" t”bŒ bytes.istitle”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#bytes.istitle”j" t”bŒ bytes.isupper”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#bytes.isupper”j" t”bŒ bytes.join”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#bytes.join”j" t”bŒ bytes.ljust”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#bytes.ljust”j" t”bŒ bytes.lower”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#bytes.lower”j" t”bŒ bytes.lstrip”j )�”(jT(jU(Œhttps://docs.python.org/3/library/stdtypes.html#bytes.swapcase”j" t”bŒ bytes.title”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#bytes.title”j" t”bŒbytes.translate”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#bytes.translate”j" t”bŒ bytes.upper”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#bytes.upper”j" t”bŒ bytes.zfill”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#bytes.zfill”j" t”bŒbz2.BZ2Compressor.compress”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/bz2.html#bz2.BZ2Compressor.compress”j" t”bŒbz2.BZ2Compressor.flush”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/bz2.html#bz2.BZ2Compressor.flush”j" t”bŒbz2.BZ2Decompressor.decompress”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor.decompress”j" t”bŒbz2.BZ2File.fileno”j )�”(jT(jU(Œ=https://docs.python.org/3/library/bz2.html#bz2.BZ2File.fileno”j" t”bŒbz2.BZ2File.peek”j )�”(jT(jU(Œ;https://docs.python.org/3/library/bz2.html#bz2.BZ2File.peek”j" t”bŒbz2.BZ2File.read1”j )�”(jT(jU(Œhttps://docs.python.org/3/library/dbm.html#dbm.ndbm.ndbm.close”j" t”bŒdbm.sqlite3.sqlite3.close”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/dbm.html#dbm.sqlite3.sqlite3.close”j" t”bŒdecimal.Context.Etiny”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/decimal.html#decimal.Context.Etiny”j" t”bŒdecimal.Context.Etop”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/decimal.html#decimal.Context.Etop”j" t”bŒdecimal.Context.abs”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/decimal.html#decimal.Context.abs”j" t”bŒdecimal.Context.add”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/decimal.html#decimal.Context.add”j" t”bŒdecimal.Context.canonical”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Context.canonical”j" t”bŒdecimal.Context.clear_flags”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Context.clear_flags”j" t”bŒdecimal.Context.clear_traps”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Context.clear_traps”j" t”bŒdecimal.Context.compare”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/decimal.html#decimal.Context.compare”j" t”bŒdecimal.Context.compare_signal”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/decimal.html#decimal.Context.compare_signal”j" t”bŒdecimal.Context.compare_total”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/decimal.html#decimal.Context.compare_total”j" t”bŒ!decimal.Context.compare_total_mag”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/decimal.html#decimal.Context.compare_total_mag”j" t”bŒdecimal.Context.copy”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/decimal.html#decimal.Context.copy”j" t”bŒdecimal.Context.copy_abs”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/decimal.html#decimal.Context.copy_abs”j" t”bŒdecimal.Context.copy_decimal”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/decimal.html#decimal.Context.copy_decimal”j" t”bŒdecimal.Context.copy_negate”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Context.copy_negate”j" t”bŒdecimal.Context.copy_sign”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Context.copy_sign”j" t”bŒdecimal.Context.create_decimal”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/decimal.html#decimal.Context.create_decimal”j" t”bŒ)decimal.Context.create_decimal_from_float”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/decimal.html#decimal.Context.create_decimal_from_float”j" t”bŒdecimal.Context.divide”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/decimal.html#decimal.Context.divide”j" t”bŒdecimal.Context.divide_int”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/decimal.html#decimal.Context.divide_int”j" t”bŒdecimal.Context.divmod”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/decimal.html#decimal.Context.divmod”j" t”bŒdecimal.Context.exp”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/decimal.html#decimal.Context.exp”j" t”bŒdecimal.Context.fma”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/decimal.html#decimal.Context.fma”j" t”bŒdecimal.Context.is_canonical”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_canonical”j" t”bŒdecimal.Context.is_finite”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_finite”j" t”bŒdecimal.Context.is_infinite”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_infinite”j" t”bŒdecimal.Context.is_nan”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_nan”j" t”bŒdecimal.Context.is_normal”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_normal”j" t”bŒdecimal.Context.is_qnan”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_qnan”j" t”bŒdecimal.Context.is_signed”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_signed”j" t”bŒdecimal.Context.is_snan”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_snan”j" t”bŒdecimal.Context.is_subnormal”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_subnormal”j" t”bŒdecimal.Context.is_zero”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/decimal.html#decimal.Context.is_zero”j" t”bŒdecimal.Context.ln”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/decimal.html#decimal.Context.ln”j" t”bŒdecimal.Context.log10”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/decimal.html#decimal.Context.log10”j" t”bŒdecimal.Context.logb”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/decimal.html#decimal.Context.logb”j" t”bŒdecimal.Context.logical_and”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Context.logical_and”j" t”bŒdecimal.Context.logical_invert”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/decimal.html#decimal.Context.logical_invert”j" t”bŒdecimal.Context.logical_or”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/decimal.html#decimal.Context.logical_or”j" t”bŒdecimal.Context.logical_xor”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Context.logical_xor”j" t”bŒdecimal.Context.max”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/decimal.html#decimal.Context.max”j" t”bŒdecimal.Context.max_mag”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/decimal.html#decimal.Context.max_mag”j" t”bŒdecimal.Context.min”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/decimal.html#decimal.Context.min”j" t”bŒdecimal.Context.min_mag”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/decimal.html#decimal.Context.min_mag”j" t”bŒdecimal.Context.minus”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/decimal.html#decimal.Context.minus”j" t”bŒdecimal.Context.multiply”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/decimal.html#decimal.Context.multiply”j" t”bŒdecimal.Context.next_minus”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/decimal.html#decimal.Context.next_minus”j" t”bŒdecimal.Context.next_plus”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Context.next_plus”j" t”bŒdecimal.Context.next_toward”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Context.next_toward”j" t”bŒdecimal.Context.normalize”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Context.normalize”j" t”bŒdecimal.Context.number_class”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/decimal.html#decimal.Context.number_class”j" t”bŒdecimal.Context.plus”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/decimal.html#decimal.Context.plus”j" t”bŒdecimal.Context.power”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/decimal.html#decimal.Context.power”j" t”bŒdecimal.Context.quantize”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/decimal.html#decimal.Context.quantize”j" t”bŒdecimal.Context.radix”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/decimal.html#decimal.Context.radix”j" t”bŒdecimal.Context.remainder”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Context.remainder”j" t”bŒdecimal.Context.remainder_near”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/decimal.html#decimal.Context.remainder_near”j" t”bŒdecimal.Context.rotate”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/decimal.html#decimal.Context.rotate”j" t”bŒdecimal.Context.same_quantum”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/decimal.html#decimal.Context.same_quantum”j" t”bŒdecimal.Context.scaleb”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/decimal.html#decimal.Context.scaleb”j" t”bŒdecimal.Context.shift”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/decimal.html#decimal.Context.shift”j" t”bŒdecimal.Context.sqrt”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/decimal.html#decimal.Context.sqrt”j" t”bŒdecimal.Context.subtract”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/decimal.html#decimal.Context.subtract”j" t”bŒdecimal.Context.to_eng_string”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/decimal.html#decimal.Context.to_eng_string”j" t”bŒ!decimal.Context.to_integral_exact”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/decimal.html#decimal.Context.to_integral_exact”j" t”bŒdecimal.Context.to_sci_string”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/decimal.html#decimal.Context.to_sci_string”j" t”bŒdecimal.Decimal.adjusted”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.adjusted”j" t”bŒ decimal.Decimal.as_integer_ratio”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.as_integer_ratio”j" t”bŒdecimal.Decimal.as_tuple”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.as_tuple”j" t”bŒdecimal.Decimal.canonical”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.canonical”j" t”bŒdecimal.Decimal.compare”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.compare”j" t”bŒdecimal.Decimal.compare_signal”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.compare_signal”j" t”bŒdecimal.Decimal.compare_total”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.compare_total”j" t”bŒ!decimal.Decimal.compare_total_mag”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.compare_total_mag”j" t”bŒdecimal.Decimal.conjugate”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.conjugate”j" t”bŒdecimal.Decimal.copy_abs”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.copy_abs”j" t”bŒdecimal.Decimal.copy_negate”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.copy_negate”j" t”bŒdecimal.Decimal.copy_sign”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.copy_sign”j" t”bŒdecimal.Decimal.exp”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.exp”j" t”bŒdecimal.Decimal.fma”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.fma”j" t”bŒdecimal.Decimal.from_float”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.from_float”j" t”bŒdecimal.Decimal.from_number”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.from_number”j" t”bŒdecimal.Decimal.is_canonical”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_canonical”j" t”bŒdecimal.Decimal.is_finite”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_finite”j" t”bŒdecimal.Decimal.is_infinite”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_infinite”j" t”bŒdecimal.Decimal.is_nan”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_nan”j" t”bŒdecimal.Decimal.is_normal”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_normal”j" t”bŒdecimal.Decimal.is_qnan”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_qnan”j" t”bŒdecimal.Decimal.is_signed”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_signed”j" t”bŒdecimal.Decimal.is_snan”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_snan”j" t”bŒdecimal.Decimal.is_subnormal”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_subnormal”j" t”bŒdecimal.Decimal.is_zero”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.is_zero”j" t”bŒdecimal.Decimal.ln”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.ln”j" t”bŒdecimal.Decimal.log10”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.log10”j" t”bŒdecimal.Decimal.logb”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/decimal.html#decimal.Decimal.logb”j" t”bŒdecimal.Decimal.logical_and”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_and”j" t”bŒdecimal.Decimal.logical_invert”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_invert”j" t”bŒdecimal.Decimal.logical_or”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_or”j" t”bŒdecimal.Decimal.logical_xor”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.logical_xor”j" t”bŒdecimal.Decimal.max”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.max”j" t”bŒdecimal.Decimal.max_mag”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.max_mag”j" t”bŒdecimal.Decimal.min”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.min”j" t”bŒdecimal.Decimal.min_mag”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.min_mag”j" t”bŒdecimal.Decimal.next_minus”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.next_minus”j" t”bŒdecimal.Decimal.next_plus”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.next_plus”j" t”bŒdecimal.Decimal.next_toward”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.next_toward”j" t”bŒdecimal.Decimal.normalize”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.normalize”j" t”bŒdecimal.Decimal.number_class”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.number_class”j" t”bŒdecimal.Decimal.quantize”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.quantize”j" t”bŒdecimal.Decimal.radix”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.radix”j" t”bŒdecimal.Decimal.remainder_near”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.remainder_near”j" t”bŒdecimal.Decimal.rotate”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.rotate”j" t”bŒdecimal.Decimal.same_quantum”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.same_quantum”j" t”bŒdecimal.Decimal.scaleb”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.scaleb”j" t”bŒdecimal.Decimal.shift”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.shift”j" t”bŒdecimal.Decimal.sqrt”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/decimal.html#decimal.Decimal.sqrt”j" t”bŒdecimal.Decimal.to_eng_string”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.to_eng_string”j" t”bŒdecimal.Decimal.to_integral”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.to_integral”j" t”bŒ!decimal.Decimal.to_integral_exact”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.to_integral_exact”j" t”bŒ!decimal.Decimal.to_integral_value”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/decimal.html#decimal.Decimal.to_integral_value”j" t”bŒ dict.clear”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#dict.clear”j" t”bŒ dict.copy”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stdtypes.html#dict.copy”j" t”bŒ dict.fromkeys”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#dict.fromkeys”j" t”bŒdict.get”j )�”(jT(jU(Œ8https://docs.python.org/3/library/stdtypes.html#dict.get”j" t”bŒ dict.items”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#dict.items”j" t”bŒ dict.keys”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stdtypes.html#dict.keys”j" t”bŒdict.pop”j )�”(jT(jU(Œ8https://docs.python.org/3/library/stdtypes.html#dict.pop”j" t”bŒ dict.popitem”j )�”(jT(jU(Œhttps://docs.python.org/3/library/enum.html#enum.Enum.__init__”j" t”bŒenum.Enum.__init_subclass__”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/enum.html#enum.Enum.__init_subclass__”j" t”bŒenum.Enum.__new__”j )�”(jT(jU(Œ=https://docs.python.org/3/library/enum.html#enum.Enum.__new__”j" t”bŒenum.Enum.__repr__”j )�”(jT(jU(Œ>https://docs.python.org/3/library/enum.html#enum.Enum.__repr__”j" t”bŒenum.Enum.__str__”j )�”(jT(jU(Œ=https://docs.python.org/3/library/enum.html#enum.Enum.__str__”j" t”bŒenum.Enum._add_alias_”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/enum.html#enum.Enum._add_alias_”j" t”bŒenum.Enum._add_value_alias_”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/enum.html#enum.Enum._add_value_alias_”j" t”bŒenum.Enum._generate_next_value_”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/enum.html#enum.Enum._generate_next_value_”j" t”bŒenum.Enum._missing_”j )�”(jT(jU(Œ?https://docs.python.org/3/library/enum.html#enum.Enum._missing_”j" t”bŒenum.EnumType.__call__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/enum.html#enum.EnumType.__call__”j" t”bŒenum.EnumType.__contains__”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/enum.html#enum.EnumType.__contains__”j" t”bŒenum.EnumType.__dir__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/enum.html#enum.EnumType.__dir__”j" t”bŒenum.EnumType.__getitem__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/enum.html#enum.EnumType.__getitem__”j" t”bŒenum.EnumType.__iter__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/enum.html#enum.EnumType.__iter__”j" t”bŒenum.EnumType.__len__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/enum.html#enum.EnumType.__len__”j" t”bŒenum.EnumType.__reversed__”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/enum.html#enum.EnumType.__reversed__”j" t”bŒenum.Flag.__and__”j )�”(jT(jU(Œ=https://docs.python.org/3/library/enum.html#enum.Flag.__and__”j" t”bŒenum.Flag.__contains__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/enum.html#enum.Flag.__contains__”j" t”bŒenum.Flag.__or__”j )�”(jT(jU(Œhttps://docs.python.org/3/reference/datamodel.html#frame.clear”j" t”bŒfrozenset.copy”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#frozenset.copy”j" t”bŒfrozenset.difference”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/stdtypes.html#frozenset.difference”j" t”bŒfrozenset.intersection”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/stdtypes.html#frozenset.intersection”j" t”bŒfrozenset.isdisjoint”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/stdtypes.html#frozenset.isdisjoint”j" t”bŒfrozenset.issubset”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/stdtypes.html#frozenset.issubset”j" t”bŒfrozenset.issuperset”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/stdtypes.html#frozenset.issuperset”j" t”bŒfrozenset.symmetric_difference”j )�”(jT(jU(•ŒNhttps://docs.python.org/3/library/stdtypes.html#frozenset.symmetric_difference”j" t”bŒfrozenset.union”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#frozenset.union”j" t”bŒftplib.FTP.abort”j )�”(jT(jU(Œ>https://docs.python.org/3/library/ftplib.html#ftplib.FTP.abort”j" t”bŒftplib.FTP.close”j )�”(jT(jU(Œ>https://docs.python.org/3/library/ftplib.html#ftplib.FTP.close”j" t”bŒftplib.FTP.connect”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ftplib.html#ftplib.FTP.connect”j" t”bŒftplib.FTP.cwd”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ftplib.html#ftplib.FTP.login”j" t”bŒftplib.FTP.mkd”j )�”(jT(jU(Œhttps://docs.python.org/3/library/gzip.html#gzip.GzipFile.peek”j" t”bŒhashlib.hash.copy”j )�”(jT(jU(Œ@https://docs.python.org/3/library/hashlib.html#hashlib.hash.copy”j" t”bŒhashlib.hash.digest”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/hashlib.html#hashlib.hash.digest”j" t”bŒhashlib.hash.hexdigest”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/hashlib.html#hashlib.hash.hexdigest”j" t”bŒhashlib.hash.update”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/hashlib.html#hashlib.hash.update”j" t”bŒhashlib.shake.digest”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/hashlib.html#hashlib.shake.digest”j" t”bŒhashlib.shake.hexdigest”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/hashlib.html#hashlib.shake.hexdigest”j" t”bŒhmac.HMAC.copy”j )�”(jT(jU(Œ:https://docs.python.org/3/library/hmac.html#hmac.HMAC.copy”j" t”bŒhmac.HMAC.digest”j )�”(jT(jU(Œhttps://docs.python.org/3/library/stdtypes.html#int.bit_length”j" t”bŒint.from_bytes”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#int.from_bytes”j" t”bŒint.is_integer”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#int.is_integer”j" t”bŒ int.to_bytes”j )�”(jT(jU(Œhttps://docs.python.org/3/library/io.html#io.BytesIO.getbuffer”j" t”bŒio.BytesIO.getvalue”j )�”(jT(jU(Œ=https://docs.python.org/3/library/io.html#io.BytesIO.getvalue”j" t”bŒio.BytesIO.read1”j )�”(jT(jU(Œ:https://docs.python.org/3/library/io.html#io.BytesIO.read1”j" t”bŒio.BytesIO.readinto1”j )�”(jT(jU(Œ>https://docs.python.org/3/library/io.html#io.BytesIO.readinto1”j" t”bŒio.IOBase.__del__”j )�”(jT(jU(Œ;https://docs.python.org/3/library/io.html#io.IOBase.__del__”j" t”bŒio.IOBase.close”j )�”(jT(jU(Œ9https://docs.python.org/3/library/io.html#io.IOBase.close”j" t”bŒio.IOBase.fileno”j )�”(jT(jU(Œ:https://docs.python.org/3/library/io.html#io.IOBase.fileno”j" t”bŒio.IOBase.flush”j )�”(jT(jU(Œ9https://docs.python.org/3/library/io.html#io.IOBase.flush”j" t”bŒio.IOBase.isatty”j )�”(jT(jU(Œ:https://docs.python.org/3/library/io.html#io.IOBase.isatty”j" t”bŒio.IOBase.readable”j )�”(jT(jU(Œhttps://docs.python.org/3/library/io.html#io.IOBase.writelines”j" t”bŒio.RawIOBase.read”j )�”(jT(jU(Œ;https://docs.python.org/3/library/io.html#io.RawIOBase.read”j" t”bŒio.RawIOBase.readall”j )�”(jT(jU(Œ>https://docs.python.org/3/library/io.html#io.RawIOBase.readall”j" t”bŒio.RawIOBase.readinto”j )�”(jT(jU(Œ?https://docs.python.org/3/library/io.html#io.RawIOBase.readinto”j" t”bŒio.RawIOBase.write”j )�”(jT(jU(Œhttps://docs.python.org/3/library/io.html#io.StringIO.getvalue”j" t”bŒio.TextIOBase.detach”j )�”(jT(jU(Œ>https://docs.python.org/3/library/io.html#io.TextIOBase.detach”j" t”bŒio.TextIOBase.read”j )�”(jT(jU(Œhttps://docs.python.org/3/library/lzma.html#lzma.LZMAFile.peek”j" t”bŒmailbox.Babyl.get_file”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mailbox.html#mailbox.Babyl.get_file”j" t”bŒmailbox.Babyl.get_labels”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/mailbox.html#mailbox.Babyl.get_labels”j" t”bŒmailbox.Babyl.lock”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/mailbox.html#mailbox.Babyl.lock”j" t”bŒmailbox.Babyl.unlock”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/mailbox.html#mailbox.Babyl.unlock”j" t”bŒmailbox.BabylMessage.add_label”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.add_label”j" t”bŒmailbox.BabylMessage.get_labels”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.get_labels”j" t”bŒ mailbox.BabylMessage.get_visible”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.get_visible”j" t”bŒ!mailbox.BabylMessage.remove_label”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.remove_label”j" t”bŒmailbox.BabylMessage.set_labels”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.set_labels”j" t”bŒ mailbox.BabylMessage.set_visible”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.set_visible”j" t”bŒ#mailbox.BabylMessage.update_visible”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/mailbox.html#mailbox.BabylMessage.update_visible”j" t”bŒmailbox.MH.__delitem__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mailbox.html#mailbox.MH.__delitem__”j" t”bŒmailbox.MH.add_folder”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mailbox.html#mailbox.MH.add_folder”j" t”bŒmailbox.MH.close”j )�”(jT(jU(Œ?https://docs.python.org/3/library/mailbox.html#mailbox.MH.close”j" t”bŒmailbox.MH.discard”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/mailbox.html#mailbox.MH.discard”j" t”bŒmailbox.MH.flush”j )�”(jT(jU(Œ?https://docs.python.org/3/library/mailbox.html#mailbox.MH.flush”j" t”bŒmailbox.MH.get_file”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/mailbox.html#mailbox.MH.get_file”j" t”bŒmailbox.MH.get_folder”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mailbox.html#mailbox.MH.get_folder”j" t”bŒmailbox.MH.get_sequences”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/mailbox.html#mailbox.MH.get_sequences”j" t”bŒmailbox.MH.list_folders”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/mailbox.html#mailbox.MH.list_folders”j" t”bŒmailbox.MH.lock”j )�”(jT(jU(Œ>https://docs.python.org/3/library/mailbox.html#mailbox.MH.lock”j" t”bŒmailbox.MH.pack”j )�”(jT(jU(Œ>https://docs.python.org/3/library/mailbox.html#mailbox.MH.pack”j" t”bŒmailbox.MH.remove”j )�”(jT(jU(Œ@https://docs.python.org/3/library/mailbox.html#mailbox.MH.remove”j" t”bŒmailbox.MH.remove_folder”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/mailbox.html#mailbox.MH.remove_folder”j" t”bŒmailbox.MH.set_sequences”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/mailbox.html#mailbox.MH.set_sequences”j" t”bŒmailbox.MH.unlock”j )�”(jT(jU(Œ@https://docs.python.org/3/library/mailbox.html#mailbox.MH.unlock”j" t”bŒmailbox.MHMessage.add_sequence”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.add_sequence”j" t”bŒmailbox.MHMessage.get_sequences”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.get_sequences”j" t”bŒ!mailbox.MHMessage.remove_sequence”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.remove_sequence”j" t”bŒmailbox.MHMessage.set_sequences”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/mailbox.html#mailbox.MHMessage.set_sequences”j" t”bŒmailbox.MMDF.get_bytes”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDF.get_bytes”j" t”bŒmailbox.MMDF.get_file”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDF.get_file”j" t”bŒmailbox.MMDF.lock”j )�”(jT(jU(Œ@https://docs.python.org/3/library/mailbox.html#mailbox.MMDF.lock”j" t”bŒmailbox.MMDF.unlock”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDF.unlock”j" t”bŒmailbox.MMDFMessage.add_flag”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.add_flag”j" t”bŒmailbox.MMDFMessage.get_flags”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.get_flags”j" t”bŒmailbox.MMDFMessage.get_from”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.get_from”j" t”bŒmailbox.MMDFMessage.remove_flag”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.remove_flag”j" t”bŒmailbox.MMDFMessage.set_flags”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.set_flags”j" t”bŒmailbox.MMDFMessage.set_from”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/mailbox.html#mailbox.MMDFMessage.set_from”j" t”bŒmailbox.Mailbox.__contains__”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__contains__”j" t”bŒmailbox.Mailbox.__delitem__”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__delitem__”j" t”bŒmailbox.Mailbox.__getitem__”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__getitem__”j" t”bŒmailbox.Mailbox.__iter__”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__iter__”j" t”bŒmailbox.Mailbox.__len__”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__len__”j" t”bŒmailbox.Mailbox.__setitem__”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.__setitem__”j" t”bŒmailbox.Mailbox.add”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.add”j" t”bŒmailbox.Mailbox.clear”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.clear”j" t”bŒmailbox.Mailbox.close”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.close”j" t”bŒmailbox.Mailbox.discard”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.discard”j" t”bŒmailbox.Mailbox.flush”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.flush”j" t”bŒmailbox.Mailbox.get”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get”j" t”bŒmailbox.Mailbox.get_bytes”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_bytes”j" t”bŒmailbox.Mailbox.get_file”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_file”j" t”bŒmailbox.Mailbox.get_message”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_message”j" t”bŒmailbox.Mailbox.get_string”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.get_string”j" t”bŒmailbox.Mailbox.items”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.items”j" t”bŒmailbox.Mailbox.iteritems”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.iteritems”j" t”bŒmailbox.Mailbox.iterkeys”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.iterkeys”j" t”bŒmailbox.Mailbox.itervalues”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.itervalues”j" t”bŒmailbox.Mailbox.keys”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.keys”j" t”bŒmailbox.Mailbox.lock”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.lock”j" t”bŒmailbox.Mailbox.pop”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.pop”j" t”bŒmailbox.Mailbox.popitem”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.popitem”j" t”bŒmailbox.Mailbox.remove”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.remove”j" t”bŒmailbox.Mailbox.unlock”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.unlock”j" t”bŒmailbox.Mailbox.update”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.update”j" t”bŒmailbox.Mailbox.values”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox.values”j" t”bŒmailbox.Maildir.__setitem__”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.__setitem__”j" t”bŒmailbox.Maildir.add”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.add”j" t”bŒmailbox.Maildir.add_flag”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.add_flag”j" t”bŒmailbox.Maildir.add_folder”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.add_folder”j" t”bŒmailbox.Maildir.clean”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.clean”j" t”bŒmailbox.Maildir.close”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.close”j" t”bŒmailbox.Maildir.flush”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.flush”j" t”bŒmailbox.Maildir.get_file”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.get_file”j" t”bŒmailbox.Maildir.get_flags”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.get_flags”j" t”bŒmailbox.Maildir.get_folder”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.get_folder”j" t”bŒmailbox.Maildir.get_info”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.get_info”j" t”bŒmailbox.Maildir.list_folders”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.list_folders”j" t”bŒmailbox.Maildir.lock”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.lock”j" t”bŒmailbox.Maildir.remove_flag”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.remove_flag”j" t”bŒmailbox.Maildir.remove_folder”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.remove_folder”j" t”bŒmailbox.Maildir.set_flags”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.set_flags”j" t”bŒmailbox.Maildir.set_info”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.set_info”j" t”bŒmailbox.Maildir.unlock”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.unlock”j" t”bŒmailbox.Maildir.update”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mailbox.html#mailbox.Maildir.update”j" t”bŒmailbox.MaildirMessage.add_flag”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.add_flag”j" t”bŒmailbox.MaildirMessage.get_date”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_date”j" t”bŒ mailbox.MaildirMessage.get_flags”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_flags”j" t”bŒmailbox.MaildirMessage.get_info”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_info”j" t”bŒ!mailbox.MaildirMessage.get_subdir”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.get_subdir”j" t”bŒ"mailbox.MaildirMessage.remove_flag”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.remove_flag”j" t”bŒmailbox.MaildirMessage.set_date”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_date”j" t”bŒ mailbox.MaildirMessage.set_flags”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_flags”j" t”bŒmailbox.MaildirMessage.set_info”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_info”j" t”bŒ!mailbox.MaildirMessage.set_subdir”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage.set_subdir”j" t”bŒmailbox.mbox.get_bytes”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mailbox.html#mailbox.mbox.get_bytes”j" t”bŒmailbox.mbox.get_file”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mailbox.html#mailbox.mbox.get_file”j" t”bŒmailbox.mbox.get_string”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/mailbox.html#mailbox.mbox.get_string”j" t”bŒmailbox.mbox.lock”j )�”(jT(jU(Œ@https://docs.python.org/3/library/mailbox.html#mailbox.mbox.lock”j" t”bŒmailbox.mbox.unlock”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/mailbox.html#mailbox.mbox.unlock”j" t”bŒmailbox.mboxMessage.add_flag”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.add_flag”j" t”bŒmailbox.mboxMessage.get_flags”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.get_flags”j" t”bŒmailbox.mboxMessage.get_from”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.get_from”j" t”bŒmailbox.mboxMessage.remove_flag”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.remove_flag”j" t”bŒmailbox.mboxMessage.set_flags”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.set_flags”j" t”bŒmailbox.mboxMessage.set_from”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage.set_from”j" t”bŒmemoryview.__eq__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#memoryview.__eq__”j" t”bŒmemoryview.cast”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#memoryview.cast”j" t”bŒmemoryview.count”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#memoryview.count”j" t”bŒmemoryview.hex”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#memoryview.hex”j" t”bŒmemoryview.index”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#memoryview.index”j" t”bŒmemoryview.release”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/stdtypes.html#memoryview.release”j" t”bŒmemoryview.tobytes”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/stdtypes.html#memoryview.tobytes”j" t”bŒmemoryview.tolist”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#memoryview.tolist”j" t”bŒmemoryview.toreadonly”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/stdtypes.html#memoryview.toreadonly”j" t”bŒmimetypes.MimeTypes.add_type”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.add_type”j" t”bŒ(mimetypes.MimeTypes.guess_all_extensions”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.guess_all_extensions”j" t”bŒ#mimetypes.MimeTypes.guess_extension”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.guess_extension”j" t”bŒ#mimetypes.MimeTypes.guess_file_type”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.guess_file_type”j" t”bŒmimetypes.MimeTypes.guess_type”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.guess_type”j" t”bŒmimetypes.MimeTypes.read”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.read”j" t”bŒ)mimetypes.MimeTypes.read_windows_registry”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.read_windows_registry”j" t”bŒmimetypes.MimeTypes.readfp”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes.readfp”j" t”bŒmmap.mmap.close”j )�”(jT(jU(Œ;https://docs.python.org/3/library/mmap.html#mmap.mmap.close”j" t”bŒmmap.mmap.find”j )�”(jT(jU(Œ:https://docs.python.org/3/library/mmap.html#mmap.mmap.find”j" t”bŒmmap.mmap.flush”j )�”(jT(jU(Œ;https://docs.python.org/3/library/mmap.html#mmap.mmap.flush”j" t”bŒmmap.mmap.madvise”j )�”(jT(jU(Œ=https://docs.python.org/3/library/mmap.html#mmap.mmap.madvise”j" t”bŒmmap.mmap.move”j )�”(jT(jU(Œ:https://docs.python.org/3/library/mmap.html#mmap.mmap.move”j" t”bŒmmap.mmap.read”j )�”(jT(jU(Œ:https://docs.python.org/3/library/mmap.html#mmap.mmap.read”j" t”bŒmmap.mmap.read_byte”j )�”(jT(jU(Œ?https://docs.python.org/3/library/mmap.html#mmap.mmap.read_byte”j" t”bŒmmap.mmap.readline”j )�”(jT(jU(Œ>https://docs.python.org/3/library/mmap.html#mmap.mmap.readline”j" t”bŒmmap.mmap.resize”j )�”(jT(jU(Œhttps://docs.python.org/3/library/mmap.html#mmap.mmap.seekable”j" t”bŒmmap.mmap.size”j )�”(jT(jU(Œ:https://docs.python.org/3/library/mmap.html#mmap.mmap.size”j" t”bŒmmap.mmap.tell”j )�”(jT(jU(Œ:https://docs.python.org/3/library/mmap.html#mmap.mmap.tell”j" t”bŒmmap.mmap.write”j )�”(jT(jU(Œ;https://docs.python.org/3/library/mmap.html#mmap.mmap.write”j" t”bŒmmap.mmap.write_byte”j )�”(jT(jU(Œ@https://docs.python.org/3/library/mmap.html#mmap.mmap.write_byte”j" t”bŒmodule.__dir__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#module.__dir__”j" t”bŒmodule.__getattr__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#module.__getattr__”j" t”bŒ modulefinder.ModuleFinder.report”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/modulefinder.html#modulefinder.ModuleFinder.report”j" t”bŒ$modulefinder.ModuleFinder.run_script”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/modulefinder.html#modulefinder.ModuleFinder.run_script”j" t”bŒ'multiprocessing.BoundedSemaphore.locked”j )�”(jT(jU(Œ^https://docs.python.org/3/library/multiprocessing.html#multiprocessing.BoundedSemaphore.locked”j" t”bŒ"multiprocessing.JoinableQueue.join”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.JoinableQueue.join”j" t”bŒ'multiprocessing.JoinableQueue.task_done”j )�”(jT(jU(Œ^https://docs.python.org/3/library/multiprocessing.html#multiprocessing.JoinableQueue.task_done”j" t”bŒmultiprocessing.Lock.acquire”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Lock.acquire”j" t”bŒmultiprocessing.Lock.locked”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Lock.locked”j" t”bŒmultiprocessing.Lock.release”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Lock.release”j" t”bŒmultiprocessing.Process.close”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.close”j" t”bŒ!multiprocessing.Process.interrupt”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.interrupt”j" t”bŒ multiprocessing.Process.is_alive”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.is_alive”j" t”bŒmultiprocessing.Process.join”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.join”j" t”bŒmultiprocessing.Process.kill”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.kill”j" t”bŒmultiprocessing.Process.run”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.run”j" t”bŒmultiprocessing.Process.start”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.start”j" t”bŒ!multiprocessing.Process.terminate”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.terminate”j" t”bŒ(multiprocessing.Queue.cancel_join_thread”j )�”(jT(jU(Œ_https://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.cancel_join_thread”j" t”bŒmultiprocessing.Queue.close”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.close”j" t”bŒmultiprocessing.Queue.empty”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.empty”j" t”bŒmultiprocessing.Queue.full”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.full”j" t”bŒmultiprocessing.Queue.get”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.get”j" t”bŒ multiprocessing.Queue.get_nowait”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.get_nowait”j" t”bŒ!multiprocessing.Queue.join_thread”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.join_thread”j" t”bŒmultiprocessing.Queue.put”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.put”j" t”bŒ multiprocessing.Queue.put_nowait”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.put_nowait”j" t”bŒmultiprocessing.Queue.qsize”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue.qsize”j" t”bŒmultiprocessing.RLock.acquire”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.RLock.acquire”j" t”bŒmultiprocessing.RLock.locked”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.RLock.locked”j" t”bŒmultiprocessing.RLock.release”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.RLock.release”j" t”bŒ#multiprocessing.Semaphore.get_value”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Semaphore.get_value”j" t”bŒ multiprocessing.Semaphore.locked”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Semaphore.locked”j" t”bŒ!multiprocessing.SimpleQueue.close”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.SimpleQueue.close”j" t”bŒ!multiprocessing.SimpleQueue.empty”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.SimpleQueue.empty”j" t”bŒmultiprocessing.SimpleQueue.get”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.SimpleQueue.get”j" t”bŒmultiprocessing.SimpleQueue.put”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.SimpleQueue.put”j" t”bŒ+multiprocessing.connection.Connection.close”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Connection.close”j" t”bŒ,multiprocessing.connection.Connection.fileno”j )�”(jT(jU(Œchttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Connection.fileno”j" t”bŒ*multiprocessing.connection.Connection.poll”j )�”(jT(jU(Œahttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Connection.poll”j" t”bŒ*multiprocessing.connection.Connection.recv”j )�”(jT(jU(Œahttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Connection.recv”j" t”bŒ0multiprocessing.connection.Connection.recv_bytes”j )�”(jT(jU(Œghttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Connection.recv_bytes”j" t”bŒ5multiprocessing.connection.Connection.recv_bytes_into”j )�”(jT(jU(Œlhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Connection.recv_bytes_into”j" t”bŒ*multiprocessing.connection.Connection.send”j )�”(jT(jU(Œahttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Connection.send”j" t”bŒ0multiprocessing.connection.Connection.send_bytes”j )�”(jT(jU(Œghttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Connection.send_bytes”j" t”bŒ*multiprocessing.connection.Listener.accept”j )�”(jT(jU(Œahttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Listener.accept”j" t”bŒ)multiprocessing.connection.Listener.close”j )�”(jT(jU(Œ`https://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Listener.close”j" t”bŒ,multiprocessing.managers.BaseManager.connect”j )�”(jT(jU(Œchttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.connect”j" t”bŒ/multiprocessing.managers.BaseManager.get_server”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.get_server”j" t”bŒ-multiprocessing.managers.BaseManager.register”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.register”j" t”bŒ-multiprocessing.managers.BaseManager.shutdown”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.shutdown”j" t”bŒ*multiprocessing.managers.BaseManager.start”j )�”(jT(jU(Œahttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager.start”j" t”bŒ+multiprocessing.managers.BaseProxy.__repr__”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxy.__repr__”j" t”bŒ*multiprocessing.managers.BaseProxy.__str__”j )�”(jT(jU(Œahttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxy.__str__”j" t”bŒ.multiprocessing.managers.BaseProxy._callmethod”j )�”(jT(jU(Œehttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxy._callmethod”j" t”bŒ,multiprocessing.managers.BaseProxy._getvalue”j )�”(jT(jU(Œchttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxy._getvalue”j" t”bŒ:multiprocessing.managers.SharedMemoryManager.ShareableList”j )�”(jT(jU(Œhttps://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.managers.SharedMemoryManager.ShareableList”j" t”bŒ9multiprocessing.managers.SharedMemoryManager.SharedMemory”j )�”(jT(jU(Œ~https://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.managers.SharedMemoryManager.SharedMemory”j" t”bŒ*multiprocessing.managers.SyncManager.Array”j )�”(jT(jU(Œahttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.Array”j" t”bŒ,multiprocessing.managers.SyncManager.Barrier”j )�”(jT(jU(Œchttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.Barrier”j" t”bŒ5multiprocessing.managers.SyncManager.BoundedSemaphore”j )�”(jT(jU(Œlhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.BoundedSemaphore”j" t”bŒ.multiprocessing.managers.SyncManager.Condition”j )�”(jT(jU(Œehttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.Condition”j" t”bŒ*multiprocessing.managers.SyncManager.Event”j )�”(jT(jU(Œahttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.Event”j" t”bŒ)multiprocessing.managers.SyncManager.Lock”j )�”(jT(jU(Œ`https://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.Lock”j" t”bŒ.multiprocessing.managers.SyncManager.Namespace”j )�”(jT(jU(Œehttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.Namespace”j" t”bŒ*multiprocessing.managers.SyncManager.Queue”j )�”(jT(jU(Œahttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.Queue”j" t”bŒ*multiprocessing.managers.SyncManager.RLock”j )�”(jT(jU(Œahttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.RLock”j" t”bŒ.multiprocessing.managers.SyncManager.Semaphore”j )�”(jT(jU(Œehttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.Semaphore”j" t”bŒ*multiprocessing.managers.SyncManager.Value”j )�”(jT(jU(Œahttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.Value”j" t”bŒ)multiprocessing.managers.SyncManager.dict”j )�”(jT(jU(Œ`https://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.dict”j" t”bŒ)multiprocessing.managers.SyncManager.list”j )�”(jT(jU(Œ`https://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.list”j" t”bŒ(multiprocessing.managers.SyncManager.set”j )�”(jT(jU(Œ_https://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager.set”j" t”bŒ$multiprocessing.pool.AsyncResult.get”j )�”(jT(jU(Œ[https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.get”j" t”bŒ&multiprocessing.pool.AsyncResult.ready”j )�”(jT(jU(Œ]https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.ready”j" t”bŒ+multiprocessing.pool.AsyncResult.successful”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.successful”j" t”bŒ%multiprocessing.pool.AsyncResult.wait”j )�”(jT(jU(Œ\https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.wait”j" t”bŒmultiprocessing.pool.Pool.apply”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.apply”j" t”bŒ%multiprocessing.pool.Pool.apply_async”j )�”(jT(jU(Œ\https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.apply_async”j" t”bŒmultiprocessing.pool.Pool.close”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.close”j" t”bŒmultiprocessing.pool.Pool.imap”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.imap”j" t”bŒ(multiprocessing.pool.Pool.imap_unordered”j )�”(jT(jU(Œ_https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.imap_unordered”j" t”bŒmultiprocessing.pool.Pool.join”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.join”j" t”bŒmultiprocessing.pool.Pool.map”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.map”j" t”bŒ#multiprocessing.pool.Pool.map_async”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.map_async”j" t”bŒ!multiprocessing.pool.Pool.starmap”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.starmap”j" t”bŒ'multiprocessing.pool.Pool.starmap_async”j )�”(jT(jU(Œ^https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.starmap_async”j" t”bŒ#multiprocessing.pool.Pool.terminate”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.terminate”j" t”bŒ1multiprocessing.shared_memory.ShareableList.count”j )�”(jT(jU(Œvhttps://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.ShareableList.count”j" t”bŒ1multiprocessing.shared_memory.ShareableList.index”j )�”(jT(jU(Œvhttps://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.ShareableList.index”j" t”bŒ0multiprocessing.shared_memory.SharedMemory.close”j )�”(jT(jU(Œuhttps://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.SharedMemory.close”j" t”bŒ1multiprocessing.shared_memory.SharedMemory.unlink”j )�”(jT(jU(Œvhttps://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.SharedMemory.unlink”j" t”bŒnetrc.netrc.__repr__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/netrc.html#netrc.netrc.__repr__”j" t”bŒnetrc.netrc.authenticators”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/netrc.html#netrc.netrc.authenticators”j" t”bŒnumbers.Complex.conjugate”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/numbers.html#numbers.Complex.conjugate”j" t”bŒobject.__abs__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__abs__”j" t”bŒobject.__add__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__add__”j" t”bŒobject.__aenter__”j )�”(jT(jU(ŒDhttps://docs.python.org/3/reference/datamodel.html#object.__aenter__”j" t”bŒobject.__aexit__”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/datamodel.html#object.__aexit__”j" t”bŒobject.__aiter__”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/datamodel.html#object.__aiter__”j" t”bŒobject.__and__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__and__”j" t”bŒobject.__anext__”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/datamodel.html#object.__anext__”j" t”bŒobject.__annotate__”j )�”(jT(jU(ŒFhttps://docs.python.org/3/reference/datamodel.html#object.__annotate__”j" t”bŒobject.__await__”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/datamodel.html#object.__await__”j" t”bŒobject.__bool__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__bool__”j" t”bŒobject.__buffer__”j )�”(jT(jU(ŒDhttps://docs.python.org/3/reference/datamodel.html#object.__buffer__”j" t”bŒobject.__bytes__”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/datamodel.html#object.__bytes__”j" t”bŒobject.__call__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__call__”j" t”bŒobject.__ceil__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__ceil__”j" t”bŒobject.__class_getitem__”j )�”(jT(jU(ŒKhttps://docs.python.org/3/reference/datamodel.html#object.__class_getitem__”j" t”bŒobject.__complex__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__complex__”j" t”bŒobject.__contains__”j )�”(jT(jU(ŒFhttps://docs.python.org/3/reference/datamodel.html#object.__contains__”j" t”bŒobject.__copy__”j )�”(jT(jU(Œ;https://docs.python.org/3/library/copy.html#object.__copy__”j" t”bŒobject.__deepcopy__”j )�”(jT(jU(Œ?https://docs.python.org/3/library/copy.html#object.__deepcopy__”j" t”bŒobject.__del__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__del__”j" t”bŒobject.__delattr__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__delattr__”j" t”bŒobject.__delete__”j )�”(jT(jU(ŒDhttps://docs.python.org/3/reference/datamodel.html#object.__delete__”j" t”bŒobject.__delitem__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__delitem__”j" t”bŒobject.__dir__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__dir__”j" t”bŒobject.__divmod__”j )�”(jT(jU(ŒDhttps://docs.python.org/3/reference/datamodel.html#object.__divmod__”j" t”bŒobject.__enter__”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/datamodel.html#object.__enter__”j" t”bŒ object.__eq__”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/datamodel.html#object.__eq__”j" t”bŒobject.__exit__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__exit__”j" t”bŒobject.__float__”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/datamodel.html#object.__float__”j" t”bŒobject.__floor__”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/datamodel.html#object.__floor__”j" t”bŒobject.__floordiv__”j )�”(jT(jU(ŒFhttps://docs.python.org/3/reference/datamodel.html#object.__floordiv__”j" t”bŒobject.__format__”j )�”(jT(jU(ŒDhttps://docs.python.org/3/reference/datamodel.html#object.__format__”j" t”bŒ object.__ge__”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/datamodel.html#object.__ge__”j" t”bŒobject.__get__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__get__”j" t”bŒobject.__getattr__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__getattr__”j" t”bŒobject.__getattribute__”j )�”(jT(jU(ŒJhttps://docs.python.org/3/reference/datamodel.html#object.__getattribute__”j" t”bŒobject.__getitem__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__getitem__”j" t”bŒobject.__getnewargs__”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/pickle.html#object.__getnewargs__”j" t”bŒobject.__getnewargs_ex__”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/pickle.html#object.__getnewargs_ex__”j" t”bŒobject.__getstate__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/pickle.html#object.__getstate__”j" t”bŒ object.__gt__”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/datamodel.html#object.__gt__”j" t”bŒobject.__hash__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__hash__”j" t”bŒobject.__iadd__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__iadd__”j" t”bŒobject.__iand__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__iand__”j" t”bŒobject.__ifloordiv__”j )�”(jT(jU(ŒGhttps://docs.python.org/3/reference/datamodel.html#object.__ifloordiv__”j" t”bŒobject.__ilshift__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__ilshift__”j" t”bŒobject.__imatmul__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__imatmul__”j" t”bŒobject.__imod__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__imod__”j" t”bŒobject.__imul__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__imul__”j" t”bŒobject.__index__”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/datamodel.html#object.__index__”j" t”bŒobject.__init__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__init__”j" t”bŒobject.__init_subclass__”j )�”(jT(jU(ŒKhttps://docs.python.org/3/reference/datamodel.html#object.__init_subclass__”j" t”bŒobject.__int__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__int__”j" t”bŒobject.__invert__”j )�”(jT(jU(ŒDhttps://docs.python.org/3/reference/datamodel.html#object.__invert__”j" t”bŒobject.__ior__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__ior__”j" t”bŒobject.__ipow__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__ipow__”j" t”bŒobject.__irshift__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__irshift__”j" t”bŒobject.__isub__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__isub__”j" t”bŒobject.__iter__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__iter__”j" t”bŒobject.__itruediv__”j )�”(jT(jU(ŒFhttps://docs.python.org/3/reference/datamodel.html#object.__itruediv__”j" t”bŒobject.__ixor__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__ixor__”j" t”bŒ object.__le__”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/datamodel.html#object.__le__”j" t”bŒobject.__len__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__len__”j" t”bŒobject.__length_hint__”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/datamodel.html#object.__length_hint__”j" t”bŒobject.__lshift__”j )�”(jT(jU(ŒDhttps://docs.python.org/3/reference/datamodel.html#object.__lshift__”j" t”bŒ object.__lt__”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/datamodel.html#object.__lt__”j" t”bŒobject.__matmul__”j )�”(jT(jU(ŒDhttps://docs.python.org/3/reference/datamodel.html#object.__matmul__”j" t”bŒobject.__missing__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__missing__”j" t”bŒobject.__mod__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__mod__”j" t”bŒobject.__mro_entries__”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/datamodel.html#object.__mro_entries__”j" t”bŒobject.__mul__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__mul__”j" t”bŒ object.__ne__”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/datamodel.html#object.__ne__”j" t”bŒobject.__neg__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__neg__”j" t”bŒobject.__new__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__new__”j" t”bŒ object.__or__”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/datamodel.html#object.__or__”j" t”bŒobject.__pos__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__pos__”j" t”bŒobject.__pow__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__pow__”j" t”bŒobject.__radd__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__radd__”j" t”bŒobject.__rand__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__rand__”j" t”bŒobject.__rdivmod__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__rdivmod__”j" t”bŒobject.__reduce__”j )�”(jT(jU(Œ?https://docs.python.org/3/library/pickle.html#object.__reduce__”j" t”bŒobject.__reduce_ex__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/pickle.html#object.__reduce_ex__”j" t”bŒobject.__release_buffer__”j )�”(jT(jU(ŒLhttps://docs.python.org/3/reference/datamodel.html#object.__release_buffer__”j" t”bŒobject.__replace__”j )�”(jT(jU(Œ>https://docs.python.org/3/library/copy.html#object.__replace__”j" t”bŒobject.__repr__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__repr__”j" t”bŒobject.__reversed__”j )�”(jT(jU(ŒFhttps://docs.python.org/3/reference/datamodel.html#object.__reversed__”j" t”bŒobject.__rfloordiv__”j )�”(jT(jU(ŒGhttps://docs.python.org/3/reference/datamodel.html#object.__rfloordiv__”j" t”bŒobject.__rlshift__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__rlshift__”j" t”bŒobject.__rmatmul__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__rmatmul__”j" t”bŒobject.__rmod__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__rmod__”j" t”bŒobject.__rmul__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__rmul__”j" t”bŒobject.__ror__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__ror__”j" t”bŒobject.__round__”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/datamodel.html#object.__round__”j" t”bŒobject.__rpow__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__rpow__”j" t”bŒobject.__rrshift__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__rrshift__”j" t”bŒobject.__rshift__”j )�”(jT(jU(ŒDhttps://docs.python.org/3/reference/datamodel.html#object.__rshift__”j" t”bŒobject.__rsub__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__rsub__”j" t”bŒobject.__rtruediv__”j )�”(jT(jU(ŒFhttps://docs.python.org/3/reference/datamodel.html#object.__rtruediv__”j" t”bŒobject.__rxor__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#object.__rxor__”j" t”bŒobject.__set__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__set__”j" t”bŒobject.__set_name__”j )�”(jT(jU(ŒFhttps://docs.python.org/3/reference/datamodel.html#object.__set_name__”j" t”bŒobject.__setattr__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__setattr__”j" t”bŒobject.__setitem__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__setitem__”j" t”bŒobject.__setstate__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/pickle.html#object.__setstate__”j" t”bŒobject.__str__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__str__”j" t”bŒobject.__sub__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__sub__”j" t”bŒobject.__truediv__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/datamodel.html#object.__truediv__”j" t”bŒobject.__trunc__”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/datamodel.html#object.__trunc__”j" t”bŒobject.__xor__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#object.__xor__”j" t”bŒ optparse.OptionParser.add_option”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/optparse.html#optparse.OptionParser.add_option”j" t”bŒ/optparse.OptionParser.disable_interspersed_args”j )�”(jT(jU(Œ_https://docs.python.org/3/library/optparse.html#optparse.OptionParser.disable_interspersed_args”j" t”bŒ.optparse.OptionParser.enable_interspersed_args”j )�”(jT(jU(Œ^https://docs.python.org/3/library/optparse.html#optparse.OptionParser.enable_interspersed_args”j" t”bŒ optparse.OptionParser.get_option”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/optparse.html#optparse.OptionParser.get_option”j" t”bŒ&optparse.OptionParser.get_option_group”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/optparse.html#optparse.OptionParser.get_option_group”j" t”bŒoptparse.OptionParser.get_usage”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/optparse.html#optparse.OptionParser.get_usage”j" t”bŒ!optparse.OptionParser.get_version”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/optparse.html#optparse.OptionParser.get_version”j" t”bŒ optparse.OptionParser.has_option”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/optparse.html#optparse.OptionParser.has_option”j" t”bŒ optparse.OptionParser.parse_args”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/optparse.html#optparse.OptionParser.parse_args”j" t”bŒ!optparse.OptionParser.print_usage”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/optparse.html#optparse.OptionParser.print_usage”j" t”bŒ#optparse.OptionParser.print_version”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/optparse.html#optparse.OptionParser.print_version”j" t”bŒ#optparse.OptionParser.remove_option”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/optparse.html#optparse.OptionParser.remove_option”j" t”bŒ"optparse.OptionParser.set_defaults”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/optparse.html#optparse.OptionParser.set_defaults”j" t”bŒoptparse.OptionParser.set_usage”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/optparse.html#optparse.OptionParser.set_usage”j" t”bŒos.DirEntry.inode”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.DirEntry.inode”j" t”bŒos.DirEntry.is_dir”j )�”(jT(jU(Œhttps://docs.python.org/3/library/poplib.html#poplib.POP3.apop”j" t”bŒpoplib.POP3.capa”j )�”(jT(jU(Œ>https://docs.python.org/3/library/poplib.html#poplib.POP3.capa”j" t”bŒpoplib.POP3.dele”j )�”(jT(jU(Œ>https://docs.python.org/3/library/poplib.html#poplib.POP3.dele”j" t”bŒpoplib.POP3.getwelcome”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/poplib.html#poplib.POP3.getwelcome”j" t”bŒpoplib.POP3.list”j )�”(jT(jU(Œ>https://docs.python.org/3/library/poplib.html#poplib.POP3.list”j" t”bŒpoplib.POP3.noop”j )�”(jT(jU(Œ>https://docs.python.org/3/library/poplib.html#poplib.POP3.noop”j" t”bŒpoplib.POP3.pass_”j )�”(jT(jU(Œ?https://docs.python.org/3/library/poplib.html#poplib.POP3.pass_”j" t”bŒpoplib.POP3.quit”j )�”(jT(jU(Œ>https://docs.python.org/3/library/poplib.html#poplib.POP3.quit”j" t”bŒpoplib.POP3.retr”j )�”(jT(jU(Œ>https://docs.python.org/3/library/poplib.html#poplib.POP3.retr”j" t”bŒpoplib.POP3.rpop”j )�”(jT(jU(Œ>https://docs.python.org/3/library/poplib.html#poplib.POP3.rpop”j" t”bŒpoplib.POP3.rset”j )�”(jT(jU(Œ>https://docs.python.org/3/library/poplib.html#poplib.POP3.rset”j" t”bŒpoplib.POP3.set_debuglevel”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/poplib.html#poplib.POP3.set_debuglevel”j" t”bŒpoplib.POP3.stat”j )�”(jT(jU(Œ>https://docs.python.org/3/library/poplib.html#poplib.POP3.stat”j" t”bŒpoplib.POP3.stls”j )�”(jT(jU(Œ>https://docs.python.org/3/library/poplib.html#poplib.POP3.stls”j" t”bŒpoplib.POP3.top”j )�”(jT(jU(Œ=https://docs.python.org/3/library/poplib.html#poplib.POP3.top”j" t”bŒpoplib.POP3.uidl”j )�”(jT(jU(Œ>https://docs.python.org/3/library/poplib.html#poplib.POP3.uidl”j" t”bŒpoplib.POP3.user”j )�”(jT(jU(Œ>https://docs.python.org/3/library/poplib.html#poplib.POP3.user”j" t”bŒpoplib.POP3.utf8”j )�”(jT(jU(Œ>https://docs.python.org/3/library/poplib.html#poplib.POP3.utf8”j" t”bŒpprint.PrettyPrinter.format”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.format”j" t”bŒpprint.PrettyPrinter.isreadable”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.isreadable”j" t”bŒ pprint.PrettyPrinter.isrecursive”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.isrecursive”j" t”bŒpprint.PrettyPrinter.pformat”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.pformat”j" t”bŒpprint.PrettyPrinter.pprint”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter.pprint”j" t”bŒprofile.Profile.create_stats”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/profile.html#profile.Profile.create_stats”j" t”bŒprofile.Profile.disable”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/profile.html#profile.Profile.disable”j" t”bŒprofile.Profile.dump_stats”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/profile.html#profile.Profile.dump_stats”j" t”bŒprofile.Profile.enable”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/profile.html#profile.Profile.enable”j" t”bŒprofile.Profile.print_stats”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/profile.html#profile.Profile.print_stats”j" t”bŒprofile.Profile.run”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/profile.html#profile.Profile.run”j" t”bŒprofile.Profile.runcall”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/profile.html#profile.Profile.runcall”j" t”bŒprofile.Profile.runctx”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/profile.html#profile.Profile.runctx”j" t”bŒpstats.Stats.add”j )�”(jT(jU(Œ?https://docs.python.org/3/library/profile.html#pstats.Stats.add”j" t”bŒpstats.Stats.dump_stats”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/profile.html#pstats.Stats.dump_stats”j" t”bŒpstats.Stats.get_stats_profile”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/profile.html#pstats.Stats.get_stats_profile”j" t”bŒpstats.Stats.print_callees”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/profile.html#pstats.Stats.print_callees”j" t”bŒpstats.Stats.print_callers”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/profile.html#pstats.Stats.print_callers”j" t”bŒpstats.Stats.print_stats”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/profile.html#pstats.Stats.print_stats”j" t”bŒpstats.Stats.reverse_order”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/profile.html#pstats.Stats.reverse_order”j" t”bŒpstats.Stats.sort_stats”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/profile.html#pstats.Stats.sort_stats”j" t”bŒpstats.Stats.strip_dirs”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/profile.html#pstats.Stats.strip_dirs”j" t”bŒqueue.Queue.empty”j )�”(jT(jU(Œ>https://docs.python.org/3/library/queue.html#queue.Queue.empty”j" t”bŒqueue.Queue.full”j )�”(jT(jU(Œ=https://docs.python.org/3/library/queue.html#queue.Queue.full”j" t”bŒqueue.Queue.get”j )�”(jT(jU(Œhttps://docs.python.org/3/library/queue.html#queue.Queue.qsize”j" t”bŒqueue.Queue.shutdown”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/queue.html#queue.Queue.shutdown”j" t”bŒqueue.Queue.task_done”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/queue.html#queue.Queue.task_done”j" t”bŒqueue.SimpleQueue.empty”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/queue.html#queue.SimpleQueue.empty”j" t”bŒqueue.SimpleQueue.get”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/queue.html#queue.SimpleQueue.get”j" t”bŒqueue.SimpleQueue.get_nowait”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/queue.html#queue.SimpleQueue.get_nowait”j" t”bŒqueue.SimpleQueue.put”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/queue.html#queue.SimpleQueue.put”j" t”bŒqueue.SimpleQueue.put_nowait”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/queue.html#queue.SimpleQueue.put_nowait”j" t”bŒqueue.SimpleQueue.qsize”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/queue.html#queue.SimpleQueue.qsize”j" t”bŒrandom.Random.getrandbits”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/random.html#random.Random.getrandbits”j" t”bŒrandom.Random.getstate”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/random.html#random.Random.getstate”j" t”bŒrandom.Random.randbytes”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/random.html#random.Random.randbytes”j" t”bŒrandom.Random.random”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/random.html#random.Random.random”j" t”bŒrandom.Random.seed”j )�”(jT(jU(Œ@https://docs.python.org/3/library/random.html#random.Random.seed”j" t”bŒrandom.Random.setstate”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/random.html#random.Random.setstate”j" t”bŒ range.count”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#range.count”j" t”bŒ range.index”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#range.index”j" t”bŒre.Match.__getitem__”j )�”(jT(jU(Œ>https://docs.python.org/3/library/re.html#re.Match.__getitem__”j" t”bŒ re.Match.end”j )�”(jT(jU(Œ6https://docs.python.org/3/library/re.html#re.Match.end”j" t”bŒre.Match.expand”j )�”(jT(jU(Œ9https://docs.python.org/3/library/re.html#re.Match.expand”j" t”bŒre.Match.group”j )�”(jT(jU(Œ8https://docs.python.org/3/library/re.html#re.Match.group”j" t”bŒre.Match.groupdict”j )�”(jT(jU(Œhttps://docs.python.org/3/library/re.html#re.Pattern.fullmatch”j" t”bŒre.Pattern.match”j )�”(jT(jU(Œ:https://docs.python.org/3/library/re.html#re.Pattern.match”j" t”bŒre.Pattern.search”j )�”(jT(jU(Œ;https://docs.python.org/3/library/re.html#re.Pattern.search”j" t”bŒre.Pattern.split”j )�”(jT(jU(Œ:https://docs.python.org/3/library/re.html#re.Pattern.split”j" t”bŒre.Pattern.sub”j )�”(jT(jU(Œ8https://docs.python.org/3/library/re.html#re.Pattern.sub”j" t”bŒre.Pattern.subn”j )�”(jT(jU(Œ9https://docs.python.org/3/library/re.html#re.Pattern.subn”j" t”bŒreprlib.Repr.repr”j )�”(jT(jU(Œ@https://docs.python.org/3/library/reprlib.html#reprlib.Repr.repr”j" t”bŒreprlib.Repr.repr1”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/reprlib.html#reprlib.Repr.repr1”j" t”bŒrlcompleter.Completer.complete”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/rlcompleter.html#rlcompleter.Completer.complete”j" t”bŒsched.scheduler.cancel”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/sched.html#sched.scheduler.cancel”j" t”bŒsched.scheduler.empty”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/sched.html#sched.scheduler.empty”j" t”bŒsched.scheduler.enter”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/sched.html#sched.scheduler.enter”j" t”bŒsched.scheduler.enterabs”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/sched.html#sched.scheduler.enterabs”j" t”bŒsched.scheduler.run”j )�”(jT(jU(Œ@https://docs.python.org/3/library/sched.html#sched.scheduler.run”j" t”bŒselect.devpoll.close”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/select.html#select.devpoll.close”j" t”bŒselect.devpoll.fileno”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/select.html#select.devpoll.fileno”j" t”bŒselect.devpoll.modify”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/select.html#select.devpoll.modify”j" t”bŒselect.devpoll.poll”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/select.html#select.devpoll.poll”j" t”bŒselect.devpoll.register”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/select.html#select.devpoll.register”j" t”bŒselect.devpoll.unregister”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/select.html#select.devpoll.unregister”j" t”bŒselect.epoll.close”j )�”(jT(jU(Œ@https://docs.python.org/3/library/select.html#select.epoll.close”j" t”bŒselect.epoll.fileno”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/select.html#select.epoll.fileno”j" t”bŒselect.epoll.fromfd”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/select.html#select.epoll.fromfd”j" t”bŒselect.epoll.modify”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/select.html#select.epoll.modify”j" t”bŒselect.epoll.poll”j )�”(jT(jU(Œ?https://docs.python.org/3/library/select.html#select.epoll.poll”j" t”bŒselect.epoll.register”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/select.html#select.epoll.register”j" t”bŒselect.epoll.unregister”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/select.html#select.epoll.unregister”j" t”bŒselect.kqueue.close”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/select.html#select.kqueue.close”j" t”bŒselect.kqueue.control”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/select.html#select.kqueue.control”j" t”bŒselect.kqueue.fileno”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/select.html#select.kqueue.fileno”j" t”bŒselect.kqueue.fromfd”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/select.html#select.kqueue.fromfd”j" t”bŒselect.poll.modify”j )�”(jT(jU(Œ@https://docs.python.org/3/library/select.html#select.poll.modify”j" t”bŒselect.poll.poll”j )�”(jT(jU(Œ>https://docs.python.org/3/library/select.html#select.poll.poll”j" t”bŒselect.poll.register”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/select.html#select.poll.register”j" t”bŒselect.poll.unregister”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/select.html#select.poll.unregister”j" t”bŒselectors.BaseSelector.close”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.close”j" t”bŒselectors.BaseSelector.get_key”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.get_key”j" t”bŒselectors.BaseSelector.get_map”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.get_map”j" t”bŒselectors.BaseSelector.modify”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.modify”j" t”bŒselectors.BaseSelector.register”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.register”j" t”bŒselectors.BaseSelector.select”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.select”j" t”bŒ!selectors.BaseSelector.unregister”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/selectors.html#selectors.BaseSelector.unregister”j" t”bŒ selectors.DevpollSelector.fileno”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/selectors.html#selectors.DevpollSelector.fileno”j" t”bŒselectors.EpollSelector.fileno”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/selectors.html#selectors.EpollSelector.fileno”j" t”bŒselectors.KqueueSelector.fileno”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/selectors.html#selectors.KqueueSelector.fileno”j" t”bŒsequence.append”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#sequence.append”j" t”bŒsequence.clear”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#sequence.clear”j" t”bŒ sequence.copy”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#sequence.copy”j" t”bŒsequence.count”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#sequence.count”j" t”bŒsequence.extend”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#sequence.extend”j" t”bŒsequence.index”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#sequence.index”j" t”bŒsequence.insert”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#sequence.insert”j" t”bŒ sequence.pop”j )�”(jT(jU(Œhttps://docs.python.org/3/library/stdtypes.html#set.difference”j" t”bŒset.difference_update”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/stdtypes.html#set.difference_update”j" t”bŒ set.discard”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#set.discard”j" t”bŒset.intersection”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#set.intersection”j" t”bŒset.intersection_update”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/stdtypes.html#set.intersection_update”j" t”bŒset.isdisjoint”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#set.isdisjoint”j" t”bŒ set.issubset”j )�”(jT(jU(Œhttps://docs.python.org/3/library/stdtypes.html#set.issuperset”j" t”bŒset.pop”j )�”(jT(jU(Œ7https://docs.python.org/3/library/stdtypes.html#set.pop”j" t”bŒ set.remove”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#set.remove”j" t”bŒset.symmetric_difference”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/stdtypes.html#set.symmetric_difference”j" t”bŒset.symmetric_difference_update”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/stdtypes.html#set.symmetric_difference_update”j" t”bŒ set.union”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stdtypes.html#set.union”j" t”bŒ set.update”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#set.update”j" t”bŒshelve.Shelf.close”j )�”(jT(jU(Œ@https://docs.python.org/3/library/shelve.html#shelve.Shelf.close”j" t”bŒshelve.Shelf.sync”j )�”(jT(jU(Œ?https://docs.python.org/3/library/shelve.html#shelve.Shelf.sync”j" t”bŒshlex.shlex.error_leader”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/shlex.html#shlex.shlex.error_leader”j" t”bŒshlex.shlex.get_token”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/shlex.html#shlex.shlex.get_token”j" t”bŒshlex.shlex.pop_source”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/shlex.html#shlex.shlex.pop_source”j" t”bŒshlex.shlex.push_source”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/shlex.html#shlex.shlex.push_source”j" t”bŒshlex.shlex.push_token”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/shlex.html#shlex.shlex.push_token”j" t”bŒshlex.shlex.read_token”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/shlex.html#shlex.shlex.read_token”j" t”bŒshlex.shlex.sourcehook”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/shlex.html#shlex.shlex.sourcehook”j" t”bŒ slice.indices”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/datamodel.html#slice.indices”j" t”bŒsmtplib.SMTP.auth”j )�”(jT(jU(Œ@https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.auth”j" t”bŒsmtplib.SMTP.connect”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.connect”j" t”bŒsmtplib.SMTP.docmd”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.docmd”j" t”bŒsmtplib.SMTP.ehlo”j )�”(jT(jU(Œ@https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.ehlo”j" t”bŒ#smtplib.SMTP.ehlo_or_helo_if_needed”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.ehlo_or_helo_if_needed”j" t”bŒsmtplib.SMTP.has_extn”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.has_extn”j" t”bŒsmtplib.SMTP.helo”j )�”(jT(jU(Œ@https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.helo”j" t”bŒsmtplib.SMTP.login”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.login”j" t”bŒsmtplib.SMTP.quit”j )�”(jT(jU(Œ@https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.quit”j" t”bŒsmtplib.SMTP.send_message”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.send_message”j" t”bŒsmtplib.SMTP.sendmail”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.sendmail”j" t”bŒsmtplib.SMTP.set_debuglevel”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.set_debuglevel”j" t”bŒsmtplib.SMTP.starttls”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.starttls”j" t”bŒsmtplib.SMTP.verify”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/smtplib.html#smtplib.SMTP.verify”j" t”bŒsocket.socket.accept”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/socket.html#socket.socket.accept”j" t”bŒsocket.socket.bind”j )�”(jT(jU(Œ@https://docs.python.org/3/library/socket.html#socket.socket.bind”j" t”bŒsocket.socket.close”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/socket.html#socket.socket.close”j" t”bŒsocket.socket.connect”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/socket.html#socket.socket.connect”j" t”bŒsocket.socket.connect_ex”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/socket.html#socket.socket.connect_ex”j" t”bŒsocket.socket.detach”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/socket.html#socket.socket.detach”j" t”bŒsocket.socket.dup”j )�”(jT(jU(Œ?https://docs.python.org/3/library/socket.html#socket.socket.dup”j" t”bŒsocket.socket.fileno”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/socket.html#socket.socket.fileno”j" t”bŒsocket.socket.get_inheritable”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/socket.html#socket.socket.get_inheritable”j" t”bŒsocket.socket.getblocking”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/socket.html#socket.socket.getblocking”j" t”bŒsocket.socket.getpeername”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/socket.html#socket.socket.getpeername”j" t”bŒsocket.socket.getsockname”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/socket.html#socket.socket.getsockname”j" t”bŒsocket.socket.getsockopt”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/socket.html#socket.socket.getsockopt”j" t”bŒsocket.socket.gettimeout”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/socket.html#socket.socket.gettimeout”j" t”bŒsocket.socket.ioctl”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/socket.html#socket.socket.ioctl”j" t”bŒsocket.socket.listen”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/socket.html#socket.socket.listen”j" t”bŒsocket.socket.makefile”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/socket.html#socket.socket.makefile”j" t”bŒsocket.socket.recv”j )�”(jT(jU(Œ@https://docs.python.org/3/library/socket.html#socket.socket.recv”j" t”bŒsocket.socket.recv_into”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/socket.html#socket.socket.recv_into”j" t”bŒsocket.socket.recvfrom”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/socket.html#socket.socket.recvfrom”j" t”bŒsocket.socket.recvfrom_into”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/socket.html#socket.socket.recvfrom_into”j" t”bŒsocket.socket.recvmsg”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/socket.html#socket.socket.recvmsg”j" t”bŒsocket.socket.recvmsg_into”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/socket.html#socket.socket.recvmsg_into”j" t”bŒsocket.socket.send”j )�”(jT(jU(Œ@https://docs.python.org/3/library/socket.html#socket.socket.send”j" t”bŒsocket.socket.sendall”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/socket.html#socket.socket.sendall”j" t”bŒsocket.socket.sendfile”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/socket.html#socket.socket.sendfile”j" t”bŒsocket.socket.sendmsg”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/socket.html#socket.socket.sendmsg”j" t”bŒsocket.socket.sendmsg_afalg”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/socket.html#socket.socket.sendmsg_afalg”j" t”bŒsocket.socket.sendto”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/socket.html#socket.socket.sendto”j" t”bŒsocket.socket.set_inheritable”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/socket.html#socket.socket.set_inheritable”j" t”bŒsocket.socket.setblocking”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/socket.html#socket.socket.setblocking”j" t”bŒsocket.socket.setsockopt”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/socket.html#socket.socket.setsockopt”j" t”bŒsocket.socket.settimeout”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/socket.html#socket.socket.settimeout”j" t”bŒsocket.socket.share”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/socket.html#socket.socket.share”j" t”bŒsocket.socket.shutdown”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/socket.html#socket.socket.shutdown”j" t”bŒ&socketserver.BaseRequestHandler.finish”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseRequestHandler.finish”j" t”bŒ&socketserver.BaseRequestHandler.handle”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseRequestHandler.handle”j" t”bŒ%socketserver.BaseRequestHandler.setup”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseRequestHandler.setup”j" t”bŒsocketserver.BaseServer.fileno”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.fileno”j" t”bŒ&socketserver.BaseServer.finish_request”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.finish_request”j" t”bŒ#socketserver.BaseServer.get_request”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.get_request”j" t”bŒ$socketserver.BaseServer.handle_error”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.handle_error”j" t”bŒ&socketserver.BaseServer.handle_request”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.handle_request”j" t”bŒ&socketserver.BaseServer.handle_timeout”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.handle_timeout”j" t”bŒ'socketserver.BaseServer.process_request”j )�”(jT(jU(Œ[https://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.process_request”j" t”bŒ%socketserver.BaseServer.serve_forever”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.serve_forever”j" t”bŒ'socketserver.BaseServer.server_activate”j )�”(jT(jU(Œ[https://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.server_activate”j" t”bŒ#socketserver.BaseServer.server_bind”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.server_bind”j" t”bŒ$socketserver.BaseServer.server_close”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.server_close”j" t”bŒ'socketserver.BaseServer.service_actions”j )�”(jT(jU(Œ[https://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.service_actions”j" t”bŒ socketserver.BaseServer.shutdown”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.shutdown”j" t”bŒ&socketserver.BaseServer.verify_request”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/socketserver.html#socketserver.BaseServer.verify_request”j" t”bŒsqlite3.Blob.close”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Blob.close”j" t”bŒsqlite3.Blob.read”j )�”(jT(jU(Œ@https://docs.python.org/3/library/sqlite3.html#sqlite3.Blob.read”j" t”bŒsqlite3.Blob.seek”j )�”(jT(jU(Œ@https://docs.python.org/3/library/sqlite3.html#sqlite3.Blob.seek”j" t”bŒsqlite3.Blob.tell”j )�”(jT(jU(Œ@https://docs.python.org/3/library/sqlite3.html#sqlite3.Blob.tell”j" t”bŒsqlite3.Blob.write”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Blob.write”j" t”bŒsqlite3.Connection.backup”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.backup”j" t”bŒsqlite3.Connection.blobopen”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.blobopen”j" t”bŒsqlite3.Connection.close”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.close”j" t”bŒsqlite3.Connection.commit”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.commit”j" t”bŒ#sqlite3.Connection.create_aggregate”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_aggregate”j" t”bŒ#sqlite3.Connection.create_collation”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_collation”j" t”bŒ"sqlite3.Connection.create_function”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_function”j" t”bŒ)sqlite3.Connection.create_window_function”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_window_function”j" t”bŒsqlite3.Connection.cursor”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.cursor”j" t”bŒsqlite3.Connection.deserialize”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.deserialize”j" t”bŒ(sqlite3.Connection.enable_load_extension”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.enable_load_extension”j" t”bŒsqlite3.Connection.execute”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.execute”j" t”bŒsqlite3.Connection.executemany”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.executemany”j" t”bŒ sqlite3.Connection.executescript”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.executescript”j" t”bŒsqlite3.Connection.getconfig”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.getconfig”j" t”bŒsqlite3.Connection.getlimit”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.getlimit”j" t”bŒsqlite3.Connection.interrupt”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.interrupt”j" t”bŒsqlite3.Connection.iterdump”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.iterdump”j" t”bŒ!sqlite3.Connection.load_extension”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.load_extension”j" t”bŒsqlite3.Connection.rollback”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.rollback”j" t”bŒsqlite3.Connection.serialize”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.serialize”j" t”bŒ!sqlite3.Connection.set_authorizer”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.set_authorizer”j" t”bŒ'sqlite3.Connection.set_progress_handler”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.set_progress_handler”j" t”bŒ%sqlite3.Connection.set_trace_callback”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.set_trace_callback”j" t”bŒsqlite3.Connection.setconfig”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.setconfig”j" t”bŒsqlite3.Connection.setlimit”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.setlimit”j" t”bŒsqlite3.Cursor.close”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.close”j" t”bŒsqlite3.Cursor.execute”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.execute”j" t”bŒsqlite3.Cursor.executemany”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executemany”j" t”bŒsqlite3.Cursor.executescript”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executescript”j" t”bŒsqlite3.Cursor.fetchall”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchall”j" t”bŒsqlite3.Cursor.fetchmany”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchmany”j" t”bŒsqlite3.Cursor.fetchone”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.fetchone”j" t”bŒsqlite3.Cursor.setinputsizes”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.setinputsizes”j" t”bŒsqlite3.Cursor.setoutputsize”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.setoutputsize”j" t”bŒsqlite3.Row.keys”j )�”(jT(jU(Œ?https://docs.python.org/3/library/sqlite3.html#sqlite3.Row.keys”j" t”bŒssl.MemoryBIO.read”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ssl.html#ssl.MemoryBIO.read”j" t”bŒssl.MemoryBIO.write”j )�”(jT(jU(Œ>https://docs.python.org/3/library/ssl.html#ssl.MemoryBIO.write”j" t”bŒssl.MemoryBIO.write_eof”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/ssl.html#ssl.MemoryBIO.write_eof”j" t”bŒssl.SSLContext.cert_store_stats”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.cert_store_stats”j" t”bŒssl.SSLContext.get_ca_certs”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.get_ca_certs”j" t”bŒssl.SSLContext.get_ciphers”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.get_ciphers”j" t”bŒssl.SSLContext.load_cert_chain”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_cert_chain”j" t”bŒ!ssl.SSLContext.load_default_certs”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_default_certs”j" t”bŒssl.SSLContext.load_dh_params”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_dh_params”j" t”bŒ$ssl.SSLContext.load_verify_locations”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_verify_locations”j" t”bŒssl.SSLContext.session_stats”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.session_stats”j" t”bŒ!ssl.SSLContext.set_alpn_protocols”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_alpn_protocols”j" t”bŒssl.SSLContext.set_ciphers”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_ciphers”j" t”bŒ'ssl.SSLContext.set_default_verify_paths”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_default_verify_paths”j" t”bŒssl.SSLContext.set_ecdh_curve”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_ecdh_curve”j" t”bŒ ssl.SSLContext.set_npn_protocols”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_npn_protocols”j" t”bŒ&ssl.SSLContext.set_psk_client_callback”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_psk_client_callback”j" t”bŒ&ssl.SSLContext.set_psk_server_callback”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_psk_server_callback”j" t”bŒ&ssl.SSLContext.set_servername_callback”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.set_servername_callback”j" t”bŒssl.SSLContext.wrap_bio”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.wrap_bio”j" t”bŒssl.SSLContext.wrap_socket”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ssl.html#ssl.SSLContext.wrap_socket”j" t”bŒssl.SSLSocket.cipher”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.cipher”j" t”bŒssl.SSLSocket.compression”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.compression”j" t”bŒssl.SSLSocket.do_handshake”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.do_handshake”j" t”bŒ!ssl.SSLSocket.get_channel_binding”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.get_channel_binding”j" t”bŒ"ssl.SSLSocket.get_unverified_chain”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.get_unverified_chain”j" t”bŒ ssl.SSLSocket.get_verified_chain”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.get_verified_chain”j" t”bŒssl.SSLSocket.getpeercert”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.getpeercert”j" t”bŒssl.SSLSocket.pending”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.pending”j" t”bŒssl.SSLSocket.read”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.read”j" t”bŒ$ssl.SSLSocket.selected_alpn_protocol”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.selected_alpn_protocol”j" t”bŒ#ssl.SSLSocket.selected_npn_protocol”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.selected_npn_protocol”j" t”bŒssl.SSLSocket.shared_ciphers”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.shared_ciphers”j" t”bŒssl.SSLSocket.unwrap”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.unwrap”j" t”bŒ*ssl.SSLSocket.verify_client_post_handshake”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/ssl.html#ssl.SSLSocket.verify_client_post_handshake”j" t”bŒssl.SSLSocket.version”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.version”j" t”bŒssl.SSLSocket.write”j )�”(jT(jU(Œ>https://docs.python.org/3/library/ssl.html#ssl.SSLSocket.write”j" t”bŒstatistics.NormalDist.cdf”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.cdf”j" t”bŒ"statistics.NormalDist.from_samples”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.from_samples”j" t”bŒstatistics.NormalDist.inv_cdf”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.inv_cdf”j" t”bŒstatistics.NormalDist.overlap”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.overlap”j" t”bŒstatistics.NormalDist.pdf”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.pdf”j" t”bŒstatistics.NormalDist.quantiles”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.quantiles”j" t”bŒstatistics.NormalDist.samples”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.samples”j" t”bŒstatistics.NormalDist.zscore”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/statistics.html#statistics.NormalDist.zscore”j" t”bŒstr.capitalize”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#str.capitalize”j" t”bŒ str.casefold”j )�”(jT(jU(Œhttps://docs.python.org/3/library/stdtypes.html#str.expandtabs”j" t”bŒstr.find”j )�”(jT(jU(Œ8https://docs.python.org/3/library/stdtypes.html#str.find”j" t”bŒ str.format”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#str.format”j" t”bŒstr.format_map”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#str.format_map”j" t”bŒ str.index”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stdtypes.html#str.index”j" t”bŒ str.isalnum”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#str.isalnum”j" t”bŒ str.isalpha”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#str.isalpha”j" t”bŒ str.isascii”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#str.isascii”j" t”bŒ str.isdecimal”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#str.isdecimal”j" t”bŒ str.isdigit”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#str.isdigit”j" t”bŒstr.isidentifier”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#str.isidentifier”j" t”bŒ str.islower”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#str.islower”j" t”bŒ str.isnumeric”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#str.isnumeric”j" t”bŒstr.isprintable”j )�”(jT(jU(Œ?https://docs.python.org/3/library/stdtypes.html#str.isprintable”j" t”bŒ str.isspace”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#str.isspace”j" t”bŒ str.istitle”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#str.istitle”j" t”bŒ str.isupper”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#str.isupper”j" t”bŒstr.join”j )�”(jT(jU(Œ8https://docs.python.org/3/library/stdtypes.html#str.join”j" t”bŒ str.ljust”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stdtypes.html#str.ljust”j" t”bŒ str.lower”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stdtypes.html#str.lower”j" t”bŒ str.lstrip”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#str.lstrip”j" t”bŒ str.maketrans”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#str.maketrans”j" t”bŒ str.partition”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#str.partition”j" t”bŒstr.removeprefix”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#str.removeprefix”j" t”bŒstr.removesuffix”j )�”(jT(jU(Œ@https://docs.python.org/3/library/stdtypes.html#str.removesuffix”j" t”bŒ str.replace”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#str.replace”j" t”bŒ str.rfind”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stdtypes.html#str.rfind”j" t”bŒ str.rindex”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#str.rindex”j" t”bŒ str.rjust”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stdtypes.html#str.rjust”j" t”bŒstr.rpartition”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#str.rpartition”j" t”bŒ str.rsplit”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#str.rsplit”j" t”bŒ str.rstrip”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#str.rstrip”j" t”bŒ str.split”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stdtypes.html#str.split”j" t”bŒstr.splitlines”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#str.splitlines”j" t”bŒstr.startswith”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#str.startswith”j" t”bŒ str.strip”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stdtypes.html#str.strip”j" t”bŒ str.swapcase”j )�”(jT(jU(Œtest.support.bytecode_helper.BytecodeTestCase.assertInBytecode”j )�”(jT(jU(Œjhttps://docs.python.org/3/library/test.html#test.support.bytecode_helper.BytecodeTestCase.assertInBytecode”j" t”bŒAtest.support.bytecode_helper.BytecodeTestCase.assertNotInBytecode”j )�”(jT(jU(Œmhttps://docs.python.org/3/library/test.html#test.support.bytecode_helper.BytecodeTestCase.assertNotInBytecode”j" t”bŒGtest.support.bytecode_helper.BytecodeTestCase.get_disassembly_as_string”j )�”(jT(jU(Œshttps://docs.python.org/3/library/test.html#test.support.bytecode_helper.BytecodeTestCase.get_disassembly_as_string”j" t”bŒ.test.support.os_helper.EnvironmentVarGuard.set”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/test.html#test.support.os_helper.EnvironmentVarGuard.set”j" t”bŒ0test.support.os_helper.EnvironmentVarGuard.unset”j )�”(jT(jU(Œ\https://docs.python.org/3/library/test.html#test.support.os_helper.EnvironmentVarGuard.unset”j" t”bŒtextwrap.TextWrapper.fill”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.fill”j" t”bŒtextwrap.TextWrapper.wrap”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper.wrap”j" t”bŒthreading.Barrier.abort”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/threading.html#threading.Barrier.abort”j" t”bŒthreading.Barrier.reset”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/threading.html#threading.Barrier.reset”j" t”bŒthreading.Barrier.wait”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/threading.html#threading.Barrier.wait”j" t”bŒthreading.Condition.acquire”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/threading.html#threading.Condition.acquire”j" t”bŒthreading.Condition.locked”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/threading.html#threading.Condition.locked”j" t”bŒthreading.Condition.notify”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/threading.html#threading.Condition.notify”j" t”bŒthreading.Condition.notify_all”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/threading.html#threading.Condition.notify_all”j" t”bŒthreading.Condition.release”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/threading.html#threading.Condition.release”j" t”bŒthreading.Condition.wait”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/threading.html#threading.Condition.wait”j" t”bŒthreading.Condition.wait_for”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/threading.html#threading.Condition.wait_for”j" t”bŒthreading.Event.clear”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/threading.html#threading.Event.clear”j" t”bŒthreading.Event.is_set”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/threading.html#threading.Event.is_set”j" t”bŒthreading.Event.set”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/threading.html#threading.Event.set”j" t”bŒthreading.Event.wait”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/threading.html#threading.Event.wait”j" t”bŒthreading.Lock.acquire”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/threading.html#threading.Lock.acquire”j" t”bŒthreading.Lock.locked”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/threading.html#threading.Lock.locked”j" t”bŒthreading.Lock.release”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/threading.html#threading.Lock.release”j" t”bŒthreading.RLock.acquire”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/threading.html#threading.RLock.acquire”j" t”bŒthreading.RLock.locked”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/threading.html#threading.RLock.locked”j" t”bŒthreading.RLock.release”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/threading.html#threading.RLock.release”j" t”bŒthreading.Semaphore.acquire”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/threading.html#threading.Semaphore.acquire”j" t”bŒthreading.Semaphore.release”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/threading.html#threading.Semaphore.release”j" t”bŒthreading.Thread.getName”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/threading.html#threading.Thread.getName”j" t”bŒthreading.Thread.isDaemon”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/threading.html#threading.Thread.isDaemon”j" t”bŒthreading.Thread.is_alive”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/threading.html#threading.Thread.is_alive”j" t”bŒthreading.Thread.join”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/threading.html#threading.Thread.join”j" t”bŒthreading.Thread.run”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/threading.html#threading.Thread.run”j" t”bŒthreading.Thread.setDaemon”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/threading.html#threading.Thread.setDaemon”j" t”bŒthreading.Thread.setName”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/threading.html#threading.Thread.setName”j" t”bŒthreading.Thread.start”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/threading.html#threading.Thread.start”j" t”bŒthreading.Timer.cancel”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/threading.html#threading.Timer.cancel”j" t”bŒtimeit.Timer.autorange”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/timeit.html#timeit.Timer.autorange”j" t”bŒtimeit.Timer.print_exc”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/timeit.html#timeit.Timer.print_exc”j" t”bŒtimeit.Timer.repeat”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/timeit.html#timeit.Timer.repeat”j" t”bŒtimeit.Timer.timeit”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/timeit.html#timeit.Timer.timeit”j" t”bŒ tkinter.commondialog.Dialog.show”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/dialog.html#tkinter.commondialog.Dialog.show”j" t”bŒtkinter.dnd.DndHandler.cancel”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/tkinter.dnd.html#tkinter.dnd.DndHandler.cancel”j" t”bŒtkinter.dnd.DndHandler.finish”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/tkinter.dnd.html#tkinter.dnd.DndHandler.finish”j" t”bŒ tkinter.dnd.DndHandler.on_motion”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/tkinter.dnd.html#tkinter.dnd.DndHandler.on_motion”j" t”bŒ!tkinter.dnd.DndHandler.on_release”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/tkinter.dnd.html#tkinter.dnd.DndHandler.on_release”j" t”bŒ,tkinter.filedialog.FileDialog.cancel_command”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.cancel_command”j" t”bŒ/tkinter.filedialog.FileDialog.dirs_double_event”j )�”(jT(jU(Œ]https://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.dirs_double_event”j" t”bŒ/tkinter.filedialog.FileDialog.dirs_select_event”j )�”(jT(jU(Œ]https://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.dirs_select_event”j" t”bŒ0tkinter.filedialog.FileDialog.files_double_event”j )�”(jT(jU(Œ^https://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.files_double_event”j" t”bŒ0tkinter.filedialog.FileDialog.files_select_event”j )�”(jT(jU(Œ^https://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.files_select_event”j" t”bŒ,tkinter.filedialog.FileDialog.filter_command”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.filter_command”j" t”bŒ(tkinter.filedialog.FileDialog.get_filter”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.get_filter”j" t”bŒ+tkinter.filedialog.FileDialog.get_selection”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.get_selection”j" t”bŒ tkinter.filedialog.FileDialog.go”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.go”j" t”bŒ&tkinter.filedialog.FileDialog.ok_event”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.ok_event”j" t”bŒ"tkinter.filedialog.FileDialog.quit”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.quit”j" t”bŒ(tkinter.filedialog.FileDialog.set_filter”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.set_filter”j" t”bŒ+tkinter.filedialog.FileDialog.set_selection”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.FileDialog.set_selection”j" t”bŒ,tkinter.filedialog.LoadFileDialog.ok_command”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.LoadFileDialog.ok_command”j" t”bŒ,tkinter.filedialog.SaveFileDialog.ok_command”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/dialog.html#tkinter.filedialog.SaveFileDialog.ok_command”j" t”bŒtkinter.font.Font.actual”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.Font.actual”j" t”bŒtkinter.font.Font.cget”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.Font.cget”j" t”bŒtkinter.font.Font.config”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.Font.config”j" t”bŒtkinter.font.Font.copy”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.Font.copy”j" t”bŒtkinter.font.Font.measure”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.Font.measure”j" t”bŒtkinter.font.Font.metrics”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.Font.metrics”j" t”bŒtkinter.messagebox.Message.show”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.Message.show”j" t”bŒ tkinter.simpledialog.Dialog.body”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/dialog.html#tkinter.simpledialog.Dialog.body”j" t”bŒ%tkinter.simpledialog.Dialog.buttonbox”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/dialog.html#tkinter.simpledialog.Dialog.buttonbox”j" t”bŒtkinter.ttk.Combobox.current”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Combobox.current”j" t”bŒtkinter.ttk.Combobox.get”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Combobox.get”j" t”bŒtkinter.ttk.Combobox.set”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Combobox.set”j" t”bŒtkinter.ttk.Notebook.add”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.add”j" t”bŒ%tkinter.ttk.Notebook.enable_traversal”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.enable_traversal”j" t”bŒtkinter.ttk.Notebook.forget”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.forget”j" t”bŒtkinter.ttk.Notebook.hide”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.hide”j" t”bŒtkinter.ttk.Notebook.identify”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.identify”j" t”bŒtkinter.ttk.Notebook.index”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.index”j" t”bŒtkinter.ttk.Notebook.insert”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.insert”j" t”bŒtkinter.ttk.Notebook.select”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.select”j" t”bŒtkinter.ttk.Notebook.tab”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.tab”j" t”bŒtkinter.ttk.Notebook.tabs”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Notebook.tabs”j" t”bŒtkinter.ttk.Progressbar.start”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Progressbar.start”j" t”bŒtkinter.ttk.Progressbar.step”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Progressbar.step”j" t”bŒtkinter.ttk.Progressbar.stop”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Progressbar.stop”j" t”bŒtkinter.ttk.Spinbox.get”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Spinbox.get”j" t”bŒtkinter.ttk.Spinbox.set”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Spinbox.set”j" t”bŒtkinter.ttk.Style.configure”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.configure”j" t”bŒ tkinter.ttk.Style.element_create”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.element_create”j" t”bŒtkinter.ttk.Style.element_names”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.element_names”j" t”bŒ!tkinter.ttk.Style.element_options”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.element_options”j" t”bŒtkinter.ttk.Style.layout”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.layout”j" t”bŒtkinter.ttk.Style.lookup”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.lookup”j" t”bŒtkinter.ttk.Style.map”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.map”j" t”bŒtkinter.ttk.Style.theme_create”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_create”j" t”bŒtkinter.ttk.Style.theme_names”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_names”j" t”bŒ tkinter.ttk.Style.theme_settings”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_settings”j" t”bŒtkinter.ttk.Style.theme_use”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Style.theme_use”j" t”bŒtkinter.ttk.Treeview.bbox”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.bbox”j" t”bŒtkinter.ttk.Treeview.column”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.column”j" t”bŒtkinter.ttk.Treeview.delete”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.delete”j" t”bŒtkinter.ttk.Treeview.detach”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.detach”•Cj" t”bŒtkinter.ttk.Treeview.exists”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.exists”j" t”bŒtkinter.ttk.Treeview.focus”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.focus”j" t”bŒ!tkinter.ttk.Treeview.get_children”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.get_children”j" t”bŒtkinter.ttk.Treeview.heading”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.heading”j" t”bŒtkinter.ttk.Treeview.identify”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify”j" t”bŒ$tkinter.ttk.Treeview.identify_column”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_column”j" t”bŒ%tkinter.ttk.Treeview.identify_element”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_element”j" t”bŒ$tkinter.ttk.Treeview.identify_region”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_region”j" t”bŒ!tkinter.ttk.Treeview.identify_row”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.identify_row”j" t”bŒtkinter.ttk.Treeview.index”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.index”j" t”bŒtkinter.ttk.Treeview.insert”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.insert”j" t”bŒtkinter.ttk.Treeview.item”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.item”j" t”bŒtkinter.ttk.Treeview.move”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.move”j" t”bŒtkinter.ttk.Treeview.next”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.next”j" t”bŒtkinter.ttk.Treeview.parent”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.parent”j" t”bŒtkinter.ttk.Treeview.prev”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.prev”j" t”bŒtkinter.ttk.Treeview.reattach”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.reattach”j" t”bŒtkinter.ttk.Treeview.see”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.see”j" t”bŒtkinter.ttk.Treeview.selection”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection”j" t”bŒ"tkinter.ttk.Treeview.selection_add”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_add”j" t”bŒ%tkinter.ttk.Treeview.selection_remove”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_remove”j" t”bŒ"tkinter.ttk.Treeview.selection_set”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_set”j" t”bŒ%tkinter.ttk.Treeview.selection_toggle”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection_toggle”j" t”bŒtkinter.ttk.Treeview.set”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.set”j" t”bŒ!tkinter.ttk.Treeview.set_children”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.set_children”j" t”bŒtkinter.ttk.Treeview.tag_bind”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.tag_bind”j" t”bŒ"tkinter.ttk.Treeview.tag_configure”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.tag_configure”j" t”bŒtkinter.ttk.Treeview.tag_has”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.tag_has”j" t”bŒtkinter.ttk.Treeview.xview”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.xview”j" t”bŒtkinter.ttk.Treeview.yview”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview.yview”j" t”bŒtkinter.ttk.Widget.identify”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Widget.identify”j" t”bŒtkinter.ttk.Widget.instate”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Widget.instate”j" t”bŒtkinter.ttk.Widget.state”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Widget.state”j" t”bŒtrace.CoverageResults.update”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/trace.html#trace.CoverageResults.update”j" t”bŒ#trace.CoverageResults.write_results”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/trace.html#trace.CoverageResults.write_results”j" t”bŒtrace.Trace.results”j )�”(jT(jU(Œ@https://docs.python.org/3/library/trace.html#trace.Trace.results”j" t”bŒtrace.Trace.run”j )�”(jT(jU(Œurllib.request.AbstractDigestAuthHandler.http_error_auth_reqed”j )�”(jT(jU(Œthttps://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractDigestAuthHandler.http_error_auth_reqed”j" t”bŒ%urllib.request.BaseHandler.add_parent”j )�”(jT(jU(Œ[https://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.add_parent”j" t”bŒ urllib.request.BaseHandler.close”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.close”j" t”bŒ'urllib.request.BaseHandler.default_open”j )�”(jT(jU(Œ]https://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.default_open”j" t”bŒ-urllib.request.BaseHandler.http_error_default”j )�”(jT(jU(Œchttps://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.http_error_default”j" t”bŒ'urllib.request.BaseHandler.unknown_open”j )�”(jT(jU(Œ]https://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler.unknown_open”j" t”bŒ*urllib.request.CacheFTPHandler.setMaxConns”j )�”(jT(jU(Œ`https://docs.python.org/3/library/urllib.request.html#urllib.request.CacheFTPHandler.setMaxConns”j" t”bŒ)urllib.request.CacheFTPHandler.setTimeout”j )�”(jT(jU(Œ_https://docs.python.org/3/library/urllib.request.html#urllib.request.CacheFTPHandler.setTimeout”j" t”bŒ$urllib.request.DataHandler.data_open”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/urllib.request.html#urllib.request.DataHandler.data_open”j" t”bŒ"urllib.request.FTPHandler.ftp_open”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/urllib.request.html#urllib.request.FTPHandler.ftp_open”j" t”bŒ$urllib.request.FileHandler.file_open”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/urllib.request.html#urllib.request.FileHandler.file_open”j" t”bŒ2urllib.request.HTTPBasicAuthHandler.http_error_401”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPBasicAuthHandler.http_error_401”j" t”bŒ3urllib.request.HTTPDigestAuthHandler.http_error_401”j )�”(jT(jU(Œihttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPDigestAuthHandler.http_error_401”j" t”bŒ/urllib.request.HTTPErrorProcessor.http_response”j )�”(jT(jU(Œehttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPErrorProcessor.http_response”j" t”bŒ0urllib.request.HTTPErrorProcessor.https_response”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPErrorProcessor.https_response”j" t”bŒ$urllib.request.HTTPHandler.http_open”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPHandler.http_open”j" t”bŒ+urllib.request.HTTPPasswordMgr.add_password”j )�”(jT(jU(Œahttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgr.add_password”j" t”bŒ1urllib.request.HTTPPasswordMgr.find_user_password”j )�”(jT(jU(Œghttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgr.find_user_password”j" t”bŒ8urllib.request.HTTPPasswordMgrWithPriorAuth.add_password”j )�”(jT(jU(Œnhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgrWithPriorAuth.add_password”j" t”bŒ>urllib.request.HTTPPasswordMgrWithPriorAuth.find_user_password”j )�”(jT(jU(Œthttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgrWithPriorAuth.find_user_password”j" t”bŒxml.parsers.expat.xmlparser.SetAllocTrackerActivationThreshold”j )�”(jT(jU(Œmhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.SetAllocTrackerActivationThreshold”j" t”bŒ?xml.parsers.expat.xmlparser.SetAllocTrackerMaximumAmplification”j )�”(jT(jU(Œnhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.SetAllocTrackerMaximumAmplification”j" t”bŒ#xml.parsers.expat.xmlparser.SetBase”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.SetBase”j" t”bŒ1xml.parsers.expat.xmlparser.SetParamEntityParsing”j )�”(jT(jU(Œ`https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.SetParamEntityParsing”j" t”bŒ5xml.parsers.expat.xmlparser.SetReparseDeferralEnabled”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.SetReparseDeferralEnabled”•5j" t”bŒ4xml.parsers.expat.xmlparser.StartCdataSectionHandler”j )�”(jT(jU(Œchttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.StartCdataSectionHandler”j" t”bŒ3xml.parsers.expat.xmlparser.StartDoctypeDeclHandler”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.StartDoctypeDeclHandler”j" t”bŒ/xml.parsers.expat.xmlparser.StartElementHandler”j )�”(jT(jU(Œ^https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.StartElementHandler”j" t”bŒ5xml.parsers.expat.xmlparser.StartNamespaceDeclHandler”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.StartNamespaceDeclHandler”j" t”bŒ5xml.parsers.expat.xmlparser.UnparsedEntityDeclHandler”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.UnparsedEntityDeclHandler”j" t”bŒ)xml.parsers.expat.xmlparser.UseForeignDTD”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.UseForeignDTD”j" t”bŒ*xml.parsers.expat.xmlparser.XmlDeclHandler”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.xmlparser.XmlDeclHandler”j" t”bŒ!xml.sax.SAXException.getException”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/xml.sax.html#xml.sax.SAXException.getException”j" t”bŒxml.sax.SAXException.getMessage”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/xml.sax.html#xml.sax.SAXException.getMessage”j" t”bŒ)xml.sax.handler.ContentHandler.characters”j )�”(jT(jU(Œ`https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.characters”j" t”bŒ*xml.sax.handler.ContentHandler.endDocument”j )�”(jT(jU(Œahttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.endDocument”j" t”bŒ)xml.sax.handler.ContentHandler.endElement”j )�”(jT(jU(Œ`https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.endElement”j" t”bŒ+xml.sax.handler.ContentHandler.endElementNS”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.endElementNS”j" t”bŒ/xml.sax.handler.ContentHandler.endPrefixMapping”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.endPrefixMapping”j" t”bŒ2xml.sax.handler.ContentHandler.ignorableWhitespace”j )�”(jT(jU(Œihttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.ignorableWhitespace”j" t”bŒ4xml.sax.handler.ContentHandler.processingInstruction”j )�”(jT(jU(Œkhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.processingInstruction”j" t”bŒ1xml.sax.handler.ContentHandler.setDocumentLocator”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.setDocumentLocator”j" t”bŒ,xml.sax.handler.ContentHandler.skippedEntity”j )�”(jT(jU(Œchttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.skippedEntity”j" t”bŒ,xml.sax.handler.ContentHandler.startDocument”j )�”(jT(jU(Œchttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.startDocument”j" t”bŒ+xml.sax.handler.ContentHandler.startElement”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.startElement”j" t”bŒ-xml.sax.handler.ContentHandler.startElementNS”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.startElementNS”j" t”bŒ1xml.sax.handler.ContentHandler.startPrefixMapping”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler.startPrefixMapping”j" t”bŒ'xml.sax.handler.DTDHandler.notationDecl”j )�”(jT(jU(Œ^https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.DTDHandler.notationDecl”j" t”bŒ-xml.sax.handler.DTDHandler.unparsedEntityDecl”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.DTDHandler.unparsedEntityDecl”j" t”bŒ,xml.sax.handler.EntityResolver.resolveEntity”j )�”(jT(jU(Œchttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.EntityResolver.resolveEntity”j" t”bŒ"xml.sax.handler.ErrorHandler.error”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ErrorHandler.error”j" t”bŒ'xml.sax.handler.ErrorHandler.fatalError”j )�”(jT(jU(Œ^https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ErrorHandler.fatalError”j" t”bŒ$xml.sax.handler.ErrorHandler.warning”j )�”(jT(jU(Œ[https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ErrorHandler.warning”j" t”bŒ&xml.sax.handler.LexicalHandler.comment”j )�”(jT(jU(Œ]https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.LexicalHandler.comment”j" t”bŒ'xml.sax.handler.LexicalHandler.endCDATA”j )�”(jT(jU(Œ^https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.LexicalHandler.endCDATA”j" t”bŒ%xml.sax.handler.LexicalHandler.endDTD”j )�”(jT(jU(Œ\https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.LexicalHandler.endDTD”j" t”bŒ)xml.sax.handler.LexicalHandler.startCDATA”j )�”(jT(jU(Œ`https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.LexicalHandler.startCDATA”j" t”bŒ'xml.sax.handler.LexicalHandler.startDTD”j )�”(jT(jU(Œ^https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.LexicalHandler.startDTD”j" t”bŒ&xml.sax.xmlreader.Attributes.getLength”j )�”(jT(jU(Œ\https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Attributes.getLength”j" t”bŒ%xml.sax.xmlreader.Attributes.getNames”j )�”(jT(jU(Œ[https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Attributes.getNames”j" t”bŒ$xml.sax.xmlreader.Attributes.getType”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Attributes.getType”j" t”bŒ%xml.sax.xmlreader.Attributes.getValue”j )�”(jT(jU(Œ[https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Attributes.getValue”j" t”bŒ-xml.sax.xmlreader.AttributesNS.getNameByQName”j )�”(jT(jU(Œchttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNS.getNameByQName”j" t”bŒ-xml.sax.xmlreader.AttributesNS.getQNameByName”j )�”(jT(jU(Œchttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNS.getQNameByName”j" t”bŒ(xml.sax.xmlreader.AttributesNS.getQNames”j )�”(jT(jU(Œ^https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNS.getQNames”j" t”bŒ.xml.sax.xmlreader.AttributesNS.getValueByQName”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNS.getValueByQName”j" t”bŒ)xml.sax.xmlreader.IncrementalParser.close”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.IncrementalParser.close”j" t”bŒ(xml.sax.xmlreader.IncrementalParser.feed”j )�”(jT(jU(Œ^https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.IncrementalParser.feed”j" t”bŒ)xml.sax.xmlreader.IncrementalParser.reset”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.IncrementalParser.reset”j" t”bŒ+xml.sax.xmlreader.InputSource.getByteStream”j )�”(jT(jU(Œahttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getByteStream”j" t”bŒ0xml.sax.xmlreader.InputSource.getCharacterStream”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getCharacterStream”j" t”bŒ)xml.sax.xmlreader.InputSource.getEncoding”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getEncoding”j" t”bŒ)xml.sax.xmlreader.InputSource.getPublicId”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getPublicId”j" t”bŒ)xml.sax.xmlreader.InputSource.getSystemId”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.getSystemId”j" t”bŒ+xml.sax.xmlreader.InputSource.setByteStream”j )�”(jT(jU(Œahttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setByteStream”j" t”bŒ0xml.sax.xmlreader.InputSource.setCharacterStream”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setCharacterStream”j" t”bŒ)xml.sax.xmlreader.InputSource.setEncoding”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setEncoding”j" t”bŒ)xml.sax.xmlreader.InputSource.setPublicId”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setPublicId”j" t”bŒ)xml.sax.xmlreader.InputSource.setSystemId”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource.setSystemId”j" t”bŒ)xml.sax.xmlreader.Locator.getColumnNumber”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locator.getColumnNumber”j" t”bŒ'xml.sax.xmlreader.Locator.getLineNumber”j )�”(jT(jU(Œ]https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locator.getLineNumber”j" t”bŒ%xml.sax.xmlreader.Locator.getPublicId”j )�”(jT(jU(Œ[https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locator.getPublicId”j" t”bŒ%xml.sax.xmlreader.Locator.getSystemId”j )�”(jT(jU(Œ[https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locator.getSystemId”j" t”bŒ-xml.sax.xmlreader.XMLReader.getContentHandler”j )�”(jT(jU(Œchttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getContentHandler”j" t”bŒ)xml.sax.xmlreader.XMLReader.getDTDHandler”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getDTDHandler”j" t”bŒ-xml.sax.xmlreader.XMLReader.getEntityResolver”j )�”(jT(jU(Œchttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getEntityResolver”j" t”bŒ+xml.sax.xmlreader.XMLReader.getErrorHandler”j )�”(jT(jU(Œahttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getErrorHandler”j" t”bŒ&xml.sax.xmlreader.XMLReader.getFeature”j )�”(jT(jU(Œ\https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getFeature”j" t”bŒ'xml.sax.xmlreader.XMLReader.getProperty”j )�”(jT(jU(Œ]https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.getProperty”j" t”bŒ!xml.sax.xmlreader.XMLReader.parse”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.parse”j" t”bŒ-xml.sax.xmlreader.XMLReader.setContentHandler”j )�”(jT(jU(Œchttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setContentHandler”j" t”bŒ)xml.sax.xmlreader.XMLReader.setDTDHandler”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setDTDHandler”j" t”bŒ-xml.sax.xmlreader.XMLReader.setEntityResolver”j )�”(jT(jU(Œchttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setEntityResolver”j" t”bŒ+xml.sax.xmlreader.XMLReader.setErrorHandler”j )�”(jT(jU(Œahttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setErrorHandler”j" t”bŒ&xml.sax.xmlreader.XMLReader.setFeature”j )�”(jT(jU(Œ\https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setFeature”j" t”bŒ%xml.sax.xmlreader.XMLReader.setLocale”j )�”(jT(jU(Œ[https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setLocale”j" t”bŒ'xml.sax.xmlreader.XMLReader.setProperty”j )�”(jT(jU(Œ]https://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader.setProperty”j" t”bŒxmlrpc.client.Binary.decode”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Binary.decode”j" t”bŒxmlrpc.client.Binary.encode”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Binary.encode”j" t”bŒxmlrpc.client.DateTime.decode”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.DateTime.decode”j" t”bŒxmlrpc.client.DateTime.encode”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.DateTime.encode”j" t”bŒ,xmlrpc.client.ServerProxy.system.listMethods”j )�”(jT(jU(Œahttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ServerProxy.system.listMethods”j" t”bŒ+xmlrpc.client.ServerProxy.system.methodHelp”j )�”(jT(jU(Œ`https://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ServerProxy.system.methodHelp”j" t”bŒ0xmlrpc.client.ServerProxy.system.methodSignature”j )�”(jT(jU(Œehttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ServerProxy.system.methodSignature”j" t”bŒ4xmlrpc.server.CGIXMLRPCRequestHandler.handle_request”j )�”(jT(jU(Œihttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.handle_request”j" t”bŒ7xmlrpc.server.CGIXMLRPCRequestHandler.register_function”j )�”(jT(jU(Œlhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.register_function”j" t”bŒ7xmlrpc.server.CGIXMLRPCRequestHandler.register_instance”j )�”(jT(jU(Œlhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.register_instance”j" t”bŒFxmlrpc.server.CGIXMLRPCRequestHandler.register_introspection_functions”j )�”(jT(jU(Œ{https://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.register_introspection_functions”j" t”bŒBxmlrpc.server.CGIXMLRPCRequestHandler.register_multicall_functions”j )�”(jT(jU(Œwhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler.register_multicall_functions”j" t”bŒAxmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_documentation”j )�”(jT(jU(Œvhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_documentation”j" t”bŒ8xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_name”j )�”(jT(jU(Œmhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_name”j" t”bŒ9xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_title”j )�”(jT(jU(Œnhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocCGIXMLRPCRequestHandler.set_server_title”j" t”bŒ6xmlrpc.server.DocXMLRPCServer.set_server_documentation”j )�”(jT(jU(Œkhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServer.set_server_documentation”j" t”bŒ-xmlrpc.server.DocXMLRPCServer.set_server_name”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServer.set_server_name”j" t”bŒ.xmlrpc.server.DocXMLRPCServer.set_server_title”j )�”(jT(jU(Œchttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServer.set_server_title”j" t”bŒ2xmlrpc.server.SimpleXMLRPCServer.register_function”j )�”(jT(jU(Œghttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServer.register_function”j" t”bŒ2xmlrpc.server.SimpleXMLRPCServer.register_instance”j )�”(jT(jU(Œghttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServer.register_instance”j" t”bŒAxmlrpc.server.SimpleXMLRPCServer.register_introspection_functions”j )�”(jT(jU(Œvhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServer.register_introspection_functions”j" t”bŒ=xmlrpc.server.SimpleXMLRPCServer.register_multicall_functions”j )�”(jT(jU(Œrhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServer.register_multicall_functions”j" t”bŒzipfile.Path.exists”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/zipfile.html#zipfile.Path.exists”j" t”bŒzipfile.Path.is_dir”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/zipfile.html#zipfile.Path.is_dir”j" t”bŒzipfile.Path.is_file”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/zipfile.html#zipfile.Path.is_file”j" t”bŒzipfile.Path.is_symlink”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/zipfile.html#zipfile.Path.is_symlink”j" t”bŒzipfile.Path.iterdir”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/zipfile.html#zipfile.Path.iterdir”j" t”bŒzipfile.Path.joinpath”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/zipfile.html#zipfile.Path.joinpath”j" t”bŒzipfile.Path.open”j )�”(jT(jU(Œ@https://docs.python.org/3/library/zipfile.html#zipfile.Path.open”j" t”bŒzipfile.Path.read_bytes”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/zipfile.html#zipfile.Path.read_bytes”j" t”bŒzipfile.Path.read_text”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/zipfile.html#zipfile.Path.read_text”j" t”bŒzipfile.PyZipFile.writepy”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/zipfile.html#zipfile.PyZipFile.writepy”j" t”bŒzipfile.ZipFile.close”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.close”j" t”bŒzipfile.ZipFile.extract”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.extract”j" t”bŒzipfile.ZipFile.extractall”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.extractall”j" t”bŒzipfile.ZipFile.getinfo”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.getinfo”j" t”bŒzipfile.ZipFile.infolist”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.infolist”j" t”bŒzipfile.ZipFile.mkdir”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.mkdir”j" t”bŒzipfile.ZipFile.namelist”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.namelist”j" t”bŒzipfile.ZipFile.open”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.open”j" t”bŒzipfile.ZipFile.printdir”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.printdir”j" t”bŒzipfile.ZipFile.read”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.read”j" t”bŒzipfile.ZipFile.setpassword”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.setpassword”j" t”bŒzipfile.ZipFile.testzip”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.testzip”j" t”bŒzipfile.ZipFile.write”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.write”j" t”bŒzipfile.ZipFile.writestr”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.writestr”j" t”bŒzipfile.ZipInfo._for_archive”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo._for_archive”j" t”bŒzipfile.ZipInfo.from_file”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.from_file”j" t”bŒzipfile.ZipInfo.is_dir”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo.is_dir”j" t”bŒ#zipimport.zipimporter.create_module”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.create_module”j" t”bŒ!zipimport.zipimporter.exec_module”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.exec_module”j" t”bŒzipimport.zipimporter.find_spec”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.find_spec”j" t”bŒzipimport.zipimporter.get_code”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.get_code”j" t”bŒzipimport.zipimporter.get_data”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.get_data”j" t”bŒ"zipimport.zipimporter.get_filename”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.get_filename”j" t”bŒ zipimport.zipimporter.get_source”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.get_source”j" t”bŒ'zipimport.zipimporter.invalidate_caches”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.invalidate_caches”j" t”bŒ zipimport.zipimporter.is_package”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.is_package”j" t”bŒ!zipimport.zipimporter.load_module”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporter.load_module”j" t”bŒzlib.Compress.compress”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/zlib.html#zlib.Compress.compress”j" t”bŒzlib.Compress.copy”j )�”(jT(jU(Œ>https://docs.python.org/3/library/zlib.html#zlib.Compress.copy”j" t”bŒzlib.Compress.flush”j )�”(jT(jU(Œ?https://docs.python.org/3/library/zlib.html#zlib.Compress.flush”j" t”bŒzlib.Decompress.copy”j )�”(jT(jU(Œ@https://docs.python.org/3/library/zlib.html#zlib.Decompress.copy”j" t”bŒzlib.Decompress.decompress”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/zlib.html#zlib.Decompress.decompress”j" t”bŒzlib.Decompress.flush”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/zlib.html#zlib.Decompress.flush”j" t”bŒzoneinfo.ZoneInfo.clear_cache”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.ZoneInfo.clear_cache”j" t”bŒzoneinfo.ZoneInfo.from_file”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.ZoneInfo.from_file”j" t”bŒzoneinfo.ZoneInfo.no_cache”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.ZoneInfo.no_cache”j" t”buŒpy:data”}”(ŒEllipsis”j )�”(jT(jU(Œ9https://docs.python.org/3/library/constants.html#Ellipsis”j" t”bŒFalse”j )�”(jT(jU(Œ6https://docs.python.org/3/library/constants.html#False”j" t”bŒNone”j )�”(jT(jU(Œ5https://docs.python.org/3/library/constants.html#None”j" t”bŒNotImplemented”j )�”(jT(jU(Œ?https://docs.python.org/3/library/constants.html#NotImplemented”j" t”bŒTrue”j )�”(jT(jU(Œ5https://docs.python.org/3/library/constants.html#True”j" t”bŒ __debug__”j )�”(jT(jU(Œ8https://docs.python.org/3/library/constants.html#debug__”j" t”bŒ__future__.absolute_import”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/__future__.html#future__.absolute_import”j" t”bŒ__future__.annotations”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/__future__.html#future__.annotations”j" t”bŒ__future__.division”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/__future__.html#future__.division”j" t”bŒ__future__.generator_stop”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/__future__.html#future__.generator_stop”j" t”bŒ__future__.generators”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/__future__.html#future__.generators”j" t”bŒ__future__.nested_scopes”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/__future__.html#future__.nested_scopes”j" t”bŒ__future__.print_function”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/__future__.html#future__.print_function”j" t”bŒ__future__.unicode_literals”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/__future__.html#future__.unicode_literals”j" t”bŒ__future__.with_statement”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/__future__.html#future__.with_statement”j" t”bŒ_thread.LockType”j )�”(jT(jU(Œ>https://docs.python.org/3/library/_thread.html#thread.LockType”j" t”bŒ_thread.TIMEOUT_MAX”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/_thread.html#thread.TIMEOUT_MAX”j" t”bŒ_tkinter.EXCEPTION”j )�”(jT(jU(Œ@https://docs.python.org/3/library/tkinter.html#tkinter.EXCEPTION”j" t”bŒ_tkinter.READABLE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/tkinter.html#tkinter.READABLE”j" t”bŒ_tkinter.WRITABLE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/tkinter.html#tkinter.WRITABLE”j" t”bŒarray.typecodes”j )�”(jT(jU(Œhttps://docs.python.org/3/library/calendar.html#calendar.APRIL”j" t”bŒcalendar.AUGUST”j )�”(jT(jU(Œ?https://docs.python.org/3/library/calendar.html#calendar.AUGUST”j" t”bŒcalendar.DECEMBER”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/calendar.html#calendar.DECEMBER”j" t”bŒcalendar.FEBRUARY”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/calendar.html#calendar.FEBRUARY”j" t”bŒcalendar.FRIDAY”j )�”(jT(jU(Œ?https://docs.python.org/3/library/calendar.html#calendar.FRIDAY”j" t”bŒcalendar.JANUARY”j )�”(jT(jU(Œ@https://docs.python.org/3/library/calendar.html#calendar.JANUARY”j" t”bŒ calendar.JULY”j )�”(jT(jU(Œ=https://docs.python.org/3/library/calendar.html#calendar.JULY”j" t”bŒ calendar.JUNE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/calendar.html#calendar.JUNE”j" t”bŒcalendar.MARCH”j )�”(jT(jU(Œ>https://docs.python.org/3/library/calendar.html#calendar.MARCH”j" t”bŒ calendar.MAY”j )�”(jT(jU(Œhttps://docs.python.org/3/library/codecs.html#codecs.BOM_UTF16”j" t”bŒcodecs.BOM_UTF16_BE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/codecs.html#codecs.BOM_UTF16_BE”j" t”bŒcodecs.BOM_UTF16_LE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/codecs.html#codecs.BOM_UTF16_LE”j" t”bŒcodecs.BOM_UTF32”j )�”(jT(jU(Œ>https://docs.python.org/3/library/codecs.html#codecs.BOM_UTF32”j" t”bŒcodecs.BOM_UTF32_BE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/codecs.html#codecs.BOM_UTF32_BE”j" t”bŒcodecs.BOM_UTF32_LE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/codecs.html#codecs.BOM_UTF32_LE”j" t”bŒcodecs.BOM_UTF8”j )�”(jT(jU(Œ=https://docs.python.org/3/library/codecs.html#codecs.BOM_UTF8”j" t”bŒ concurrent.futures.ALL_COMPLETED”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ALL_COMPLETED”j" t”bŒ"concurrent.futures.FIRST_COMPLETED”j )�”(jT(jU(Œ\https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.FIRST_COMPLETED”j" t”bŒ"concurrent.futures.FIRST_EXCEPTION”j )�”(jT(jU(Œ\https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.FIRST_EXCEPTION”j" t”bŒ$configparser.MAX_INTERPOLATION_DEPTH”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/configparser.html#configparser.MAX_INTERPOLATION_DEPTH”j" t”bŒconfigparser.UNNAMED_SECTION”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/configparser.html#configparser.UNNAMED_SECTION”j" t”bŒ copyright”j )�”(jT(jU(Œ:https://docs.python.org/3/library/constants.html#copyright”j" t”bŒcredits”j )�”(jT(jU(Œ8https://docs.python.org/3/library/constants.html#credits”j" t”bŒ csv.QUOTE_ALL”j )�”(jT(jU(Œ8https://docs.python.org/3/library/csv.html#csv.QUOTE_ALL”j" t”bŒcsv.QUOTE_MINIMAL”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ctypes.html#ctypes.pythonapi”j" t”bŒ ctypes.windll”j )�”(jT(jU(Œ;https://docs.python.org/3/library/ctypes.html#ctypes.windll”j" t”bŒcurses.ACS_BBSS”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_BBSS”j" t”bŒcurses.ACS_BLOCK”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.ACS_BLOCK”j" t”bŒcurses.ACS_BOARD”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.ACS_BOARD”j" t”bŒcurses.ACS_BSBS”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_BSBS”j" t”bŒcurses.ACS_BSSB”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_BSSB”j" t”bŒcurses.ACS_BSSS”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_BSSS”j" t”bŒcurses.ACS_BTEE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_BTEE”j" t”bŒcurses.ACS_BULLET”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.ACS_BULLET”j" t”bŒcurses.ACS_CKBOARD”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.ACS_CKBOARD”j" t”bŒcurses.ACS_DARROW”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.ACS_DARROW”j" t”bŒcurses.ACS_DEGREE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.ACS_DEGREE”j" t”bŒcurses.ACS_DIAMOND”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.ACS_DIAMOND”j" t”bŒcurses.ACS_GEQUAL”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.ACS_GEQUAL”j" t”bŒcurses.ACS_HLINE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.ACS_HLINE”j" t”bŒcurses.ACS_LANTERN”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.ACS_LANTERN”j" t”bŒcurses.ACS_LARROW”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.ACS_LARROW”j" t”bŒcurses.ACS_LEQUAL”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.ACS_LEQUAL”j" t”bŒcurses.ACS_LLCORNER”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.ACS_LLCORNER”j" t”bŒcurses.ACS_LRCORNER”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.ACS_LRCORNER”j" t”bŒcurses.ACS_LTEE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_LTEE”j" t”bŒcurses.ACS_NEQUAL”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.ACS_NEQUAL”j" t”bŒ curses.ACS_PI”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.ACS_PI”j" t”bŒcurses.ACS_PLMINUS”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.ACS_PLMINUS”j" t”bŒcurses.ACS_PLUS”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_PLUS”j" t”bŒcurses.ACS_RARROW”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.ACS_RARROW”j" t”bŒcurses.ACS_RTEE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_RTEE”j" t”bŒ curses.ACS_S1”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.ACS_S1”j" t”bŒ curses.ACS_S3”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.ACS_S3”j" t”bŒ curses.ACS_S7”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.ACS_S7”j" t”bŒ curses.ACS_S9”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.ACS_S9”j" t”bŒcurses.ACS_SBBS”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_SBBS”j" t”bŒcurses.ACS_SBSB”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_SBSB”j" t”bŒcurses.ACS_SBSS”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_SBSS”j" t”bŒcurses.ACS_SSBB”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_SSBB”j" t”bŒcurses.ACS_SSBS”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_SSBS”j" t”bŒcurses.ACS_SSSB”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_SSSB”j" t”bŒcurses.ACS_SSSS”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_SSSS”j" t”bŒcurses.ACS_STERLING”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.ACS_STERLING”j" t”bŒcurses.ACS_TTEE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.ACS_TTEE”j" t”bŒcurses.ACS_UARROW”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.ACS_UARROW”j" t”bŒcurses.ACS_ULCORNER”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.ACS_ULCORNER”j" t”bŒcurses.ACS_URCORNER”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.ACS_URCORNER”j" t”bŒcurses.ACS_VLINE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.ACS_VLINE”j" t”bŒcurses.A_ALTCHARSET”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.A_ALTCHARSET”j" t”bŒcurses.A_ATTRIBUTES”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.A_ATTRIBUTES”j" t”bŒcurses.A_BLINK”j )�”(jT(jU(Œhttps://docs.python.org/3/library/curses.html#curses.A_PROTECT”j" t”bŒcurses.A_REVERSE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.A_REVERSE”j" t”bŒcurses.A_RIGHT”j )�”(jT(jU(Œhttps://docs.python.org/3/library/curses.html#curses.COLOR_RED”j" t”bŒcurses.COLOR_WHITE”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.COLOR_WHITE”j" t”bŒcurses.COLOR_YELLOW”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.COLOR_YELLOW”j" t”bŒ curses.COLS”j )�”(jT(jU(Œ9https://docs.python.org/3/library/curses.html#curses.COLS”j" t”bŒ curses.ERR”j )�”(jT(jU(Œ8https://docs.python.org/3/library/curses.html#curses.ERR”j" t”bŒ curses.KEY_A1”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.KEY_A1”j" t”bŒ curses.KEY_A3”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.KEY_A3”j" t”bŒ curses.KEY_B2”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.KEY_B2”j" t”bŒcurses.KEY_BACKSPACE”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/curses.html#curses.KEY_BACKSPACE”j" t”bŒcurses.KEY_BEG”j )�”(jT(jU(Œhttps://docs.python.org/3/library/curses.html#curses.KEY_BREAK”j" t”bŒcurses.KEY_BTAB”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.KEY_BTAB”j" t”bŒ curses.KEY_C1”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.KEY_C1”j" t”bŒ curses.KEY_C3”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.KEY_C3”j" t”bŒcurses.KEY_CANCEL”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.KEY_CANCEL”j" t”bŒcurses.KEY_CATAB”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_CATAB”j" t”bŒcurses.KEY_CLEAR”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_CLEAR”j" t”bŒcurses.KEY_CLOSE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_CLOSE”j" t”bŒcurses.KEY_COMMAND”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.KEY_COMMAND”j" t”bŒcurses.KEY_COPY”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.KEY_COPY”j" t”bŒcurses.KEY_CREATE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.KEY_CREATE”j" t”bŒcurses.KEY_CTAB”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.KEY_CTAB”j" t”bŒ curses.KEY_DC”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.KEY_DC”j" t”bŒ curses.KEY_DL”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.KEY_DL”j" t”bŒcurses.KEY_DOWN”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.KEY_DOWN”j" t”bŒcurses.KEY_EIC”j )�”(jT(jU(Œhttps://docs.python.org/3/library/curses.html#curses.KEY_ENTER”j" t”bŒcurses.KEY_EOL”j )�”(jT(jU(Œhttps://docs.python.org/3/library/curses.html#curses.KEY_MOUSE”j" t”bŒcurses.KEY_MOVE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.KEY_MOVE”j" t”bŒcurses.KEY_NEXT”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.KEY_NEXT”j" t”bŒcurses.KEY_NPAGE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_NPAGE”j" t”bŒcurses.KEY_OPEN”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.KEY_OPEN”j" t”bŒcurses.KEY_OPTIONS”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.KEY_OPTIONS”j" t”bŒcurses.KEY_PPAGE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_PPAGE”j" t”bŒcurses.KEY_PREVIOUS”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.KEY_PREVIOUS”j" t”bŒcurses.KEY_PRINT”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_PRINT”j" t”bŒcurses.KEY_REDO”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.KEY_REDO”j" t”bŒcurses.KEY_REFERENCE”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/curses.html#curses.KEY_REFERENCE”j" t”bŒcurses.KEY_REFRESH”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.KEY_REFRESH”j" t”bŒcurses.KEY_REPLACE”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.KEY_REPLACE”j" t”bŒcurses.KEY_RESET”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_RESET”j" t”bŒcurses.KEY_RESIZE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.KEY_RESIZE”j" t”bŒcurses.KEY_RESTART”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.KEY_RESTART”j" t”bŒcurses.KEY_RESUME”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.KEY_RESUME”j" t”bŒcurses.KEY_RIGHT”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_RIGHT”j" t”bŒcurses.KEY_SAVE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.KEY_SAVE”j" t”bŒcurses.KEY_SBEG”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.KEY_SBEG”j" t”bŒcurses.KEY_SCANCEL”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.KEY_SCANCEL”j" t”bŒcurses.KEY_SCOMMAND”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.KEY_SCOMMAND”j" t”bŒcurses.KEY_SCOPY”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_SCOPY”j" t”bŒcurses.KEY_SCREATE”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.KEY_SCREATE”j" t”bŒcurses.KEY_SDC”j )�”(jT(jU(Œhttps://docs.python.org/3/library/curses.html#curses.KEY_SEXIT”j" t”bŒ curses.KEY_SF”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.KEY_SF”j" t”bŒcurses.KEY_SFIND”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_SFIND”j" t”bŒcurses.KEY_SHELP”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_SHELP”j" t”bŒcurses.KEY_SHOME”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_SHOME”j" t”bŒcurses.KEY_SIC”j )�”(jT(jU(Œhttps://docs.python.org/3/library/curses.html#curses.KEY_SLEFT”j" t”bŒcurses.KEY_SMESSAGE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.KEY_SMESSAGE”j" t”bŒcurses.KEY_SMOVE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_SMOVE”j" t”bŒcurses.KEY_SNEXT”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_SNEXT”j" t”bŒcurses.KEY_SOPTIONS”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.KEY_SOPTIONS”j" t”bŒcurses.KEY_SPREVIOUS”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/curses.html#curses.KEY_SPREVIOUS”j" t”bŒcurses.KEY_SPRINT”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.KEY_SPRINT”j" t”bŒ curses.KEY_SR”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.KEY_SR”j" t”bŒcurses.KEY_SREDO”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_SREDO”j" t”bŒcurses.KEY_SREPLACE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.KEY_SREPLACE”j" t”bŒcurses.KEY_SRESET”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.KEY_SRESET”j" t”bŒcurses.KEY_SRIGHT”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.KEY_SRIGHT”j" t”bŒcurses.KEY_SRSUME”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.KEY_SRSUME”j" t”bŒcurses.KEY_SSAVE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_SSAVE”j" t”bŒcurses.KEY_SSUSPEND”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.KEY_SSUSPEND”j" t”bŒcurses.KEY_STAB”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.KEY_STAB”j" t”bŒcurses.KEY_SUNDO”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.KEY_SUNDO”j" t”bŒcurses.KEY_SUSPEND”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.KEY_SUSPEND”j" t”bŒcurses.KEY_UNDO”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.KEY_UNDO”j" t”bŒ curses.KEY_UP”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.KEY_UP”j" t”bŒ curses.LINES”j )�”(jT(jU(Œ:https://docs.python.org/3/library/curses.html#curses.LINES”j" t”bŒ curses.OK”j )�”(jT(jU(Œ7https://docs.python.org/3/library/curses.html#curses.OK”j" t”bŒcurses.ascii.ACK”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ACK”j" t”bŒcurses.ascii.BEL”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.BEL”j" t”bŒcurses.ascii.BS”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.BS”j" t”bŒcurses.ascii.CAN”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.CAN”j" t”bŒcurses.ascii.CR”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.CR”j" t”bŒcurses.ascii.DC1”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.DC1”j" t”bŒcurses.ascii.DC2”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.DC2”j" t”bŒcurses.ascii.DC3”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.DC3”j" t”bŒcurses.ascii.DC4”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.DC4”j" t”bŒcurses.ascii.DEL”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.DEL”j" t”bŒcurses.ascii.DLE”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.DLE”j" t”bŒcurses.ascii.EM”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.EM”j" t”bŒcurses.ascii.ENQ”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ENQ”j" t”bŒcurses.ascii.EOT”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.EOT”j" t”bŒcurses.ascii.ESC”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ESC”j" t”bŒcurses.ascii.ETB”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ETB”j" t”bŒcurses.ascii.ETX”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ETX”j" t”bŒcurses.ascii.FF”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.FF”j" t”bŒcurses.ascii.FS”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.FS”j" t”bŒcurses.ascii.GS”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.GS”j" t”bŒcurses.ascii.HT”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.HT”j" t”bŒcurses.ascii.LF”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.LF”j" t”bŒcurses.ascii.NAK”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.NAK”j" t”bŒcurses.ascii.NL”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.NL”j" t”bŒcurses.ascii.NUL”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.NUL”j" t”bŒcurses.ascii.RS”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.RS”j" t”bŒcurses.ascii.SI”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.SI”j" t”bŒcurses.ascii.SO”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.SO”j" t”bŒcurses.ascii.SOH”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.SOH”j" t”bŒcurses.ascii.SP”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.SP”j" t”bŒcurses.ascii.STX”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.STX”j" t”bŒcurses.ascii.SUB”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.SUB”j" t”bŒcurses.ascii.SYN”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.SYN”j" t”bŒcurses.ascii.TAB”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.TAB”j" t”bŒcurses.ascii.US”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.US”j" t”bŒcurses.ascii.VT”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.VT”j" t”bŒcurses.ascii.controlnames”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.controlnames”j" t”bŒcurses.ncurses_version”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.html#curses.ncurses_version”j" t”bŒcurses.version”j )�”(jT(jU(Œhttps://docs.python.org/3/library/dis.html#dis.Instruction.arg”j" t”bŒdis.Instruction.argrepr”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/dis.html#dis.Instruction.argrepr”j" t”bŒdis.Instruction.argval”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/dis.html#dis.Instruction.argval”j" t”bŒdis.Instruction.baseopcode”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/dis.html#dis.Instruction.baseopcode”j" t”bŒdis.Instruction.baseopname”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/dis.html#dis.Instruction.baseopname”j" t”bŒdis.Instruction.cache_info”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/dis.html#dis.Instruction.cache_info”j" t”bŒdis.Instruction.cache_offset”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/dis.html#dis.Instruction.cache_offset”j" t”bŒdis.Instruction.end_offset”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/dis.html#dis.Instruction.end_offset”j" t”bŒdis.Instruction.is_jump_target”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/dis.html#dis.Instruction.is_jump_target”j" t”bŒdis.Instruction.jump_target”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/dis.html#dis.Instruction.jump_target”j" t”bŒdis.Instruction.line_number”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/dis.html#dis.Instruction.line_number”j" t”bŒdis.Instruction.offset”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/dis.html#dis.Instruction.offset”j" t”bŒdis.Instruction.oparg”j )�”(jT(jU(Œ@https://docs.python.org/3/library/dis.html#dis.Instruction.oparg”j" t”bŒdis.Instruction.opcode”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/dis.html#dis.Instruction.opcode”j" t”bŒdis.Instruction.opname”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/dis.html#dis.Instruction.opname”j" t”bŒdis.Instruction.positions”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/dis.html#dis.Instruction.positions”j" t”bŒdis.Instruction.start_offset”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/dis.html#dis.Instruction.start_offset”j" t”bŒdis.Instruction.starts_line”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/dis.html#dis.Instruction.starts_line”j" t”bŒdis.Positions.col_offset”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/dis.html#dis.Positions.col_offset”j" t”bŒdis.Positions.end_col_offset”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/dis.html#dis.Positions.end_col_offset”j" t”bŒdis.Positions.end_lineno”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/dis.html#dis.Positions.end_lineno”j" t”bŒdis.Positions.lineno”j )�”(jT(jU(Œ?https://docs.python.org/3/library/dis.html#dis.Positions.lineno”j" t”bŒ dis.cmp_op”j )�”(jT(jU(Œ5https://docs.python.org/3/library/dis.html#dis.cmp_op”j" t”bŒ dis.hasarg”j )�”(jT(jU(Œ5https://docs.python.org/3/library/dis.html#dis.hasarg”j" t”bŒdis.hascompare”j )�”(jT(jU(Œ9https://docs.python.org/3/library/dis.html#dis.hascompare”j" t”bŒ dis.hasconst”j )�”(jT(jU(Œ7https://docs.python.org/3/library/dis.html#dis.hasconst”j" t”bŒ dis.hasexc”j )�”(jT(jU(Œ5https://docs.python.org/3/library/dis.html#dis.hasexc”j" t”bŒ dis.hasfree”j )�”(jT(jU(Œ6https://docs.python.org/3/library/dis.html#dis.hasfree”j" t”bŒ dis.hasjabs”j )�”(jT(jU(Œ6https://docs.python.org/3/library/dis.html#dis.hasjabs”j" t”bŒ dis.hasjrel”j )�”(jT(jU(Œ6https://docs.python.org/3/library/dis.html#dis.hasjrel”j" t”bŒ dis.hasjump”j )�”(jT(jU(Œ6https://docs.python.org/3/library/dis.html#dis.hasjump”j" t”bŒ dis.haslocal”j )�”(jT(jU(Œ7https://docs.python.org/3/library/dis.html#dis.haslocal”j" t”bŒ dis.hasname”j )�”(jT(jU(Œ6https://docs.python.org/3/library/dis.html#dis.hasname”j" t”bŒ dis.opmap”j )�”(jT(jU(Œ4https://docs.python.org/3/library/dis.html#dis.opmap”j" t”bŒ dis.opname”j )�”(jT(jU(Œ5https://docs.python.org/3/library/dis.html#dis.opname”j" t”bŒdoctest.COMPARISON_FLAGS”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/doctest.html#doctest.COMPARISON_FLAGS”j" t”bŒdoctest.DONT_ACCEPT_BLANKLINE”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/doctest.html#doctest.DONT_ACCEPT_BLANKLINE”j" t”bŒdoctest.DONT_ACCEPT_TRUE_FOR_1”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/doctest.html#doctest.DONT_ACCEPT_TRUE_FOR_1”j" t”bŒdoctest.ELLIPSIS”j )�”(jT(jU(Œ?https://docs.python.org/3/library/doctest.html#doctest.ELLIPSIS”j" t”bŒdoctest.FAIL_FAST”j )�”(jT(jU(Œ@https://docs.python.org/3/library/doctest.html#doctest.FAIL_FAST”j" t”bŒdoctest.IGNORE_EXCEPTION_DETAIL”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/doctest.html#doctest.IGNORE_EXCEPTION_DETAIL”j" t”bŒdoctest.NORMALIZE_WHITESPACE”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/doctest.html#doctest.NORMALIZE_WHITESPACE”j" t”bŒdoctest.REPORTING_FLAGS”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/doctest.html#doctest.REPORTING_FLAGS”•j" t”bŒdoctest.REPORT_CDIFF”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/doctest.html#doctest.REPORT_CDIFF”j" t”bŒdoctest.REPORT_NDIFF”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/doctest.html#doctest.REPORT_NDIFF”j" t”bŒ!doctest.REPORT_ONLY_FIRST_FAILURE”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/doctest.html#doctest.REPORT_ONLY_FIRST_FAILURE”j" t”bŒdoctest.REPORT_UDIFF”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/doctest.html#doctest.REPORT_UDIFF”j" t”bŒ doctest.SKIP”j )�”(jT(jU(Œ;https://docs.python.org/3/library/doctest.html#doctest.SKIP”j" t”bŒ%email.contentmanager.raw_data_manager”j )�”(jT(jU(Œahttps://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.raw_data_manager”j" t”bŒemail.policy.HTTP”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/email.policy.html#email.policy.HTTP”j" t”bŒemail.policy.SMTP”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/email.policy.html#email.policy.SMTP”j" t”bŒemail.policy.SMTPUTF8”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/email.policy.html#email.policy.SMTPUTF8”j" t”bŒemail.policy.compat32”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/email.policy.html#email.policy.compat32”j" t”bŒemail.policy.default”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/email.policy.html#email.policy.default”j" t”bŒemail.policy.strict”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/email.policy.html#email.policy.strict”j" t”bŒ errno.E2BIG”j )�”(jT(jU(Œ8https://docs.python.org/3/library/errno.html#errno.E2BIG”j" t”bŒ errno.EACCES”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.EACCES”j" t”bŒerrno.EADDRINUSE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/errno.html#errno.EADDRINUSE”j" t”bŒerrno.EADDRNOTAVAIL”j )�”(jT(jU(Œ@https://docs.python.org/3/library/errno.html#errno.EADDRNOTAVAIL”j" t”bŒ errno.EADV”j )�”(jT(jU(Œ7https://docs.python.org/3/library/errno.html#errno.EADV”j" t”bŒerrno.EAFNOSUPPORT”j )�”(jT(jU(Œ?https://docs.python.org/3/library/errno.html#errno.EAFNOSUPPORT”j" t”bŒ errno.EAGAIN”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.EAGAIN”j" t”bŒerrno.EALREADY”j )�”(jT(jU(Œ;https://docs.python.org/3/library/errno.html#errno.EALREADY”j" t”bŒ errno.EAUTH”j )�”(jT(jU(Œ8https://docs.python.org/3/library/errno.html#errno.EAUTH”j" t”bŒerrno.EBADARCH”j )�”(jT(jU(Œ;https://docs.python.org/3/library/errno.html#errno.EBADARCH”j" t”bŒ errno.EBADE”j )�”(jT(jU(Œ8https://docs.python.org/3/library/errno.html#errno.EBADE”j" t”bŒerrno.EBADEXEC”j )�”(jT(jU(Œ;https://docs.python.org/3/library/errno.html#errno.EBADEXEC”j" t”bŒ errno.EBADF”j )�”(jT(jU(Œ8https://docs.python.org/3/library/errno.html#errno.EBADF”j" t”bŒ errno.EBADFD”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.EBADFD”j" t”bŒerrno.EBADMACHO”j )�”(jT(jU(Œhttps://docs.python.org/3/library/errno.html#errno.EINPROGRESS”j" t”bŒ errno.EINTR”j )�”(jT(jU(Œ8https://docs.python.org/3/library/errno.html#errno.EINTR”j" t”bŒ errno.EINVAL”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.EINVAL”j" t”bŒ errno.EIO”j )�”(jT(jU(Œ6https://docs.python.org/3/library/errno.html#errno.EIO”j" t”bŒ errno.EISCONN”j )�”(jT(jU(Œ:https://docs.python.org/3/library/errno.html#errno.EISCONN”j" t”bŒ errno.EISDIR”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.EISDIR”j" t”bŒ errno.EISNAM”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.EISNAM”j" t”bŒerrno.EKEYEXPIRED”j )�”(jT(jU(Œ>https://docs.python.org/3/library/errno.html#errno.EKEYEXPIRED”j" t”bŒerrno.EKEYREJECTED”j )�”(jT(jU(Œ?https://docs.python.org/3/library/errno.html#errno.EKEYREJECTED”j" t”bŒerrno.EKEYREVOKED”j )�”(jT(jU(Œ>https://docs.python.org/3/library/errno.html#errno.EKEYREVOKED”j" t”bŒ errno.EL2HLT”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.EL2HLT”j" t”bŒerrno.EL2NSYNC”j )�”(jT(jU(Œ;https://docs.python.org/3/library/errno.html#errno.EL2NSYNC”j" t”bŒ errno.EL3HLT”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.EL3HLT”j" t”bŒ errno.EL3RST”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.EL3RST”j" t”bŒ errno.ELIBACC”j )�”(jT(jU(Œ:https://docs.python.org/3/library/errno.html#errno.ELIBACC”j" t”bŒ errno.ELIBBAD”j )�”(jT(jU(Œ:https://docs.python.org/3/library/errno.html#errno.ELIBBAD”j" t”bŒerrno.ELIBEXEC”j )�”(jT(jU(Œ;https://docs.python.org/3/library/errno.html#errno.ELIBEXEC”j" t”bŒ errno.ELIBMAX”j )�”(jT(jU(Œ:https://docs.python.org/3/library/errno.html#errno.ELIBMAX”j" t”bŒ errno.ELIBSCN”j )�”(jT(jU(Œ:https://docs.python.org/3/library/errno.html#errno.ELIBSCN”j" t”bŒ errno.ELNRNG”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.ELNRNG”j" t”bŒerrno.ELOCKUNMAPPED”j )�”(jT(jU(Œ@https://docs.python.org/3/library/errno.html#errno.ELOCKUNMAPPED”j" t”bŒ errno.ELOOP”j )�”(jT(jU(Œ8https://docs.python.org/3/library/errno.html#errno.ELOOP”j" t”bŒerrno.EMEDIUMTYPE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/errno.html#errno.EMEDIUMTYPE”j" t”bŒ errno.EMFILE”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.EMFILE”j" t”bŒ errno.EMLINK”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.EMLINK”j" t”bŒerrno.EMSGSIZE”j )�”(jT(jU(Œ;https://docs.python.org/3/library/errno.html#errno.EMSGSIZE”j" t”bŒerrno.EMULTIHOP”j )�”(jT(jU(Œhttps://docs.python.org/3/library/errno.html#errno.ENETUNREACH”j" t”bŒ errno.ENFILE”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.ENFILE”j" t”bŒ errno.ENOANO”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.ENOANO”j" t”bŒ errno.ENOATTR”j )�”(jT(jU(Œ:https://docs.python.org/3/library/errno.html#errno.ENOATTR”j" t”bŒ errno.ENOBUFS”j )�”(jT(jU(Œ:https://docs.python.org/3/library/errno.html#errno.ENOBUFS”j" t”bŒ errno.ENOCSI”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.ENOCSI”j" t”bŒ errno.ENODATA”j )�”(jT(jU(Œ:https://docs.python.org/3/library/errno.html#errno.ENODATA”j" t”bŒ errno.ENODEV”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.ENODEV”j" t”bŒ errno.ENOENT”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.ENOENT”j" t”bŒ errno.ENOEXEC”j )�”(jT(jU(Œ:https://docs.python.org/3/library/errno.html#errno.ENOEXEC”j" t”bŒ errno.ENOKEY”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.ENOKEY”j" t”bŒ errno.ENOLCK”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.ENOLCK”j" t”bŒ errno.ENOLINK”j )�”(jT(jU(Œ:https://docs.python.org/3/library/errno.html#errno.ENOLINK”j" t”bŒerrno.ENOMEDIUM”j )�”(jT(jU(Œhttps://docs.python.org/3/library/errno.html#errno.ENOPROTOOPT”j" t”bŒ errno.ENOSPC”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.ENOSPC”j" t”bŒ errno.ENOSR”j )�”(jT(jU(Œ8https://docs.python.org/3/library/errno.html#errno.ENOSR”j" t”bŒ errno.ENOSTR”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.ENOSTR”j" t”bŒ errno.ENOSYS”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.ENOSYS”j" t”bŒerrno.ENOTACTIVE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/errno.html#errno.ENOTACTIVE”j" t”bŒ errno.ENOTBLK”j )�”(jT(jU(Œ:https://docs.python.org/3/library/errno.html#errno.ENOTBLK”j" t”bŒerrno.ENOTCAPABLE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/errno.html#errno.ENOTCAPABLE”j" t”bŒerrno.ENOTCONN”j )�”(jT(jU(Œ;https://docs.python.org/3/library/errno.html#errno.ENOTCONN”j" t”bŒ errno.ENOTDIR”j )�”(jT(jU(Œ:https://docs.python.org/3/library/errno.html#errno.ENOTDIR”j" t”bŒerrno.ENOTEMPTY”j )�”(jT(jU(Œhttps://docs.python.org/3/library/errno.html#errno.EWOULDBLOCK”j" t”bŒ errno.EXDEV”j )�”(jT(jU(Œ8https://docs.python.org/3/library/errno.html#errno.EXDEV”j" t”bŒ errno.EXFULL”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#errno.EXFULL”j" t”bŒerrno.errorcode”j )�”(jT(jU(Œhttps://docs.python.org/3/library/gc.html#gc.DEBUG_COLLECTABLE”j" t”bŒ gc.DEBUG_LEAK”j )�”(jT(jU(Œ7https://docs.python.org/3/library/gc.html#gc.DEBUG_LEAK”j" t”bŒgc.DEBUG_SAVEALL”j )�”(jT(jU(Œ:https://docs.python.org/3/library/gc.html#gc.DEBUG_SAVEALL”j" t”bŒgc.DEBUG_STATS”j )�”(jT(jU(Œ8https://docs.python.org/3/library/gc.html#gc.DEBUG_STATS”j" t”bŒgc.DEBUG_UNCOLLECTABLE”j )�”(jT(jU(Œ@https://docs.python.org/3/library/gc.html#gc.DEBUG_UNCOLLECTABLE”j" t”bŒ gc.callbacks”j )�”(jT(jU(Œ6https://docs.python.org/3/library/gc.html#gc.callbacks”j" t”bŒ gc.garbage”j )�”(jT(jU(Œ4https://docs.python.org/3/library/gc.html#gc.garbage”j" t”bŒhashlib.algorithms_available”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/hashlib.html#hashlib.algorithms_available”j" t”bŒhashlib.algorithms_guaranteed”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/hashlib.html#hashlib.algorithms_guaranteed”j" t”bŒhashlib.blake2b.MAX_DIGEST_SIZE”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2b.MAX_DIGEST_SIZE”j" t”bŒhashlib.blake2b.MAX_KEY_SIZE”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2b.MAX_KEY_SIZE”j" t”bŒhashlib.blake2b.PERSON_SIZE”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2b.PERSON_SIZE”j" t”bŒhashlib.blake2b.SALT_SIZE”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2b.SALT_SIZE”j" t”bŒhashlib.blake2s.MAX_DIGEST_SIZE”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2s.MAX_DIGEST_SIZE”j" t”bŒhashlib.blake2s.MAX_KEY_SIZE”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2s.MAX_KEY_SIZE”j" t”bŒhashlib.blake2s.PERSON_SIZE”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2s.PERSON_SIZE”j" t”bŒhashlib.blake2s.SALT_SIZE”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/hashlib.html#hashlib.blake2s.SALT_SIZE”j" t”bŒhashlib.hash.block_size”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/hashlib.html#hashlib.hash.block_size”j" t”bŒhashlib.hash.digest_size”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/hashlib.html#hashlib.hash.digest_size”j" t”bŒhtml.entities.codepoint2name”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/html.entities.html#html.entities.codepoint2name”j" t”bŒhtml.entities.entitydefs”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/html.entities.html#html.entities.entitydefs”j" t”bŒhtml.entities.html5”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/html.entities.html#html.entities.html5”j" t”bŒhtml.entities.name2codepoint”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/html.entities.html#html.entities.name2codepoint”j" t”bŒhttp.client.HTTPS_PORT”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/http.client.html#http.client.HTTPS_PORT”j" t”bŒhttp.client.HTTP_PORT”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/http.client.html#http.client.HTTP_PORT”j" t”bŒhttp.client.responses”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/http.client.html#http.client.responses”j" t”bŒ%importlib.machinery.BYTECODE_SUFFIXES”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/importlib.html#importlib.machinery.BYTECODE_SUFFIXES”j" t”bŒ+importlib.machinery.DEBUG_BYTECODE_SUFFIXES”j )�”(jT(jU(Œ\https://docs.python.org/3/library/importlib.html#importlib.machinery.DEBUG_BYTECODE_SUFFIXES”j" t”bŒ&importlib.machinery.EXTENSION_SUFFIXES”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/importlib.html#importlib.machinery.EXTENSION_SUFFIXES”j" t”bŒ/importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXES”j )�”(jT(jU(Œ`https://docs.python.org/3/library/importlib.html#importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXES”j" t”bŒ#importlib.machinery.SOURCE_SUFFIXES”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/importlib.html#importlib.machinery.SOURCE_SUFFIXES”j" t”bŒimportlib.util.MAGIC_NUMBER”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/importlib.html#importlib.util.MAGIC_NUMBER”j" t”bŒinspect.CO_ASYNC_GENERATOR”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/inspect.html#inspect.CO_ASYNC_GENERATOR”j" t”bŒinspect.CO_COROUTINE”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/inspect.html#inspect.CO_COROUTINE”j" t”bŒinspect.CO_GENERATOR”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/inspect.html#inspect.CO_GENERATOR”j" t”bŒinspect.CO_HAS_DOCSTRING”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/inspect.html#inspect.CO_HAS_DOCSTRING”j" t”bŒinspect.CO_ITERABLE_COROUTINE”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/inspect.html#inspect.CO_ITERABLE_COROUTINE”j" t”bŒinspect.CO_METHOD”j )�”(jT(jU(Œ@https://docs.python.org/3/library/inspect.html#inspect.CO_METHOD”j" t”bŒinspect.CO_NESTED”j )�”(jT(jU(Œ@https://docs.python.org/3/library/inspect.html#inspect.CO_NESTED”j" t”bŒinspect.CO_NEWLOCALS”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/inspect.html#inspect.CO_NEWLOCALS”j" t”bŒinspect.CO_OPTIMIZED”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/inspect.html#inspect.CO_OPTIMIZED”j" t”bŒinspect.CO_VARARGS”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/inspect.html#inspect.CO_VARARGS”j" t”bŒinspect.CO_VARKEYWORDS”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/inspect.html#inspect.CO_VARKEYWORDS”j" t”bŒio.DEFAULT_BUFFER_SIZE”j )�”(jT(jU(Œ@https://docs.python.org/3/library/io.html#io.DEFAULT_BUFFER_SIZE”j" t”bŒkeyword.kwlist”j )�”(jT(jU(Œ=https://docs.python.org/3/library/keyword.html#keyword.kwlist”j" t”bŒkeyword.softkwlist”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/keyword.html#keyword.softkwlist”j" t”bŒlicense”j )�”(jT(jU(Œ8https://docs.python.org/3/library/constants.html#license”j" t”bŒlocale.ABDAY_1”j )�”(jT(jU(Œhttps://docs.python.org/3/library/locale.html#locale.ERA_D_FMT”j" t”bŒlocale.ERA_D_T_FMT”j )�”(jT(jU(Œ@https://docs.python.org/3/library/locale.html#locale.ERA_D_T_FMT”j" t”bŒlocale.ERA_T_FMT”j )�”(jT(jU(Œ>https://docs.python.org/3/library/locale.html#locale.ERA_T_FMT”j" t”bŒ locale.LC_ALL”j )�”(jT(jU(Œ;https://docs.python.org/3/library/locale.html#locale.LC_ALL”j" t”bŒlocale.LC_COLLATE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/locale.html#locale.LC_COLLATE”j" t”bŒlocale.LC_CTYPE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/locale.html#locale.LC_CTYPE”j" t”bŒlocale.LC_MESSAGES”j )�”(jT(jU(Œ@https://docs.python.org/3/library/locale.html#locale.LC_MESSAGES”j" t”bŒlocale.LC_MONETARY”j )�”(jT(jU(Œ@https://docs.python.org/3/library/locale.html#locale.LC_MONETARY”j" t”bŒlocale.LC_NUMERIC”j )�”(jT(jU(Œ?https://docs.python.org/3/library/locale.html#locale.LC_NUMERIC”j" t”bŒlocale.LC_TIME”j )�”(jT(jU(Œhttps://docs.python.org/3/library/locale.html#locale.RADIXCHAR”j" t”bŒlocale.THOUSEP”j )�”(jT(jU(Œhttps://docs.python.org/3/library/logging.html#logging.WARNING”j" t”bŒlogging.lastResort”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/logging.html#logging.lastResort”j" t”bŒlogging.raiseExceptions”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/logging.html#logging.raiseExceptions”j" t”bŒmarshal.version”j )�”(jT(jU(Œ>https://docs.python.org/3/library/marshal.html#marshal.version”j" t”bŒmath.e”j )�”(jT(jU(Œ2https://docs.python.org/3/library/math.html#math.e”j" t”bŒmath.inf”j )�”(jT(jU(Œ4https://docs.python.org/3/library/math.html#math.inf”j" t”bŒmath.nan”j )�”(jT(jU(Œ4https://docs.python.org/3/library/math.html#math.nan”j" t”bŒmath.pi”j )�”(jT(jU(Œ3https://docs.python.org/3/library/math.html#math.pi”j" t”bŒmath.tau”j )�”(jT(jU(Œ4https://docs.python.org/3/library/math.html#math.tau”j" t”bŒmimetypes.common_types”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/mimetypes.html#mimetypes.common_types”j" t”bŒmimetypes.encodings_map”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/mimetypes.html#mimetypes.encodings_map”j" t”bŒmimetypes.inited”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/mimetypes.html#mimetypes.inited”j" t”bŒmimetypes.knownfiles”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mimetypes.html#mimetypes.knownfiles”j" t”bŒmimetypes.suffix_map”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mimetypes.html#mimetypes.suffix_map”j" t”bŒmimetypes.types_map”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mimetypes.html#mimetypes.types_map”j" t”bŒmmap.MADV_AUTOSYNC”j )�”(jT(jU(Œ>https://docs.python.org/3/library/mmap.html#mmap.MADV_AUTOSYNC”j" t”bŒmmap.MADV_CORE”j )�”(jT(jU(Œ:https://docs.python.org/3/library/mmap.html#mmap.MADV_CORE”j" t”bŒmmap.MADV_DODUMP”j )�”(jT(jU(Œhttps://docs.python.org/3/library/mmap.html#mmap.MADV_DONTDUMP”j" t”bŒmmap.MADV_DONTFORK”j )�”(jT(jU(Œ>https://docs.python.org/3/library/mmap.html#mmap.MADV_DONTFORK”j" t”bŒmmap.MADV_DONTNEED”j )�”(jT(jU(Œ>https://docs.python.org/3/library/mmap.html#mmap.MADV_DONTNEED”j" t”bŒmmap.MADV_FREE”j )�”(jT(jU(Œ:https://docs.python.org/3/library/mmap.html#mmap.MADV_FREE”j" t”bŒmmap.MADV_FREE_REUSABLE”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/mmap.html#mmap.MADV_FREE_REUSABLE”j" t”bŒmmap.MADV_FREE_REUSE”j )�”(jT(jU(Œ@https://docs.python.org/3/library/mmap.html#mmap.MADV_FREE_REUSE”j" t”bŒmmap.MADV_HUGEPAGE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/mmap.html#mmap.MADV_HUGEPAGE”j" t”bŒmmap.MADV_HWPOISON”j )�”(jT(jU(Œ>https://docs.python.org/3/library/mmap.html#mmap.MADV_HWPOISON”j" t”bŒmmap.MADV_MERGEABLE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/mmap.html#mmap.MADV_MERGEABLE”j" t”bŒmmap.MADV_NOCORE”j )�”(jT(jU(Œhttps://docs.python.org/3/library/mmap.html#mmap.MADV_WILLNEED”j" t”bŒmmap.MAP_32BIT”j )�”(jT(jU(Œ:https://docs.python.org/3/library/mmap.html#mmap.MAP_32BIT”j" t”bŒmmap.MAP_ALIGNED_SUPER”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/mmap.html#mmap.MAP_ALIGNED_SUPER”j" t”bŒ mmap.MAP_ANON”j )�”(jT(jU(Œ9https://docs.python.org/3/library/mmap.html#mmap.MAP_ANON”j" t”bŒmmap.MAP_ANONYMOUS”j )�”(jT(jU(Œ>https://docs.python.org/3/library/mmap.html#mmap.MAP_ANONYMOUS”j" t”bŒmmap.MAP_CONCEAL”j )�”(jT(jU(Œhttps://docs.python.org/3/library/mmap.html#mmap.MAP_DENYWRITE”j" t”bŒmmap.MAP_EXECUTABLE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/mmap.html#mmap.MAP_EXECUTABLE”j" t”bŒmmap.MAP_HASSEMAPHORE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/mmap.html#mmap.MAP_HASSEMAPHORE”j" t”bŒ mmap.MAP_JIT”j )�”(jT(jU(Œ8https://docs.python.org/3/library/mmap.html#mmap.MAP_JIT”j" t”bŒmmap.MAP_NOCACHE”j )�”(jT(jU(Œhttps://docs.python.org/3/library/mmap.html#mmap.MAP_NORESERVE”j" t”bŒmmap.MAP_POPULATE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/mmap.html#mmap.MAP_POPULATE”j" t”bŒmmap.MAP_PRIVATE”j )�”(jT(jU(Œhttps://docs.python.org/3/library/msvcrt.html#msvcrt.CRT_ERROR”j" t”bŒmsvcrt.CRT_WARN”j )�”(jT(jU(Œ=https://docs.python.org/3/library/msvcrt.html#msvcrt.CRT_WARN”j" t”bŒ%msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/msvcrt.html#msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX”j" t”bŒmsvcrt.LK_LOCK”j )�”(jT(jU(Œhttps://docs.python.org/3/library/msvcrt.html#msvcrt.LK_NBRLCK”j" t”bŒmsvcrt.LK_RLCK”j )�”(jT(jU(Œhttps://docs.python.org/3/library/os.html#os.MFD_ALLOW_SEALING”j" t”bŒos.MFD_CLOEXEC”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.MFD_CLOEXEC”j" t”bŒos.MFD_HUGETLB”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.MFD_HUGETLB”j" t”bŒos.MFD_HUGE_16GB”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.MFD_HUGE_16GB”j" t”bŒos.MFD_HUGE_16MB”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.MFD_HUGE_16MB”j" t”bŒos.MFD_HUGE_1GB”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#os.MFD_HUGE_1GB”j" t”bŒos.MFD_HUGE_1MB”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#os.MFD_HUGE_1MB”j" t”bŒos.MFD_HUGE_256MB”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.MFD_HUGE_256MB”j" t”bŒos.MFD_HUGE_2GB”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#os.MFD_HUGE_2GB”j" t”bŒos.MFD_HUGE_2MB”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#os.MFD_HUGE_2MB”j" t”bŒos.MFD_HUGE_32MB”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.MFD_HUGE_32MB”j" t”bŒos.MFD_HUGE_512KB”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.MFD_HUGE_512KB”j" t”bŒos.MFD_HUGE_512MB”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.MFD_HUGE_512MB”j" t”bŒos.MFD_HUGE_64KB”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.MFD_HUGE_64KB”j" t”bŒos.MFD_HUGE_8MB”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#os.MFD_HUGE_8MB”j" t”bŒos.MFD_HUGE_MASK”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.MFD_HUGE_MASK”j" t”bŒos.MFD_HUGE_SHIFT”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.MFD_HUGE_SHIFT”j" t”bŒ os.O_APPEND”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.O_APPEND”j" t”bŒ os.O_ASYNC”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.O_ASYNC”j" t”bŒ os.O_BINARY”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.O_BINARY”j" t”bŒ os.O_CLOEXEC”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.O_CLOEXEC”j" t”bŒ os.O_CREAT”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.O_CREAT”j" t”bŒ os.O_DIRECT”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.O_DIRECT”j" t”bŒos.O_DIRECTORY”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.O_DIRECTORY”j" t”bŒ os.O_DSYNC”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.O_DSYNC”j" t”bŒ os.O_EVTONLY”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.O_EVTONLY”j" t”bŒ os.O_EXCL”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.O_EXCL”j" t”bŒ os.O_EXLOCK”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.O_EXLOCK”j" t”bŒ os.O_FSYNC”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.O_FSYNC”j" t”bŒ os.O_NDELAY”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.O_NDELAY”j" t”bŒ os.O_NOATIME”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.O_NOATIME”j" t”bŒ os.O_NOCTTY”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.O_NOCTTY”j" t”bŒ os.O_NOFOLLOW”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.O_NOFOLLOW”j" t”bŒos.O_NOFOLLOW_ANY”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.O_NOFOLLOW_ANY”j" t”bŒos.O_NOINHERIT”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.O_NOINHERIT”j" t”bŒ os.O_NONBLOCK”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.O_NONBLOCK”j" t”bŒ os.O_PATH”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.O_PATH”j" t”bŒ os.O_RANDOM”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.O_RANDOM”j" t”bŒ os.O_RDONLY”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.O_RDONLY”j" t”bŒ os.O_RDWR”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.O_RDWR”j" t”bŒ os.O_RSYNC”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.O_RSYNC”j" t”bŒos.O_SEQUENTIAL”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#os.O_SEQUENTIAL”j" t”bŒ os.O_SHLOCK”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.O_SHLOCK”j" t”bŒos.O_SHORT_LIVED”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.O_SHORT_LIVED”j" t”bŒ os.O_SYMLINK”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.O_SYMLINK”j" t”bŒ os.O_SYNC”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.O_SYNC”j" t”bŒos.O_TEMPORARY”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.O_TEMPORARY”j" t”bŒ os.O_TEXT”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.O_TEXT”j" t”bŒ os.O_TMPFILE”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.O_TMPFILE”j" t”bŒ os.O_TRUNC”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.O_TRUNC”j" t”bŒ os.O_WRONLY”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.O_WRONLY”j" t”bŒos.PIDFD_NONBLOCK”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.PIDFD_NONBLOCK”j" t”bŒos.POSIX_FADV_DONTNEED”j )�”(jT(jU(Œ@https://docs.python.org/3/library/os.html#os.POSIX_FADV_DONTNEED”j" t”bŒos.POSIX_FADV_NOREUSE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.html#os.POSIX_FADV_NOREUSE”j" t”bŒos.POSIX_FADV_NORMAL”j )�”(jT(jU(Œ>https://docs.python.org/3/library/os.html#os.POSIX_FADV_NORMAL”j" t”bŒos.POSIX_FADV_RANDOM”j )�”(jT(jU(Œ>https://docs.python.org/3/library/os.html#os.POSIX_FADV_RANDOM”j" t”bŒos.POSIX_FADV_SEQUENTIAL”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/os.html#os.POSIX_FADV_SEQUENTIAL”j" t”bŒos.POSIX_FADV_WILLNEED”j )�”(jT(jU(Œ@https://docs.python.org/3/library/os.html#os.POSIX_FADV_WILLNEED”j" t”bŒos.POSIX_SPAWN_CLOSE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/os.html#os.POSIX_SPAWN_CLOSE”j" t”bŒos.POSIX_SPAWN_CLOSEFROM”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/os.html#os.POSIX_SPAWN_CLOSEFROM”j" t”bŒos.POSIX_SPAWN_DUP2”j )�”(jT(jU(Œ=https://docs.python.org/3/library/os.html#os.POSIX_SPAWN_DUP2”j" t”bŒos.POSIX_SPAWN_OPEN”j )�”(jT(jU(Œ=https://docs.python.org/3/library/os.html#os.POSIX_SPAWN_OPEN”j" t”bŒos.PRIO_DARWIN_BG”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.PRIO_DARWIN_BG”j" t”bŒos.PRIO_DARWIN_NONUI”j )�”(jT(jU(Œ>https://docs.python.org/3/library/os.html#os.PRIO_DARWIN_NONUI”j" t”bŒos.PRIO_DARWIN_PROCESS”j )�”(jT(jU(Œ@https://docs.python.org/3/library/os.html#os.PRIO_DARWIN_PROCESS”j" t”bŒos.PRIO_DARWIN_THREAD”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.html#os.PRIO_DARWIN_THREAD”j" t”bŒ os.PRIO_PGRP”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.PRIO_PGRP”j" t”bŒos.PRIO_PROCESS”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#os.PRIO_PROCESS”j" t”bŒ os.PRIO_USER”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.PRIO_USER”j" t”bŒos.P_ALL”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.P_ALL”j" t”bŒ os.P_DETACH”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.P_DETACH”j" t”bŒ os.P_NOWAIT”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.P_NOWAIT”j" t”bŒ os.P_NOWAITO”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.P_NOWAITO”j" t”bŒ os.P_OVERLAY”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.P_OVERLAY”j" t”bŒ os.P_PGID”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.P_PGID”j" t”bŒos.P_PID”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.P_PID”j" t”bŒ os.P_PIDFD”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.P_PIDFD”j" t”bŒ os.P_WAIT”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.P_WAIT”j" t”bŒos.RTLD_DEEPBIND”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.RTLD_DEEPBIND”j" t”bŒos.RTLD_GLOBAL”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.RTLD_GLOBAL”j" t”bŒ os.RTLD_LAZY”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.RTLD_LAZY”j" t”bŒ os.RTLD_LOCAL”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.RTLD_LOCAL”j" t”bŒos.RTLD_NODELETE”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.RTLD_NODELETE”j" t”bŒos.RTLD_NOLOAD”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.RTLD_NOLOAD”j" t”bŒ os.RTLD_NOW”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.RTLD_NOW”j" t”bŒ os.RWF_APPEND”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.RWF_APPEND”j" t”bŒ os.RWF_DSYNC”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.RWF_DSYNC”j" t”bŒ os.RWF_HIPRI”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.RWF_HIPRI”j" t”bŒ os.RWF_NOWAIT”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.RWF_NOWAIT”j" t”bŒ os.RWF_SYNC”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.RWF_SYNC”j" t”bŒos.R_OK”j )�”(jT(jU(Œ1https://docs.python.org/3/library/os.html#os.R_OK”j" t”bŒos.SCHED_BATCH”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.SCHED_BATCH”j" t”bŒos.SCHED_DEADLINE”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.SCHED_DEADLINE”j" t”bŒ os.SCHED_FIFO”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.SCHED_FIFO”j" t”bŒ os.SCHED_IDLE”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.SCHED_IDLE”j" t”bŒos.SCHED_NORMAL”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#os.SCHED_NORMAL”j" t”bŒos.SCHED_OTHER”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.SCHED_OTHER”j" t”bŒos.SCHED_RESET_ON_FORK”j )�”(jT(jU(Œ@https://docs.python.org/3/library/os.html#os.SCHED_RESET_ON_FORK”j" t”bŒ os.SCHED_RR”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.SCHED_RR”j" t”bŒos.SCHED_SPORADIC”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.SCHED_SPORADIC”j" t”bŒ os.SEEK_CUR”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.SEEK_CUR”j" t”bŒ os.SEEK_DATA”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.SEEK_DATA”j" t”bŒ os.SEEK_END”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.SEEK_END”j" t”bŒ os.SEEK_HOLE”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.SEEK_HOLE”j" t”bŒ os.SEEK_SET”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.SEEK_SET”j" t”bŒ os.SF_MNOWAIT”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.SF_MNOWAIT”j" t”bŒ os.SF_NOCACHE”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.SF_NOCACHE”j" t”bŒos.SF_NODISKIO”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.SF_NODISKIO”j" t”bŒ os.SF_SYNC”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.SF_SYNC”j" t”bŒos.SPLICE_F_MORE”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.SPLICE_F_MORE”j" t”bŒos.SPLICE_F_MOVE”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.SPLICE_F_MOVE”j" t”bŒos.SPLICE_F_NONBLOCK”j )�”(jT(jU(Œ>https://docs.python.org/3/library/os.html#os.SPLICE_F_NONBLOCK”j" t”bŒos.TFD_CLOEXEC”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.TFD_CLOEXEC”j" t”bŒos.TFD_NONBLOCK”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#os.TFD_NONBLOCK”j" t”bŒos.TFD_TIMER_ABSTIME”j )�”(jT(jU(Œ>https://docs.python.org/3/library/os.html#os.TFD_TIMER_ABSTIME”j" t”bŒos.TFD_TIMER_CANCEL_ON_SET”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/os.html#os.TFD_TIMER_CANCEL_ON_SET”j" t”bŒ os.WCONTINUED”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.WCONTINUED”j" t”bŒ os.WEXITED”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.WEXITED”j" t”bŒ os.WNOHANG”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.WNOHANG”j" t”bŒ os.WNOWAIT”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.WNOWAIT”j" t”bŒ os.WSTOPPED”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.WSTOPPED”j" t”bŒ os.WUNTRACED”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.WUNTRACED”j" t”bŒos.W_OK”j )�”(jT(jU(Œ1https://docs.python.org/3/library/os.html#os.W_OK”j" t”bŒos.XATTR_CREATE”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#os.XATTR_CREATE”j" t”bŒos.XATTR_REPLACE”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.XATTR_REPLACE”j" t”bŒos.XATTR_SIZE_MAX”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.XATTR_SIZE_MAX”j" t”bŒos.X_OK”j )�”(jT(jU(Œ1https://docs.python.org/3/library/os.html#os.X_OK”j" t”bŒ os.altsep”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.altsep”j" t”bŒos.confstr_names”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.confstr_names”j" t”bŒ os.curdir”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.curdir”j" t”bŒ os.defpath”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.defpath”j" t”bŒ os.devnull”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.devnull”j" t”bŒ os.environ”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.environ”j" t”bŒ os.environb”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.environb”j" t”bŒ os.extsep”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.extsep”j" t”bŒ os.linesep”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.linesep”j" t”bŒos.name”j )�”(jT(jU(Œ1https://docs.python.org/3/library/os.html#os.name”j" t”bŒ os.pardir”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.pardir”j" t”bŒos.path.ALLOW_MISSING”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/os.path.html#os.path.ALLOW_MISSING”j" t”bŒ"os.path.supports_unicode_filenames”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/os.path.html#os.path.supports_unicode_filenames”j" t”bŒos.pathconf_names”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.pathconf_names”j" t”bŒ os.pathsep”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.pathsep”j" t”bŒos.sep”j )�”(jT(jU(Œ0https://docs.python.org/3/library/os.html#os.sep”j" t”bŒos.supports_bytes_environ”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/os.html#os.supports_bytes_environ”j" t”bŒos.supports_dir_fd”j )�”(jT(jU(Œhttps://docs.python.org/3/library/signal.html#signal.SIGSTKFLT”j" t”bŒsignal.SIGSTOP”j )�”(jT(jU(Œhttps://docs.python.org/3/library/signal.html#signal.SIGVTALRM”j" t”bŒsignal.SIGWINCH”j )�”(jT(jU(Œ=https://docs.python.org/3/library/signal.html#signal.SIGWINCH”j" t”bŒsignal.SIGXCPU”j )�”(jT(jU(Œhttps://docs.python.org/3/library/signal.html#signal.SIG_BLOCK”j" t”bŒsignal.SIG_DFL”j )�”(jT(jU(Œhttps://docs.python.org/3/library/socket.html#socket.AF_DIVERT”j" t”bŒsocket.AF_HYPERV”j )�”(jT(jU(Œ>https://docs.python.org/3/library/socket.html#socket.AF_HYPERV”j" t”bŒsocket.AF_INET”j )�”(jT(jU(Œhttps://docs.python.org/3/library/socket.html#socket.AF_PACKET”j" t”bŒsocket.AF_QIPCRTR”j )�”(jT(jU(Œ?https://docs.python.org/3/library/socket.html#socket.AF_QIPCRTR”j" t”bŒ socket.AF_RDS”j )�”(jT(jU(Œ;https://docs.python.org/3/library/socket.html#socket.AF_RDS”j" t”bŒsocket.AF_UNIX”j )�”(jT(jU(Œhttps://docs.python.org/3/library/socket.html#socket.AF_UNSPEC”j" t”bŒsocket.AF_VSOCK”j )�”(jT(jU(Œ=https://docs.python.org/3/library/socket.html#socket.AF_VSOCK”j" t”bŒsocket.BDADDR_ANY”j )�”(jT(jU(Œ?https://docs.python.org/3/library/socket.html#socket.BDADDR_ANY”j" t”bŒsocket.BDADDR_BREDR”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/socket.html#socket.BDADDR_BREDR”j" t”bŒsocket.BDADDR_LE_PUBLIC”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/socket.html#socket.BDADDR_LE_PUBLIC”j" t”bŒsocket.BDADDR_LE_RANDOM”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/socket.html#socket.BDADDR_LE_RANDOM”j" t”bŒsocket.BDADDR_LOCAL”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/socket.html#socket.BDADDR_LOCAL”j" t”bŒsocket.BTPROTO_HCI”j )�”(jT(jU(Œ@https://docs.python.org/3/library/socket.html#socket.BTPROTO_HCI”j" t”bŒsocket.BTPROTO_L2CAP”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/socket.html#socket.BTPROTO_L2CAP”j" t”bŒsocket.BTPROTO_RFCOMM”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/socket.html#socket.BTPROTO_RFCOMM”j" t”bŒsocket.BTPROTO_SCO”j )�”(jT(jU(Œ@https://docs.python.org/3/library/socket.html#socket.BTPROTO_SCO”j" t”bŒsocket.CAN_BCM”j )�”(jT(jU(Œhttps://docs.python.org/3/library/socket.html#socket.CAN_ISOTP”j" t”bŒsocket.CAN_J1939”j )�”(jT(jU(Œ>https://docs.python.org/3/library/socket.html#socket.CAN_J1939”j" t”bŒsocket.CAN_RAW_FD_FRAMES”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/socket.html#socket.CAN_RAW_FD_FRAMES”j" t”bŒsocket.CAN_RAW_JOIN_FILTERS”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/socket.html#socket.CAN_RAW_JOIN_FILTERS”j" t”bŒsocket.ETHERTYPE_ARP”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/socket.html#socket.ETHERTYPE_ARP”j" t”bŒsocket.ETHERTYPE_IP”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/socket.html#socket.ETHERTYPE_IP”j" t”bŒsocket.ETHERTYPE_IPV6”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/socket.html#socket.ETHERTYPE_IPV6”j" t”bŒsocket.ETHERTYPE_VLAN”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/socket.html#socket.ETHERTYPE_VLAN”j" t”bŒsocket.ETH_P_ALL”j )�”(jT(jU(Œ>https://docs.python.org/3/library/socket.html#socket.ETH_P_ALL”j" t”bŒsocket.HCI_CHANNEL_CONTROL”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/socket.html#socket.HCI_CHANNEL_CONTROL”j" t”bŒsocket.HCI_CHANNEL_LOGGING”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/socket.html#socket.HCI_CHANNEL_LOGGING”j" t”bŒsocket.HCI_CHANNEL_MONITOR”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/socket.html#socket.HCI_CHANNEL_MONITOR”j" t”bŒsocket.HCI_CHANNEL_RAW”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/socket.html#socket.HCI_CHANNEL_RAW”j" t”bŒsocket.HCI_CHANNEL_USER”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/socket.html#socket.HCI_CHANNEL_USER”j" t”bŒsocket.HCI_DATA_DIR”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/socket.html#socket.HCI_DATA_DIR”j" t”bŒsocket.HCI_DEV_NONE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/socket.html#socket.HCI_DEV_NONE”j" t”bŒsocket.HCI_FILTER”j )�”(jT(jU(Œ?https://docs.python.org/3/library/socket.html#socket.HCI_FILTER”j" t”bŒsocket.HCI_TIME_STAMP”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/socket.html#socket.HCI_TIME_STAMP”j" t”bŒ%socket.HVSOCKET_ADDRESS_FLAG_PASSTHRU”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/socket.html#socket.HVSOCKET_ADDRESS_FLAG_PASSTHRU”j" t”bŒ!socket.HVSOCKET_CONNECTED_SUSPEND”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/socket.html#socket.HVSOCKET_CONNECTED_SUSPEND”j" t”bŒsocket.HVSOCKET_CONNECT_TIMEOUT”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/socket.html#socket.HVSOCKET_CONNECT_TIMEOUT”j" t”bŒ#socket.HVSOCKET_CONNECT_TIMEOUT_MAX”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/socket.html#socket.HVSOCKET_CONNECT_TIMEOUT_MAX”j" t”bŒsocket.HV_GUID_BROADCAST”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/socket.html#socket.HV_GUID_BROADCAST”j" t”bŒsocket.HV_GUID_CHILDREN”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/socket.html#socket.HV_GUID_CHILDREN”j" t”bŒsocket.HV_GUID_LOOPBACK”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/socket.html#socket.HV_GUID_LOOPBACK”j" t”bŒsocket.HV_GUID_PARENT”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/socket.html#socket.HV_GUID_PARENT”j" t”bŒsocket.HV_GUID_WILDCARD”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/socket.html#socket.HV_GUID_WILDCARD”j" t”bŒsocket.HV_GUID_ZERO”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/socket.html#socket.HV_GUID_ZERO”j" t”bŒsocket.HV_PROTOCOL_RAW”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/socket.html#socket.HV_PROTOCOL_RAW”j" t”bŒ%socket.IOCTL_VM_SOCKETS_GET_LOCAL_CID”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/socket.html#socket.IOCTL_VM_SOCKETS_GET_LOCAL_CID”j" t”bŒsocket.L2CAP_LM”j )�”(jT(jU(Œ=https://docs.python.org/3/library/socket.html#socket.L2CAP_LM”j" t”bŒsocket.LOCAL_CREDS”j )�”(jT(jU(Œ@https://docs.python.org/3/library/socket.html#socket.LOCAL_CREDS”j" t”bŒsocket.LOCAL_CREDS_PERSISTENT”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/socket.html#socket.LOCAL_CREDS_PERSISTENT”j" t”bŒ socket.PF_CAN”j )�”(jT(jU(Œ;https://docs.python.org/3/library/socket.html#socket.PF_CAN”j" t”bŒsocket.PF_DIVERT”j )�”(jT(jU(Œ>https://docs.python.org/3/library/socket.html#socket.PF_DIVERT”j" t”bŒsocket.PF_PACKET”j )�”(jT(jU(Œ>https://docs.python.org/3/library/socket.html#socket.PF_PACKET”j" t”bŒ socket.PF_RDS”j )�”(jT(jU(Œ;https://docs.python.org/3/library/socket.html#socket.PF_RDS”j" t”bŒsocket.SCM_CREDS2”j )�”(jT(jU(Œ?https://docs.python.org/3/library/socket.html#socket.SCM_CREDS2”j" t”bŒsocket.SHUT_RD”j )�”(jT(jU(Œhttps://docs.python.org/3/library/socket.html#socket.SHUT_RDWR”j" t”bŒsocket.SHUT_WR”j )�”(jT(jU(Œhttps://docs.python.org/3/library/socket.html#socket.SOL_L2CAP”j" t”bŒsocket.SOL_RDS”j )�”(jT(jU(Œhttps://docs.python.org/3/library/socket.html#socket.SOMAXCONN”j" t”bŒsocket.SO_HCI_EVT_FILTER”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/socket.html#socket.SO_HCI_EVT_FILTER”j" t”bŒsocket.SO_HCI_PKT_FILTER”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/socket.html#socket.SO_HCI_PKT_FILTER”j" t”bŒsocket.SO_INCOMING_CPU”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/socket.html#socket.SO_INCOMING_CPU”j" t”bŒsocket.SO_REUSEPORT_LB”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/socket.html#socket.SO_REUSEPORT_LB”j" t”bŒsocket.SocketType”j )�”(jT(jU(Œ?https://docs.python.org/3/library/socket.html#socket.SocketType”j" t”bŒsocket.has_ipv6”j )�”(jT(jU(Œ=https://docs.python.org/3/library/socket.html#socket.has_ipv6”j" t”bŒ"sqlite3.LEGACY_TRANSACTION_CONTROL”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/sqlite3.html#sqlite3.LEGACY_TRANSACTION_CONTROL”j" t”bŒsqlite3.PARSE_COLNAMES”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/sqlite3.html#sqlite3.PARSE_COLNAMES”j" t”bŒsqlite3.PARSE_DECLTYPES”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/sqlite3.html#sqlite3.PARSE_DECLTYPES”j" t”bŒ!sqlite3.SQLITE_DBCONFIG_DEFENSIVE”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_DEFENSIVE”j" t”bŒsqlite3.SQLITE_DBCONFIG_DQS_DDL”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_DQS_DDL”j" t”bŒsqlite3.SQLITE_DBCONFIG_DQS_DML”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_DQS_DML”j" t”bŒ#sqlite3.SQLITE_DBCONFIG_ENABLE_FKEY”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_ENABLE_FKEY”j" t”bŒ-sqlite3.SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER”j )�”(jT(jU(Œ\https://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER”j" t”bŒ-sqlite3.SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION”j )�”(jT(jU(Œ\https://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION”j" t”bŒ#sqlite3.SQLITE_DBCONFIG_ENABLE_QPSG”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_ENABLE_QPSG”j" t”bŒ&sqlite3.SQLITE_DBCONFIG_ENABLE_TRIGGER”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_ENABLE_TRIGGER”j" t”bŒ#sqlite3.SQLITE_DBCONFIG_ENABLE_VIEW”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_ENABLE_VIEW”j" t”bŒ*sqlite3.SQLITE_DBCONFIG_LEGACY_ALTER_TABLE”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_LEGACY_ALTER_TABLE”j" t”bŒ*sqlite3.SQLITE_DBCONFIG_LEGACY_FILE_FORMAT”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_LEGACY_FILE_FORMAT”j" t”bŒ(sqlite3.SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE”j" t”bŒ&sqlite3.SQLITE_DBCONFIG_RESET_DATABASE”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_RESET_DATABASE”j" t”bŒ#sqlite3.SQLITE_DBCONFIG_TRIGGER_EQP”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_TRIGGER_EQP”j" t”bŒ&sqlite3.SQLITE_DBCONFIG_TRUSTED_SCHEMA”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_TRUSTED_SCHEMA”j" t”bŒ'sqlite3.SQLITE_DBCONFIG_WRITABLE_SCHEMA”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DBCONFIG_WRITABLE_SCHEMA”j" t”bŒsqlite3.SQLITE_DENY”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_DENY”j" t”bŒsqlite3.SQLITE_IGNORE”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_IGNORE”j" t”bŒsqlite3.SQLITE_OK”j )�”(jT(jU(Œ@https://docs.python.org/3/library/sqlite3.html#sqlite3.SQLITE_OK”j" t”bŒsqlite3.apilevel”j )�”(jT(jU(Œ?https://docs.python.org/3/library/sqlite3.html#sqlite3.apilevel”j" t”bŒsqlite3.paramstyle”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/sqlite3.html#sqlite3.paramstyle”j" t”bŒsqlite3.sqlite_version”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/sqlite3.html#sqlite3.sqlite_version”j" t”bŒsqlite3.sqlite_version_info”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/sqlite3.html#sqlite3.sqlite_version_info”j" t”bŒsqlite3.threadsafety”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/sqlite3.html#sqlite3.threadsafety”j" t”bŒ'ssl.ALERT_DESCRIPTION_HANDSHAKE_FAILURE”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/ssl.html#ssl.ALERT_DESCRIPTION_HANDSHAKE_FAILURE”j" t”bŒ$ssl.ALERT_DESCRIPTION_INTERNAL_ERROR”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/ssl.html#ssl.ALERT_DESCRIPTION_INTERNAL_ERROR”j" t”bŒ ssl.CERT_NONE”j )�”(jT(jU(Œ8https://docs.python.org/3/library/ssl.html#ssl.CERT_NONE”j" t”bŒssl.CERT_OPTIONAL”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ssl.html#ssl.OPENSSL_VERSION”j" t”bŒssl.OPENSSL_VERSION_INFO”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/ssl.html#ssl.OPENSSL_VERSION_INFO”j" t”bŒssl.OPENSSL_VERSION_NUMBER”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ssl.html#ssl.OPENSSL_VERSION_NUMBER”j" t”bŒ ssl.OP_ALL”j )�”(jT(jU(Œ5https://docs.python.org/3/library/ssl.html#ssl.OP_ALL”j" t”bŒssl.OP_CIPHER_SERVER_PREFERENCE”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/ssl.html#ssl.OP_CIPHER_SERVER_PREFERENCE”j" t”bŒssl.OP_ENABLE_KTLS”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ssl.html#ssl.OP_ENABLE_KTLS”j" t”bŒssl.OP_ENABLE_MIDDLEBOX_COMPAT”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/ssl.html#ssl.OP_ENABLE_MIDDLEBOX_COMPAT”j" t”bŒssl.OP_IGNORE_UNEXPECTED_EOF”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ssl.html#ssl.OP_IGNORE_UNEXPECTED_EOF”j" t”bŒssl.OP_LEGACY_SERVER_CONNECT”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ssl.html#ssl.OP_LEGACY_SERVER_CONNECT”j" t”bŒssl.OP_NO_COMPRESSION”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ssl.html#ssl.OP_NO_COMPRESSION”j" t”bŒssl.OP_NO_RENEGOTIATION”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/ssl.html#ssl.OP_NO_RENEGOTIATION”j" t”bŒssl.OP_NO_SSLv2”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ssl.html#ssl.OP_NO_SSLv2”j" t”bŒssl.OP_NO_SSLv3”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ssl.html#ssl.OP_NO_SSLv3”j" t”bŒssl.OP_NO_TICKET”j )�”(jT(jU(Œ;https://docs.python.org/3/library/ssl.html#ssl.OP_NO_TICKET”j" t”bŒssl.OP_NO_TLSv1”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ssl.html#ssl.OP_NO_TLSv1”j" t”bŒssl.OP_NO_TLSv1_1”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_SSLv23”j" t”bŒssl.PROTOCOL_SSLv3”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_SSLv3”j" t”bŒssl.PROTOCOL_TLS”j )�”(jT(jU(Œ;https://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLS”j" t”bŒssl.PROTOCOL_TLS_CLIENT”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLS_CLIENT”j" t”bŒssl.PROTOCOL_TLS_SERVER”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLS_SERVER”j" t”bŒssl.PROTOCOL_TLSv1”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLSv1”j" t”bŒssl.PROTOCOL_TLSv1_1”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLSv1_1”j" t”bŒssl.PROTOCOL_TLSv1_2”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ssl.html#ssl.PROTOCOL_TLSv1_2”j" t”bŒssl.Purpose.CLIENT_AUTH”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/ssl.html#ssl.Purpose.CLIENT_AUTH”j" t”bŒssl.Purpose.SERVER_AUTH”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/ssl.html#ssl.Purpose.SERVER_AUTH”j" t”bŒssl.VERIFY_ALLOW_PROXY_CERTS”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ssl.html#ssl.VERIFY_ALLOW_PROXY_CERTS”j" t”bŒssl.VERIFY_CRL_CHECK_CHAIN”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ssl.html#ssl.VERIFY_CRL_CHECK_CHAIN”j" t”bŒssl.VERIFY_CRL_CHECK_LEAF”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/ssl.html#ssl.VERIFY_CRL_CHECK_LEAF”j" t”bŒssl.VERIFY_DEFAULT”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ssl.html#ssl.VERIFY_DEFAULT”j" t”bŒssl.VERIFY_X509_PARTIAL_CHAIN”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/ssl.html#ssl.VERIFY_X509_PARTIAL_CHAIN”j" t”bŒssl.VERIFY_X509_STRICT”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ssl.html#ssl.VERIFY_X509_STRICT”j" t”bŒssl.VERIFY_X509_TRUSTED_FIRST”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/ssl.html#ssl.VERIFY_X509_TRUSTED_FIRST”j" t”bŒstat.FILE_ATTRIBUTE_ARCHIVE”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_ARCHIVE”j" t”bŒstat.FILE_ATTRIBUTE_COMPRESSED”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_COMPRESSED”j" t”bŒstat.FILE_ATTRIBUTE_DEVICE”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_DEVICE”j" t”bŒstat.FILE_ATTRIBUTE_DIRECTORY”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_DIRECTORY”j" t”bŒstat.FILE_ATTRIBUTE_ENCRYPTED”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_ENCRYPTED”j" t”bŒstat.FILE_ATTRIBUTE_HIDDEN”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_HIDDEN”j" t”bŒ$stat.FILE_ATTRIBUTE_INTEGRITY_STREAM”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_INTEGRITY_STREAM”j" t”bŒstat.FILE_ATTRIBUTE_NORMAL”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_NORMAL”j" t”bŒ'stat.FILE_ATTRIBUTE_NOT_CONTENT_INDEXED”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_NOT_CONTENT_INDEXED”j" t”bŒ!stat.FILE_ATTRIBUTE_NO_SCRUB_DATA”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_NO_SCRUB_DATA”j" t”bŒstat.FILE_ATTRIBUTE_OFFLINE”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_OFFLINE”j" t”bŒstat.FILE_ATTRIBUTE_READONLY”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_READONLY”j" t”bŒ!stat.FILE_ATTRIBUTE_REPARSE_POINT”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_REPARSE_POINT”j" t”bŒstat.FILE_ATTRIBUTE_SPARSE_FILE”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_SPARSE_FILE”j" t”bŒstat.FILE_ATTRIBUTE_SYSTEM”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_SYSTEM”j" t”bŒstat.FILE_ATTRIBUTE_TEMPORARY”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_TEMPORARY”j" t”bŒstat.FILE_ATTRIBUTE_VIRTUAL”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/stat.html#stat.FILE_ATTRIBUTE_VIRTUAL”j" t”bŒstat.IO_REPARSE_TAG_APPEXECLINK”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/stat.html#stat.IO_REPARSE_TAG_APPEXECLINK”j" t”bŒstat.IO_REPARSE_TAG_MOUNT_POINT”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/stat.html#stat.IO_REPARSE_TAG_MOUNT_POINT”j" t”bŒstat.IO_REPARSE_TAG_SYMLINK”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/stat.html#stat.IO_REPARSE_TAG_SYMLINK”j" t”bŒstat.SF_APPEND”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stat.html#stat.SF_APPEND”j" t”bŒstat.SF_ARCHIVED”j )�”(jT(jU(Œhttps://docs.python.org/3/library/stat.html#stat.SF_RESTRICTED”j" t”bŒstat.SF_SETTABLE”j )�”(jT(jU(Œhttps://docs.python.org/3/library/stat.html#stat.UF_COMPRESSED”j" t”bŒstat.UF_DATAVAULT”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stat.html#stat.UF_DATAVAULT”j" t”bŒstat.UF_HIDDEN”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stat.html#stat.UF_HIDDEN”j" t”bŒstat.UF_IMMUTABLE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stat.html#stat.UF_IMMUTABLE”j" t”bŒstat.UF_NODUMP”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stat.html#stat.UF_NODUMP”j" t”bŒstat.UF_NOUNLINK”j )�”(jT(jU(Œhttps://docs.python.org/3/library/string.html#string.hexdigits”j" t”bŒstring.octdigits”j )�”(jT(jU(Œ>https://docs.python.org/3/library/string.html#string.octdigits”j" t”bŒstring.printable”j )�”(jT(jU(Œ>https://docs.python.org/3/library/string.html#string.printable”j" t”bŒstring.punctuation”j )�”(jT(jU(Œ@https://docs.python.org/3/library/string.html#string.punctuation”j" t”bŒstring.whitespace”j )�”(jT(jU(Œ?https://docs.python.org/3/library/string.html#string.whitespace”j" t”bŒ&subprocess.ABOVE_NORMAL_PRIORITY_CLASS”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/subprocess.html#subprocess.ABOVE_NORMAL_PRIORITY_CLASS”j" t”bŒ&subprocess.BELOW_NORMAL_PRIORITY_CLASS”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/subprocess.html#subprocess.BELOW_NORMAL_PRIORITY_CLASS”j" t”bŒ$subprocess.CREATE_BREAKAWAY_FROM_JOB”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/subprocess.html#subprocess.CREATE_BREAKAWAY_FROM_JOB”j" t”bŒ$subprocess.CREATE_DEFAULT_ERROR_MODE”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/subprocess.html#subprocess.CREATE_DEFAULT_ERROR_MODE”j" t”bŒsubprocess.CREATE_NEW_CONSOLE”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/subprocess.html#subprocess.CREATE_NEW_CONSOLE”j" t”bŒ#subprocess.CREATE_NEW_PROCESS_GROUP”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/subprocess.html#subprocess.CREATE_NEW_PROCESS_GROUP”j" t”bŒsubprocess.CREATE_NO_WINDOW”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/subprocess.html#subprocess.CREATE_NO_WINDOW”j" t”bŒsubprocess.DETACHED_PROCESS”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/subprocess.html#subprocess.DETACHED_PROCESS”j" t”bŒsubprocess.DEVNULL”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/subprocess.html#subprocess.DEVNULL”j" t”bŒsubprocess.HIGH_PRIORITY_CLASS”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/subprocess.html#subprocess.HIGH_PRIORITY_CLASS”j" t”bŒsubprocess.IDLE_PRIORITY_CLASS”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/subprocess.html#subprocess.IDLE_PRIORITY_CLASS”j" t”bŒ subprocess.NORMAL_PRIORITY_CLASS”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/subprocess.html#subprocess.NORMAL_PRIORITY_CLASS”j" t”bŒsubprocess.PIPE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/subprocess.html#subprocess.PIPE”j" t”bŒ"subprocess.REALTIME_PRIORITY_CLASS”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/subprocess.html#subprocess.REALTIME_PRIORITY_CLASS”j" t”bŒ"subprocess.STARTF_FORCEOFFFEEDBACK”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/subprocess.html#subprocess.STARTF_FORCEOFFFEEDBACK”j" t”bŒ!subprocess.STARTF_FORCEONFEEDBACK”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/subprocess.html#subprocess.STARTF_FORCEONFEEDBACK”j" t”bŒsubprocess.STARTF_USESHOWWINDOW”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/subprocess.html#subprocess.STARTF_USESHOWWINDOW”j" t”bŒsubprocess.STARTF_USESTDHANDLES”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/subprocess.html#subprocess.STARTF_USESTDHANDLES”j" t”bŒsubprocess.STDOUT”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/subprocess.html#subprocess.STDOUT”j" t”bŒsubprocess.STD_ERROR_HANDLE”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/subprocess.html#subprocess.STD_ERROR_HANDLE”j" t”bŒsubprocess.STD_INPUT_HANDLE”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/subprocess.html#subprocess.STD_INPUT_HANDLE”j" t”bŒsubprocess.STD_OUTPUT_HANDLE”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/subprocess.html#subprocess.STD_OUTPUT_HANDLE”j" t”bŒsubprocess.SW_HIDE”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/subprocess.html#subprocess.SW_HIDE”j" t”bŒsys.__breakpointhook__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/sys.html#sys.__breakpointhook__”j" t”bŒsys.__displayhook__”j )�”(jT(jU(Œ>https://docs.python.org/3/library/sys.html#sys.__displayhook__”j" t”bŒsys.__excepthook__”j )�”(jT(jU(Œ=https://docs.python.org/3/library/sys.html#sys.__excepthook__”j" t”bŒsys.__interactivehook__”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/sys.html#sys.__interactivehook__”j" t”bŒsys.__stderr__”j )�”(jT(jU(Œ9https://docs.python.org/3/library/sys.html#sys.__stderr__”j" t”bŒ sys.__stdin__”j )�”(jT(jU(Œ8https://docs.python.org/3/library/sys.html#sys.__stdin__”j" t”bŒsys.__stdout__”j )�”(jT(jU(Œ9https://docs.python.org/3/library/sys.html#sys.__stdout__”j" t”bŒsys.__unraisablehook__”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/sys.html#sys.__unraisablehook__”j" t”bŒsys._emscripten_info”j )�”(jT(jU(Œ?https://docs.python.org/3/library/sys.html#sys._emscripten_info”j" t”bŒsys._jit”j )�”(jT(jU(Œ3https://docs.python.org/3/library/sys.html#sys._jit”j" t”bŒ sys._xoptions”j )�”(jT(jU(Œ8https://docs.python.org/3/library/sys.html#sys._xoptions”j" t”bŒ sys.abiflags”j )�”(jT(jU(Œ7https://docs.python.org/3/library/sys.html#sys.abiflags”j" t”bŒsys.api_version”j )�”(jT(jU(Œ:https://docs.python.org/3/library/sys.html#sys.api_version”j" t”bŒsys.argv”j )�”(jT(jU(Œ3https://docs.python.org/3/library/sys.html#sys.argv”j" t”bŒsys.base_exec_prefix”j )�”(jT(jU(Œ?https://docs.python.org/3/library/sys.html#sys.base_exec_prefix”j" t”bŒsys.base_prefix”j )�”(jT(jU(Œ:https://docs.python.org/3/library/sys.html#sys.base_prefix”j" t”bŒsys.builtin_module_names”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/sys.html#sys.builtin_module_names”j" t”bŒ sys.byteorder”j )�”(jT(jU(Œ8https://docs.python.org/3/library/sys.html#sys.byteorder”j" t”bŒ sys.copyright”j )�”(jT(jU(Œ8https://docs.python.org/3/library/sys.html#sys.copyright”j" t”bŒ sys.dllhandle”j )�”(jT(jU(Œ8https://docs.python.org/3/library/sys.html#sys.dllhandle”j" t”bŒsys.dont_write_bytecode”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/sys.html#sys.dont_write_bytecode”j" t”bŒsys.exec_prefix”j )�”(jT(jU(Œ:https://docs.python.org/3/library/sys.html#sys.exec_prefix”j" t”bŒsys.executable”j )�”(jT(jU(Œ9https://docs.python.org/3/library/sys.html#sys.executable”j" t”bŒ sys.flags”j )�”(jT(jU(Œ4https://docs.python.org/3/library/sys.html#sys.flags”j" t”bŒsys.float_info”j )�”(jT(jU(Œ9https://docs.python.org/3/library/sys.html#sys.float_info”j" t”bŒsys.float_repr_style”j )�”(jT(jU(Œ?https://docs.python.org/3/library/sys.html#sys.float_repr_style”j" t”bŒ sys.hash_info”j )�”(jT(jU(Œ8https://docs.python.org/3/library/sys.html#sys.hash_info”j" t”bŒsys.hexversion”j )�”(jT(jU(Œ9https://docs.python.org/3/library/sys.html#sys.hexversion”j" t”bŒsys.implementation”j )�”(jT(jU(Œ=https://docs.python.org/3/library/sys.html#sys.implementation”j" t”bŒ sys.int_info”j )�”(jT(jU(Œ7https://docs.python.org/3/library/sys.html#sys.int_info”j" t”bŒ sys.last_exc”j )�”(jT(jU(Œ7https://docs.python.org/3/library/sys.html#sys.last_exc”j" t”bŒsys.last_traceback”j )�”(jT(jU(Œ=https://docs.python.org/3/library/sys.html#sys.last_traceback”j" t”bŒ sys.last_type”j )�”(jT(jU(Œ8https://docs.python.org/3/library/sys.html#sys.last_type”j" t”bŒsys.last_value”j )�”(jT(jU(Œ9https://docs.python.org/3/library/sys.html#sys.last_value”j" t”bŒ sys.maxsize”j )�”(jT(jU(Œ6https://docs.python.org/3/library/sys.html#sys.maxsize”j" t”bŒsys.maxunicode”j )�”(jT(jU(Œ9https://docs.python.org/3/library/sys.html#sys.maxunicode”j" t”bŒ sys.meta_path”j )�”(jT(jU(Œ8https://docs.python.org/3/library/sys.html#sys.meta_path”j" t”bŒ sys.modules”j )�”(jT(jU(Œ6https://docs.python.org/3/library/sys.html#sys.modules”j" t”bŒsys.monitoring.DISABLE”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/sys.monitoring.html#sys.monitoring.DISABLE”j" t”bŒsys.monitoring.MISSING”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/sys.monitoring.html#sys.monitoring.MISSING”j" t”bŒ sys.orig_argv”j )�”(jT(jU(Œ8https://docs.python.org/3/library/sys.html#sys.orig_argv”j" t”bŒsys.path”j )�”(jT(jU(Œ3https://docs.python.org/3/library/sys.html#sys.path”j" t”bŒsys.path_hooks”j )�”(jT(jU(Œ9https://docs.python.org/3/library/sys.html#sys.path_hooks”j" t”bŒsys.path_importer_cache”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/sys.html#sys.path_importer_cache”j" t”bŒ sys.platform”j )�”(jT(jU(Œ7https://docs.python.org/3/library/sys.html#sys.platform”j" t”bŒsys.platlibdir”j )�”(jT(jU(Œ9https://docs.python.org/3/library/sys.html#sys.platlibdir”j" t”bŒ sys.prefix”j )�”(jT(jU(Œ5https://docs.python.org/3/library/sys.html#sys.prefix”j" t”bŒsys.ps1”j )�”(jT(jU(Œ2https://docs.python.org/3/library/sys.html#sys.ps1”j" t”bŒsys.ps2”j )�”(jT(jU(Œ2https://docs.python.org/3/library/sys.html#sys.ps2”j" t”bŒsys.pycache_prefix”j )�”(jT(jU(Œ=https://docs.python.org/3/library/sys.html#sys.pycache_prefix”j" t”bŒ sys.stderr”j )�”(jT(jU(Œ5https://docs.python.org/3/library/sys.html#sys.stderr”j" t”bŒ sys.stdin”j )�”(jT(jU(Œ4https://docs.python.org/3/library/sys.html#sys.stdin”j" t”bŒsys.stdlib_module_names”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/sys.html#sys.stdlib_module_names”j" t”bŒ sys.stdout”j )�”(jT(jU(Œ5https://docs.python.org/3/library/sys.html#sys.stdout”j" t”bŒsys.thread_info”j )�”(jT(jU(Œ:https://docs.python.org/3/library/sys.html#sys.thread_info”j" t”bŒsys.tracebacklimit”j )�”(jT(jU(Œ=https://docs.python.org/3/library/sys.html#sys.tracebacklimit”j" t”bŒ sys.version”j )�”(jT(jU(Œ6https://docs.python.org/3/library/sys.html#sys.version”j" t”bŒsys.version_info”j )�”(jT(jU(Œ;https://docs.python.org/3/library/sys.html#sys.version_info”j" t”bŒsys.warnoptions”j )�”(jT(jU(Œ:https://docs.python.org/3/library/sys.html#sys.warnoptions”j" t”bŒ sys.winver”j )�”(jT(jU(Œ5https://docs.python.org/3/library/sys.html#sys.winver”j" t”bŒsyslog.LOG_ALERT”j )�”(jT(jU(Œ>https://docs.python.org/3/library/syslog.html#syslog.LOG_ALERT”j" t”bŒsyslog.LOG_AUTH”j )�”(jT(jU(Œ=https://docs.python.org/3/library/syslog.html#syslog.LOG_AUTH”j" t”bŒsyslog.LOG_AUTHPRIV”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/syslog.html#syslog.LOG_AUTHPRIV”j" t”bŒsyslog.LOG_CONS”j )�”(jT(jU(Œ=https://docs.python.org/3/library/syslog.html#syslog.LOG_CONS”j" t”bŒsyslog.LOG_CRIT”j )�”(jT(jU(Œ=https://docs.python.org/3/library/syslog.html#syslog.LOG_CRIT”j" t”bŒsyslog.LOG_CRON”j )�”(jT(jU(Œ=https://docs.python.org/3/library/syslog.html#syslog.LOG_CRON”j" t”bŒsyslog.LOG_DAEMON”j )�”(jT(jU(Œ?https://docs.python.org/3/library/syslog.html#syslog.LOG_DAEMON”j" t”bŒsyslog.LOG_DEBUG”j )�”(jT(jU(Œ>https://docs.python.org/3/library/syslog.html#syslog.LOG_DEBUG”j" t”bŒsyslog.LOG_EMERG”j )�”(jT(jU(Œ>https://docs.python.org/3/library/syslog.html#syslog.LOG_EMERG”j" t”bŒsyslog.LOG_ERR”j )�”(jT(jU(Œhttps://docs.python.org/3/library/tarfile.html#tarfile.BLKTYPE”j" t”bŒtarfile.CHRTYPE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/tarfile.html#tarfile.CHRTYPE”j" t”bŒtarfile.CONTTYPE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/tarfile.html#tarfile.CONTTYPE”j" t”bŒtarfile.DEFAULT_FORMAT”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/tarfile.html#tarfile.DEFAULT_FORMAT”j" t”bŒtarfile.DIRTYPE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/tarfile.html#tarfile.DIRTYPE”j" t”bŒtarfile.ENCODING”j )�”(jT(jU(Œ?https://docs.python.org/3/library/tarfile.html#tarfile.ENCODING”j" t”bŒtarfile.FIFOTYPE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/tarfile.html#tarfile.FIFOTYPE”j" t”bŒtarfile.GNUTYPE_LONGLINK”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/tarfile.html#tarfile.GNUTYPE_LONGLINK”j" t”bŒtarfile.GNUTYPE_LONGNAME”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/tarfile.html#tarfile.GNUTYPE_LONGNAME”j" t”bŒtarfile.GNUTYPE_SPARSE”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/tarfile.html#tarfile.GNUTYPE_SPARSE”j" t”bŒtarfile.GNU_FORMAT”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/tarfile.html#tarfile.GNU_FORMAT”j" t”bŒtarfile.LNKTYPE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/tarfile.html#tarfile.LNKTYPE”j" t”bŒtarfile.PAX_FORMAT”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/tarfile.html#tarfile.PAX_FORMAT”j" t”bŒtarfile.REGTYPE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/tarfile.html#tarfile.REGTYPE”j" t”bŒtarfile.SYMTYPE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/tarfile.html#tarfile.SYMTYPE”j" t”bŒtarfile.USTAR_FORMAT”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/tarfile.html#tarfile.USTAR_FORMAT”j" t”bŒtempfile.tempdir”j )�”(jT(jU(Œ@https://docs.python.org/3/library/tempfile.html#tempfile.tempdir”j" t”bŒtermios.TCSADRAIN”j )�”(jT(jU(Œ@https://docs.python.org/3/library/termios.html#termios.TCSADRAIN”j" t”bŒtermios.TCSAFLUSH”j )�”(jT(jU(Œ@https://docs.python.org/3/library/termios.html#termios.TCSAFLUSH”j" t”bŒtermios.TCSANOW”j )�”(jT(jU(Œ>https://docs.python.org/3/library/termios.html#termios.TCSANOW”j" t”bŒtest.support.ALWAYS_EQ”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/test.html#test.support.ALWAYS_EQ”j" t”bŒtest.support.HAVE_DOCSTRINGS”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/test.html#test.support.HAVE_DOCSTRINGS”j" t”bŒtest.support.INTERNET_TIMEOUT”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/test.html#test.support.INTERNET_TIMEOUT”j" t”bŒtest.support.LARGEST”j )�”(jT(jU(Œ@https://docs.python.org/3/library/test.html#test.support.LARGEST”j" t”bŒtest.support.LONG_TIMEOUT”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/test.html#test.support.LONG_TIMEOUT”j" t”bŒtest.support.LOOPBACK_TIMEOUT”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/test.html#test.support.LOOPBACK_TIMEOUT”j" t”bŒtest.support.MAX_Py_ssize_t”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/test.html#test.support.MAX_Py_ssize_t”j" t”bŒ!test.support.MISSING_C_DOCSTRINGS”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/test.html#test.support.MISSING_C_DOCSTRINGS”j" t”bŒtest.support.NEVER_EQ”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/test.html#test.support.NEVER_EQ”j" t”bŒtest.support.PGO”j )�”(jT(jU(Œhttps://docs.python.org/3/library/time.html#time.CLOCK_HIGHRES”j" t”bŒtime.CLOCK_MONOTONIC”j )�”(jT(jU(Œ@https://docs.python.org/3/library/time.html#time.CLOCK_MONOTONIC”j" t”bŒtime.CLOCK_MONOTONIC_RAW”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/time.html#time.CLOCK_MONOTONIC_RAW”j" t”bŒtime.CLOCK_MONOTONIC_RAW_APPROX”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/time.html#time.CLOCK_MONOTONIC_RAW_APPROX”j" t”bŒtime.CLOCK_PROCESS_CPUTIME_ID”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/time.html#time.CLOCK_PROCESS_CPUTIME_ID”j" t”bŒtime.CLOCK_PROF”j )�”(jT(jU(Œ;https://docs.python.org/3/library/time.html#time.CLOCK_PROF”j" t”bŒtime.CLOCK_REALTIME”j )�”(jT(jU(Œ?https://docs.python.org/3/library/time.html#time.CLOCK_REALTIME”j" t”bŒtime.CLOCK_TAI”j )�”(jT(jU(Œ:https://docs.python.org/3/library/time.html#time.CLOCK_TAI”j" t”bŒtime.CLOCK_THREAD_CPUTIME_ID”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/time.html#time.CLOCK_THREAD_CPUTIME_ID”j" t”bŒtime.CLOCK_UPTIME”j )�”(jT(jU(Œ=https://docs.python.org/3/library/time.html#time.CLOCK_UPTIME”j" t”bŒtime.CLOCK_UPTIME_RAW”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/time.html#time.CLOCK_UPTIME_RAW”j" t”bŒtime.CLOCK_UPTIME_RAW_APPROX”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/time.html#time.CLOCK_UPTIME_RAW_APPROX”j" t”bŒ time.altzone”j )�”(jT(jU(Œ8https://docs.python.org/3/library/time.html#time.altzone”j" t”bŒ time.daylight”j )�”(jT(jU(Œ9https://docs.python.org/3/library/time.html#time.daylight”j" t”bŒ time.timezone”j )�”(jT(jU(Œ9https://docs.python.org/3/library/time.html#time.timezone”j" t”bŒ time.tzname”j )�”(jT(jU(Œ7https://docs.python.org/3/library/time.html#time.tzname”j" t”bŒtkinter.font.BOLD”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.BOLD”j" t”bŒtkinter.font.ITALIC”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.ITALIC”j" t”bŒtkinter.font.NORMAL”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.NORMAL”j" t”bŒtkinter.font.ROMAN”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/tkinter.font.html#tkinter.font.ROMAN”j" t”bŒtkinter.messagebox.ABORT”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.ABORT”j" t”bŒ#tkinter.messagebox.ABORTRETRYIGNORE”j )�”(jT(jU(Œ]https://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.ABORTRETRYIGNORE”j" t”bŒtkinter.messagebox.CANCEL”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.CANCEL”j" t”bŒtkinter.messagebox.ERROR”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.ERROR”j" t”bŒtkinter.messagebox.IGNORE”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.IGNORE”j" t”bŒtkinter.messagebox.INFO”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.INFO”j" t”bŒtkinter.messagebox.NO”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.NO”j" t”bŒtkinter.messagebox.OK”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.OK”j" t”bŒtkinter.messagebox.OKCANCEL”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.OKCANCEL”j" t”bŒtkinter.messagebox.QUESTION”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.QUESTION”j" t”bŒtkinter.messagebox.RETRY”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.RETRY”j" t”bŒtkinter.messagebox.RETRYCANCEL”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.RETRYCANCEL”j" t”bŒtkinter.messagebox.WARNING”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.WARNING”j" t”bŒtkinter.messagebox.YES”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.YES”j" t”bŒtkinter.messagebox.YESNO”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.YESNO”j" t”bŒtkinter.messagebox.YESNOCANCEL”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/tkinter.messagebox.html#tkinter.messagebox.YESNOCANCEL”j" t”bŒ token.AMPER”j )�”(jT(jU(Œ8https://docs.python.org/3/library/token.html#token.AMPER”j" t”bŒtoken.AMPEREQUAL”j )�”(jT(jU(Œ=https://docs.python.org/3/library/token.html#token.AMPEREQUAL”j" t”bŒtoken.AT”j )�”(jT(jU(Œ5https://docs.python.org/3/library/token.html#token.AT”j" t”bŒ token.ATEQUAL”j )�”(jT(jU(Œ:https://docs.python.org/3/library/token.html#token.ATEQUAL”j" t”bŒtoken.CIRCUMFLEX”j )�”(jT(jU(Œ=https://docs.python.org/3/library/token.html#token.CIRCUMFLEX”j" t”bŒtoken.CIRCUMFLEXEQUAL”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/token.html#token.CIRCUMFLEXEQUAL”j" t”bŒ token.COLON”j )�”(jT(jU(Œ8https://docs.python.org/3/library/token.html#token.COLON”j" t”bŒtoken.COLONEQUAL”j )�”(jT(jU(Œ=https://docs.python.org/3/library/token.html#token.COLONEQUAL”j" t”bŒ token.COMMA”j )�”(jT(jU(Œ8https://docs.python.org/3/library/token.html#token.COMMA”j" t”bŒ token.COMMENT”j )�”(jT(jU(Œ:https://docs.python.org/3/library/token.html#token.COMMENT”j" t”bŒ token.DEDENT”j )�”(jT(jU(Œ9https://docs.python.org/3/library/token.html#token.DEDENT”j" t”bŒ token.DOT”j )�”(jT(jU(Œ6https://docs.python.org/3/library/token.html#token.DOT”j" t”bŒtoken.DOUBLESLASH”j )�”(jT(jU(Œ>https://docs.python.org/3/library/token.html#token.DOUBLESLASH”j" t”bŒtoken.DOUBLESLASHEQUAL”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/token.html#token.DOUBLESLASHEQUAL”j" t”bŒtoken.DOUBLESTAR”j )�”(jT(jU(Œ=https://docs.python.org/3/library/token.html#token.DOUBLESTAR”j" t”bŒtoken.DOUBLESTAREQUAL”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/token.html#token.DOUBLESTAREQUAL”j" t”bŒtoken.ELLIPSIS”j )�”(jT(jU(Œ;https://docs.python.org/3/library/token.html#token.ELLIPSIS”j" t”bŒtoken.ENCODING”j )�”(jT(jU(Œ;https://docs.python.org/3/library/token.html#token.ENCODING”j" t”bŒtoken.ENDMARKER”j )�”(jT(jU(Œhttps://docs.python.org/3/library/token.html#token.EXCLAMATION”j" t”bŒtoken.FSTRING_END”j )�”(jT(jU(Œ>https://docs.python.org/3/library/token.html#token.FSTRING_END”j" t”bŒtoken.FSTRING_MIDDLE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/token.html#token.FSTRING_MIDDLE”j" t”bŒtoken.FSTRING_START”j )�”(jT(jU(Œ@https://docs.python.org/3/library/token.html#token.FSTRING_START”j" t”bŒ token.GREATER”j )�”(jT(jU(Œ:https://docs.python.org/3/library/token.html#token.GREATER”j" t”bŒtoken.GREATEREQUAL”j )�”(jT(jU(Œ?https://docs.python.org/3/library/token.html#token.GREATEREQUAL”j" t”bŒ token.INDENT”j )�”(jT(jU(Œ9https://docs.python.org/3/library/token.html#token.INDENT”j" t”bŒ token.LBRACE”j )�”(jT(jU(Œ9https://docs.python.org/3/library/token.html#token.LBRACE”j" t”bŒtoken.LEFTSHIFT”j )�”(jT(jU(Œhttps://docs.python.org/3/library/token.html#token.TSTRING_END”j" t”bŒtoken.TSTRING_MIDDLE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/token.html#token.TSTRING_MIDDLE”j" t”bŒtoken.TSTRING_START”j )�”(jT(jU(Œ@https://docs.python.org/3/library/token.html#token.TSTRING_START”j" t”bŒtoken.TYPE_COMMENT”j )�”(jT(jU(Œ?https://docs.python.org/3/library/token.html#token.TYPE_COMMENT”j" t”bŒtoken.TYPE_IGNORE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/token.html#token.TYPE_IGNORE”j" t”bŒ token.VBAR”j )�”(jT(jU(Œ7https://docs.python.org/3/library/token.html#token.VBAR”j" t”bŒtoken.VBAREQUAL”j )�”(jT(jU(Œhttps://docs.python.org/3/library/typing.html#typing.Annotated”j" t”bŒ typing.Any”j )�”(jT(jU(Œ8https://docs.python.org/3/library/typing.html#typing.Any”j" t”bŒ typing.AnyStr”j )�”(jT(jU(Œ;https://docs.python.org/3/library/typing.html#typing.AnyStr”j" t”bŒtyping.Callable”j )�”(jT(jU(Œ=https://docs.python.org/3/library/typing.html#typing.Callable”j" t”bŒtyping.ClassVar”j )�”(jT(jU(Œ=https://docs.python.org/3/library/typing.html#typing.ClassVar”j" t”bŒtyping.Concatenate”j )�”(jT(jU(Œ@https://docs.python.org/3/library/typing.html#typing.Concatenate”j" t”bŒ typing.Final”j )�”(jT(jU(Œ:https://docs.python.org/3/library/typing.html#typing.Final”j" t”bŒtyping.Literal”j )�”(jT(jU(Œhttps://docs.python.org/3/library/typing.html#typing.NoDefault”j" t”bŒtyping.NoReturn”j )�”(jT(jU(Œ=https://docs.python.org/3/library/typing.html#typing.NoReturn”j" t”bŒtyping.NotRequired”j )�”(jT(jU(Œ@https://docs.python.org/3/library/typing.html#typing.NotRequired”j" t”bŒtyping.Optional”j )�”(jT(jU(Œ=https://docs.python.org/3/library/typing.html#typing.Optional”j" t”bŒtyping.ParamSpecArgs”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/typing.html#typing.ParamSpecArgs”j" t”bŒtyping.ParamSpecKwargs”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/typing.html#typing.ParamSpecKwargs”j" t”bŒtyping.ReadOnly”j )�”(jT(jU(Œ=https://docs.python.org/3/library/typing.html#typing.ReadOnly”j" t”bŒtyping.Required”j )�”(jT(jU(Œ=https://docs.python.org/3/library/typing.html#typing.Required”j" t”bŒ typing.Self”j )�”(jT(jU(Œ9https://docs.python.org/3/library/typing.html#typing.Self”j" t”bŒtyping.TYPE_CHECKING”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/typing.html#typing.TYPE_CHECKING”j" t”bŒ typing.Tuple”j )�”(jT(jU(Œ:https://docs.python.org/3/library/typing.html#typing.Tuple”j" t”bŒtyping.TypeAlias”j )�”(jT(jU(Œ>https://docs.python.org/3/library/typing.html#typing.TypeAlias”j" t”bŒtyping.TypeGuard”j )�”(jT(jU(Œ>https://docs.python.org/3/library/typing.html#typing.TypeGuard”j" t”bŒ typing.TypeIs”j )�”(jT(jU(Œ;https://docs.python.org/3/library/typing.html#typing.TypeIs”j" t”bŒ typing.Unpack”j )�”(jT(jU(Œ;https://docs.python.org/3/library/typing.html#typing.Unpack”j" t”bŒunicodedata.ucd_3_2_0”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/unicodedata.html#unicodedata.ucd_3_2_0”j" t”bŒunicodedata.unidata_version”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/unicodedata.html#unicodedata.unidata_version”j" t”bŒunittest.defaultTestLoader”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/unittest.html#unittest.defaultTestLoader”j" t”bŒunittest.mock.ANY”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.ANY”j" t”bŒunittest.mock.DEFAULT”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.DEFAULT”j" t”bŒunittest.mock.FILTER_DIR”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.FILTER_DIR”j" t”bŒunittest.mock.sentinel”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.sentinel”j" t”bŒuuid.MAX”j )�”(jT(jU(Œ4https://docs.python.org/3/library/uuid.html#uuid.MAX”j" t”bŒuuid.NAMESPACE_DNS”j )�”(jT(jU(Œ>https://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_DNS”j" t”bŒuuid.NAMESPACE_OID”j )�”(jT(jU(Œ>https://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_OID”j" t”bŒuuid.NAMESPACE_URL”j )�”(jT(jU(Œ>https://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_URL”j" t”bŒuuid.NAMESPACE_X500”j )�”(jT(jU(Œ?https://docs.python.org/3/library/uuid.html#uuid.NAMESPACE_X500”j" t”bŒuuid.NIL”j )�”(jT(jU(Œ4https://docs.python.org/3/library/uuid.html#uuid.NIL”j" t”bŒuuid.RESERVED_FUTURE”j )�”(jT(jU(Œ@https://docs.python.org/3/library/uuid.html#uuid.RESERVED_FUTURE”j" t”bŒuuid.RESERVED_MICROSOFT”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/uuid.html#uuid.RESERVED_MICROSOFT”j" t”bŒuuid.RESERVED_NCS”j )�”(jT(jU(Œ=https://docs.python.org/3/library/uuid.html#uuid.RESERVED_NCS”j" t”bŒ uuid.RFC_4122”j )�”(jT(jU(Œ9https://docs.python.org/3/library/uuid.html#uuid.RFC_4122”j" t”bŒweakref.CallableProxyType”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/weakref.html#weakref.CallableProxyType”j" t”bŒweakref.ProxyType”j )�”(jT(jU(Œ@https://docs.python.org/3/library/weakref.html#weakref.ProxyType”j" t”bŒweakref.ProxyTypes”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/weakref.html#weakref.ProxyTypes”j" t”bŒweakref.ReferenceType”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/weakref.html#weakref.ReferenceType”j" t”bŒwinreg.HKEY_CLASSES_ROOT”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/winreg.html#winreg.HKEY_CLASSES_ROOT”j" t”bŒwinreg.HKEY_CURRENT_CONFIG”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/winreg.html#winreg.HKEY_CURRENT_CONFIG”j" t”bŒwinreg.HKEY_CURRENT_USER”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/winreg.html#winreg.HKEY_CURRENT_USER”j" t”bŒwinreg.HKEY_DYN_DATA”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/winreg.html#winreg.HKEY_DYN_DATA”j" t”bŒwinreg.HKEY_LOCAL_MACHINE”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/winreg.html#winreg.HKEY_LOCAL_MACHINE”j" t”bŒwinreg.HKEY_PERFORMANCE_DATA”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/winreg.html#winreg.HKEY_PERFORMANCE_DATA”j" t”bŒwinreg.HKEY_USERS”j )�”(jT(jU(Œ?https://docs.python.org/3/library/winreg.html#winreg.HKEY_USERS”j" t”bŒwinreg.KEY_ALL_ACCESS”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/winreg.html#winreg.KEY_ALL_ACCESS”j" t”bŒwinreg.KEY_CREATE_LINK”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/winreg.html#winreg.KEY_CREATE_LINK”j" t”bŒwinreg.KEY_CREATE_SUB_KEY”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/winreg.html#winreg.KEY_CREATE_SUB_KEY”j" t”bŒwinreg.KEY_ENUMERATE_SUB_KEYS”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/winreg.html#winreg.KEY_ENUMERATE_SUB_KEYS”j" t”bŒwinreg.KEY_EXECUTE”j )�”(jT(jU(Œ@https://docs.python.org/3/library/winreg.html#winreg.KEY_EXECUTE”j" t”bŒwinreg.KEY_NOTIFY”j )�”(jT(jU(Œ?https://docs.python.org/3/library/winreg.html#winreg.KEY_NOTIFY”j" t”bŒwinreg.KEY_QUERY_VALUE”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/winreg.html#winreg.KEY_QUERY_VALUE”j" t”bŒwinreg.KEY_READ”j )�”(jT(jU(Œ=https://docs.python.org/3/library/winreg.html#winreg.KEY_READ”j" t”bŒwinreg.KEY_SET_VALUE”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/winreg.html#winreg.KEY_SET_VALUE”j" t”bŒwinreg.KEY_WOW64_32KEY”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/winreg.html#winreg.KEY_WOW64_32KEY”j" t”bŒwinreg.KEY_WOW64_64KEY”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/winreg.html#winreg.KEY_WOW64_64KEY”j" t”bŒwinreg.KEY_WRITE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/winreg.html#winreg.KEY_WRITE”j" t”bŒwinreg.REG_BINARY”j )�”(jT(jU(Œ?https://docs.python.org/3/library/winreg.html#winreg.REG_BINARY”j" t”bŒwinreg.REG_DWORD”j )�”(jT(jU(Œ>https://docs.python.org/3/library/winreg.html#winreg.REG_DWORD”j" t”bŒwinreg.REG_DWORD_BIG_ENDIAN”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/winreg.html#winreg.REG_DWORD_BIG_ENDIAN”j" t”bŒwinreg.REG_DWORD_LITTLE_ENDIAN”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/winreg.html#winreg.REG_DWORD_LITTLE_ENDIAN”j" t”bŒwinreg.REG_EXPAND_SZ”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/winreg.html#winreg.REG_EXPAND_SZ”j" t”bŒ#winreg.REG_FULL_RESOURCE_DESCRIPTOR”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/winreg.html#winreg.REG_FULL_RESOURCE_DESCRIPTOR”j" t”bŒwinreg.REG_LINK”j )�”(jT(jU(Œ=https://docs.python.org/3/library/winreg.html#winreg.REG_LINK”j" t”bŒwinreg.REG_MULTI_SZ”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/winreg.html#winreg.REG_MULTI_SZ”j" t”bŒwinreg.REG_NONE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/winreg.html#winreg.REG_NONE”j" t”bŒwinreg.REG_QWORD”j )�”(jT(jU(Œ>https://docs.python.org/3/library/winreg.html#winreg.REG_QWORD”j" t”bŒwinreg.REG_QWORD_LITTLE_ENDIAN”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/winreg.html#winreg.REG_QWORD_LITTLE_ENDIAN”j" t”bŒwinreg.REG_RESOURCE_LIST”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/winreg.html#winreg.REG_RESOURCE_LIST”j" t”bŒ%winreg.REG_RESOURCE_REQUIREMENTS_LIST”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/winreg.html#winreg.REG_RESOURCE_REQUIREMENTS_LIST”j" t”bŒ winreg.REG_SZ”j )�”(jT(jU(Œ;https://docs.python.org/3/library/winreg.html#winreg.REG_SZ”j" t”bŒwinsound.MB_ICONASTERISK”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/winsound.html#winsound.MB_ICONASTERISK”j" t”bŒwinsound.MB_ICONERROR”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/winsound.html#winsound.MB_ICONERROR”j" t”bŒwinsound.MB_ICONEXCLAMATION”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/winsound.html#winsound.MB_ICONEXCLAMATION”j" t”bŒwinsound.MB_ICONHAND”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/winsound.html#winsound.MB_ICONHAND”j" t”bŒwinsound.MB_ICONINFORMATION”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/winsound.html#winsound.MB_ICONINFORMATION”j" t”bŒwinsound.MB_ICONQUESTION”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/winsound.html#winsound.MB_ICONQUESTION”j" t”bŒwinsound.MB_ICONSTOP”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/winsound.html#winsound.MB_ICONSTOP”j" t”bŒwinsound.MB_ICONWARNING”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/winsound.html#winsound.MB_ICONWARNING”j" t”bŒwinsound.MB_OK”j )�”(jT(jU(Œ>https://docs.python.org/3/library/winsound.html#winsound.MB_OK”j" t”bŒwinsound.SND_ALIAS”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/winsound.html#winsound.SND_ALIAS”j" t”bŒwinsound.SND_APPLICATION”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/winsound.html#winsound.SND_APPLICATION”j" t”bŒwinsound.SND_ASYNC”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/winsound.html#winsound.SND_ASYNC”j" t”bŒwinsound.SND_FILENAME”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/winsound.html#winsound.SND_FILENAME”j" t”bŒwinsound.SND_LOOP”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/winsound.html#winsound.SND_LOOP”j" t”bŒwinsound.SND_MEMORY”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/winsound.html#winsound.SND_MEMORY”j" t”bŒwinsound.SND_NODEFAULT”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/winsound.html#winsound.SND_NODEFAULT”j" t”bŒwinsound.SND_NOSTOP”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/winsound.html#winsound.SND_NOSTOP”j" t”bŒwinsound.SND_NOWAIT”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/winsound.html#winsound.SND_NOWAIT”j" t”bŒwinsound.SND_PURGE”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/winsound.html#winsound.SND_PURGE”j" t”bŒwinsound.SND_SENTRY”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/winsound.html#winsound.SND_SENTRY”j" t”bŒwinsound.SND_SYNC”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/winsound.html#winsound.SND_SYNC”j" t”bŒwinsound.SND_SYSTEM”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/winsound.html#winsound.SND_SYSTEM”j" t”bŒwsgiref.types.WSGIApplication”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/wsgiref.html#wsgiref.types.WSGIApplication”j" t”bŒwsgiref.types.WSGIEnvironment”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/wsgiref.html#wsgiref.types.WSGIEnvironment”j" t”bŒxml.dom.EMPTY_NAMESPACE”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/xml.dom.html#xml.dom.EMPTY_NAMESPACE”j" t”bŒxml.dom.XHTML_NAMESPACE”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/xml.dom.html#xml.dom.XHTML_NAMESPACE”j" t”bŒxml.dom.XMLNS_NAMESPACE”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/xml.dom.html#xml.dom.XMLNS_NAMESPACE”j" t”bŒxml.dom.XML_NAMESPACE”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/xml.dom.html#xml.dom.XML_NAMESPACE”j" t”bŒxml.dom.pulldom.default_bufsize”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.default_bufsize”j" t”bŒxml.parsers.expat.XMLParserType”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.XMLParserType”j" t”bŒ*xml.parsers.expat.errors.XML_ERROR_ABORTED”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ABORTED”j" t”bŒ=xml.parsers.expat.errors.XML_ERROR_AMPLIFICATION_LIMIT_BREACH”j )�”(jT(jU(Œlhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_AMPLIFICATION_LIMIT_BREACH”j" t”bŒ/xml.parsers.expat.errors.XML_ERROR_ASYNC_ENTITY”j )�”(jT(jU(Œ^https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ASYNC_ENTITY”j" t”bŒ@xml.parsers.expat.errors.XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF”j )�”(jT(jU(Œohttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF”j" t”bŒ/xml.parsers.expat.errors.XML_ERROR_BAD_CHAR_REF”j )�”(jT(jU(Œ^https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_BAD_CHAR_REF”j" t”bŒ4xml.parsers.expat.errors.XML_ERROR_BINARY_ENTITY_REF”j )�”(jT(jU(Œchttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_BINARY_ENTITY_REF”j" t”bŒCxml.parsers.expat.errors.XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING”j )�”(jT(jU(Œrhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING”j" t”bŒ6xml.parsers.expat.errors.XML_ERROR_DUPLICATE_ATTRIBUTE”j )�”(jT(jU(Œehttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_DUPLICATE_ATTRIBUTE”j" t”bŒ8xml.parsers.expat.errors.XML_ERROR_ENTITY_DECLARED_IN_PE”j )�”(jT(jU(Œghttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_ENTITY_DECLARED_IN_PE”j" t”bŒ;xml.parsers.expat.errors.XML_ERROR_EXTERNAL_ENTITY_HANDLING”j )�”(jT(jU(Œjhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_EXTERNAL_ENTITY_HANDLING”j" t”bŒ;xml.parsers.expat.errors.XML_ERROR_FEATURE_REQUIRES_XML_DTD”j )�”(jT(jU(Œjhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_FEATURE_REQUIRES_XML_DTD”j" t”bŒ+xml.parsers.expat.errors.XML_ERROR_FINISHED”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_FINISHED”j" t”bŒ0xml.parsers.expat.errors.XML_ERROR_INCOMPLETE_PE”j )�”(jT(jU(Œ_https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INCOMPLETE_PE”j" t”bŒ5xml.parsers.expat.errors.XML_ERROR_INCORRECT_ENCODING”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INCORRECT_ENCODING”j" t”bŒ3xml.parsers.expat.errors.XML_ERROR_INVALID_ARGUMENT”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INVALID_ARGUMENT”j" t”bŒ0xml.parsers.expat.errors.XML_ERROR_INVALID_TOKEN”j )�”(jT(jU(Œ_https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_INVALID_TOKEN”j" t”bŒ9xml.parsers.expat.errors.XML_ERROR_JUNK_AFTER_DOC_ELEMENT”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_JUNK_AFTER_DOC_ELEMENT”j" t”bŒ3xml.parsers.expat.errors.XML_ERROR_MISPLACED_XML_PI”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_MISPLACED_XML_PI”j" t”bŒ1xml.parsers.expat.errors.XML_ERROR_NOT_STANDALONE”j )�”(jT(jU(Œ`https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NOT_STANDALONE”j" t”bŒ.xml.parsers.expat.errors.XML_ERROR_NOT_STARTED”j )�”(jT(jU(Œ]https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NOT_STARTED”j" t”bŒ0xml.parsers.expat.errors.XML_ERROR_NOT_SUSPENDED”j )�”(jT(jU(Œ_https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NOT_SUSPENDED”j" t”bŒ,xml.parsers.expat.errors.XML_ERROR_NO_BUFFER”j )�”(jT(jU(Œ[https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NO_BUFFER”j" t”bŒ.xml.parsers.expat.errors.XML_ERROR_NO_ELEMENTS”j )�”(jT(jU(Œ]https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NO_ELEMENTS”j" t”bŒ,xml.parsers.expat.errors.XML_ERROR_NO_MEMORY”j )�”(jT(jU(Œ[https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NO_MEMORY”j" t”bŒ3xml.parsers.expat.errors.XML_ERROR_PARAM_ENTITY_REF”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_PARAM_ENTITY_REF”j" t”bŒ/xml.parsers.expat.errors.XML_ERROR_PARTIAL_CHAR”j )�”(jT(jU(Œ^https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_PARTIAL_CHAR”j" t”bŒ+xml.parsers.expat.errors.XML_ERROR_PUBLICID”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_PUBLICID”j" t”bŒ7xml.parsers.expat.errors.XML_ERROR_RECURSIVE_ENTITY_REF”j )�”(jT(jU(Œfhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_RECURSIVE_ENTITY_REF”j" t”bŒ9xml.parsers.expat.errors.XML_ERROR_RESERVED_NAMESPACE_URI”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_RESERVED_NAMESPACE_URI”j" t”bŒ6xml.parsers.expat.errors.XML_ERROR_RESERVED_PREFIX_XML”j )�”(jT(jU(Œehttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_RESERVED_PREFIX_XML”j" t”bŒ8xml.parsers.expat.errors.XML_ERROR_RESERVED_PREFIX_XMLNS”j )�”(jT(jU(Œghttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_RESERVED_PREFIX_XMLNS”j" t”bŒ,xml.parsers.expat.errors.XML_ERROR_SUSPENDED”j )�”(jT(jU(Œ[https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_SUSPENDED”j" t”bŒ-xml.parsers.expat.errors.XML_ERROR_SUSPEND_PE”j )�”(jT(jU(Œ\https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_SUSPEND_PE”j" t”bŒ)xml.parsers.expat.errors.XML_ERROR_SYNTAX”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_SYNTAX”j" t”bŒ/xml.parsers.expat.errors.XML_ERROR_TAG_MISMATCH”j )�”(jT(jU(Œ^https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_TAG_MISMATCH”j" t”bŒ,xml.parsers.expat.errors.XML_ERROR_TEXT_DECL”j )�”(jT(jU(Œ[https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_TEXT_DECL”j" t”bŒ1xml.parsers.expat.errors.XML_ERROR_UNBOUND_PREFIX”j )�”(jT(jU(Œ`https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNBOUND_PREFIX”j" t”bŒ9xml.parsers.expat.errors.XML_ERROR_UNCLOSED_CDATA_SECTION”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNCLOSED_CDATA_SECTION”j" t”bŒ1xml.parsers.expat.errors.XML_ERROR_UNCLOSED_TOKEN”j )�”(jT(jU(Œ`https://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNCLOSED_TOKEN”j" t”bŒ5xml.parsers.expat.errors.XML_ERROR_UNDECLARING_PREFIX”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNDECLARING_PREFIX”j" t”bŒ3xml.parsers.expat.errors.XML_ERROR_UNDEFINED_ENTITY”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNDEFINED_ENTITY”j" t”bŒ3xml.parsers.expat.errors.XML_ERROR_UNEXPECTED_STATE”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNEXPECTED_STATE”j" t”bŒ3xml.parsers.expat.errors.XML_ERROR_UNKNOWN_ENCODING”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_UNKNOWN_ENCODING”j" t”bŒ+xml.parsers.expat.errors.XML_ERROR_XML_DECL”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_XML_DECL”j" t”bŒxml.parsers.expat.errors.codes”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.codes”j" t”bŒ!xml.parsers.expat.errors.messages”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/pyexpat.html#xml.parsers.expat.errors.messages”j" t”bŒxml.sax.handler.all_features”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.all_features”j" t”bŒxml.sax.handler.all_properties”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.all_properties”j" t”bŒ$xml.sax.handler.feature_external_ges”j )�”(jT(jU(Œ[https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_external_ges”j" t”bŒ$xml.sax.handler.feature_external_pes”j )�”(jT(jU(Œ[https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_external_pes”j" t”bŒ*xml.sax.handler.feature_namespace_prefixes”j )�”(jT(jU(Œahttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_namespace_prefixes”j" t”bŒ"xml.sax.handler.feature_namespaces”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_namespaces”j" t”bŒ(xml.sax.handler.feature_string_interning”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_string_interning”j" t”bŒ"xml.sax.handler.feature_validation”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.feature_validation”j" t”bŒ,xml.sax.handler.property_declaration_handler”j )�”(jT(jU(Œchttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_declaration_handler”j" t”bŒ!xml.sax.handler.property_dom_node”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_dom_node”j" t”bŒ(xml.sax.handler.property_lexical_handler”j )�”(jT(jU(Œ_https://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_lexical_handler”j" t”bŒ#xml.sax.handler.property_xml_string”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.property_xml_string”j" t”bŒzipfile.Path.stem”j )�”(jT(jU(Œ@https://docs.python.org/3/library/zipfile.html#zipfile.Path.stem”j" t”bŒzipfile.Path.suffix”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/zipfile.html#zipfile.Path.suffix”j" t”bŒzipfile.Path.suffixes”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/zipfile.html#zipfile.Path.suffixes”j" t”bŒzipfile.ZIP_BZIP2”j )�”(jT(jU(Œ@https://docs.python.org/3/library/zipfile.html#zipfile.ZIP_BZIP2”j" t”bŒzipfile.ZIP_DEFLATED”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/zipfile.html#zipfile.ZIP_DEFLATED”j" t”bŒzipfile.ZIP_LZMA”j )�”(jT(jU(Œ?https://docs.python.org/3/library/zipfile.html#zipfile.ZIP_LZMA”j" t”bŒzipfile.ZIP_STORED”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/zipfile.html#zipfile.ZIP_STORED”j" t”bŒzipfile.ZIP_ZSTANDARD”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/zipfile.html#zipfile.ZIP_ZSTANDARD”j" t”bŒ zlib.DEFLATED”j )�”(jT(jU(Œ9https://docs.python.org/3/library/zlib.html#zlib.DEFLATED”j" t”bŒzlib.DEF_BUF_SIZE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/zlib.html#zlib.DEF_BUF_SIZE”j" t”bŒzlib.DEF_MEM_LEVEL”j )�”(jT(jU(Œ>https://docs.python.org/3/library/zlib.html#zlib.DEF_MEM_LEVEL”j" t”bŒzlib.MAX_WBITS”j )�”(jT(jU(Œ:https://docs.python.org/3/library/zlib.html#zlib.MAX_WBITS”j" t”bŒzlib.ZLIBNG_VERSION”j )�”(jT(jU(Œ?https://docs.python.org/3/library/zlib.html#zlib.ZLIBNG_VERSION”j" t”bŒzlib.ZLIB_RUNTIME_VERSION”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/zlib.html#zlib.ZLIB_RUNTIME_VERSION”j" t”bŒzlib.ZLIB_VERSION”j )�”(jT(jU(Œ=https://docs.python.org/3/library/zlib.html#zlib.ZLIB_VERSION”j" t”bŒzlib.Z_BEST_COMPRESSION”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/zlib.html#zlib.Z_BEST_COMPRESSION”j" t”bŒzlib.Z_BEST_SPEED”j )�”(jT(jU(Œ=https://docs.python.org/3/library/zlib.html#zlib.Z_BEST_SPEED”j" t”bŒ zlib.Z_BLOCK”j )�”(jT(jU(Œ8https://docs.python.org/3/library/zlib.html#zlib.Z_BLOCK”j" t”bŒzlib.Z_DEFAULT_COMPRESSION”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/zlib.html#zlib.Z_DEFAULT_COMPRESSION”j" t”bŒzlib.Z_DEFAULT_STRATEGY”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/zlib.html#zlib.Z_DEFAULT_STRATEGY”j" t”bŒzlib.Z_FILTERED”j )�”(jT(jU(Œ;https://docs.python.org/3/library/zlib.html#zlib.Z_FILTERED”j" t”bŒ zlib.Z_FINISH”j )�”(jT(jU(Œ9https://docs.python.org/3/library/zlib.html#zlib.Z_FINISH”j" t”bŒ zlib.Z_FIXED”j )�”(jT(jU(Œ8https://docs.python.org/3/library/zlib.html#zlib.Z_FIXED”j" t”bŒzlib.Z_FULL_FLUSH”j )�”(jT(jU(Œ=https://docs.python.org/3/library/zlib.html#zlib.Z_FULL_FLUSH”j" t”bŒzlib.Z_HUFFMAN_ONLY”j )�”(jT(jU(Œ?https://docs.python.org/3/library/zlib.html#zlib.Z_HUFFMAN_ONLY”j" t”bŒzlib.Z_NO_COMPRESSION”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/zlib.html#zlib.Z_NO_COMPRESSION”j" t”bŒzlib.Z_NO_FLUSH”j )�”(jT(jU(Œ;https://docs.python.org/3/library/zlib.html#zlib.Z_NO_FLUSH”j" t”bŒzlib.Z_PARTIAL_FLUSH”j )�”(jT(jU(Œ@https://docs.python.org/3/library/zlib.html#zlib.Z_PARTIAL_FLUSH”j" t”bŒ zlib.Z_RLE”j )�”(jT(jU(Œ6https://docs.python.org/3/library/zlib.html#zlib.Z_RLE”j" t”bŒzlib.Z_SYNC_FLUSH”j )�”(jT(jU(Œ=https://docs.python.org/3/library/zlib.html#zlib.Z_SYNC_FLUSH”j" t”bŒ zlib.Z_TREES”j )�”(jT(jU(Œ8https://docs.python.org/3/library/zlib.html#zlib.Z_TREES”j" t”bŒzoneinfo.TZPATH”j )�”(jT(jU(Œ?https://docs.python.org/3/library/zoneinfo.html#zoneinfo.TZPATH”j" t”buŒ py:module”}”(Œ __future__”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/__future__.html#module-__future__”j" t”bŒ__main__”j )�”(jT(jU(Œ?https://docs.python.org/3/library/__main__.html#module-__main__”j" t”bŒ_thread”j )�”(jT(jU(Œ=https://docs.python.org/3/library/_thread.html#module-_thread”j" t”bŒ_tkinter”j )�”(jT(jU(Œ>https://docs.python.org/3/library/tkinter.html#module-_tkinter”j" t”bŒabc”j )�”(jT(jU(Œ5https://docs.python.org/3/library/abc.html#module-abc”j" t”bŒaifc”j )�”(jT(jU(Œ7https://docs.python.org/3/library/aifc.html#module-aifc”j" t”bŒ annotationlib”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/annotationlib.html#module-annotationlib”j" t”bŒargparse”j )�”(jT(jU(Œ?https://docs.python.org/3/library/argparse.html#module-argparse”j" t”bŒarray”j )�”(jT(jU(Œ9https://docs.python.org/3/library/array.html#module-array”j" t”bŒast”j )�”(jT(jU(Œ5https://docs.python.org/3/library/ast.html#module-ast”j" t”bŒasynchat”j )�”(jT(jU(Œ?https://docs.python.org/3/library/asynchat.html#module-asynchat”j" t”bŒasyncio”j )�”(jT(jU(Œ=https://docs.python.org/3/library/asyncio.html#module-asyncio”j" t”bŒasyncore”j )�”(jT(jU(Œ?https://docs.python.org/3/library/asyncore.html#module-asyncore”j" t”bŒatexit”j )�”(jT(jU(Œ;https://docs.python.org/3/library/atexit.html#module-atexit”j" t”bŒaudioop”j )�”(jT(jU(Œ=https://docs.python.org/3/library/audioop.html#module-audioop”j" t”bŒbase64”j )�”(jT(jU(Œ;https://docs.python.org/3/library/base64.html#module-base64”j" t”bŒbdb”j )�”(jT(jU(Œ5https://docs.python.org/3/library/bdb.html#module-bdb”j" t”bŒbinascii”j )�”(jT(jU(Œ?https://docs.python.org/3/library/binascii.html#module-binascii”j" t”bŒbisect”j )�”(jT(jU(Œ;https://docs.python.org/3/library/bisect.html#module-bisect”j" t”bŒbuiltins”j )�”(jT(jU(Œ?https://docs.python.org/3/library/builtins.html#module-builtins”j" t”bŒbz2”j )�”(jT(jU(Œ5https://docs.python.org/3/library/bz2.html#module-bz2”j" t”bŒcProfile”j )�”(jT(jU(Œ>https://docs.python.org/3/library/profile.html#module-cProfile”j" t”bŒcalendar”j )�”(jT(jU(Œ?https://docs.python.org/3/library/calendar.html#module-calendar”j" t”bŒcgi”j )�”(jT(jU(Œ5https://docs.python.org/3/library/cgi.html#module-cgi”j" t”bŒcgitb”j )�”(jT(jU(Œ9https://docs.python.org/3/library/cgitb.html#module-cgitb”j" t”bŒchunk”j )�”(jT(jU(Œ9https://docs.python.org/3/library/chunk.html#module-chunk”j" t”bŒcmath”j )�”(jT(jU(Œ9https://docs.python.org/3/library/cmath.html#module-cmath”j" t”bŒcmd”j )�”(jT(jU(Œ5https://docs.python.org/3/library/cmd.html#module-cmd”j" t”bŒcode”j )�”(jT(jU(Œ7https://docs.python.org/3/library/code.html#module-code”j" t”bŒcodecs”j )�”(jT(jU(Œ;https://docs.python.org/3/library/codecs.html#module-codecs”j" t”bŒcodeop”j )�”(jT(jU(Œ;https://docs.python.org/3/library/codeop.html#module-codeop”j" t”bŒ collections”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/collections.html#module-collections”j" t”bŒcollections.abc”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/collections.abc.html#module-collections.abc”j" t”bŒcolorsys”j )�”(jT(jU(Œ?https://docs.python.org/3/library/colorsys.html#module-colorsys”j" t”bŒ compileall”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/compileall.html#module-compileall”j" t”bŒ compression”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/compression.html#module-compression”j" t”bŒcompression.zstd”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/compression.zstd.html#module-compression.zstd”j" t”bŒconcurrent.futures”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/concurrent.futures.html#module-concurrent.futures”j" t”bŒconcurrent.interpreters”j )�”(jT(jU(Œ]https://docs.python.org/3/library/concurrent.interpreters.html#module-concurrent.interpreters”j" t”bŒ configparser”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/configparser.html#module-configparser”j" t”bŒ contextlib”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/contextlib.html#module-contextlib”j" t”bŒ contextvars”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/contextvars.html#module-contextvars”j" t”bŒcopy”j )�”(jT(jU(Œ7https://docs.python.org/3/library/copy.html#module-copy”j" t”bŒcopyreg”j )�”(jT(jU(Œ=https://docs.python.org/3/library/copyreg.html#module-copyreg”j" t”bŒcrypt”j )�”(jT(jU(Œ9https://docs.python.org/3/library/crypt.html#module-crypt”j" t”bŒcsv”j )�”(jT(jU(Œ5https://docs.python.org/3/library/csv.html#module-csv”j" t”bŒctypes”j )�”(jT(jU(Œ;https://docs.python.org/3/library/ctypes.html#module-ctypes”j" t”bŒcurses”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#module-curses”j" t”bŒ curses.ascii”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/curses.ascii.html#module-curses.ascii”j" t”bŒ curses.panel”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/curses.panel.html#module-curses.panel”j" t”bŒcurses.textpad”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.html#module-curses.textpad”j" t”bŒ dataclasses”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/dataclasses.html#module-dataclasses”j" t”bŒdatetime”j )�”(jT(jU(Œ?https://docs.python.org/3/library/datetime.html#module-datetime”j" t”bŒdbm”j )�”(jT(jU(Œ5https://docs.python.org/3/library/dbm.html#module-dbm”j" t”bŒdbm.dumb”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dbm.html#module-dbm.dumb”j" t”bŒdbm.gnu”j )�”(jT(jU(Œ9https://docs.python.org/3/library/dbm.html#module-dbm.gnu”j" t”bŒdbm.ndbm”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dbm.html#module-dbm.ndbm”j" t”bŒ dbm.sqlite3”j )�”(jT(jU(Œ=https://docs.python.org/3/library/dbm.html#module-dbm.sqlite3”j" t”bŒdecimal”j )�”(jT(jU(Œ=https://docs.python.org/3/library/decimal.html#module-decimal”j" t”bŒdifflib”j )�”(jT(jU(Œ=https://docs.python.org/3/library/difflib.html#module-difflib”j" t”bŒdis”j )�”(jT(jU(Œ5https://docs.python.org/3/library/dis.html#module-dis”j" t”bŒ distutils”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/distutils.html#module-distutils”j" t”bŒdoctest”j )�”(jT(jU(Œ=https://docs.python.org/3/library/doctest.html#module-doctest”j" t”bŒemail”j )�”(jT(jU(Œ9https://docs.python.org/3/library/email.html#module-email”j" t”bŒ email.charset”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/email.charset.html#module-email.charset”j" t”bŒemail.contentmanager”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/email.contentmanager.html#module-email.contentmanager”j" t”bŒemail.encoders”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/email.encoders.html#module-email.encoders”j" t”bŒ email.errors”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/email.errors.html#module-email.errors”j" t”bŒemail.generator”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/email.generator.html#module-email.generator”j" t”bŒ email.header”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/email.header.html#module-email.header”j" t”bŒemail.headerregistry”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/email.headerregistry.html#module-email.headerregistry”j" t”bŒemail.iterators”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/email.iterators.html#module-email.iterators”j" t”bŒ email.message”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/email.message.html#module-email.message”j" t”bŒ email.mime”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/email.mime.html#module-email.mime”j" t”bŒemail.mime.application”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/email.mime.html#module-email.mime.application”j" t”bŒemail.mime.audio”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/email.mime.html#module-email.mime.audio”j" t”bŒemail.mime.base”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/email.mime.html#module-email.mime.base”j" t”bŒemail.mime.image”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/email.mime.html#module-email.mime.image”j" t”bŒemail.mime.message”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/email.mime.html#module-email.mime.message”j" t”bŒemail.mime.multipart”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/email.mime.html#module-email.mime.multipart”j" t”bŒemail.mime.nonmultipart”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/email.mime.html#module-email.mime.nonmultipart”j" t”bŒemail.mime.text”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/email.mime.html#module-email.mime.text”j" t”bŒ email.parser”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/email.parser.html#module-email.parser”j" t”bŒ email.policy”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/email.policy.html#module-email.policy”j" t”bŒ email.utils”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/email.utils.html#module-email.utils”j" t”bŒ encodings”j )�”(jT(jU(Œ>https://docs.python.org/3/library/codecs.html#module-encodings”j" t”bŒencodings.idna”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/codecs.html#module-encodings.idna”j" t”bŒencodings.mbcs”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/codecs.html#module-encodings.mbcs”j" t”bŒencodings.utf_8_sig”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/codecs.html#module-encodings.utf_8_sig”j" t”bŒ ensurepip”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ensurepip.html#module-ensurepip”j" t”bŒenum”j )�”(jT(jU(Œ7https://docs.python.org/3/library/enum.html#module-enum”j" t”bŒerrno”j )�”(jT(jU(Œ9https://docs.python.org/3/library/errno.html#module-errno”j" t”bŒ faulthandler”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/faulthandler.html#module-faulthandler”j" t”bŒfcntl”j )�”(jT(jU(Œ9https://docs.python.org/3/library/fcntl.html#module-fcntl”j" t”bŒfilecmp”j )�”(jT(jU(Œ=https://docs.python.org/3/library/filecmp.html#module-filecmp”j" t”bŒ fileinput”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/fileinput.html#module-fileinput”j" t”bŒfnmatch”j )�”(jT(jU(Œ=https://docs.python.org/3/library/fnmatch.html#module-fnmatch”j" t”bŒ fractions”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/fractions.html#module-fractions”j" t”bŒftplib”j )�”(jT(jU(Œ;https://docs.python.org/3/library/ftplib.html#module-ftplib”j" t”bŒ functools”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/functools.html#module-functools”j" t”bŒgc”j )�”(jT(jU(Œ3https://docs.python.org/3/library/gc.html#module-gc”j" t”bŒgetopt”j )�”(jT(jU(Œ;https://docs.python.org/3/library/getopt.html#module-getopt”j" t”bŒgetpass”j )�”(jT(jU(Œ=https://docs.python.org/3/library/getpass.html#module-getpass”j" t”bŒgettext”j )�”(jT(jU(Œ=https://docs.python.org/3/library/gettext.html#module-gettext”j" t”bŒglob”j )�”(jT(jU(Œ7https://docs.python.org/3/library/glob.html#module-glob”j" t”bŒgraphlib”j )�”(jT(jU(Œ?https://docs.python.org/3/library/graphlib.html#module-graphlib”j" t”bŒgrp”j )�”(jT(jU(Œ5https://docs.python.org/3/library/grp.html#module-grp”j" t”bŒgzip”j )�”(jT(jU(Œ7https://docs.python.org/3/library/gzip.html#module-gzip”j" t”bŒhashlib”j )�”(jT(jU(Œ=https://docs.python.org/3/library/hashlib.html#module-hashlib”j" t”bŒheapq”j )�”(jT(jU(Œ9https://docs.python.org/3/library/heapq.html#module-heapq”j" t”bŒhmac”j )�”(jT(jU(Œ7https://docs.python.org/3/library/hmac.html#module-hmac”j" t”bŒhtml”j )�”(jT(jU(Œ7https://docs.python.org/3/library/html.html#module-html”j" t”bŒ html.entities”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/html.entities.html#module-html.entities”j" t”bŒ html.parser”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/html.parser.html#module-html.parser”j" t”bŒhttp”j )�”(jT(jU(Œ7https://docs.python.org/3/library/http.html#module-http”j" t”bŒ http.client”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/http.client.html#module-http.client”j" t”bŒhttp.cookiejar”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/http.cookiejar.html#module-http.cookiejar”j" t”bŒ http.cookies”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/http.cookies.html#module-http.cookies”j" t”bŒ http.server”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/http.server.html#module-http.server”j" t”bŒidlelib”j )�”(jT(jU(Œ:https://docs.python.org/3/library/idle.html#module-idlelib”j" t”bŒimaplib”j )�”(jT(jU(Œ=https://docs.python.org/3/library/imaplib.html#module-imaplib”j" t”bŒimghdr”j )�”(jT(jU(Œ;https://docs.python.org/3/library/imghdr.html#module-imghdr”j" t”bŒimp”j )�”(jT(jU(Œ5https://docs.python.org/3/library/imp.html#module-imp”j" t”bŒ importlib”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/importlib.html#module-importlib”j" t”bŒ importlib.abc”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/importlib.html#module-importlib.abc”j" t”bŒimportlib.machinery”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/importlib.html#module-importlib.machinery”j" t”bŒimportlib.metadata”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/importlib.metadata.html#module-importlib.metadata”j" t”bŒimportlib.resources”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/importlib.resources.html#module-importlib.resources”j" t”bŒimportlib.resources.abc”j )�”(jT(jU(Œ]https://docs.python.org/3/library/importlib.resources.abc.html#module-importlib.resources.abc”j" t”bŒimportlib.util”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/importlib.html#module-importlib.util”j" t”bŒinspect”j )�”(jT(jU(Œ=https://docs.python.org/3/library/inspect.html#module-inspect”j" t”bŒio”j )�”(jT(jU(Œ3https://docs.python.org/3/library/io.html#module-io”j" t”bŒ ipaddress”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ipaddress.html#module-ipaddress”j" t”bŒ itertools”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/itertools.html#module-itertools”j" t”bŒjson”j )�”(jT(jU(Œ7https://docs.python.org/3/library/json.html#module-json”j" t”bŒ json.tool”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ast.html#ast.NodeTransformer”j" t”bŒast.NodeVisitor”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ast.html#ast.NodeVisitor”j" t”bŒ ast.Nonlocal”j )�”(jT(jU(Œ7https://docs.python.org/3/library/ast.html#ast.Nonlocal”j" t”bŒast.Not”j )�”(jT(jU(Œ2https://docs.python.org/3/library/ast.html#ast.Not”j" t”bŒ ast.NotEq”j )�”(jT(jU(Œ4https://docs.python.org/3/library/ast.html#ast.NotEq”j" t”bŒ ast.NotIn”j )�”(jT(jU(Œ4https://docs.python.org/3/library/ast.html#ast.NotIn”j" t”bŒast.Or”j )�”(jT(jU(Œ1https://docs.python.org/3/library/ast.html#ast.Or”j" t”bŒ ast.ParamSpec”j )�”(jT(jU(Œ8https://docs.python.org/3/library/ast.html#ast.ParamSpec”j" t”bŒast.Pass”j )�”(jT(jU(Œ3https://docs.python.org/3/library/ast.html#ast.Pass”j" t”bŒast.Pow”j )�”(jT(jU(Œ2https://docs.python.org/3/library/ast.html#ast.Pow”j" t”bŒ ast.RShift”j )�”(jT(jU(Œ5https://docs.python.org/3/library/ast.html#ast.RShift”j" t”bŒ ast.Raise”j )�”(jT(jU(Œ4https://docs.python.org/3/library/ast.html#ast.Raise”j" t”bŒ ast.Return”j )�”(jT(jU(Œ5https://docs.python.org/3/library/ast.html#ast.Return”j" t”bŒast.Set”j )�”(jT(jU(Œ2https://docs.python.org/3/library/ast.html#ast.Set”j" t”bŒ ast.SetComp”j )�”(jT(jU(Œ6https://docs.python.org/3/library/ast.html#ast.SetComp”j" t”bŒ ast.Slice”j )�”(jT(jU(Œ4https://docs.python.org/3/library/ast.html#ast.Slice”j" t”bŒ ast.Starred”j )�”(jT(jU(Œ6https://docs.python.org/3/library/ast.html#ast.Starred”j" t”bŒ ast.Store”j )�”(jT(jU(Œ4https://docs.python.org/3/library/ast.html#ast.Store”j" t”bŒast.Sub”j )�”(jT(jU(Œ2https://docs.python.org/3/library/ast.html#ast.Sub”j" t”bŒ ast.Subscript”j )�”(jT(jU(Œ8https://docs.python.org/3/library/ast.html#ast.Subscript”j" t”bŒast.TemplateStr”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ast.html#ast.TemplateStr”j" t”bŒast.Try”j )�”(jT(jU(Œ2https://docs.python.org/3/library/ast.html#ast.Try”j" t”bŒ ast.TryStar”j )�”(jT(jU(Œ6https://docs.python.org/3/library/ast.html#ast.TryStar”j" t”bŒ ast.Tuple”j )�”(jT(jU(Œ4https://docs.python.org/3/library/ast.html#ast.Tuple”j" t”bŒ ast.TypeAlias”j )�”(jT(jU(Œ8https://docs.python.org/3/library/ast.html#ast.TypeAlias”j" t”bŒast.TypeIgnore”j )�”(jT(jU(Œ9https://docs.python.org/3/library/ast.html#ast.TypeIgnore”j" t”bŒ ast.TypeVar”j )�”(jT(jU(Œ6https://docs.python.org/3/library/ast.html#ast.TypeVar”j" t”bŒast.TypeVarTuple”j )�”(jT(jU(Œ;https://docs.python.org/3/library/ast.html#ast.TypeVarTuple”j" t”bŒast.UAdd”j )�”(jT(jU(Œ3https://docs.python.org/3/library/ast.html#ast.UAdd”j" t”bŒast.USub”j )�”(jT(jU(Œ3https://docs.python.org/3/library/ast.html#ast.USub”j" t”bŒ ast.UnaryOp”j )�”(jT(jU(Œ6https://docs.python.org/3/library/ast.html#ast.UnaryOp”j" t”bŒ ast.While”j )�”(jT(jU(Œ4https://docs.python.org/3/library/ast.html#ast.While”j" t”bŒast.With”j )�”(jT(jU(Œ3https://docs.python.org/3/library/ast.html#ast.With”j" t”bŒ ast.Yield”j )�”(jT(jU(Œ4https://docs.python.org/3/library/ast.html#ast.Yield”j" t”bŒ ast.YieldFrom”j )�”(jT(jU(Œ8https://docs.python.org/3/library/ast.html#ast.YieldFrom”j" t”bŒ ast.alias”j )�”(jT(jU(Œ4https://docs.python.org/3/library/ast.html#ast.alias”j" t”bŒast.arg”j )�”(jT(jU(Œ2https://docs.python.org/3/library/ast.html#ast.arg”j" t”bŒ ast.arguments”j )�”(jT(jU(Œ8https://docs.python.org/3/library/ast.html#ast.arguments”j" t”bŒast.comprehension”j )�”(jT(jU(Œhttps://docs.python.org/3/library/bz2.html#bz2.BZ2Decompressor”j" t”bŒ bz2.BZ2File”j )�”(jT(jU(Œ6https://docs.python.org/3/library/bz2.html#bz2.BZ2File”j" t”bŒcalendar.Calendar”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/calendar.html#calendar.Calendar”j" t”bŒ calendar.Day”j )�”(jT(jU(Œhttps://docs.python.org/3/library/calendar.html#calendar.Month”j" t”bŒcalendar.TextCalendar”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/calendar.html#calendar.TextCalendar”j" t”bŒcmd.Cmd”j )�”(jT(jU(Œ2https://docs.python.org/3/library/cmd.html#cmd.Cmd”j" t”bŒcode.InteractiveConsole”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/code.html#code.InteractiveConsole”j" t”bŒcode.InteractiveInterpreter”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/code.html#code.InteractiveInterpreter”j" t”bŒ codecs.Codec”j )�”(jT(jU(Œ:https://docs.python.org/3/library/codecs.html#codecs.Codec”j" t”bŒcodecs.CodecInfo”j )�”(jT(jU(Œ>https://docs.python.org/3/library/codecs.html#codecs.CodecInfo”j" t”bŒcodecs.IncrementalDecoder”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/codecs.html#codecs.IncrementalDecoder”j" t”bŒcodecs.IncrementalEncoder”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/codecs.html#codecs.IncrementalEncoder”j" t”bŒcodecs.StreamReader”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/codecs.html#codecs.StreamReader”j" t”bŒcodecs.StreamReaderWriter”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/codecs.html#codecs.StreamReaderWriter”j" t”bŒcodecs.StreamRecoder”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/codecs.html#codecs.StreamRecoder”j" t”bŒcodecs.StreamWriter”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/codecs.html#codecs.StreamWriter”j" t”bŒcodeop.CommandCompiler”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/codeop.html#codeop.CommandCompiler”j" t”bŒcodeop.Compile”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ctypes.html#ctypes.Structure”j" t”bŒ ctypes.Union”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ctypes.html#ctypes.Union”j" t”bŒ ctypes.WinDLL”j )�”(jT(jU(Œ;https://docs.python.org/3/library/ctypes.html#ctypes.WinDLL”j" t”bŒ ctypes._CData”j )�”(jT(jU(Œ;https://docs.python.org/3/library/ctypes.html#ctypes._CData”j" t”bŒctypes._CFuncPtr”j )�”(jT(jU(Œ>https://docs.python.org/3/library/ctypes.html#ctypes._CFuncPtr”j" t”bŒctypes._Pointer”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ctypes.html#ctypes._Pointer”j" t”bŒctypes._SimpleCData”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ctypes.html#ctypes._SimpleCData”j" t”bŒ ctypes.c_bool”j )�”(jT(jU(Œ;https://docs.python.org/3/library/ctypes.html#ctypes.c_bool”j" t”bŒ ctypes.c_byte”j )�”(jT(jU(Œ;https://docs.python.org/3/library/ctypes.html#ctypes.c_byte”j" t”bŒ ctypes.c_char”j )�”(jT(jU(Œ;https://docs.python.org/3/library/ctypes.html#ctypes.c_char”j" t”bŒctypes.c_char_p”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ctypes.html#ctypes.c_char_p”j" t”bŒctypes.c_double”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ctypes.html#ctypes.c_double”j" t”bŒctypes.c_double_complex”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ctypes.html#ctypes.c_double_complex”j" t”bŒctypes.c_float”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ctypes.html#ctypes.c_ssize_t”j" t”bŒctypes.c_time_t”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ctypes.html#ctypes.c_time_t”j" t”bŒctypes.c_ubyte”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ctypes.html#ctypes.c_wchar_p”j" t”bŒctypes.py_object”j )�”(jT(jU(Œ>https://docs.python.org/3/library/ctypes.html#ctypes.py_object”j" t”bŒcurses.textpad.Textbox”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.html#curses.textpad.Textbox”j" t”bŒ curses.window”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.window”j" t”bŒdataclasses.Field”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/dataclasses.html#dataclasses.Field”j" t”bŒdataclasses.InitVar”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/dataclasses.html#dataclasses.InitVar”j" t”bŒ datetime.date”j )�”(jT(jU(Œ=https://docs.python.org/3/library/datetime.html#datetime.date”j" t”bŒdatetime.datetime”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/datetime.html#datetime.datetime”j" t”bŒ datetime.time”j )�”(jT(jU(Œ=https://docs.python.org/3/library/datetime.html#datetime.time”j" t”bŒdatetime.timedelta”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/datetime.html#datetime.timedelta”j" t”bŒdatetime.timezone”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/datetime.html#datetime.timezone”j" t”bŒdatetime.tzinfo”j )�”(jT(jU(Œ?https://docs.python.org/3/library/datetime.html#datetime.tzinfo”j" t”bŒdecimal.Clamped”j )�”(jT(jU(Œ>https://docs.python.org/3/library/decimal.html#decimal.Clamped”j" t”bŒdecimal.Context”j )�”(jT(jU(Œ>https://docs.python.org/3/library/decimal.html#decimal.Context”j" t”bŒdecimal.Decimal”j )�”(jT(jU(Œ>https://docs.python.org/3/library/decimal.html#decimal.Decimal”j" t”bŒdecimal.DecimalException”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/decimal.html#decimal.DecimalException”j" t”bŒdecimal.DivisionByZero”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/decimal.html#decimal.DivisionByZero”j" t”bŒdecimal.FloatOperation”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/decimal.html#decimal.FloatOperation”j" t”bŒdecimal.Inexact”j )�”(jT(jU(Œ>https://docs.python.org/3/library/decimal.html#decimal.Inexact”j" t”bŒdecimal.InvalidOperation”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/decimal.html#decimal.InvalidOperation”j" t”bŒdecimal.Overflow”j )�”(jT(jU(Œ?https://docs.python.org/3/library/decimal.html#decimal.Overflow”j" t”bŒdecimal.Rounded”j )�”(jT(jU(Œ>https://docs.python.org/3/library/decimal.html#decimal.Rounded”j" t”bŒdecimal.Subnormal”j )�”(jT(jU(Œ@https://docs.python.org/3/library/decimal.html#decimal.Subnormal”j" t”bŒdecimal.Underflow”j )�”(jT(jU(Œ@https://docs.python.org/3/library/decimal.html#decimal.Underflow”j" t”bŒdict”j )�”(jT(jU(Œ4https://docs.python.org/3/library/stdtypes.html#dict”j" t”bŒdifflib.Differ”j )�”(jT(jU(Œ=https://docs.python.org/3/library/difflib.html#difflib.Differ”j" t”bŒdifflib.HtmlDiff”j )�”(jT(jU(Œ?https://docs.python.org/3/library/difflib.html#difflib.HtmlDiff”j" t”bŒdifflib.SequenceMatcher”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/difflib.html#difflib.SequenceMatcher”j" t”bŒ dis.Bytecode”j )�”(jT(jU(Œ7https://docs.python.org/3/library/dis.html#dis.Bytecode”j" t”bŒdis.Instruction”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#dis.Instruction”j" t”bŒ dis.Positions”j )�”(jT(jU(Œ8https://docs.python.org/3/library/dis.html#dis.Positions”j" t”bŒdoctest.DebugRunner”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/doctest.html#doctest.DebugRunner”j" t”bŒdoctest.DocTest”j )�”(jT(jU(Œ>https://docs.python.org/3/library/doctest.html#doctest.DocTest”j" t”bŒdoctest.DocTestFinder”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/doctest.html#doctest.DocTestFinder”j" t”bŒdoctest.DocTestParser”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/doctest.html#doctest.DocTestParser”j" t”bŒdoctest.DocTestRunner”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/doctest.html#doctest.DocTestRunner”j" t”bŒdoctest.Example”j )�”(jT(jU(Œ>https://docs.python.org/3/library/doctest.html#doctest.Example”j" t”bŒdoctest.OutputChecker”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/doctest.html#doctest.OutputChecker”j" t”bŒdoctest.TestResults”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/doctest.html#doctest.TestResults”j" t”bŒemail.charset.Charset”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/email.charset.html#email.charset.Charset”j" t”bŒ#email.contentmanager.ContentManager”j )�”(jT(jU(Œ_https://docs.python.org/3/library/email.contentmanager.html#email.contentmanager.ContentManager”j" t”bŒemail.generator.BytesGenerator”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/email.generator.html#email.generator.BytesGenerator”j" t”bŒ email.generator.DecodedGenerator”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/email.generator.html#email.generator.DecodedGenerator”j" t”bŒemail.generator.Generator”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/email.generator.html#email.generator.Generator”j" t”bŒemail.header.Header”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/email.header.html#email.header.Header”j" t”bŒemail.headerregistry.Address”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Address”j" t”bŒ"email.headerregistry.AddressHeader”j )�”(jT(jU(Œ^https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.AddressHeader”j" t”bŒemail.headerregistry.BaseHeader”j )�”(jT(jU(Œ[https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.BaseHeader”j" t”bŒ-email.headerregistry.ContentDispositionHeader”j )�”(jT(jU(Œihttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentDispositionHeader”j" t”bŒ2email.headerregistry.ContentTransferEncodingHeader”j )�”(jT(jU(Œnhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTransferEncodingHeader”j" t”bŒ&email.headerregistry.ContentTypeHeader”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ContentTypeHeader”j" t”bŒemail.headerregistry.DateHeader”j )�”(jT(jU(Œ[https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.DateHeader”j" t”bŒemail.headerregistry.Group”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.Group”j" t”bŒ#email.headerregistry.HeaderRegistry”j )�”(jT(jU(Œ_https://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.HeaderRegistry”j" t”bŒ&email.headerregistry.MIMEVersionHeader”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.MIMEVersionHeader”j" t”bŒ,email.headerregistry.ParameterizedMIMEHeader”j )�”(jT(jU(Œhhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.ParameterizedMIMEHeader”j" t”bŒ(email.headerregistry.SingleAddressHeader”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.SingleAddressHeader”j" t”bŒ'email.headerregistry.UnstructuredHeader”j )�”(jT(jU(Œchttps://docs.python.org/3/library/email.headerregistry.html#email.headerregistry.UnstructuredHeader”j" t”bŒemail.message.EmailMessage”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/email.message.html#email.message.EmailMessage”j" t”bŒemail.message.MIMEPart”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/email.message.html#email.message.MIMEPart”j" t”bŒemail.message.Message”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/email.compat32-message.html#email.message.Message”j" t”bŒ&email.mime.application.MIMEApplication”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/email.mime.html#email.mime.application.MIMEApplication”j" t”bŒemail.mime.audio.MIMEAudio”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/email.mime.html#email.mime.audio.MIMEAudio”j" t”bŒemail.mime.base.MIMEBase”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/email.mime.html#email.mime.base.MIMEBase”j" t”bŒemail.mime.image.MIMEImage”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/email.mime.html#email.mime.image.MIMEImage”j" t”bŒemail.mime.message.MIMEMessage”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/email.mime.html#email.mime.message.MIMEMessage”j" t”bŒ"email.mime.multipart.MIMEMultipart”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/email.mime.html#email.mime.multipart.MIMEMultipart”j" t”bŒ(email.mime.nonmultipart.MIMENonMultipart”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/email.mime.html#email.mime.nonmultipart.MIMENonMultipart”j" t”bŒemail.mime.text.MIMEText”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/email.mime.html#email.mime.text.MIMEText”j" t”bŒemail.parser.BytesFeedParser”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/email.parser.html#email.parser.BytesFeedParser”j" t”bŒemail.parser.BytesHeaderParser”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/email.parser.html#email.parser.BytesHeaderParser”j" t”bŒemail.parser.BytesParser”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/email.parser.html#email.parser.BytesParser”j" t”bŒemail.parser.FeedParser”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/email.parser.html#email.parser.FeedParser”j" t”bŒemail.parser.HeaderParser”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/email.parser.html#email.parser.HeaderParser”j" t”bŒemail.parser.Parser”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/email.parser.html#email.parser.Parser”j" t”bŒemail.policy.Compat32”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/email.policy.html#email.policy.Compat32”j" t”bŒemail.policy.EmailPolicy”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/email.policy.html#email.policy.EmailPolicy”j" t”bŒemail.policy.Policy”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/email.policy.html#email.policy.Policy”j" t”bŒ enum.Enum”j )�”(jT(jU(Œ5https://docs.python.org/3/library/enum.html#enum.Enum”j" t”bŒenum.EnumCheck”j )�”(jT(jU(Œ:https://docs.python.org/3/library/enum.html#enum.EnumCheck”j" t”bŒ enum.EnumDict”j )�”(jT(jU(Œ9https://docs.python.org/3/library/enum.html#enum.EnumDict”j" t”bŒ enum.EnumType”j )�”(jT(jU(Œ9https://docs.python.org/3/library/enum.html#enum.EnumType”j" t”bŒ enum.Flag”j )�”(jT(jU(Œ5https://docs.python.org/3/library/enum.html#enum.Flag”j" t”bŒenum.FlagBoundary”j )�”(jT(jU(Œ=https://docs.python.org/3/library/enum.html#enum.FlagBoundary”j" t”bŒ enum.IntEnum”j )�”(jT(jU(Œ8https://docs.python.org/3/library/enum.html#enum.IntEnum”j" t”bŒ enum.IntFlag”j )�”(jT(jU(Œ8https://docs.python.org/3/library/enum.html#enum.IntFlag”j" t”bŒ enum.ReprEnum”j )�”(jT(jU(Œ9https://docs.python.org/3/library/enum.html#enum.ReprEnum”j" t”bŒ enum.StrEnum”j )�”(jT(jU(Œ8https://docs.python.org/3/library/enum.html#enum.StrEnum”j" t”bŒ enum.auto”j )�”(jT(jU(Œ5https://docs.python.org/3/library/enum.html#enum.auto”j" t”bŒfilecmp.dircmp”j )�”(jT(jU(Œ=https://docs.python.org/3/library/filecmp.html#filecmp.dircmp”j" t”bŒfileinput.FileInput”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/fileinput.html#fileinput.FileInput”j" t”bŒfloat”j )�”(jT(jU(Œ6https://docs.python.org/3/library/functions.html#float”j" t”bŒfractions.Fraction”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/fractions.html#fractions.Fraction”j" t”bŒ frozenset”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stdtypes.html#frozenset”j" t”bŒ ftplib.FTP”j )�”(jT(jU(Œ8https://docs.python.org/3/library/ftplib.html#ftplib.FTP”j" t”bŒftplib.FTP_TLS”j )�”(jT(jU(Œhttps://docs.python.org/3/library/logging.html#logging.Handler”j" t”bŒlogging.LogRecord”j )�”(jT(jU(Œ@https://docs.python.org/3/library/logging.html#logging.LogRecord”j" t”bŒlogging.Logger”j )�”(jT(jU(Œ=https://docs.python.org/3/library/logging.html#logging.Logger”j" t”bŒlogging.LoggerAdapter”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/logging.html#logging.LoggerAdapter”j" t”bŒlogging.NullHandler”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/logging.handlers.html#logging.NullHandler”j" t”bŒlogging.StreamHandler”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/logging.handlers.html#logging.StreamHandler”j" t”bŒ$logging.handlers.BaseRotatingHandler”j )�”(jT(jU(Œ\https://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler”j" t”bŒ!logging.handlers.BufferingHandler”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.BufferingHandler”j" t”bŒ logging.handlers.DatagramHandler”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.DatagramHandler”j" t”bŒlogging.handlers.HTTPHandler”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.HTTPHandler”j" t”bŒlogging.handlers.MemoryHandler”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.MemoryHandler”j" t”bŒ"logging.handlers.NTEventLogHandler”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.NTEventLogHandler”•j" t”bŒlogging.handlers.QueueHandler”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueHandler”j" t”bŒlogging.handlers.QueueListener”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.QueueListener”j" t”bŒ$logging.handlers.RotatingFileHandler”j )�”(jT(jU(Œ\https://docs.python.org/3/library/logging.handlers.html#logging.handlers.RotatingFileHandler”j" t”bŒlogging.handlers.SMTPHandler”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.SMTPHandler”j" t”bŒlogging.handlers.SocketHandler”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.SocketHandler”j" t”bŒlogging.handlers.SysLogHandler”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.SysLogHandler”j" t”bŒ)logging.handlers.TimedRotatingFileHandler”j )�”(jT(jU(Œahttps://docs.python.org/3/library/logging.handlers.html#logging.handlers.TimedRotatingFileHandler”j" t”bŒ#logging.handlers.WatchedFileHandler”j )�”(jT(jU(Œ[https://docs.python.org/3/library/logging.handlers.html#logging.handlers.WatchedFileHandler”j" t”bŒlzma.LZMACompressor”j )�”(jT(jU(Œ?https://docs.python.org/3/library/lzma.html#lzma.LZMACompressor”j" t”bŒlzma.LZMADecompressor”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/lzma.html#lzma.LZMADecompressor”j" t”bŒ lzma.LZMAFile”j )�”(jT(jU(Œ9https://docs.python.org/3/library/lzma.html#lzma.LZMAFile”j" t”bŒ mailbox.Babyl”j )�”(jT(jU(Œhttps://docs.python.org/3/library/mailbox.html#mailbox.Mailbox”j" t”bŒmailbox.Maildir”j )�”(jT(jU(Œ>https://docs.python.org/3/library/mailbox.html#mailbox.Maildir”j" t”bŒmailbox.MaildirMessage”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mailbox.html#mailbox.MaildirMessage”j" t”bŒmailbox.Message”j )�”(jT(jU(Œ>https://docs.python.org/3/library/mailbox.html#mailbox.Message”j" t”bŒ mailbox.mbox”j )�”(jT(jU(Œ;https://docs.python.org/3/library/mailbox.html#mailbox.mbox”j" t”bŒmailbox.mboxMessage”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/mailbox.html#mailbox.mboxMessage”j" t”bŒ memoryview”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#memoryview”j" t”bŒmimetypes.MimeTypes”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/mimetypes.html#mimetypes.MimeTypes”j" t”bŒ mmap.mmap”j )�”(jT(jU(Œ5https://docs.python.org/3/library/mmap.html#mmap.mmap”j" t”bŒmodulefinder.ModuleFinder”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/modulefinder.html#modulefinder.ModuleFinder”j" t”bŒmultiprocessing.Barrier”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Barrier”j" t”bŒ multiprocessing.BoundedSemaphore”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.BoundedSemaphore”j" t”bŒmultiprocessing.Condition”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Condition”j" t”bŒmultiprocessing.Event”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Event”j" t”bŒmultiprocessing.JoinableQueue”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.JoinableQueue”j" t”bŒmultiprocessing.Lock”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Lock”j" t”bŒmultiprocessing.Process”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process”j" t”bŒmultiprocessing.Queue”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Queue”j" t”bŒmultiprocessing.RLock”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.RLock”j" t”bŒmultiprocessing.Semaphore”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.Semaphore”j" t”bŒmultiprocessing.SimpleQueue”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.SimpleQueue”j" t”bŒ%multiprocessing.connection.Connection”j )�”(jT(jU(Œ\https://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Connection”j" t”bŒ#multiprocessing.connection.Listener”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Listener”j" t”bŒ$multiprocessing.managers.BaseManager”j )�”(jT(jU(Œ[https://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseManager”j" t”bŒ"multiprocessing.managers.BaseProxy”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.BaseProxy”j" t”bŒ"multiprocessing.managers.Namespace”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.Namespace”j" t”bŒ,multiprocessing.managers.SharedMemoryManager”j )�”(jT(jU(Œqhttps://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.managers.SharedMemoryManager”j" t”bŒ$multiprocessing.managers.SyncManager”j )�”(jT(jU(Œ[https://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager”j" t”bŒ multiprocessing.pool.AsyncResult”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult”j" t”bŒmultiprocessing.pool.Pool”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool”j" t”bŒmultiprocessing.pool.ThreadPool”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.ThreadPool”j" t”bŒ+multiprocessing.shared_memory.ShareableList”j )�”(jT(jU(Œphttps://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.ShareableList”j" t”bŒ*multiprocessing.shared_memory.SharedMemory”j )�”(jT(jU(Œohttps://docs.python.org/3/library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.SharedMemory”j" t”bŒ netrc.netrc”j )�”(jT(jU(Œ8https://docs.python.org/3/library/netrc.html#netrc.netrc”j" t”bŒnumbers.Complex”j )�”(jT(jU(Œ>https://docs.python.org/3/library/numbers.html#numbers.Complex”j" t”bŒnumbers.Integral”j )�”(jT(jU(Œ?https://docs.python.org/3/library/numbers.html#numbers.Integral”j" t”bŒnumbers.Number”j )�”(jT(jU(Œ=https://docs.python.org/3/library/numbers.html#numbers.Number”j" t”bŒnumbers.Rational”j )�”(jT(jU(Œ?https://docs.python.org/3/library/numbers.html#numbers.Rational”j" t”bŒ numbers.Real”j )�”(jT(jU(Œ;https://docs.python.org/3/library/numbers.html#numbers.Real”j" t”bŒobject”j )�”(jT(jU(Œ7https://docs.python.org/3/library/functions.html#object”j" t”bŒoptparse.Option”j )�”(jT(jU(Œ?https://docs.python.org/3/library/optparse.html#optparse.Option”j" t”bŒoptparse.OptionGroup”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/optparse.html#optparse.OptionGroup”j" t”bŒoptparse.OptionParser”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/optparse.html#optparse.OptionParser”j" t”bŒoptparse.Values”j )�”(jT(jU(Œ?https://docs.python.org/3/library/optparse.html#optparse.Values”j" t”bŒ os.DirEntry”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.DirEntry”j" t”bŒ os.PathLike”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.PathLike”j" t”bŒos.sched_param”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.sched_param”j" t”bŒos.stat_result”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.stat_result”j" t”bŒos.terminal_size”j )�”(jT(jU(Œ:https://docs.python.org/3/library/os.html#os.terminal_size”j" t”bŒ pathlib.Path”j )�”(jT(jU(Œ;https://docs.python.org/3/library/pathlib.html#pathlib.Path”j" t”bŒpathlib.PosixPath”j )�”(jT(jU(Œ@https://docs.python.org/3/library/pathlib.html#pathlib.PosixPath”j" t”bŒpathlib.PurePath”j )�”(jT(jU(Œ?https://docs.python.org/3/library/pathlib.html#pathlib.PurePath”j" t”bŒpathlib.PurePosixPath”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/pathlib.html#pathlib.PurePosixPath”j" t”bŒpathlib.PureWindowsPath”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/pathlib.html#pathlib.PureWindowsPath”j" t”bŒpathlib.WindowsPath”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/pathlib.html#pathlib.WindowsPath”j" t”bŒpathlib.types.PathInfo”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/pathlib.html#pathlib.types.PathInfo”j" t”bŒpdb.Pdb”j )�”(jT(jU(Œ2https://docs.python.org/3/library/pdb.html#pdb.Pdb”j" t”bŒpickle.PickleBuffer”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/pickle.html#pickle.PickleBuffer”j" t”bŒpickle.Pickler”j )�”(jT(jU(Œhttps://docs.python.org/3/library/pickle.html#pickle.Unpickler”j" t”bŒpkgutil.ModuleInfo”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/pkgutil.html#pkgutil.ModuleInfo”j" t”bŒ plistlib.UID”j )�”(jT(jU(Œhttps://docs.python.org/3/library/profile.html#profile.Profile”j" t”bŒproperty”j )�”(jT(jU(Œ9https://docs.python.org/3/library/functions.html#property”j" t”bŒ pstats.Stats”j )�”(jT(jU(Œ;https://docs.python.org/3/library/profile.html#pstats.Stats”j" t”bŒpy_compile.PycInvalidationMode”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode”j" t”bŒ pyclbr.Class”j )�”(jT(jU(Œ:https://docs.python.org/3/library/pyclbr.html#pyclbr.Class”j" t”bŒpyclbr.Function”j )�”(jT(jU(Œ=https://docs.python.org/3/library/pyclbr.html#pyclbr.Function”j" t”bŒqueue.LifoQueue”j )�”(jT(jU(Œhttps://docs.python.org/3/library/queue.html#queue.SimpleQueue”j" t”bŒ random.Random”j )�”(jT(jU(Œ;https://docs.python.org/3/library/random.html#random.Random”j" t”bŒrandom.SystemRandom”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/random.html#random.SystemRandom”j" t”bŒrange”j )�”(jT(jU(Œ5https://docs.python.org/3/library/stdtypes.html#range”j" t”bŒre.Match”j )�”(jT(jU(Œ2https://docs.python.org/3/library/re.html#re.Match”j" t”bŒ re.Pattern”j )�”(jT(jU(Œ4https://docs.python.org/3/library/re.html#re.Pattern”j" t”bŒ re.RegexFlag”j )�”(jT(jU(Œ6https://docs.python.org/3/library/re.html#re.RegexFlag”j" t”bŒ reprlib.Repr”j )�”(jT(jU(Œ;https://docs.python.org/3/library/reprlib.html#reprlib.Repr”j" t”bŒrlcompleter.Completer”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/rlcompleter.html#rlcompleter.Completer”j" t”bŒsched.scheduler”j )�”(jT(jU(Œhttps://docs.python.org/3/library/string.html#string.Formatter”j" t”bŒstring.Template”j )�”(jT(jU(Œ=https://docs.python.org/3/library/string.html#string.Template”j" t”bŒ string.templatelib.Interpolation”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/string.templatelib.html#string.templatelib.Interpolation”j" t”bŒstring.templatelib.Template”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/string.templatelib.html#string.templatelib.Template”j" t”bŒ struct.Struct”j )�”(jT(jU(Œ;https://docs.python.org/3/library/struct.html#struct.Struct”j" t”bŒsubprocess.CompletedProcess”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/subprocess.html#subprocess.CompletedProcess”j" t”bŒsubprocess.Popen”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/subprocess.html#subprocess.Popen”j" t”bŒsubprocess.STARTUPINFO”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/subprocess.html#subprocess.STARTUPINFO”j" t”bŒsuper”j )�”(jT(jU(Œ6https://docs.python.org/3/library/functions.html#super”j" t”bŒsymtable.Class”j )�”(jT(jU(Œ>https://docs.python.org/3/library/symtable.html#symtable.Class”j" t”bŒsymtable.Function”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/symtable.html#symtable.Function”j" t”bŒsymtable.Symbol”j )�”(jT(jU(Œ?https://docs.python.org/3/library/symtable.html#symtable.Symbol”j" t”bŒsymtable.SymbolTable”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/symtable.html#symtable.SymbolTable”j" t”bŒsymtable.SymbolTableType”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/symtable.html#symtable.SymbolTableType”j" t”bŒtarfile.TarFile”j )�”(jT(jU(Œ>https://docs.python.org/3/library/tarfile.html#tarfile.TarFile”j" t”bŒtarfile.TarInfo”j )�”(jT(jU(Œ>https://docs.python.org/3/library/tarfile.html#tarfile.TarInfo”j" t”bŒtempfile.SpooledTemporaryFile”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/tempfile.html#tempfile.SpooledTemporaryFile”j" t”bŒtempfile.TemporaryDirectory”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/tempfile.html#tempfile.TemporaryDirectory”j" t”bŒtest.support.Matcher”j )�”(jT(jU(Œ@https://docs.python.org/3/library/test.html#test.support.Matcher”j" t”bŒtest.support.SaveSignals”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/test.html#test.support.SaveSignals”j" t”bŒ test.support.SuppressCrashReport”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/test.html#test.support.SuppressCrashReport”j" t”bŒ-test.support.bytecode_helper.BytecodeTestCase”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/test.html#test.support.bytecode_helper.BytecodeTestCase”j" t”bŒ&test.support.import_helper.CleanImport”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/test.html#test.support.import_helper.CleanImport”j" t”bŒ(test.support.import_helper.DirsOnSysPath”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/test.html#test.support.import_helper.DirsOnSysPath”j" t”bŒ*test.support.os_helper.EnvironmentVarGuard”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/test.html#test.support.os_helper.EnvironmentVarGuard”j" t”bŒtest.support.os_helper.FakePath”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/test.html#test.support.os_helper.FakePath”j" t”bŒ-test.support.warnings_helper.WarningsRecorder”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/test.html#test.support.warnings_helper.WarningsRecorder”j" t”bŒtextwrap.TextWrapper”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/textwrap.html#textwrap.TextWrapper”j" t”bŒthreading.Barrier”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/threading.html#threading.Barrier”j" t”bŒthreading.BoundedSemaphore”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/threading.html#threading.BoundedSemaphore”j" t”bŒthreading.Condition”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/threading.html#threading.Condition”j" t”bŒthreading.Event”j )�”(jT(jU(Œ@https://docs.python.org/3/library/threading.html#threading.Event”j" t”bŒthreading.Lock”j )�”(jT(jU(Œ?https://docs.python.org/3/library/threading.html#threading.Lock”j" t”bŒthreading.RLock”j )�”(jT(jU(Œ@https://docs.python.org/3/library/threading.html#threading.RLock”j" t”bŒthreading.Semaphore”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/threading.html#threading.Semaphore”j" t”bŒthreading.Thread”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/threading.html#threading.Thread”j" t”bŒthreading.Timer”j )�”(jT(jU(Œ@https://docs.python.org/3/library/threading.html#threading.Timer”j" t”bŒthreading.local”j )�”(jT(jU(Œ@https://docs.python.org/3/library/threading.html#threading.local”j" t”bŒtime.struct_time”j )�”(jT(jU(Œhttps://docs.python.org/3/library/turtle.html#turtle.RawTurtle”j" t”bŒ turtle.Screen”j )�”(jT(jU(Œ;https://docs.python.org/3/library/turtle.html#turtle.Screen”j" t”bŒturtle.ScrolledCanvas”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/turtle.html#turtle.ScrolledCanvas”j" t”bŒ turtle.Shape”j )�”(jT(jU(Œ:https://docs.python.org/3/library/turtle.html#turtle.Shape”j" t”bŒ turtle.Turtle”j )�”(jT(jU(Œ;https://docs.python.org/3/library/turtle.html#turtle.Turtle”j" t”bŒturtle.TurtleScreen”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/turtle.html#turtle.TurtleScreen”j" t”bŒ turtle.Vec2D”j )�”(jT(jU(Œ:https://docs.python.org/3/library/turtle.html#turtle.Vec2D”j" t”bŒtype”j )�”(jT(jU(Œ5https://docs.python.org/3/library/functions.html#type”j" t”bŒtypes.CapsuleType”j )�”(jT(jU(Œ>https://docs.python.org/3/library/types.html#types.CapsuleType”j" t”bŒtypes.CodeType”j )�”(jT(jU(Œ;https://docs.python.org/3/library/types.html#types.CodeType”j" t”bŒtypes.GenericAlias”j )�”(jT(jU(Œ?https://docs.python.org/3/library/types.html#types.GenericAlias”j" t”bŒtypes.MappingProxyType”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/types.html#types.MappingProxyType”j" t”bŒtypes.ModuleType”j )�”(jT(jU(Œ=https://docs.python.org/3/library/types.html#types.ModuleType”j" t”bŒtypes.SimpleNamespace”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/types.html#types.SimpleNamespace”j" t”bŒtypes.TracebackType”j )�”(jT(jU(Œ@https://docs.python.org/3/library/types.html#types.TracebackType”j" t”bŒtypes.UnionType”j )�”(jT(jU(Œhttps://docs.python.org/3/library/typing.html#typing.Awaitable”j" t”bŒtyping.BinaryIO”j )�”(jT(jU(Œ=https://docs.python.org/3/library/typing.html#typing.BinaryIO”j" t”bŒtyping.ByteString”j )�”(jT(jU(Œ?https://docs.python.org/3/library/typing.html#typing.ByteString”j" t”bŒtyping.ChainMap”j )�”(jT(jU(Œ=https://docs.python.org/3/library/typing.html#typing.ChainMap”j" t”bŒtyping.Collection”j )�”(jT(jU(Œ?https://docs.python.org/3/library/typing.html#typing.Collection”j" t”bŒtyping.Container”j )�”(jT(jU(Œ>https://docs.python.org/3/library/typing.html#typing.Container”j" t”bŒtyping.ContextManager”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/typing.html#typing.ContextManager”j" t”bŒtyping.Coroutine”j )�”(jT(jU(Œ>https://docs.python.org/3/library/typing.html#typing.Coroutine”j" t”bŒtyping.Counter”j )�”(jT(jU(Œhttps://docs.python.org/3/library/typing.html#typing.FrozenSet”j" t”bŒtyping.Generator”j )�”(jT(jU(Œ>https://docs.python.org/3/library/typing.html#typing.Generator”j" t”bŒtyping.Generic”j )�”(jT(jU(Œhttps://docs.python.org/3/library/typing.html#typing.ItemsView”j" t”bŒtyping.Iterable”j )�”(jT(jU(Œ=https://docs.python.org/3/library/typing.html#typing.Iterable”j" t”bŒtyping.Iterator”j )�”(jT(jU(Œ=https://docs.python.org/3/library/typing.html#typing.Iterator”j" t”bŒtyping.KeysView”j )�”(jT(jU(Œ=https://docs.python.org/3/library/typing.html#typing.KeysView”j" t”bŒ typing.List”j )�”(jT(jU(Œ9https://docs.python.org/3/library/typing.html#typing.List”j" t”bŒtyping.Mapping”j )�”(jT(jU(Œhttps://docs.python.org/3/library/typing.html#typing.ParamSpec”j" t”bŒtyping.Pattern”j )�”(jT(jU(Œhttps://docs.python.org/3/library/typing.html#typing.TypedDict”j" t”bŒ typing.Union”j )�”(jT(jU(Œ:https://docs.python.org/3/library/typing.html#typing.Union”j" t”bŒtyping.ValuesView”j )�”(jT(jU(Œ?https://docs.python.org/3/library/typing.html#typing.ValuesView”j" t”bŒunittest.FunctionTestCase”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/unittest.html#unittest.FunctionTestCase”j" t”bŒ unittest.IsolatedAsyncioTestCase”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/unittest.html#unittest.IsolatedAsyncioTestCase”j" t”bŒunittest.TestCase”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/unittest.html#unittest.TestCase”j" t”bŒunittest.TestLoader”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/unittest.html#unittest.TestLoader”j" t”bŒunittest.TestResult”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/unittest.html#unittest.TestResult”j" t”bŒunittest.TestSuite”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/unittest.html#unittest.TestSuite”j" t”bŒunittest.TextTestResult”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/unittest.html#unittest.TextTestResult”j" t”bŒunittest.TextTestRunner”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/unittest.html#unittest.TextTestRunner”j" t”bŒunittest.mock.AsyncMock”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.AsyncMock”j" t”bŒunittest.mock.MagicMock”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.MagicMock”j" t”bŒunittest.mock.Mock”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock”j" t”bŒ"unittest.mock.NonCallableMagicMock”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.NonCallableMagicMock”j" t”bŒunittest.mock.NonCallableMock”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.NonCallableMock”j" t”bŒunittest.mock.PropertyMock”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.PropertyMock”j" t”bŒunittest.mock.ThreadingMock”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/unittest.mock.html#unittest.mock.ThreadingMock”j" t”bŒurllib.parse.DefragResult”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.DefragResult”j" t”bŒurllib.parse.DefragResultBytes”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.DefragResultBytes”j" t”bŒurllib.parse.ParseResult”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.ParseResult”j" t”bŒurllib.parse.ParseResultBytes”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.ParseResultBytes”j" t”bŒurllib.parse.SplitResult”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.SplitResult”j" t”bŒurllib.parse.SplitResultBytes”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.SplitResultBytes”j" t”bŒ'urllib.request.AbstractBasicAuthHandler”j )�”(jT(jU(Œ]https://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractBasicAuthHandler”j" t”bŒ(urllib.request.AbstractDigestAuthHandler”j )�”(jT(jU(Œ^https://docs.python.org/3/library/urllib.request.html#urllib.request.AbstractDigestAuthHandler”j" t”bŒurllib.request.BaseHandler”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/urllib.request.html#urllib.request.BaseHandler”j" t”bŒurllib.request.CacheFTPHandler”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/urllib.request.html#urllib.request.CacheFTPHandler”j" t”bŒurllib.request.DataHandler”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/urllib.request.html#urllib.request.DataHandler”j" t”bŒurllib.request.FTPHandler”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/urllib.request.html#urllib.request.FTPHandler”j" t”bŒurllib.request.FileHandler”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/urllib.request.html#urllib.request.FileHandler”j" t”bŒ#urllib.request.HTTPBasicAuthHandler”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPBasicAuthHandler”j" t”bŒ"urllib.request.HTTPCookieProcessor”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPCookieProcessor”j" t”bŒ&urllib.request.HTTPDefaultErrorHandler”j )�”(jT(jU(Œ\https://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPDefaultErrorHandler”j" t”bŒ$urllib.request.HTTPDigestAuthHandler”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPDigestAuthHandler”j" t”bŒ!urllib.request.HTTPErrorProcessor”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPErrorProcessor”j" t”bŒurllib.request.HTTPHandler”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPHandler”j" t”bŒurllib.request.HTTPPasswordMgr”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgr”j" t”bŒ.urllib.request.HTTPPasswordMgrWithDefaultRealm”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgrWithDefaultRealm”j" t”bŒ+urllib.request.HTTPPasswordMgrWithPriorAuth”j )�”(jT(jU(Œahttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPPasswordMgrWithPriorAuth”j" t”bŒ"urllib.request.HTTPRedirectHandler”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler”j" t”bŒurllib.request.HTTPSHandler”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPSHandler”j" t”bŒurllib.request.OpenerDirector”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/urllib.request.html#urllib.request.OpenerDirector”j" t”bŒ$urllib.request.ProxyBasicAuthHandler”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyBasicAuthHandler”j" t”bŒ%urllib.request.ProxyDigestAuthHandler”j )�”(jT(jU(Œ[https://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyDigestAuthHandler”j" t”bŒurllib.request.ProxyHandler”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyHandler”j" t”bŒurllib.request.Request”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/urllib.request.html#urllib.request.Request”j" t”bŒurllib.request.UnknownHandler”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/urllib.request.html#urllib.request.UnknownHandler”j" t”bŒurllib.response.addinfourl”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/urllib.request.html#urllib.response.addinfourl”j" t”bŒ"urllib.robotparser.RobotFileParser”j )�”(jT(jU(Œ\https://docs.python.org/3/library/urllib.robotparser.html#urllib.robotparser.RobotFileParser”j" t”bŒ uuid.SafeUUID”j )�”(jT(jU(Œ9https://docs.python.org/3/library/uuid.html#uuid.SafeUUID”j" t”bŒ uuid.UUID”j )�”(jT(jU(Œ5https://docs.python.org/3/library/uuid.html#uuid.UUID”j" t”bŒvenv.EnvBuilder”j )�”(jT(jU(Œ;https://docs.python.org/3/library/venv.html#venv.EnvBuilder”j" t”bŒwarnings.catch_warnings”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/warnings.html#warnings.catch_warnings”j" t”bŒwave.Wave_read”j )�”(jT(jU(Œ:https://docs.python.org/3/library/wave.html#wave.Wave_read”j" t”bŒwave.Wave_write”j )�”(jT(jU(Œ;https://docs.python.org/3/library/wave.html#wave.Wave_write”j" t”bŒweakref.WeakKeyDictionary”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/weakref.html#weakref.WeakKeyDictionary”j" t”bŒweakref.WeakMethod”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/weakref.html#weakref.WeakMethod”j" t”bŒweakref.WeakSet”j )�”(jT(jU(Œ>https://docs.python.org/3/library/weakref.html#weakref.WeakSet”j" t”bŒweakref.WeakValueDictionary”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/weakref.html#weakref.WeakValueDictionary”j" t”bŒweakref.finalize”j )�”(jT(jU(Œ?https://docs.python.org/3/library/weakref.html#weakref.finalize”j" t”bŒ weakref.ref”j )�”(jT(jU(Œ:https://docs.python.org/3/library/weakref.html#weakref.ref”j" t”bŒwsgiref.handlers.BaseCGIHandler”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseCGIHandler”j" t”bŒwsgiref.handlers.BaseHandler”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.BaseHandler”j" t”bŒwsgiref.handlers.CGIHandler”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.CGIHandler”j" t”bŒwsgiref.handlers.IISCGIHandler”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.IISCGIHandler”j" t”bŒwsgiref.handlers.SimpleHandler”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/wsgiref.html#wsgiref.handlers.SimpleHandler”j" t”bŒwsgiref.headers.Headers”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/wsgiref.html#wsgiref.headers.Headers”j" t”bŒ(wsgiref.simple_server.WSGIRequestHandler”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIRequestHandler”j" t”bŒ wsgiref.simple_server.WSGIServer”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/wsgiref.html#wsgiref.simple_server.WSGIServer”j" t”bŒwsgiref.types.ErrorStream”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/wsgiref.html#wsgiref.types.ErrorStream”j" t”bŒwsgiref.types.FileWrapper”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/wsgiref.html#wsgiref.types.FileWrapper”j" t”bŒwsgiref.types.InputStream”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/wsgiref.html#wsgiref.types.InputStream”j" t”bŒwsgiref.types.StartResponse”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/wsgiref.html#wsgiref.types.StartResponse”j" t”bŒwsgiref.util.FileWrapper”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/wsgiref.html#wsgiref.util.FileWrapper”j" t”bŒxml.dom.pulldom.DOMEventStream”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.DOMEventStream”j" t”bŒxml.dom.pulldom.PullDOM”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.PullDOM”j" t”bŒxml.dom.pulldom.SAX2DOM”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/xml.dom.pulldom.html#xml.dom.pulldom.SAX2DOM”j" t”bŒ&xml.etree.ElementTree.C14NWriterTarget”j )�”(jT(jU(Œchttps://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.C14NWriterTarget”j" t”bŒxml.etree.ElementTree.Element”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element”j" t”bŒ!xml.etree.ElementTree.ElementTree”j )�”(jT(jU(Œ^https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree”j" t”bŒ xml.etree.ElementTree.ParseError”j )�”(jT(jU(Œ]https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ParseError”j" t”bŒxml.etree.ElementTree.QName”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.QName”j" t”bŒ!xml.etree.ElementTree.TreeBuilder”j )�”(jT(jU(Œ^https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder”j" t”bŒxml.etree.ElementTree.XMLParser”j )�”(jT(jU(Œ\https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLParser”j" t”bŒ#xml.etree.ElementTree.XMLPullParser”j )�”(jT(jU(Œ`https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLPullParser”j" t”bŒxml.sax.handler.ContentHandler”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ContentHandler”j" t”bŒxml.sax.handler.DTDHandler”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.DTDHandler”j" t”bŒxml.sax.handler.EntityResolver”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.EntityResolver”j" t”bŒxml.sax.handler.ErrorHandler”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.ErrorHandler”j" t”bŒxml.sax.handler.LexicalHandler”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/xml.sax.handler.html#xml.sax.handler.LexicalHandler”j" t”bŒxml.sax.saxutils.XMLFilterBase”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.XMLFilterBase”j" t”bŒxml.sax.saxutils.XMLGenerator”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/xml.sax.utils.html#xml.sax.saxutils.XMLGenerator”j" t”bŒ xml.sax.xmlreader.AttributesImpl”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesImpl”j" t”bŒ"xml.sax.xmlreader.AttributesNSImpl”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.AttributesNSImpl”j" t”bŒ#xml.sax.xmlreader.IncrementalParser”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.IncrementalParser”j" t”bŒxml.sax.xmlreader.InputSource”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.InputSource”j" t”bŒxml.sax.xmlreader.Locator”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.Locator”j" t”bŒxml.sax.xmlreader.XMLReader”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/xml.sax.reader.html#xml.sax.xmlreader.XMLReader”j" t”bŒxmlrpc.client.Binary”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Binary”j" t”bŒxmlrpc.client.DateTime”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.DateTime”j" t”bŒxmlrpc.client.Fault”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.Fault”j" t”bŒxmlrpc.client.MultiCall”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.MultiCall”j" t”bŒxmlrpc.client.ProtocolError”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ProtocolError”j" t”bŒxmlrpc.client.ServerProxy”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc.client.ServerProxy”j" t”bŒ%xmlrpc.server.CGIXMLRPCRequestHandler”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.CGIXMLRPCRequestHandler”j" t”bŒ(xmlrpc.server.DocCGIXMLRPCRequestHandler”j )�”(jT(jU(Œ]https://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocCGIXMLRPCRequestHandler”j" t”bŒ%xmlrpc.server.DocXMLRPCRequestHandler”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCRequestHandler”j" t”bŒxmlrpc.server.DocXMLRPCServer”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServer”j" t”bŒ(xmlrpc.server.SimpleXMLRPCRequestHandler”j )�”(jT(jU(Œ]https://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCRequestHandler”j" t”bŒ xmlrpc.server.SimpleXMLRPCServer”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/xmlrpc.server.html#xmlrpc.server.SimpleXMLRPCServer”j" t”bŒ zipfile.Path”j )�”(jT(jU(Œ;https://docs.python.org/3/library/zipfile.html#zipfile.Path”j" t”bŒzipfile.PyZipFile”j )�”(jT(jU(Œ@https://docs.python.org/3/library/zipfile.html#zipfile.PyZipFile”j" t”bŒzipfile.ZipFile”j )�”(jT(jU(Œ>https://docs.python.org/3/library/zipfile.html#zipfile.ZipFile”j" t”bŒzipfile.ZipInfo”j )�”(jT(jU(Œ>https://docs.python.org/3/library/zipfile.html#zipfile.ZipInfo”j" t”bŒzipimport.zipimporter”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/zipimport.html#zipimport.zipimporter”j" t”bŒzoneinfo.ZoneInfo”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.ZoneInfo”j" t”buŒ py:function”}”(Œ __import__”j )�”(jT(jU(Œ9https://docs.python.org/3/library/functions.html#import__”j" t”bŒ_thread.allocate_lock”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/_thread.html#thread.allocate_lock”j" t”bŒ _thread.exit”j )�”(jT(jU(Œ:https://docs.python.org/3/library/_thread.html#thread.exit”j" t”bŒ_thread.get_ident”j )�”(jT(jU(Œ?https://docs.python.org/3/library/_thread.html#thread.get_ident”j" t”bŒ_thread.get_native_id”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/_thread.html#thread.get_native_id”j" t”bŒ_thread.interrupt_main”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/_thread.html#thread.interrupt_main”j" t”bŒ_thread.stack_size”j )�”(jT(jU(Œ@https://docs.python.org/3/library/_thread.html#thread.stack_size”j" t”bŒ_thread.start_new_thread”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/_thread.html#thread.start_new_thread”j" t”bŒabc.abstractclassmethod”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/abc.html#abc.abstractclassmethod”j" t”bŒabc.abstractmethod”j )�”(jT(jU(Œ=https://docs.python.org/3/library/abc.html#abc.abstractmethod”j" t”bŒabc.abstractproperty”j )�”(jT(jU(Œ?https://docs.python.org/3/library/abc.html#abc.abstractproperty”j" t”bŒabc.abstractstaticmethod”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/abc.html#abc.abstractstaticmethod”j" t”bŒabc.get_cache_token”j )�”(jT(jU(Œ>https://docs.python.org/3/library/abc.html#abc.get_cache_token”j" t”bŒabc.update_abstractmethods”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/abc.html#abc.update_abstractmethods”j" t”bŒabs”j )�”(jT(jU(Œ4https://docs.python.org/3/library/functions.html#abs”j" t”bŒaiter”j )�”(jT(jU(Œ6https://docs.python.org/3/library/functions.html#aiter”j" t”bŒall”j )�”(jT(jU(Œ4https://docs.python.org/3/library/functions.html#all”j" t”bŒanext”j )�”(jT(jU(Œ6https://docs.python.org/3/library/functions.html#anext”j" t”bŒ#annotationlib.annotations_to_string”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/annotationlib.html#annotationlib.annotations_to_string”j" t”bŒ$annotationlib.call_annotate_function”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/annotationlib.html#annotationlib.call_annotate_function”j" t”bŒ$annotationlib.call_evaluate_function”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/annotationlib.html#annotationlib.call_evaluate_function”j" t”bŒ/annotationlib.get_annotate_from_class_namespace”j )�”(jT(jU(Œdhttps://docs.python.org/3/library/annotationlib.html#annotationlib.get_annotate_from_class_namespace”j" t”bŒannotationlib.get_annotations”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/annotationlib.html#annotationlib.get_annotations”j" t”bŒannotationlib.type_repr”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/annotationlib.html#annotationlib.type_repr”j" t”bŒany”j )�”(jT(jU(Œ4https://docs.python.org/3/library/functions.html#any”j" t”bŒascii”j )�”(jT(jU(Œ6https://docs.python.org/3/library/functions.html#ascii”j" t”bŒ ast.compare”j )�”(jT(jU(Œ6https://docs.python.org/3/library/ast.html#ast.compare”j" t”bŒast.copy_location”j )�”(jT(jU(Œhttps://docs.python.org/3/library/base64.html#base64.a85decode”j" t”bŒbase64.a85encode”j )�”(jT(jU(Œ>https://docs.python.org/3/library/base64.html#base64.a85encode”j" t”bŒbase64.b16decode”j )�”(jT(jU(Œ>https://docs.python.org/3/library/base64.html#base64.b16decode”j" t”bŒbase64.b16encode”j )�”(jT(jU(Œ>https://docs.python.org/3/library/base64.html#base64.b16encode”j" t”bŒbase64.b32decode”j )�”(jT(jU(Œ>https://docs.python.org/3/library/base64.html#base64.b32decode”j" t”bŒbase64.b32encode”j )�”(jT(jU(Œ>https://docs.python.org/3/library/base64.html#base64.b32encode”j" t”bŒbase64.b32hexdecode”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/base64.html#base64.b32hexdecode”j" t”bŒbase64.b32hexencode”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/base64.html#base64.b32hexencode”j" t”bŒbase64.b64decode”j )�”(jT(jU(Œ>https://docs.python.org/3/library/base64.html#base64.b64decode”j" t”bŒbase64.b64encode”j )�”(jT(jU(Œ>https://docs.python.org/3/library/base64.html#base64.b64encode”j" t”bŒbase64.b85decode”j )�”(jT(jU(Œ>https://docs.python.org/3/library/base64.html#base64.b85decode”j" t”bŒbase64.b85encode”j )�”(jT(jU(Œ>https://docs.python.org/3/library/base64.html#base64.b85encode”j" t”bŒ base64.decode”j )�”(jT(jU(Œ;https://docs.python.org/3/library/base64.html#base64.decode”j" t”bŒbase64.decodebytes”j )�”(jT(jU(Œ@https://docs.python.org/3/library/base64.html#base64.decodebytes”j" t”bŒ base64.encode”j )�”(jT(jU(Œ;https://docs.python.org/3/library/base64.html#base64.encode”j" t”bŒbase64.encodebytes”j )�”(jT(jU(Œ@https://docs.python.org/3/library/base64.html#base64.encodebytes”j" t”bŒbase64.standard_b64decode”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/base64.html#base64.standard_b64decode”j" t”bŒbase64.standard_b64encode”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/base64.html#base64.standard_b64encode”j" t”bŒbase64.urlsafe_b64decode”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/base64.html#base64.urlsafe_b64decode”•j" t”bŒbase64.urlsafe_b64encode”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/base64.html#base64.urlsafe_b64encode”j" t”bŒbase64.z85decode”j )�”(jT(jU(Œ>https://docs.python.org/3/library/base64.html#base64.z85decode”j" t”bŒbase64.z85encode”j )�”(jT(jU(Œ>https://docs.python.org/3/library/base64.html#base64.z85encode”j" t”bŒbdb.checkfuncname”j )�”(jT(jU(Œhttps://docs.python.org/3/library/binascii.html#binascii.crc32”j" t”bŒbinascii.crc_hqx”j )�”(jT(jU(Œ@https://docs.python.org/3/library/binascii.html#binascii.crc_hqx”j" t”bŒbinascii.hexlify”j )�”(jT(jU(Œ@https://docs.python.org/3/library/binascii.html#binascii.hexlify”j" t”bŒbinascii.unhexlify”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/binascii.html#binascii.unhexlify”j" t”bŒ bisect.bisect”j )�”(jT(jU(Œ;https://docs.python.org/3/library/bisect.html#bisect.bisect”j" t”bŒbisect.bisect_left”j )�”(jT(jU(Œ@https://docs.python.org/3/library/bisect.html#bisect.bisect_left”j" t”bŒbisect.bisect_right”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/bisect.html#bisect.bisect_right”j" t”bŒ bisect.insort”j )�”(jT(jU(Œ;https://docs.python.org/3/library/bisect.html#bisect.insort”j" t”bŒbisect.insort_left”j )�”(jT(jU(Œ@https://docs.python.org/3/library/bisect.html#bisect.insort_left”j" t”bŒbisect.insort_right”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/bisect.html#bisect.insort_right”j" t”bŒ breakpoint”j )�”(jT(jU(Œ;https://docs.python.org/3/library/functions.html#breakpoint”j" t”bŒ bz2.compress”j )�”(jT(jU(Œ7https://docs.python.org/3/library/bz2.html#bz2.compress”j" t”bŒbz2.decompress”j )�”(jT(jU(Œ9https://docs.python.org/3/library/bz2.html#bz2.decompress”j" t”bŒbz2.open”j )�”(jT(jU(Œ3https://docs.python.org/3/library/bz2.html#bz2.open”j" t”bŒcalendar.calendar”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/calendar.html#calendar.calendar”j" t”bŒcalendar.firstweekday”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/calendar.html#calendar.firstweekday”j" t”bŒcalendar.isleap”j )�”(jT(jU(Œ?https://docs.python.org/3/library/calendar.html#calendar.isleap”j" t”bŒcalendar.leapdays”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/calendar.html#calendar.leapdays”j" t”bŒcalendar.month”j )�”(jT(jU(Œ>https://docs.python.org/3/library/calendar.html#calendar.month”j" t”bŒcalendar.monthcalendar”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/calendar.html#calendar.monthcalendar”j" t”bŒcalendar.monthrange”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/calendar.html#calendar.monthrange”j" t”bŒcalendar.prcal”j )�”(jT(jU(Œ>https://docs.python.org/3/library/calendar.html#calendar.prcal”j" t”bŒcalendar.prmonth”j )�”(jT(jU(Œ@https://docs.python.org/3/library/calendar.html#calendar.prmonth”j" t”bŒcalendar.setfirstweekday”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/calendar.html#calendar.setfirstweekday”j" t”bŒcalendar.timegm”j )�”(jT(jU(Œ?https://docs.python.org/3/library/calendar.html#calendar.timegm”j" t”bŒcalendar.weekday”j )�”(jT(jU(Œ@https://docs.python.org/3/library/calendar.html#calendar.weekday”j" t”bŒcalendar.weekheader”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/calendar.html#calendar.weekheader”j" t”bŒcallable”j )�”(jT(jU(Œ9https://docs.python.org/3/library/functions.html#callable”j" t”bŒchr”j )�”(jT(jU(Œ4https://docs.python.org/3/library/functions.html#chr”j" t”bŒ classmethod”j )�”(jT(jU(Œhttps://docs.python.org/3/library/codecs.html#codecs.getreader”j" t”bŒcodecs.getwriter”j )�”(jT(jU(Œ>https://docs.python.org/3/library/codecs.html#codecs.getwriter”j" t”bŒcodecs.ignore_errors”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/codecs.html#codecs.ignore_errors”j" t”bŒcodecs.iterdecode”j )�”(jT(jU(Œ?https://docs.python.org/3/library/codecs.html#codecs.iterdecode”j" t”bŒcodecs.iterencode”j )�”(jT(jU(Œ?https://docs.python.org/3/library/codecs.html#codecs.iterencode”j" t”bŒ codecs.lookup”j )�”(jT(jU(Œ;https://docs.python.org/3/library/codecs.html#codecs.lookup”j" t”bŒcodecs.lookup_error”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/codecs.html#codecs.lookup_error”j" t”bŒcodecs.namereplace_errors”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/codecs.html#codecs.namereplace_errors”j" t”bŒ codecs.open”j )�”(jT(jU(Œ9https://docs.python.org/3/library/codecs.html#codecs.open”j" t”bŒcodecs.readbuffer_encode”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/codecs.html#codecs.readbuffer_encode”j" t”bŒcodecs.register”j )�”(jT(jU(Œ=https://docs.python.org/3/library/codecs.html#codecs.register”j" t”bŒcodecs.register_error”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/codecs.html#codecs.register_error”j" t”bŒcodecs.replace_errors”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/codecs.html#codecs.replace_errors”j" t”bŒcodecs.strict_errors”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/codecs.html#codecs.strict_errors”j" t”bŒcodecs.unregister”j )�”(jT(jU(Œ?https://docs.python.org/3/library/codecs.html#codecs.unregister”j" t”bŒcodecs.xmlcharrefreplace_errors”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/codecs.html#codecs.xmlcharrefreplace_errors”j" t”bŒcodeop.compile_command”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/codeop.html#codeop.compile_command”j" t”bŒcollections.namedtuple”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/collections.html#collections.namedtuple”j" t”bŒcolorsys.hls_to_rgb”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/colorsys.html#colorsys.hls_to_rgb”j" t”bŒcolorsys.hsv_to_rgb”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/colorsys.html#colorsys.hsv_to_rgb”j" t”bŒcolorsys.rgb_to_hls”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/colorsys.html#colorsys.rgb_to_hls”j" t”bŒcolorsys.rgb_to_hsv”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/colorsys.html#colorsys.rgb_to_hsv”j" t”bŒcolorsys.rgb_to_yiq”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/colorsys.html#colorsys.rgb_to_yiq”j" t”bŒcolorsys.yiq_to_rgb”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/colorsys.html#colorsys.yiq_to_rgb”j" t”bŒcompile”j )�”(jT(jU(Œ8https://docs.python.org/3/library/functions.html#compile”j" t”bŒcompileall.compile_dir”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#compileall.compile_dir”j" t”bŒcompileall.compile_file”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/compileall.html#compileall.compile_file”j" t”bŒcompileall.compile_path”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/compileall.html#compileall.compile_path”j" t”bŒcompression.zstd.compress”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.compress”j" t”bŒcompression.zstd.decompress”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.decompress”j" t”bŒcompression.zstd.finalize_dict”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.finalize_dict”j" t”bŒcompression.zstd.get_frame_info”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.get_frame_info”j" t”bŒcompression.zstd.open”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.open”j" t”bŒcompression.zstd.train_dict”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/compression.zstd.html#compression.zstd.train_dict”j" t”bŒconcurrent.futures.as_completed”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.as_completed”j" t”bŒconcurrent.futures.wait”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.wait”j" t”bŒconcurrent.interpreters.create”j )�”(jT(jU(Œ]https://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.create”j" t”bŒ$concurrent.interpreters.create_queue”j )�”(jT(jU(Œchttps://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.create_queue”j" t”bŒ#concurrent.interpreters.get_current”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.get_current”j" t”bŒ concurrent.interpreters.get_main”j )�”(jT(jU(Œ_https://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.get_main”j" t”bŒ concurrent.interpreters.list_all”j )�”(jT(jU(Œ_https://docs.python.org/3/library/concurrent.interpreters.html#concurrent.interpreters.list_all”j" t”bŒcontextlib.aclosing”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/contextlib.html#contextlib.aclosing”j" t”bŒcontextlib.asynccontextmanager”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/contextlib.html#contextlib.asynccontextmanager”j" t”bŒcontextlib.chdir”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/contextlib.html#contextlib.chdir”j" t”bŒcontextlib.closing”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/contextlib.html#contextlib.closing”j" t”bŒcontextlib.contextmanager”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/contextlib.html#contextlib.contextmanager”j" t”bŒcontextlib.nullcontext”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/contextlib.html#contextlib.nullcontext”j" t”bŒcontextlib.redirect_stderr”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/contextlib.html#contextlib.redirect_stderr”j" t”bŒcontextlib.redirect_stdout”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/contextlib.html#contextlib.redirect_stdout”j" t”bŒcontextlib.suppress”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/contextlib.html#contextlib.suppress”j" t”bŒcontextvars.copy_context”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/contextvars.html#contextvars.copy_context”j" t”bŒ copy.copy”j )�”(jT(jU(Œ5https://docs.python.org/3/library/copy.html#copy.copy”j" t”bŒ copy.deepcopy”j )�”(jT(jU(Œ9https://docs.python.org/3/library/copy.html#copy.deepcopy”j" t”bŒ copy.replace”j )�”(jT(jU(Œ8https://docs.python.org/3/library/copy.html#copy.replace”j" t”bŒcopyreg.constructor”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/copyreg.html#copyreg.constructor”j" t”bŒcopyreg.pickle”j )�”(jT(jU(Œ=https://docs.python.org/3/library/copyreg.html#copyreg.pickle”j" t”bŒcsv.field_size_limit”j )�”(jT(jU(Œ?https://docs.python.org/3/library/csv.html#csv.field_size_limit”j" t”bŒcsv.get_dialect”j )�”(jT(jU(Œ:https://docs.python.org/3/library/csv.html#csv.get_dialect”j" t”bŒcsv.list_dialects”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ctypes.html#ctypes.CFUNCTYPE”j" t”bŒctypes.CopyComPointer”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/ctypes.html#ctypes.CopyComPointer”j" t”bŒctypes.DllCanUnloadNow”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/ctypes.html#ctypes.DllCanUnloadNow”j" t”bŒctypes.DllGetClassObject”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/ctypes.html#ctypes.DllGetClassObject”j" t”bŒctypes.FormatError”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ctypes.html#ctypes.FormatError”j" t”bŒctypes.GetLastError”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ctypes.html#ctypes.GetLastError”j" t”bŒctypes.POINTER”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ctypes.html#ctypes.addressof”j" t”bŒctypes.alignment”j )�”(jT(jU(Œ>https://docs.python.org/3/library/ctypes.html#ctypes.alignment”j" t”bŒ ctypes.byref”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ctypes.html#ctypes.byref”j" t”bŒ ctypes.cast”j )�”(jT(jU(Œ9https://docs.python.org/3/library/ctypes.html#ctypes.cast”j" t”bŒctypes.create_string_buffer”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/ctypes.html#ctypes.create_string_buffer”j" t”bŒctypes.create_unicode_buffer”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/ctypes.html#ctypes.create_unicode_buffer”j" t”bŒctypes.get_errno”j )�”(jT(jU(Œ>https://docs.python.org/3/library/ctypes.html#ctypes.get_errno”j" t”bŒctypes.get_last_error”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/ctypes.html#ctypes.get_last_error”j" t”bŒctypes.memmove”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ctypes.html#ctypes.set_errno”j" t”bŒctypes.set_last_error”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/ctypes.html#ctypes.set_last_error”j" t”bŒ ctypes.sizeof”j )�”(jT(jU(Œ;https://docs.python.org/3/library/ctypes.html#ctypes.sizeof”j" t”bŒctypes.string_at”j )�”(jT(jU(Œ>https://docs.python.org/3/library/ctypes.html#ctypes.string_at”j" t”bŒctypes.util.dllist”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ctypes.html#ctypes.util.dllist”j" t”bŒctypes.util.find_library”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/ctypes.html#ctypes.util.find_library”j" t”bŒctypes.util.find_msvcrt”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ctypes.html#ctypes.util.find_msvcrt”j" t”bŒctypes.wstring_at”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ctypes.html#ctypes.wstring_at”j" t”bŒcurses.ascii.alt”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.alt”j" t”bŒcurses.ascii.ascii”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ascii”j" t”bŒcurses.ascii.ctrl”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ctrl”j" t”bŒcurses.ascii.isalnum”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isalnum”j" t”bŒcurses.ascii.isalpha”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isalpha”j" t”bŒcurses.ascii.isascii”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isascii”j" t”bŒcurses.ascii.isblank”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isblank”j" t”bŒcurses.ascii.iscntrl”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.iscntrl”j" t”bŒcurses.ascii.isctrl”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isctrl”j" t”bŒcurses.ascii.isdigit”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isdigit”j" t”bŒcurses.ascii.isgraph”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isgraph”j" t”bŒcurses.ascii.islower”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.islower”j" t”bŒcurses.ascii.ismeta”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ismeta”j" t”bŒcurses.ascii.isprint”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isprint”j" t”bŒcurses.ascii.ispunct”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.ispunct”j" t”bŒcurses.ascii.isspace”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isspace”j" t”bŒcurses.ascii.isupper”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isupper”j" t”bŒcurses.ascii.isxdigit”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.isxdigit”j" t”bŒcurses.ascii.unctrl”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/curses.ascii.html#curses.ascii.unctrl”j" t”bŒcurses.assume_default_colors”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/curses.html#curses.assume_default_colors”j" t”bŒcurses.baudrate”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.baudrate”j" t”bŒ curses.beep”j )�”(jT(jU(Œ9https://docs.python.org/3/library/curses.html#curses.beep”j" t”bŒcurses.can_change_color”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/curses.html#curses.can_change_color”j" t”bŒ curses.cbreak”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.cbreak”j" t”bŒcurses.color_content”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/curses.html#curses.color_content”j" t”bŒcurses.color_pair”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.color_pair”j" t”bŒcurses.curs_set”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.curs_set”j" t”bŒcurses.def_prog_mode”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/curses.html#curses.def_prog_mode”j" t”bŒcurses.def_shell_mode”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.html#curses.def_shell_mode”j" t”bŒcurses.delay_output”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.delay_output”j" t”bŒcurses.doupdate”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.doupdate”j" t”bŒ curses.echo”j )�”(jT(jU(Œ9https://docs.python.org/3/library/curses.html#curses.echo”j" t”bŒ curses.endwin”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.endwin”j" t”bŒcurses.erasechar”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.erasechar”j" t”bŒ curses.filter”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.filter”j" t”bŒ curses.flash”j )�”(jT(jU(Œ:https://docs.python.org/3/library/curses.html#curses.flash”j" t”bŒcurses.flushinp”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.flushinp”j" t”bŒcurses.get_escdelay”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.get_escdelay”j" t”bŒcurses.get_tabsize”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.get_tabsize”j" t”bŒcurses.getmouse”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.getmouse”j" t”bŒ curses.getsyx”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.getsyx”j" t”bŒ curses.getwin”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.getwin”j" t”bŒcurses.halfdelay”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.halfdelay”j" t”bŒcurses.has_colors”j )�”(jT(jU(Œ?https://docs.python.org/3/library/curses.html#curses.has_colors”j" t”bŒ!curses.has_extended_color_support”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/curses.html#curses.has_extended_color_support”j" t”bŒ curses.has_ic”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.has_ic”j" t”bŒ curses.has_il”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.has_il”j" t”bŒcurses.has_key”j )�”(jT(jU(Œhttps://docs.python.org/3/library/curses.html#curses.init_pair”j" t”bŒcurses.initscr”j )�”(jT(jU(Œhttps://docs.python.org/3/library/curses.html#curses.mousemask”j" t”bŒ curses.napms”j )�”(jT(jU(Œ:https://docs.python.org/3/library/curses.html#curses.napms”j" t”bŒ curses.newpad”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.newpad”j" t”bŒ curses.newwin”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.newwin”j" t”bŒ curses.nl”j )�”(jT(jU(Œ7https://docs.python.org/3/library/curses.html#curses.nl”j" t”bŒcurses.nocbreak”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.nocbreak”j" t”bŒ curses.noecho”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.noecho”j" t”bŒ curses.nonl”j )�”(jT(jU(Œ9https://docs.python.org/3/library/curses.html#curses.nonl”j" t”bŒcurses.noqiflush”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.noqiflush”j" t”bŒ curses.noraw”j )�”(jT(jU(Œ:https://docs.python.org/3/library/curses.html#curses.noraw”j" t”bŒcurses.pair_content”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/curses.html#curses.pair_content”j" t”bŒcurses.pair_number”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.pair_number”j" t”bŒcurses.panel.bottom_panel”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/curses.panel.html#curses.panel.bottom_panel”j" t”bŒcurses.panel.new_panel”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/curses.panel.html#curses.panel.new_panel”j" t”bŒcurses.panel.top_panel”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/curses.panel.html#curses.panel.top_panel”j" t”bŒcurses.panel.update_panels”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/curses.panel.html#curses.panel.update_panels”j" t”bŒ curses.putp”j )�”(jT(jU(Œ9https://docs.python.org/3/library/curses.html#curses.putp”j" t”bŒcurses.qiflush”j )�”(jT(jU(Œhttps://docs.python.org/3/library/curses.html#curses.setupterm”j" t”bŒcurses.start_color”j )�”(jT(jU(Œ@https://docs.python.org/3/library/curses.html#curses.start_color”j" t”bŒcurses.termattrs”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.termattrs”j" t”bŒcurses.termname”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.termname”j" t”bŒcurses.textpad.rectangle”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/curses.html#curses.textpad.rectangle”j" t”bŒcurses.tigetflag”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.tigetflag”j" t”bŒcurses.tigetnum”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.tigetnum”j" t”bŒcurses.tigetstr”j )�”(jT(jU(Œ=https://docs.python.org/3/library/curses.html#curses.tigetstr”j" t”bŒ curses.tparm”j )�”(jT(jU(Œ:https://docs.python.org/3/library/curses.html#curses.tparm”j" t”bŒcurses.typeahead”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.typeahead”j" t”bŒ curses.unctrl”j )�”(jT(jU(Œ;https://docs.python.org/3/library/curses.html#curses.unctrl”j" t”bŒcurses.unget_wch”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses.unget_wch”j" t”bŒcurses.ungetch”j )�”(jT(jU(Œhttps://docs.python.org/3/library/difflib.html#difflib.restore”j" t”bŒdifflib.unified_diff”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/difflib.html#difflib.unified_diff”j" t”bŒdir”j )�”(jT(jU(Œ4https://docs.python.org/3/library/functions.html#dir”j" t”bŒ dis.code_info”j )�”(jT(jU(Œ8https://docs.python.org/3/library/dis.html#dis.code_info”j" t”bŒdis.dis”j )�”(jT(jU(Œ2https://docs.python.org/3/library/dis.html#dis.dis”j" t”bŒdis.disassemble”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#dis.disassemble”j" t”bŒ dis.disco”j )�”(jT(jU(Œ4https://docs.python.org/3/library/dis.html#dis.disco”j" t”bŒ dis.distb”j )�”(jT(jU(Œ4https://docs.python.org/3/library/dis.html#dis.distb”j" t”bŒdis.findlabels”j )�”(jT(jU(Œ9https://docs.python.org/3/library/dis.html#dis.findlabels”j" t”bŒdis.findlinestarts”j )�”(jT(jU(Œ=https://docs.python.org/3/library/dis.html#dis.findlinestarts”j" t”bŒdis.get_instructions”j )�”(jT(jU(Œ?https://docs.python.org/3/library/dis.html#dis.get_instructions”j" t”bŒ dis.show_code”j )�”(jT(jU(Œ8https://docs.python.org/3/library/dis.html#dis.show_code”j" t”bŒdis.stack_effect”j )�”(jT(jU(Œ;https://docs.python.org/3/library/dis.html#dis.stack_effect”j" t”bŒdivmod”j )�”(jT(jU(Œ7https://docs.python.org/3/library/functions.html#divmod”j" t”bŒdoctest.DocFileSuite”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/doctest.html#doctest.DocFileSuite”j" t”bŒdoctest.DocTestSuite”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/doctest.html#doctest.DocTestSuite”j" t”bŒ doctest.debug”j )�”(jT(jU(Œhttps://docs.python.org/3/library/doctest.html#doctest.testmod”j" t”bŒdoctest.testsource”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/doctest.html#doctest.testsource”j" t”bŒemail.charset.add_alias”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/email.charset.html#email.charset.add_alias”j" t”bŒemail.charset.add_charset”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/email.charset.html#email.charset.add_charset”j" t”bŒemail.charset.add_codec”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/email.charset.html#email.charset.add_codec”j" t”bŒemail.encoders.encode_7or8bit”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/email.encoders.html#email.encoders.encode_7or8bit”j" t”bŒemail.encoders.encode_base64”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/email.encoders.html#email.encoders.encode_base64”j" t”bŒemail.encoders.encode_noop”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/email.encoders.html#email.encoders.encode_noop”j" t”bŒemail.encoders.encode_quopri”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/email.encoders.html#email.encoders.encode_quopri”j" t”bŒemail.header.decode_header”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/email.header.html#email.header.decode_header”j" t”bŒemail.header.make_header”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/email.header.html#email.header.make_header”j" t”bŒemail.iterators._structure”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/email.iterators.html#email.iterators._structure”j" t”bŒ"email.iterators.body_line_iterator”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/email.iterators.html#email.iterators.body_line_iterator”j" t”bŒ&email.iterators.typed_subpart_iterator”j )�”(jT(jU(Œ]https://docs.python.org/3/library/email.iterators.html#email.iterators.typed_subpart_iterator”j" t”bŒemail.message_from_binary_file”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/email.parser.html#email.message_from_binary_file”j" t”bŒemail.message_from_bytes”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/email.parser.html#email.message_from_bytes”j" t”bŒemail.message_from_file”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/email.parser.html#email.message_from_file”j" t”bŒemail.message_from_string”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/email.parser.html#email.message_from_string”j" t”bŒ"email.utils.collapse_rfc2231_value”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/email.utils.html#email.utils.collapse_rfc2231_value”j" t”bŒemail.utils.decode_params”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/email.utils.html#email.utils.decode_params”j" t”bŒemail.utils.decode_rfc2231”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/email.utils.html#email.utils.decode_rfc2231”j" t”bŒemail.utils.encode_rfc2231”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/email.utils.html#email.utils.encode_rfc2231”j" t”bŒemail.utils.format_datetime”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/email.utils.html#email.utils.format_datetime”j" t”bŒemail.utils.formataddr”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/email.utils.html#email.utils.formataddr”j" t”bŒemail.utils.formatdate”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/email.utils.html#email.utils.formatdate”j" t”bŒemail.utils.getaddresses”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/email.utils.html#email.utils.getaddresses”j" t”bŒemail.utils.localtime”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/email.utils.html#email.utils.localtime”j" t”bŒemail.utils.make_msgid”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/email.utils.html#email.utils.make_msgid”j" t”bŒemail.utils.mktime_tz”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/email.utils.html#email.utils.mktime_tz”j" t”bŒemail.utils.parseaddr”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/email.utils.html#email.utils.parseaddr”j" t”bŒemail.utils.parsedate”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/email.utils.html#email.utils.parsedate”j" t”bŒ!email.utils.parsedate_to_datetime”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/email.utils.html#email.utils.parsedate_to_datetime”j" t”bŒemail.utils.parsedate_tz”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/email.utils.html#email.utils.parsedate_tz”j" t”bŒemail.utils.quote”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/email.utils.html#email.utils.quote”j" t”bŒemail.utils.unquote”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/email.utils.html#email.utils.unquote”j" t”bŒencodings.idna.ToASCII”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/codecs.html#encodings.idna.ToASCII”j" t”bŒencodings.idna.ToUnicode”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/codecs.html#encodings.idna.ToUnicode”j" t”bŒencodings.idna.nameprep”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/codecs.html#encodings.idna.nameprep”j" t”bŒencodings.normalize_encoding”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/codecs.html#encodings.normalize_encoding”j" t”bŒencodings.search_function”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/codecs.html#encodings.search_function”j" t”bŒ)encodings.win32_code_page_search_function”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/codecs.html#encodings.win32_code_page_search_function”j" t”bŒensurepip.bootstrap”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/ensurepip.html#ensurepip.bootstrap”j" t”bŒensurepip.version”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/ensurepip.html#ensurepip.version”j" t”bŒenum.bin”j )�”(jT(jU(Œ4https://docs.python.org/3/library/enum.html#enum.bin”j" t”bŒenum.global_enum”j )�”(jT(jU(Œhttps://docs.python.org/3/library/fnmatch.html#fnmatch.fnmatch”j" t”bŒfnmatch.fnmatchcase”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/fnmatch.html#fnmatch.fnmatchcase”j" t”bŒfnmatch.translate”j )�”(jT(jU(Œ@https://docs.python.org/3/library/fnmatch.html#fnmatch.translate”j" t”bŒformat”j )�”(jT(jU(Œ7https://docs.python.org/3/library/functions.html#format”j" t”bŒfunctools.cache”j )�”(jT(jU(Œ@https://docs.python.org/3/library/functools.html#functools.cache”j" t”bŒfunctools.cached_property”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/functools.html#functools.cached_property”j" t”bŒfunctools.cmp_to_key”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/functools.html#functools.cmp_to_key”j" t”bŒfunctools.lru_cache”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/functools.html#functools.lru_cache”j" t”bŒfunctools.partial”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/functools.html#functools.partial”j" t”bŒfunctools.reduce”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/functools.html#functools.reduce”j" t”bŒfunctools.singledispatch”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/functools.html#functools.singledispatch”j" t”bŒfunctools.total_ordering”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/functools.html#functools.total_ordering”j" t”bŒfunctools.update_wrapper”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/functools.html#functools.update_wrapper”j" t”bŒfunctools.wraps”j )�”(jT(jU(Œ@https://docs.python.org/3/library/functools.html#functools.wraps”j" t”bŒ gc.collect”j )�”(jT(jU(Œ4https://docs.python.org/3/library/gc.html#gc.collect”j" t”bŒ gc.disable”j )�”(jT(jU(Œ4https://docs.python.org/3/library/gc.html#gc.disable”j" t”bŒ gc.enable”j )�”(jT(jU(Œ3https://docs.python.org/3/library/gc.html#gc.enable”j" t”bŒ gc.freeze”j )�”(jT(jU(Œ3https://docs.python.org/3/library/gc.html#gc.freeze”j" t”bŒ gc.get_count”j )�”(jT(jU(Œ6https://docs.python.org/3/library/gc.html#gc.get_count”j" t”bŒ gc.get_debug”j )�”(jT(jU(Œ6https://docs.python.org/3/library/gc.html#gc.get_debug”j" t”bŒgc.get_freeze_count”j )�”(jT(jU(Œ=https://docs.python.org/3/library/gc.html#gc.get_freeze_count”j" t”bŒgc.get_objects”j )�”(jT(jU(Œ8https://docs.python.org/3/library/gc.html#gc.get_objects”j" t”bŒgc.get_referents”j )�”(jT(jU(Œ:https://docs.python.org/3/library/gc.html#gc.get_referents”j" t”bŒgc.get_referrers”j )�”(jT(jU(Œ:https://docs.python.org/3/library/gc.html#gc.get_referrers”j" t”bŒ gc.get_stats”j )�”(jT(jU(Œ6https://docs.python.org/3/library/gc.html#gc.get_stats”j" t”bŒgc.get_threshold”j )�”(jT(jU(Œ:https://docs.python.org/3/library/gc.html#gc.get_threshold”j" t”bŒgc.is_finalized”j )�”(jT(jU(Œ9https://docs.python.org/3/library/gc.html#gc.is_finalized”j" t”bŒ gc.is_tracked”j )�”(jT(jU(Œ7https://docs.python.org/3/library/gc.html#gc.is_tracked”j" t”bŒ gc.isenabled”j )�”(jT(jU(Œ6https://docs.python.org/3/library/gc.html#gc.isenabled”j" t”bŒ gc.set_debug”j )�”(jT(jU(Œ6https://docs.python.org/3/library/gc.html#gc.set_debug”j" t”bŒgc.set_threshold”j )�”(jT(jU(Œ:https://docs.python.org/3/library/gc.html#gc.set_threshold”j" t”bŒ gc.unfreeze”j )�”(jT(jU(Œ5https://docs.python.org/3/library/gc.html#gc.unfreeze”j" t”bŒgetattr”j )�”(jT(jU(Œ8https://docs.python.org/3/library/functions.html#getattr”j" t”bŒ getopt.getopt”j )�”(jT(jU(Œ;https://docs.python.org/3/library/getopt.html#getopt.getopt”j" t”bŒgetopt.gnu_getopt”j )�”(jT(jU(Œ?https://docs.python.org/3/library/getopt.html#getopt.gnu_getopt”j" t”bŒgetpass.getpass”j )�”(jT(jU(Œ>https://docs.python.org/3/library/getpass.html#getpass.getpass”j" t”bŒgetpass.getuser”j )�”(jT(jU(Œ>https://docs.python.org/3/library/getpass.html#getpass.getuser”j" t”bŒgettext.bindtextdomain”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/gettext.html#gettext.bindtextdomain”j" t”bŒgettext.dgettext”j )�”(jT(jU(Œ?https://docs.python.org/3/library/gettext.html#gettext.dgettext”j" t”bŒgettext.dngettext”j )�”(jT(jU(Œ@https://docs.python.org/3/library/gettext.html#gettext.dngettext”j" t”bŒgettext.dnpgettext”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/gettext.html#gettext.dnpgettext”j" t”bŒgettext.dpgettext”j )�”(jT(jU(Œ@https://docs.python.org/3/library/gettext.html#gettext.dpgettext”j" t”bŒ gettext.find”j )�”(jT(jU(Œ;https://docs.python.org/3/library/gettext.html#gettext.find”j" t”bŒgettext.gettext”j )�”(jT(jU(Œ>https://docs.python.org/3/library/gettext.html#gettext.gettext”j" t”bŒgettext.install”j )�”(jT(jU(Œ>https://docs.python.org/3/library/gettext.html#gettext.install”j" t”bŒgettext.ngettext”j )�”(jT(jU(Œ?https://docs.python.org/3/library/gettext.html#gettext.ngettext”j" t”bŒgettext.npgettext”j )�”(jT(jU(Œ@https://docs.python.org/3/library/gettext.html#gettext.npgettext”j" t”bŒgettext.pgettext”j )�”(jT(jU(Œ?https://docs.python.org/3/library/gettext.html#gettext.pgettext”j" t”bŒgettext.textdomain”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/gettext.html#gettext.textdomain”j" t”bŒgettext.translation”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/gettext.html#gettext.translation”j" t”bŒ glob.escape”j )�”(jT(jU(Œ7https://docs.python.org/3/library/glob.html#glob.escape”j" t”bŒ glob.glob”j )�”(jT(jU(Œ5https://docs.python.org/3/library/glob.html#glob.glob”j" t”bŒ glob.iglob”j )�”(jT(jU(Œ6https://docs.python.org/3/library/glob.html#glob.iglob”j" t”bŒglob.translate”j )�”(jT(jU(Œ:https://docs.python.org/3/library/glob.html#glob.translate”j" t”bŒglobals”j )�”(jT(jU(Œ8https://docs.python.org/3/library/functions.html#globals”j" t”bŒ grp.getgrall”j )�”(jT(jU(Œ7https://docs.python.org/3/library/grp.html#grp.getgrall”j" t”bŒ grp.getgrgid”j )�”(jT(jU(Œ7https://docs.python.org/3/library/grp.html#grp.getgrgid”j" t”bŒ grp.getgrnam”j )�”(jT(jU(Œ7https://docs.python.org/3/library/grp.html#grp.getgrnam”j" t”bŒ gzip.compress”j )�”(jT(jU(Œ9https://docs.python.org/3/library/gzip.html#gzip.compress”j" t”bŒgzip.decompress”j )�”(jT(jU(Œ;https://docs.python.org/3/library/gzip.html#gzip.decompress”j" t”bŒ gzip.open”j )�”(jT(jU(Œ5https://docs.python.org/3/library/gzip.html#gzip.open”j" t”bŒhasattr”j )�”(jT(jU(Œ8https://docs.python.org/3/library/functions.html#hasattr”j" t”bŒhash”j )�”(jT(jU(Œ5https://docs.python.org/3/library/functions.html#hash”j" t”bŒhashlib.blake2b”j )�”(jT(jU(Œ>https://docs.python.org/3/library/hashlib.html#hashlib.blake2b”j" t”bŒhashlib.blake2s”j )�”(jT(jU(Œ>https://docs.python.org/3/library/hashlib.html#hashlib.blake2s”j" t”bŒhashlib.file_digest”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/hashlib.html#hashlib.file_digest”j" t”bŒ hashlib.md5”j )�”(jT(jU(Œ:https://docs.python.org/3/library/hashlib.html#hashlib.md5”j" t”bŒ hashlib.new”j )�”(jT(jU(Œ:https://docs.python.org/3/library/hashlib.html#hashlib.new”j" t”bŒhashlib.pbkdf2_hmac”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/hashlib.html#hashlib.pbkdf2_hmac”j" t”bŒhashlib.scrypt”j )�”(jT(jU(Œ=https://docs.python.org/3/library/hashlib.html#hashlib.scrypt”j" t”bŒ hashlib.sha1”j )�”(jT(jU(Œ;https://docs.python.org/3/library/hashlib.html#hashlib.sha1”j" t”bŒhashlib.sha224”j )�”(jT(jU(Œ=https://docs.python.org/3/library/hashlib.html#hashlib.sha224”j" t”bŒhashlib.sha256”j )�”(jT(jU(Œ=https://docs.python.org/3/library/hashlib.html#hashlib.sha256”j" t”bŒhashlib.sha384”j )�”(jT(jU(Œ=https://docs.python.org/3/library/hashlib.html#hashlib.sha384”j" t”bŒhashlib.sha3_224”j )�”(jT(jU(Œ?https://docs.python.org/3/library/hashlib.html#hashlib.sha3_224”j" t”bŒhashlib.sha3_256”j )�”(jT(jU(Œ?https://docs.python.org/3/library/hashlib.html#hashlib.sha3_256”j" t”bŒhashlib.sha3_384”j )�”(jT(jU(Œ?https://docs.python.org/3/library/hashlib.html#hashlib.sha3_384”j" t”bŒhashlib.sha3_512”j )�”(jT(jU(Œ?https://docs.python.org/3/library/hashlib.html#hashlib.sha3_512”j" t”bŒhashlib.sha512”j )�”(jT(jU(Œ=https://docs.python.org/3/library/hashlib.html#hashlib.sha512”j" t”bŒhashlib.shake_128”j )�”(jT(jU(Œ@https://docs.python.org/3/library/hashlib.html#hashlib.shake_128”j" t”bŒhashlib.shake_256”j )�”(jT(jU(Œ@https://docs.python.org/3/library/hashlib.html#hashlib.shake_256”j" t”bŒ heapq.heapify”j )�”(jT(jU(Œ:https://docs.python.org/3/library/heapq.html#heapq.heapify”j" t”bŒheapq.heapify_max”j )�”(jT(jU(Œ>https://docs.python.org/3/library/heapq.html#heapq.heapify_max”j" t”bŒ heapq.heappop”j )�”(jT(jU(Œ:https://docs.python.org/3/library/heapq.html#heapq.heappop”j" t”bŒheapq.heappop_max”j )�”(jT(jU(Œ>https://docs.python.org/3/library/heapq.html#heapq.heappop_max”j" t”bŒheapq.heappush”j )�”(jT(jU(Œ;https://docs.python.org/3/library/heapq.html#heapq.heappush”j" t”bŒheapq.heappush_max”j )�”(jT(jU(Œ?https://docs.python.org/3/library/heapq.html#heapq.heappush_max”j" t”bŒheapq.heappushpop”j )�”(jT(jU(Œ>https://docs.python.org/3/library/heapq.html#heapq.heappushpop”j" t”bŒheapq.heappushpop_max”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/heapq.html#heapq.heappushpop_max”j" t”bŒheapq.heapreplace”j )�”(jT(jU(Œ>https://docs.python.org/3/library/heapq.html#heapq.heapreplace”j" t”bŒheapq.heapreplace_max”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/heapq.html#heapq.heapreplace_max”j" t”bŒ heapq.merge”j )�”(jT(jU(Œ8https://docs.python.org/3/library/heapq.html#heapq.merge”j" t”bŒheapq.nlargest”j )�”(jT(jU(Œ;https://docs.python.org/3/library/heapq.html#heapq.nlargest”j" t”bŒheapq.nsmallest”j )�”(jT(jU(Œhttps://docs.python.org/3/library/inspect.html#inspect.getfile”j" t”bŒinspect.getframeinfo”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/inspect.html#inspect.getframeinfo”j" t”bŒinspect.getfullargspec”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/inspect.html#inspect.getfullargspec”j" t”bŒinspect.getgeneratorlocals”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/inspect.html#inspect.getgeneratorlocals”j" t”bŒinspect.getgeneratorstate”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/inspect.html#inspect.getgeneratorstate”j" t”bŒinspect.getinnerframes”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/inspect.html#inspect.getinnerframes”j" t”bŒinspect.getmembers”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/inspect.html#inspect.getmembers”j" t”bŒinspect.getmembers_static”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/inspect.html#inspect.getmembers_static”j" t”bŒinspect.getmodule”j )�”(jT(jU(Œ@https://docs.python.org/3/library/inspect.html#inspect.getmodule”j" t”bŒinspect.getmodulename”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/inspect.html#inspect.getmodulename”j" t”bŒinspect.getmro”j )�”(jT(jU(Œ=https://docs.python.org/3/library/inspect.html#inspect.getmro”j" t”bŒinspect.getouterframes”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/inspect.html#inspect.getouterframes”j" t”bŒinspect.getsource”j )�”(jT(jU(Œ@https://docs.python.org/3/library/inspect.html#inspect.getsource”j" t”bŒinspect.getsourcefile”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/inspect.html#inspect.getsourcefile”j" t”bŒinspect.getsourcelines”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/inspect.html#inspect.getsourcelines”j" t”bŒinspect.isabstract”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/inspect.html#inspect.isabstract”j" t”bŒinspect.isasyncgen”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/inspect.html#inspect.isasyncgen”j" t”bŒinspect.isasyncgenfunction”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/inspect.html#inspect.isasyncgenfunction”j" t”bŒinspect.isawaitable”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/inspect.html#inspect.isawaitable”j" t”bŒinspect.isbuiltin”j )�”(jT(jU(Œ@https://docs.python.org/3/library/inspect.html#inspect.isbuiltin”j" t”bŒinspect.isclass”j )�”(jT(jU(Œ>https://docs.python.org/3/library/inspect.html#inspect.isclass”j" t”bŒinspect.iscode”j )�”(jT(jU(Œ=https://docs.python.org/3/library/inspect.html#inspect.iscode”j" t”bŒinspect.iscoroutine”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/inspect.html#inspect.iscoroutine”j" t”bŒinspect.iscoroutinefunction”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/inspect.html#inspect.iscoroutinefunction”j" t”bŒinspect.isdatadescriptor”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/inspect.html#inspect.isdatadescriptor”j" t”bŒinspect.isframe”j )�”(jT(jU(Œ>https://docs.python.org/3/library/inspect.html#inspect.isframe”j" t”bŒinspect.isfunction”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/inspect.html#inspect.isfunction”j" t”bŒinspect.isgenerator”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/inspect.html#inspect.isgenerator”j" t”bŒinspect.isgeneratorfunction”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/inspect.html#inspect.isgeneratorfunction”j" t”bŒinspect.isgetsetdescriptor”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/inspect.html#inspect.isgetsetdescriptor”j" t”bŒinspect.ismemberdescriptor”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/inspect.html#inspect.ismemberdescriptor”j" t”bŒinspect.ismethod”j )�”(jT(jU(Œ?https://docs.python.org/3/library/inspect.html#inspect.ismethod”j" t”bŒinspect.ismethoddescriptor”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/inspect.html#inspect.ismethoddescriptor”j" t”bŒinspect.ismethodwrapper”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/inspect.html#inspect.ismethodwrapper”j" t”bŒinspect.ismodule”j )�”(jT(jU(Œ?https://docs.python.org/3/library/inspect.html#inspect.ismodule”j" t”bŒinspect.ispackage”j )�”(jT(jU(Œ@https://docs.python.org/3/library/inspect.html#inspect.ispackage”j" t”bŒinspect.isroutine”j )�”(jT(jU(Œ@https://docs.python.org/3/library/inspect.html#inspect.isroutine”j" t”bŒinspect.istraceback”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/inspect.html#inspect.istraceback”j" t”bŒinspect.markcoroutinefunction”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/inspect.html#inspect.markcoroutinefunction”j" t”bŒinspect.signature”j )�”(jT(jU(Œ@https://docs.python.org/3/library/inspect.html#inspect.signature”j" t”bŒ inspect.stack”j )�”(jT(jU(Œhttps://docs.python.org/3/library/itertools.html#itertools.tee”j" t”bŒitertools.zip_longest”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/itertools.html#itertools.zip_longest”j" t”bŒ json.dump”j )�”(jT(jU(Œ5https://docs.python.org/3/library/json.html#json.dump”j" t”bŒ json.dumps”j )�”(jT(jU(Œ6https://docs.python.org/3/library/json.html#json.dumps”j" t”bŒ json.load”j )�”(jT(jU(Œ5https://docs.python.org/3/library/json.html#json.load”j" t”bŒ json.loads”j )�”(jT(jU(Œ6https://docs.python.org/3/library/json.html#json.loads”j" t”bŒkeyword.iskeyword”j )�”(jT(jU(Œ@https://docs.python.org/3/library/keyword.html#keyword.iskeyword”j" t”bŒkeyword.issoftkeyword”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/keyword.html#keyword.issoftkeyword”j" t”bŒlen”j )�”(jT(jU(Œ4https://docs.python.org/3/library/functions.html#len”j" t”bŒlinecache.checkcache”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/linecache.html#linecache.checkcache”j" t”bŒlinecache.clearcache”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/linecache.html#linecache.clearcache”j" t”bŒlinecache.getline”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/linecache.html#linecache.getline”j" t”bŒlinecache.lazycache”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/linecache.html#linecache.lazycache”j" t”bŒ locale.atof”j )�”(jT(jU(Œ9https://docs.python.org/3/library/locale.html#locale.atof”j" t”bŒ locale.atoi”j )�”(jT(jU(Œ9https://docs.python.org/3/library/locale.html#locale.atoi”j" t”bŒlocale.bind_textdomain_codeset”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/locale.html#locale.bind_textdomain_codeset”j" t”bŒlocale.bindtextdomain”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/locale.html#locale.bindtextdomain”j" t”bŒlocale.currency”j )�”(jT(jU(Œ=https://docs.python.org/3/library/locale.html#locale.currency”j" t”bŒlocale.dcgettext”j )�”(jT(jU(Œ>https://docs.python.org/3/library/locale.html#locale.dcgettext”j" t”bŒlocale.delocalize”j )�”(jT(jU(Œ?https://docs.python.org/3/library/locale.html#locale.delocalize”j" t”bŒlocale.dgettext”j )�”(jT(jU(Œ=https://docs.python.org/3/library/locale.html#locale.dgettext”j" t”bŒlocale.format_string”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/locale.html#locale.format_string”j" t”bŒlocale.getdefaultlocale”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/locale.html#locale.getdefaultlocale”j" t”bŒlocale.getencoding”j )�”(jT(jU(Œ@https://docs.python.org/3/library/locale.html#locale.getencoding”j" t”bŒlocale.getlocale”j )�”(jT(jU(Œ>https://docs.python.org/3/library/locale.html#locale.getlocale”j" t”bŒlocale.getpreferredencoding”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/locale.html#locale.getpreferredencoding”j" t”bŒlocale.gettext”j )�”(jT(jU(Œhttps://docs.python.org/3/library/locale.html#locale.normalize”j" t”bŒlocale.setlocale”j )�”(jT(jU(Œ>https://docs.python.org/3/library/locale.html#locale.setlocale”j" t”bŒ locale.str”j )�”(jT(jU(Œ8https://docs.python.org/3/library/locale.html#locale.str”j" t”bŒlocale.strcoll”j )�”(jT(jU(Œhttps://docs.python.org/3/library/logging.html#logging.disable”j" t”bŒ logging.error”j )�”(jT(jU(Œhttps://docs.python.org/3/library/logging.html#logging.warning”j" t”bŒ lzma.compress”j )�”(jT(jU(Œ9https://docs.python.org/3/library/lzma.html#lzma.compress”j" t”bŒlzma.decompress”j )�”(jT(jU(Œ;https://docs.python.org/3/library/lzma.html#lzma.decompress”j" t”bŒlzma.is_check_supported”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/lzma.html#lzma.is_check_supported”j" t”bŒ lzma.open”j )�”(jT(jU(Œ5https://docs.python.org/3/library/lzma.html#lzma.open”j" t”bŒmap”j )�”(jT(jU(Œ4https://docs.python.org/3/library/functions.html#map”j" t”bŒ marshal.dump”j )�”(jT(jU(Œ;https://docs.python.org/3/library/marshal.html#marshal.dump”j" t”bŒ marshal.dumps”j )�”(jT(jU(Œhttps://docs.python.org/3/library/operator.html#operator.index”j" t”bŒoperator.indexOf”j )�”(jT(jU(Œ@https://docs.python.org/3/library/operator.html#operator.indexOf”j" t”bu(Œ operator.inv”j )�”(jT(jU(Œhttps://docs.python.org/3/library/operator.html#operator.truth”j" t”bŒ operator.xor”j )�”(jT(jU(Œhttps://docs.python.org/3/library/os.html#os.add_dll_directory”j" t”bŒos.chdir”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.chdir”j" t”bŒ os.chflags”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.chflags”j" t”bŒos.chmod”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.chmod”j" t”bŒos.chown”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.chown”j" t”bŒ os.chroot”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.chroot”j" t”bŒos.close”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.close”j" t”bŒ os.closerange”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.closerange”j" t”bŒ os.confstr”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.confstr”j" t”bŒos.copy_file_range”j )�”(jT(jU(Œhttps://docs.python.org/3/library/os.html#os.get_terminal_size”j" t”bŒ os.getcwd”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.getcwd”j" t”bŒ os.getcwdb”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.getcwdb”j" t”bŒ os.getegid”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.getegid”j" t”bŒ os.getenv”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.getenv”j" t”bŒ os.getenvb”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.getenvb”j" t”bŒ os.geteuid”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.geteuid”j" t”bŒ os.getgid”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.getgid”j" t”bŒos.getgrouplist”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#os.getgrouplist”j" t”bŒ os.getgroups”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.getgroups”j" t”bŒ os.getloadavg”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.getloadavg”j" t”bŒ os.getlogin”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.getlogin”j" t”bŒ os.getpgid”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.getpgid”j" t”bŒ os.getpgrp”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.getpgrp”j" t”bŒ os.getpid”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.getpid”j" t”bŒ os.getppid”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.getppid”j" t”bŒos.getpriority”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.getpriority”j" t”bŒ os.getrandom”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.getrandom”j" t”bŒ os.getresgid”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.getresgid”j" t”bŒ os.getresuid”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.getresuid”j" t”bŒ os.getsid”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.getsid”j" t”bŒ os.getuid”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.getuid”j" t”bŒ os.getxattr”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.getxattr”j" t”bŒ os.grantpt”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.grantpt”j" t”bŒ os.initgroups”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.initgroups”j" t”bŒ os.isatty”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.isatty”j" t”bŒos.kill”j )�”(jT(jU(Œ1https://docs.python.org/3/library/os.html#os.kill”j" t”bŒ os.killpg”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.killpg”j" t”bŒ os.lchflags”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.lchflags”j" t”bŒ os.lchmod”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.lchmod”j" t”bŒ os.lchown”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.lchown”j" t”bŒos.link”j )�”(jT(jU(Œ1https://docs.python.org/3/library/os.html#os.link”j" t”bŒ os.listdir”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.listdir”j" t”bŒ os.listdrives”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.listdrives”j" t”bŒ os.listmounts”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.listmounts”j" t”bŒos.listvolumes”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.listvolumes”j" t”bŒ os.listxattr”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.listxattr”j" t”bŒos.lockf”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.lockf”j" t”bŒ os.login_tty”j )�”(jT(jU(Œ6https://docs.python.org/3/library/os.html#os.login_tty”j" t”bŒos.lseek”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.lseek”j" t”bŒos.lstat”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.lstat”j" t”bŒos.major”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.major”j" t”bŒ os.makedev”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.makedev”j" t”bŒ os.makedirs”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.makedirs”j" t”bŒos.memfd_create”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#os.memfd_create”j" t”bŒos.minor”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.minor”j" t”bŒos.mkdir”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.mkdir”j" t”bŒ os.mkfifo”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.mkfifo”j" t”bŒos.mknod”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.mknod”j" t”bŒos.nice”j )�”(jT(jU(Œ1https://docs.python.org/3/library/os.html#os.nice”j" t”bŒos.open”j )�”(jT(jU(Œ1https://docs.python.org/3/library/os.html#os.open”j" t”bŒ os.openpty”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.openpty”j" t”bŒos.path.abspath”j )�”(jT(jU(Œ>https://docs.python.org/3/library/os.path.html#os.path.abspath”j" t”bŒos.path.basename”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.path.html#os.path.basename”j" t”bŒos.path.commonpath”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/os.path.html#os.path.commonpath”j" t”bŒos.path.commonprefix”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/os.path.html#os.path.commonprefix”j" t”bŒos.path.dirname”j )�”(jT(jU(Œ>https://docs.python.org/3/library/os.path.html#os.path.dirname”j" t”bŒos.path.exists”j )�”(jT(jU(Œ=https://docs.python.org/3/library/os.path.html#os.path.exists”j" t”bŒos.path.expanduser”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/os.path.html#os.path.expanduser”j" t”bŒos.path.expandvars”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/os.path.html#os.path.expandvars”j" t”bŒos.path.getatime”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.path.html#os.path.getatime”j" t”bŒos.path.getctime”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.path.html#os.path.getctime”j" t”bŒos.path.getmtime”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.path.html#os.path.getmtime”j" t”bŒos.path.getsize”j )�”(jT(jU(Œ>https://docs.python.org/3/library/os.path.html#os.path.getsize”j" t”bŒ os.path.isabs”j )�”(jT(jU(Œhttps://docs.python.org/3/library/os.path.html#os.path.ismount”j" t”bŒos.path.isreserved”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/os.path.html#os.path.isreserved”j" t”bŒ os.path.join”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.path.html#os.path.join”j" t”bŒos.path.lexists”j )�”(jT(jU(Œ>https://docs.python.org/3/library/os.path.html#os.path.lexists”j" t”bŒos.path.normcase”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.path.html#os.path.normcase”j" t”bŒos.path.normpath”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.path.html#os.path.normpath”j" t”bŒos.path.realpath”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.path.html#os.path.realpath”j" t”bŒos.path.relpath”j )�”(jT(jU(Œ>https://docs.python.org/3/library/os.path.html#os.path.relpath”j" t”bŒos.path.samefile”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.path.html#os.path.samefile”j" t”bŒos.path.sameopenfile”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/os.path.html#os.path.sameopenfile”j" t”bŒos.path.samestat”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.path.html#os.path.samestat”j" t”bŒ os.path.split”j )�”(jT(jU(Œhttps://docs.python.org/3/library/os.html#os.process_cpu_count”j" t”bŒ os.ptsname”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.ptsname”j" t”bŒ os.putenv”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.putenv”j" t”bŒ os.pwrite”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.pwrite”j" t”bŒ os.pwritev”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.pwritev”j" t”bŒos.read”j )�”(jT(jU(Œ1https://docs.python.org/3/library/os.html#os.read”j" t”bŒ os.readinto”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.readinto”j" t”bŒ os.readlink”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.readlink”j" t”bŒos.readv”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.readv”j" t”bŒos.register_at_fork”j )�”(jT(jU(Œ=https://docs.python.org/3/library/os.html#os.register_at_fork”j" t”bŒos.reload_environ”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.reload_environ”j" t”bŒ os.remove”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.remove”j" t”bŒ os.removedirs”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#os.removedirs”j" t”bŒos.removexattr”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.removexattr”j" t”bŒ os.rename”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#os.rename”j" t”bŒ os.renames”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.renames”j" t”bŒ os.replace”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.replace”j" t”bŒos.rmdir”j )�”(jT(jU(Œ2https://docs.python.org/3/library/os.html#os.rmdir”j" t”bŒ os.scandir”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os.scandir”j" t”bŒos.sched_get_priority_max”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/os.html#os.sched_get_priority_max”j" t”bŒos.sched_get_priority_min”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/os.html#os.sched_get_priority_min”j" t”bŒos.sched_getaffinity”j )�”(jT(jU(Œ>https://docs.python.org/3/library/os.html#os.sched_getaffinity”j" t”bŒos.sched_getparam”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.sched_getparam”j" t”bŒos.sched_getscheduler”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.html#os.sched_getscheduler”j" t”bŒos.sched_rr_get_interval”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/os.html#os.sched_rr_get_interval”j" t”bŒos.sched_setaffinity”j )�”(jT(jU(Œ>https://docs.python.org/3/library/os.html#os.sched_setaffinity”j" t”bŒos.sched_setparam”j )�”(jT(jU(Œ;https://docs.python.org/3/library/os.html#os.sched_setparam”j" t”bŒos.sched_setscheduler”j )�”(jT(jU(Œ?https://docs.python.org/3/library/os.html#os.sched_setscheduler”j" t”bŒos.sched_yield”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#os.sched_yield”j" t”bŒ os.sendfile”j )�”(jT(jU(Œ5https://docs.python.org/3/library/os.html#os.sendfile”j" t”bŒos.set_blocking”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#os.set_blocking”j" t”bŒos.set_handle_inheritable”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/os.html#os.set_handle_inheritable”j" t”bŒos.set_inheritable”j )�”(jT(jU(Œhttps://docs.python.org/3/library/pdb.html#pdb.set_trace_async”j" t”bŒ pickle.dump”j )�”(jT(jU(Œ9https://docs.python.org/3/library/pickle.html#pickle.dump”j" t”bŒ pickle.dumps”j )�”(jT(jU(Œ:https://docs.python.org/3/library/pickle.html#pickle.dumps”j" t”bŒ pickle.load”j )�”(jT(jU(Œ9https://docs.python.org/3/library/pickle.html#pickle.load”j" t”bŒ pickle.loads”j )�”(jT(jU(Œ:https://docs.python.org/3/library/pickle.html#pickle.loads”j" t”bŒpickletools.dis”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/pickletools.html#pickletools.dis”j" t”bŒpickletools.genops”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/pickletools.html#pickletools.genops”j" t”bŒpickletools.optimize”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/pickletools.html#pickletools.optimize”j" t”bŒpkgutil.extend_path”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/pkgutil.html#pkgutil.extend_path”j" t”bŒpkgutil.get_data”j )�”(jT(jU(Œ?https://docs.python.org/3/library/pkgutil.html#pkgutil.get_data”j" t”bŒpkgutil.get_importer”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/pkgutil.html#pkgutil.get_importer”j" t”bŒpkgutil.iter_importers”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/pkgutil.html#pkgutil.iter_importers”j" t”bŒpkgutil.iter_modules”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/pkgutil.html#pkgutil.iter_modules”j" t”bŒpkgutil.resolve_name”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/pkgutil.html#pkgutil.resolve_name”j" t”bŒpkgutil.walk_packages”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/pkgutil.html#pkgutil.walk_packages”j" t”bŒplatform.android_ver”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/platform.html#platform.android_ver”j" t”bŒplatform.architecture”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/platform.html#platform.architecture”j" t”bŒplatform.freedesktop_os_release”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/platform.html#platform.freedesktop_os_release”j" t”bŒplatform.invalidate_caches”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/platform.html#platform.invalidate_caches”j" t”bŒplatform.ios_ver”j )�”(jT(jU(Œ@https://docs.python.org/3/library/platform.html#platform.ios_ver”j" t”bŒplatform.java_ver”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/platform.html#platform.java_ver”j" t”bŒplatform.libc_ver”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/platform.html#platform.libc_ver”j" t”bŒplatform.mac_ver”j )�”(jT(jU(Œ@https://docs.python.org/3/library/platform.html#platform.mac_ver”j" t”bŒplatform.machine”j )�”(jT(jU(Œ@https://docs.python.org/3/library/platform.html#platform.machine”j" t”bŒ platform.node”j )�”(jT(jU(Œ=https://docs.python.org/3/library/platform.html#platform.node”j" t”bŒplatform.platform”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/platform.html#platform.platform”j" t”bŒplatform.processor”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/platform.html#platform.processor”j" t”bŒplatform.python_branch”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/platform.html#platform.python_branch”j" t”bŒplatform.python_build”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/platform.html#platform.python_build”j" t”bŒplatform.python_compiler”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/platform.html#platform.python_compiler”j" t”bŒplatform.python_implementation”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/platform.html#platform.python_implementation”j" t”bŒplatform.python_revision”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/platform.html#platform.python_revision”j" t”bŒplatform.python_version”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/platform.html#platform.python_version”j" t”bŒplatform.python_version_tuple”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/platform.html#platform.python_version_tuple”j" t”bŒplatform.release”j )�”(jT(jU(Œ@https://docs.python.org/3/library/platform.html#platform.release”j" t”bŒplatform.system”j )�”(jT(jU(Œ?https://docs.python.org/3/library/platform.html#platform.system”j" t”bŒplatform.system_alias”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/platform.html#platform.system_alias”j" t”bŒplatform.uname”j )�”(jT(jU(Œ>https://docs.python.org/3/library/platform.html#platform.uname”j" t”bŒplatform.version”j )�”(jT(jU(Œ@https://docs.python.org/3/library/platform.html#platform.version”j" t”bŒplatform.win32_edition”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/platform.html#platform.win32_edition”j" t”bŒplatform.win32_is_iot”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/platform.html#platform.win32_is_iot”j" t”bŒplatform.win32_ver”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/platform.html#platform.win32_ver”j" t”bŒ plistlib.dump”j )�”(jT(jU(Œ=https://docs.python.org/3/library/plistlib.html#plistlib.dump”j" t”bŒplistlib.dumps”j )�”(jT(jU(Œ>https://docs.python.org/3/library/plistlib.html#plistlib.dumps”j" t”bŒ plistlib.load”j )�”(jT(jU(Œ=https://docs.python.org/3/library/plistlib.html#plistlib.load”j" t”bŒplistlib.loads”j )�”(jT(jU(Œ>https://docs.python.org/3/library/plistlib.html#plistlib.loads”j" t”bŒpow”j )�”(jT(jU(Œ4https://docs.python.org/3/library/functions.html#pow”j" t”bŒpprint.isreadable”j )�”(jT(jU(Œ?https://docs.python.org/3/library/pprint.html#pprint.isreadable”j" t”bŒpprint.isrecursive”j )�”(jT(jU(Œ@https://docs.python.org/3/library/pprint.html#pprint.isrecursive”j" t”bŒpprint.pformat”j )�”(jT(jU(Œhttps://docs.python.org/3/library/random.html#random.randbytes”j" t”bŒrandom.randint”j )�”(jT(jU(Œhttps://docs.python.org/3/library/random.html#random.randrange”j" t”bŒ random.sample”j )�”(jT(jU(Œ;https://docs.python.org/3/library/random.html#random.sample”j" t”bŒ random.seed”j )�”(jT(jU(Œ9https://docs.python.org/3/library/random.html#random.seed”j" t”bŒrandom.setstate”j )�”(jT(jU(Œ=https://docs.python.org/3/library/random.html#random.setstate”j" t”bŒrandom.shuffle”j )�”(jT(jU(Œhttps://docs.python.org/3/library/signal.html#signal.getitimer”j" t”bŒsignal.getsignal”j )�”(jT(jU(Œ>https://docs.python.org/3/library/signal.html#signal.getsignal”j" t”bŒ signal.pause”j )�”(jT(jU(Œ:https://docs.python.org/3/library/signal.html#signal.pause”j" t”bŒsignal.pidfd_send_signal”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/signal.html#signal.pidfd_send_signal”j" t”bŒsignal.pthread_kill”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/signal.html#signal.pthread_kill”j" t”bŒsignal.pthread_sigmask”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/signal.html#signal.pthread_sigmask”j" t”bŒsignal.raise_signal”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/signal.html#signal.raise_signal”j" t”bŒsignal.set_wakeup_fd”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/signal.html#signal.set_wakeup_fd”j" t”bŒsignal.setitimer”j )�”(jT(jU(Œ>https://docs.python.org/3/library/signal.html#signal.setitimer”j" t”bŒsignal.siginterrupt”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/signal.html#signal.siginterrupt”j" t”bŒ signal.signal”j )�”(jT(jU(Œ;https://docs.python.org/3/library/signal.html#signal.signal”j" t”bŒsignal.sigpending”j )�”(jT(jU(Œ?https://docs.python.org/3/library/signal.html#signal.sigpending”j" t”bŒsignal.sigtimedwait”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/signal.html#signal.sigtimedwait”j" t”bŒsignal.sigwait”j )�”(jT(jU(Œhttps://docs.python.org/3/library/signal.html#signal.strsignal”j" t”bŒsignal.valid_signals”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/signal.html#signal.valid_signals”j" t”bŒsite.addsitedir”j )�”(jT(jU(Œ;https://docs.python.org/3/library/site.html#site.addsitedir”j" t”bŒsite.getsitepackages”j )�”(jT(jU(Œ@https://docs.python.org/3/library/site.html#site.getsitepackages”j" t”bŒsite.getuserbase”j )�”(jT(jU(Œhttps://docs.python.org/3/library/socket.html#socket.fromshare”j" t”bŒsocket.getaddrinfo”j )�”(jT(jU(Œ@https://docs.python.org/3/library/socket.html#socket.getaddrinfo”j" t”bŒsocket.getdefaulttimeout”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/socket.html#socket.getdefaulttimeout”j" t”bŒsocket.getfqdn”j )�”(jT(jU(Œhttps://docs.python.org/3/library/socket.html#socket.inet_aton”j" t”bŒsocket.inet_ntoa”j )�”(jT(jU(Œ>https://docs.python.org/3/library/socket.html#socket.inet_ntoa”j" t”bŒsocket.inet_ntop”j )�”(jT(jU(Œ>https://docs.python.org/3/library/socket.html#socket.inet_ntop”j" t”bŒsocket.inet_pton”j )�”(jT(jU(Œ>https://docs.python.org/3/library/socket.html#socket.inet_pton”j" t”bŒ socket.ntohl”j )�”(jT(jU(Œ:https://docs.python.org/3/library/socket.html#socket.ntohl”j" t”bŒ socket.ntohs”j )�”(jT(jU(Œ:https://docs.python.org/3/library/socket.html#socket.ntohs”j" t”bŒsocket.recv_fds”j )�”(jT(jU(Œ=https://docs.python.org/3/library/socket.html#socket.recv_fds”j" t”bŒsocket.send_fds”j )�”(jT(jU(Œ=https://docs.python.org/3/library/socket.html#socket.send_fds”j" t”bŒsocket.setdefaulttimeout”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/socket.html#socket.setdefaulttimeout”j" t”bŒsocket.sethostname”j )�”(jT(jU(Œ@https://docs.python.org/3/library/socket.html#socket.sethostname”j" t”bŒsocket.socketpair”j )�”(jT(jU(Œ?https://docs.python.org/3/library/socket.html#socket.socketpair”j" t”bŒsorted”j )�”(jT(jU(Œ7https://docs.python.org/3/library/functions.html#sorted”j" t”bŒsqlite3.complete_statement”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/sqlite3.html#sqlite3.complete_statement”j" t”bŒsqlite3.connect”j )�”(jT(jU(Œ>https://docs.python.org/3/library/sqlite3.html#sqlite3.connect”j" t”bŒ"sqlite3.enable_callback_tracebacks”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/sqlite3.html#sqlite3.enable_callback_tracebacks”j" t”bŒsqlite3.register_adapter”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/sqlite3.html#sqlite3.register_adapter”j" t”bŒsqlite3.register_converter”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/sqlite3.html#sqlite3.register_converter”j" t”bŒssl.DER_cert_to_PEM_cert”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/ssl.html#ssl.DER_cert_to_PEM_cert”j" t”bŒssl.PEM_cert_to_DER_cert”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/ssl.html#ssl.PEM_cert_to_DER_cert”j" t”bŒ ssl.RAND_add”j )�”(jT(jU(Œ7https://docs.python.org/3/library/ssl.html#ssl.RAND_add”j" t”bŒssl.RAND_bytes”j )�”(jT(jU(Œ9https://docs.python.org/3/library/ssl.html#ssl.RAND_bytes”j" t”bŒssl.RAND_status”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ssl.html#ssl.RAND_status”j" t”bŒssl.cert_time_to_seconds”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/ssl.html#ssl.cert_time_to_seconds”j" t”bŒssl.create_default_context”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ssl.html#ssl.create_default_context”j" t”bŒssl.enum_certificates”j )�”(jT(jU(Œ@https://docs.python.org/3/library/ssl.html#ssl.enum_certificates”j" t”bŒ ssl.enum_crls”j )�”(jT(jU(Œ8https://docs.python.org/3/library/ssl.html#ssl.enum_crls”j" t”bŒssl.get_default_verify_paths”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/ssl.html#ssl.get_default_verify_paths”j" t”bŒssl.get_server_certificate”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ssl.html#ssl.get_server_certificate”j" t”bŒ stat.S_IFMT”j )�”(jT(jU(Œ7https://docs.python.org/3/library/stat.html#stat.S_IFMT”j" t”bŒ stat.S_IMODE”j )�”(jT(jU(Œ8https://docs.python.org/3/library/stat.html#stat.S_IMODE”j" t”bŒ stat.S_ISBLK”j )�”(jT(jU(Œ8https://docs.python.org/3/library/stat.html#stat.S_ISBLK”j" t”bŒ stat.S_ISCHR”j )�”(jT(jU(Œ8https://docs.python.org/3/library/stat.html#stat.S_ISCHR”j" t”bŒ stat.S_ISDIR”j )�”(jT(jU(Œ8https://docs.python.org/3/library/stat.html#stat.S_ISDIR”j" t”bŒ stat.S_ISDOOR”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stat.html#stat.S_ISDOOR”j" t”bŒ stat.S_ISFIFO”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stat.html#stat.S_ISFIFO”j" t”bŒ stat.S_ISLNK”j )�”(jT(jU(Œ8https://docs.python.org/3/library/stat.html#stat.S_ISLNK”j" t”bŒ stat.S_ISPORT”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stat.html#stat.S_ISPORT”j" t”bŒ stat.S_ISREG”j )�”(jT(jU(Œ8https://docs.python.org/3/library/stat.html#stat.S_ISREG”j" t”bŒ stat.S_ISSOCK”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stat.html#stat.S_ISSOCK”j" t”bŒ stat.S_ISWHT”j )�”(jT(jU(Œ8https://docs.python.org/3/library/stat.html#stat.S_ISWHT”j" t”bŒ stat.filemode”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stat.html#stat.filemode”j" t”bŒ staticmethod”j )�”(jT(jU(Œ=https://docs.python.org/3/library/functions.html#staticmethod”j" t”bŒstatistics.correlation”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/statistics.html#statistics.correlation”j" t”bŒstatistics.covariance”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/statistics.html#statistics.covariance”j" t”bŒstatistics.fmean”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/statistics.html#statistics.fmean”j" t”bŒstatistics.geometric_mean”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/statistics.html#statistics.geometric_mean”j" t”bŒstatistics.harmonic_mean”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/statistics.html#statistics.harmonic_mean”j" t”bŒstatistics.kde”j )�”(jT(jU(Œ@https://docs.python.org/3/library/statistics.html#statistics.kde”j" t”bŒstatistics.kde_random”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/statistics.html#statistics.kde_random”j" t”bŒstatistics.linear_regression”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/statistics.html#statistics.linear_regression”j" t”bŒstatistics.mean”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/statistics.html#statistics.mean”j" t”bŒstatistics.median”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/statistics.html#statistics.median”j" t”bŒstatistics.median_grouped”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/statistics.html#statistics.median_grouped”j" t”bŒstatistics.median_high”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/statistics.html#statistics.median_high”j" t”bŒstatistics.median_low”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/statistics.html#statistics.median_low”j" t”bŒstatistics.mode”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/statistics.html#statistics.mode”j" t”bŒstatistics.multimode”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/statistics.html#statistics.multimode”j" t”bŒstatistics.pstdev”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/statistics.html#statistics.pstdev”j" t”bŒstatistics.pvariance”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/statistics.html#statistics.pvariance”j" t”bŒstatistics.quantiles”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/statistics.html#statistics.quantiles”j" t”bŒstatistics.stdev”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/statistics.html#statistics.stdev”j" t”bŒstatistics.variance”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/statistics.html#statistics.variance”j" t”bŒstring.capwords”j )�”(jT(jU(Œ=https://docs.python.org/3/library/string.html#string.capwords”j" t”bŒstring.templatelib.convert”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/string.templatelib.html#string.templatelib.convert”j" t”bŒstringprep.in_table_a1”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_a1”j" t”bŒstringprep.in_table_b1”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_b1”j" t”bŒstringprep.in_table_c11”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c11”j" t”bŒstringprep.in_table_c11_c12”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c11_c12”j" t”bŒstringprep.in_table_c12”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c12”j" t”bŒstringprep.in_table_c21”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c21”j" t”bŒstringprep.in_table_c21_c22”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c21_c22”j" t”bŒstringprep.in_table_c22”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c22”j" t”bŒstringprep.in_table_c3”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c3”j" t”bŒstringprep.in_table_c4”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c4”j" t”bŒstringprep.in_table_c5”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c5”j" t”bŒstringprep.in_table_c6”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c6”j" t”bŒstringprep.in_table_c7”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c7”j" t”bŒstringprep.in_table_c8”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c8”j" t”bŒstringprep.in_table_c9”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_c9”j" t”bŒstringprep.in_table_d1”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_d1”j" t”bŒstringprep.in_table_d2”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/stringprep.html#stringprep.in_table_d2”j" t”bŒstringprep.map_table_b2”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/stringprep.html#stringprep.map_table_b2”j" t”bŒstringprep.map_table_b3”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/stringprep.html#stringprep.map_table_b3”j" t”bŒstruct.calcsize”j )�”(jT(jU(Œ=https://docs.python.org/3/library/struct.html#struct.calcsize”j" t”bŒstruct.iter_unpack”j )�”(jT(jU(Œ@https://docs.python.org/3/library/struct.html#struct.iter_unpack”j" t”bŒ struct.pack”j )�”(jT(jU(Œ9https://docs.python.org/3/library/struct.html#struct.pack”j" t”bŒstruct.pack_into”j )�”(jT(jU(Œ>https://docs.python.org/3/library/struct.html#struct.pack_into”j" t”bŒ struct.unpack”j )�”(jT(jU(Œ;https://docs.python.org/3/library/struct.html#struct.unpack”j" t”bŒstruct.unpack_from”j )�”(jT(jU(Œ@https://docs.python.org/3/library/struct.html#struct.unpack_from”j" t”bŒsubprocess.call”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/subprocess.html#subprocess.call”j" t”bŒsubprocess.check_call”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/subprocess.html#subprocess.check_call”j" t”bŒsubprocess.check_output”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/subprocess.html#subprocess.check_output”j" t”bŒsubprocess.getoutput”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/subprocess.html#subprocess.getoutput”j" t”bŒsubprocess.getstatusoutput”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/subprocess.html#subprocess.getstatusoutput”j" t”bŒsubprocess.run”j )�”(jT(jU(Œ@https://docs.python.org/3/library/subprocess.html#subprocess.run”j" t”bŒsum”j )�”(jT(jU(Œ4https://docs.python.org/3/library/functions.html#sum”j" t”bŒsymtable.symtable”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/symtable.html#symtable.symtable”j" t”bŒsys._clear_internal_caches”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/sys.html#sys._clear_internal_caches”j" t”bŒsys._clear_type_cache”j )�”(jT(jU(Œ@https://docs.python.org/3/library/sys.html#sys._clear_type_cache”j" t”bŒsys._current_exceptions”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/sys.html#sys._current_exceptions”j" t”bŒsys._current_frames”j )�”(jT(jU(Œ>https://docs.python.org/3/library/sys.html#sys._current_frames”j" t”bŒsys._debugmallocstats”j )�”(jT(jU(Œ@https://docs.python.org/3/library/sys.html#sys._debugmallocstats”j" t”bŒ"sys._enablelegacywindowsfsencoding”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/sys.html#sys._enablelegacywindowsfsencoding”j" t”bŒ sys._getframe”j )�”(jT(jU(Œ8https://docs.python.org/3/library/sys.html#sys._getframe”j" t”bŒsys._getframemodulename”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/sys.html#sys._getframemodulename”j" t”bŒsys._is_gil_enabled”j )�”(jT(jU(Œ>https://docs.python.org/3/library/sys.html#sys._is_gil_enabled”j" t”bŒsys._is_immortal”j )�”(jT(jU(Œ;https://docs.python.org/3/library/sys.html#sys._is_immortal”j" t”bŒsys._is_interned”j )�”(jT(jU(Œ;https://docs.python.org/3/library/sys.html#sys._is_interned”j" t”bŒsys._jit.is_active”j )�”(jT(jU(Œ=https://docs.python.org/3/library/sys.html#sys._jit.is_active”j" t”bŒsys._jit.is_available”j )�”(jT(jU(Œ@https://docs.python.org/3/library/sys.html#sys._jit.is_available”j" t”bŒsys._jit.is_enabled”j )�”(jT(jU(Œ>https://docs.python.org/3/library/sys.html#sys._jit.is_enabled”j" t”bŒsys.activate_stack_trampoline”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/sys.html#sys.activate_stack_trampoline”j" t”bŒsys.addaudithook”j )�”(jT(jU(Œ;https://docs.python.org/3/library/sys.html#sys.addaudithook”j" t”bŒ sys.audit”j )�”(jT(jU(Œ4https://docs.python.org/3/library/sys.html#sys.audit”j" t”bŒsys.breakpointhook”j )�”(jT(jU(Œ=https://docs.python.org/3/library/sys.html#sys.breakpointhook”j" t”bŒsys.call_tracing”j )�”(jT(jU(Œ;https://docs.python.org/3/library/sys.html#sys.call_tracing”j" t”bŒsys.deactivate_stack_trampoline”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/sys.html#sys.deactivate_stack_trampoline”j" t”bŒsys.displayhook”j )�”(jT(jU(Œ:https://docs.python.org/3/library/sys.html#sys.displayhook”j" t”bŒ sys.exc_info”j )�”(jT(jU(Œ7https://docs.python.org/3/library/sys.html#sys.exc_info”j" t”bŒsys.excepthook”j )�”(jT(jU(Œ9https://docs.python.org/3/library/sys.html#sys.excepthook”j" t”bŒ sys.exception”j )�”(jT(jU(Œ8https://docs.python.org/3/library/sys.html#sys.exception”j" t”bŒsys.exit”j )�”(jT(jU(Œ3https://docs.python.org/3/library/sys.html#sys.exit”j" t”bŒsys.get_asyncgen_hooks”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/sys.html#sys.get_asyncgen_hooks”j" t”bŒ'sys.get_coroutine_origin_tracking_depth”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/sys.html#sys.get_coroutine_origin_tracking_depth”j" t”bŒsys.get_int_max_str_digits”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/sys.html#sys.get_int_max_str_digits”j" t”bŒsys.getallocatedblocks”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/sys.html#sys.getallocatedblocks”j" t”bŒsys.getandroidapilevel”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/sys.html#sys.getandroidapilevel”j" t”bŒsys.getdefaultencoding”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/sys.html#sys.getdefaultencoding”j" t”bŒsys.getdlopenflags”j )�”(jT(jU(Œ=https://docs.python.org/3/library/sys.html#sys.getdlopenflags”j" t”bŒsys.getfilesystemencodeerrors”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/sys.html#sys.getfilesystemencodeerrors”j" t”bŒsys.getfilesystemencoding”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/sys.html#sys.getfilesystemencoding”j" t”bŒsys.getobjects”j )�”(jT(jU(Œ9https://docs.python.org/3/library/sys.html#sys.getobjects”j" t”bŒsys.getprofile”j )�”(jT(jU(Œ9https://docs.python.org/3/library/sys.html#sys.getprofile”j" t”bŒsys.getrecursionlimit”j )�”(jT(jU(Œ@https://docs.python.org/3/library/sys.html#sys.getrecursionlimit”j" t”bŒsys.getrefcount”j )�”(jT(jU(Œ:https://docs.python.org/3/library/sys.html#sys.getrefcount”j" t”bŒ sys.getsizeof”j )�”(jT(jU(Œ8https://docs.python.org/3/library/sys.html#sys.getsizeof”j" t”bŒsys.getswitchinterval”j )�”(jT(jU(Œ@https://docs.python.org/3/library/sys.html#sys.getswitchinterval”j" t”bŒ sys.gettrace”j )�”(jT(jU(Œ7https://docs.python.org/3/library/sys.html#sys.gettrace”j" t”bŒsys.getunicodeinternedsize”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/sys.html#sys.getunicodeinternedsize”j" t”bŒsys.getwindowsversion”j )�”(jT(jU(Œ@https://docs.python.org/3/library/sys.html#sys.getwindowsversion”j" t”bŒ sys.intern”j )�”(jT(jU(Œ5https://docs.python.org/3/library/sys.html#sys.intern”j" t”bŒsys.is_finalizing”j )�”(jT(jU(Œhttps://docs.python.org/3/library/tabnanny.html#tabnanny.check”j" t”bŒtabnanny.process_tokens”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/tabnanny.html#tabnanny.process_tokens”j" t”bŒtarfile.data_filter”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tarfile.html#tarfile.data_filter”j" t”bŒtarfile.fully_trusted_filter”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/tarfile.html#tarfile.fully_trusted_filter”j" t”bŒtarfile.is_tarfile”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/tarfile.html#tarfile.is_tarfile”j" t”bŒ tarfile.open”j )�”(jT(jU(Œ;https://docs.python.org/3/library/tarfile.html#tarfile.open”j" t”bŒtarfile.tar_filter”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/tarfile.html#tarfile.tar_filter”j" t”bŒtempfile.NamedTemporaryFile”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/tempfile.html#tempfile.NamedTemporaryFile”j" t”bŒtempfile.TemporaryFile”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/tempfile.html#tempfile.TemporaryFile”j" t”bŒtempfile.gettempdir”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/tempfile.html#tempfile.gettempdir”j" t”bŒtempfile.gettempdirb”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/tempfile.html#tempfile.gettempdirb”j" t”bŒtempfile.gettempprefix”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/tempfile.html#tempfile.gettempprefix”j" t”bŒtempfile.gettempprefixb”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/tempfile.html#tempfile.gettempprefixb”j" t”bŒtempfile.mkdtemp”j )�”(jT(jU(Œ@https://docs.python.org/3/library/tempfile.html#tempfile.mkdtemp”j" t”bŒtempfile.mkstemp”j )�”(jT(jU(Œ@https://docs.python.org/3/library/tempfile.html#tempfile.mkstemp”j" t”bŒtempfile.mktemp”j )�”(jT(jU(Œ?https://docs.python.org/3/library/tempfile.html#tempfile.mktemp”j" t”bŒtermios.tcdrain”j )�”(jT(jU(Œ>https://docs.python.org/3/library/termios.html#termios.tcdrain”j" t”bŒtermios.tcflow”j )�”(jT(jU(Œ=https://docs.python.org/3/library/termios.html#termios.tcflow”j" t”bŒtermios.tcflush”j )�”(jT(jU(Œ>https://docs.python.org/3/library/termios.html#termios.tcflush”j" t”bŒtermios.tcgetattr”j )�”(jT(jU(Œ@https://docs.python.org/3/library/termios.html#termios.tcgetattr”j" t”bŒtermios.tcgetwinsize”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/termios.html#termios.tcgetwinsize”j" t”bŒtermios.tcsendbreak”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/termios.html#termios.tcsendbreak”j" t”bŒtermios.tcsetattr”j )�”(jT(jU(Œ@https://docs.python.org/3/library/termios.html#termios.tcsetattr”j" t”bŒtermios.tcsetwinsize”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/termios.html#termios.tcsetwinsize”j" t”bŒ&test.support.adjust_int_max_str_digits”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/test.html#test.support.adjust_int_max_str_digits”j" t”bŒtest.support.anticipate_failure”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/test.html#test.support.anticipate_failure”j" t”bŒ(test.support.args_from_interpreter_flags”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/test.html#test.support.args_from_interpreter_flags”j" t”bŒtest.support.bigaddrspacetest”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/test.html#test.support.bigaddrspacetest”j" t”bŒtest.support.bigmemtest”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/test.html#test.support.bigmemtest”j" t”bŒtest.support.busy_retry”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/test.html#test.support.busy_retry”j" t”bŒtest.support.calcobjsize”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/test.html#test.support.calcobjsize”j" t”bŒtest.support.calcvobjsize”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/test.html#test.support.calcvobjsize”j" t”bŒtest.support.captured_stderr”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/test.html#test.support.captured_stderr”j" t”bŒtest.support.captured_stdin”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/test.html#test.support.captured_stdin”j" t”bŒtest.support.captured_stdout”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/test.html#test.support.captured_stdout”j" t”bŒ'test.support.catch_unraisable_exception”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/test.html#test.support.catch_unraisable_exception”j" t”bŒtest.support.check__all__”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/test.html#test.support.check__all__”j" t”bŒ)test.support.check_disallow_instantiation”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/test.html#test.support.check_disallow_instantiation”j" t”bŒ'test.support.check_free_after_iterating”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/test.html#test.support.check_free_after_iterating”j" t”bŒtest.support.check_impl_detail”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/test.html#test.support.check_impl_detail”j" t”bŒtest.support.check_syntax_error”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/test.html#test.support.check_syntax_error”j" t”bŒtest.support.checksizeof”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/test.html#test.support.checksizeof”j" t”bŒtest.support.cpython_only”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/test.html#test.support.cpython_only”j" t”bŒ test.support.detect_api_mismatch”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/test.html#test.support.detect_api_mismatch”j" t”bŒ!test.support.disable_faulthandler”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/test.html#test.support.disable_faulthandler”j" t”bŒtest.support.disable_gc”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/test.html#test.support.disable_gc”j" t”bŒtest.support.findfile”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/test.html#test.support.findfile”j" t”bŒtest.support.flush_std_streams”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/test.html#test.support.flush_std_streams”j" t”bŒtest.support.gc_collect”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/test.html#test.support.gc_collect”j" t”bŒtest.support.get_attribute”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/test.html#test.support.get_attribute”j" t”bŒ test.support.get_original_stdout”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/test.html#test.support.get_original_stdout”j" t”bŒtest.support.get_pagesize”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/test.html#test.support.get_pagesize”j" t”bŒtest.support.get_resource_value”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/test.html#test.support.get_resource_value”j" t”bŒtest.support.impl_detail”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/test.html#test.support.impl_detail”j" t”bŒ!test.support.import_helper.forget”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/test.html#test.support.import_helper.forget”j" t”bŒ.test.support.import_helper.import_fresh_module”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/test.html#test.support.import_helper.import_fresh_module”j" t”bŒ(test.support.import_helper.import_module”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/test.html#test.support.import_helper.import_module”j" t”bŒ*test.support.import_helper.make_legacy_pyc”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/test.html#test.support.import_helper.make_legacy_pyc”j" t”bŒ*test.support.import_helper.modules_cleanup”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/test.html#test.support.import_helper.modules_cleanup”j" t”bŒ(test.support.import_helper.modules_setup”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/test.html#test.support.import_helper.modules_setup”j" t”bŒ!test.support.import_helper.unload”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/test.html#test.support.import_helper.unload”j" t”bŒ test.support.is_resource_enabled”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/test.html#test.support.is_resource_enabled”j" t”bŒtest.support.linked_to_musl”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/test.html#test.support.linked_to_musl”j" t”bŒtest.support.load_package_tests”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/test.html#test.support.load_package_tests”j" t”bŒ(test.support.missing_compiler_executable”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/test.html#test.support.missing_compiler_executable”j" t”bŒtest.support.no_tracing”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/test.html#test.support.no_tracing”j" t”bŒtest.support.open_urlresource”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/test.html#test.support.open_urlresource”j" t”bŒ.test.support.optim_args_from_interpreter_flags”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/test.html#test.support.optim_args_from_interpreter_flags”j" t”bŒ"test.support.os_helper.can_symlink”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/test.html#test.support.os_helper.can_symlink”j" t”bŒ test.support.os_helper.can_xattr”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/test.html#test.support.os_helper.can_xattr”j" t”bŒ!test.support.os_helper.change_cwd”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/test.html#test.support.os_helper.change_cwd”j" t”bŒ(test.support.os_helper.create_empty_file”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/test.html#test.support.os_helper.create_empty_file”j" t”bŒtest.support.os_helper.fd_count”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/test.html#test.support.os_helper.fd_count”j" t”bŒ-test.support.os_helper.fs_is_case_insensitive”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/test.html#test.support.os_helper.fs_is_case_insensitive”j" t”bŒ"test.support.os_helper.make_bad_fd”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/test.html#test.support.os_helper.make_bad_fd”j" t”bŒtest.support.os_helper.rmdir”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/test.html#test.support.os_helper.rmdir”j" t”bŒtest.support.os_helper.rmtree”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/test.html#test.support.os_helper.rmtree”j" t”bŒ*test.support.os_helper.skip_unless_symlink”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/test.html#test.support.os_helper.skip_unless_symlink”j" t”bŒ(test.support.os_helper.skip_unless_xattr”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/test.html#test.support.os_helper.skip_unless_xattr”j" t”bŒtest.support.os_helper.temp_cwd”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/test.html#test.support.os_helper.temp_cwd”j" t”bŒtest.support.os_helper.temp_dir”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/test.html#test.support.os_helper.temp_dir”j" t”bŒ!test.support.os_helper.temp_umask”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/test.html#test.support.os_helper.temp_umask”j" t”bŒtest.support.os_helper.unlink”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/test.html#test.support.os_helper.unlink”j" t”bŒtest.support.patch”j )�”(jT(jU(Œ>https://docs.python.org/3/library/test.html#test.support.patch”j" t”bŒtest.support.print_warning”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/test.html#test.support.print_warning”j" t”bŒ test.support.python_is_optimized”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/test.html#test.support.python_is_optimized”j" t”bŒtest.support.reap_children”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/test.html#test.support.reap_children”j" t”bŒ#test.support.record_original_stdout”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/test.html#test.support.record_original_stdout”j" t”bŒtest.support.refcount_test”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/test.html#test.support.refcount_test”j" t”bŒtest.support.requires”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/test.html#test.support.requires”j" t”bŒtest.support.requires_IEEE_754”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/test.html#test.support.requires_IEEE_754”j" t”bŒtest.support.requires_bz2”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/test.html#test.support.requires_bz2”j" t”bŒ test.support.requires_docstrings”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/test.html#test.support.requires_docstrings”j" t”bŒ%test.support.requires_freebsd_version”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/test.html#test.support.requires_freebsd_version”j" t”bŒ!test.support.requires_gil_enabled”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/test.html#test.support.requires_gil_enabled”j" t”bŒtest.support.requires_gzip”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/test.html#test.support.requires_gzip”j" t”bŒ!test.support.requires_limited_api”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/test.html#test.support.requires_limited_api”j" t”bŒ#test.support.requires_linux_version”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/test.html#test.support.requires_linux_version”j" t”bŒtest.support.requires_lzma”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/test.html#test.support.requires_lzma”j" t”bŒ!test.support.requires_mac_version”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/test.html#test.support.requires_mac_version”j" t”bŒtest.support.requires_resource”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/test.html#test.support.requires_resource”j" t”bŒtest.support.requires_zlib”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/test.html#test.support.requires_zlib”j" t”bŒtest.support.run_in_subinterp”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/test.html#test.support.run_in_subinterp”j" t”bŒtest.support.run_with_locale”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/test.html#test.support.run_with_locale”j" t”bŒtest.support.run_with_tz”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/test.html#test.support.run_with_tz”j" t”bŒ0test.support.script_helper.assert_python_failure”j )�”(jT(jU(Œ\https://docs.python.org/3/library/test.html#test.support.script_helper.assert_python_failure”j" t”bŒ+test.support.script_helper.assert_python_ok”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/test.html#test.support.script_helper.assert_python_ok”j" t”bŒ;test.support.script_helper.interpreter_requires_environment”j )�”(jT(jU(Œghttps://docs.python.org/3/library/test.html#test.support.script_helper.interpreter_requires_environment”•j" t”bŒ&test.support.script_helper.kill_python”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/test.html#test.support.script_helper.kill_python”j" t”bŒ#test.support.script_helper.make_pkg”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/test.html#test.support.script_helper.make_pkg”j" t”bŒ&test.support.script_helper.make_script”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/test.html#test.support.script_helper.make_script”j" t”bŒ'test.support.script_helper.make_zip_pkg”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/test.html#test.support.script_helper.make_zip_pkg”j" t”bŒ*test.support.script_helper.make_zip_script”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/test.html#test.support.script_helper.make_zip_script”j" t”bŒ/test.support.script_helper.run_python_until_end”j )�”(jT(jU(Œ[https://docs.python.org/3/library/test.html#test.support.script_helper.run_python_until_end”j" t”bŒ'test.support.script_helper.spawn_python”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/test.html#test.support.script_helper.spawn_python”j" t”bŒtest.support.set_memlimit”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/test.html#test.support.set_memlimit”j" t”bŒtest.support.setswitchinterval”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/test.html#test.support.setswitchinterval”j" t”bŒ7test.support.skip_if_broken_multiprocessing_synchronize”j )�”(jT(jU(Œchttps://docs.python.org/3/library/test.html#test.support.skip_if_broken_multiprocessing_synchronize”j" t”bŒtest.support.sleeping_retry”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/test.html#test.support.sleeping_retry”j" t”bŒ$test.support.socket_helper.bind_port”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/test.html#test.support.socket_helper.bind_port”j" t”bŒ+test.support.socket_helper.bind_unix_socket”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/test.html#test.support.socket_helper.bind_unix_socket”j" t”bŒ+test.support.socket_helper.find_unused_port”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/test.html#test.support.socket_helper.find_unused_port”j" t”bŒ7test.support.socket_helper.skip_unless_bind_unix_socket”j )�”(jT(jU(Œchttps://docs.python.org/3/library/test.html#test.support.socket_helper.skip_unless_bind_unix_socket”j" t”bŒ-test.support.socket_helper.transient_internet”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/test.html#test.support.socket_helper.transient_internet”j" t”bŒtest.support.sortdict”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/test.html#test.support.sortdict”j" t”bŒtest.support.swap_attr”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/test.html#test.support.swap_attr”j" t”bŒtest.support.swap_item”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/test.html#test.support.swap_item”j" t”bŒ&test.support.system_must_validate_cert”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/test.html#test.support.system_must_validate_cert”j" t”bŒtest.support.thread_unsafe”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/test.html#test.support.thread_unsafe”j" t”bŒ7test.support.threading_helper.catch_threading_exception”j )�”(jT(jU(Œchttps://docs.python.org/3/library/test.html#test.support.threading_helper.catch_threading_exception”j" t”bŒ)test.support.threading_helper.join_thread”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/test.html#test.support.threading_helper.join_thread”j" t”bŒ*test.support.threading_helper.reap_threads”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/test.html#test.support.threading_helper.reap_threads”j" t”bŒ.test.support.threading_helper.run_concurrently”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/test.html#test.support.threading_helper.run_concurrently”j" t”bŒ+test.support.threading_helper.start_threads”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/test.html#test.support.threading_helper.start_threads”j" t”bŒ/test.support.threading_helper.threading_cleanup”j )�”(jT(jU(Œ[https://docs.python.org/3/library/test.html#test.support.threading_helper.threading_cleanup”j" t”bŒ-test.support.threading_helper.threading_setup”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/test.html#test.support.threading_helper.threading_setup”j" t”bŒ/test.support.threading_helper.wait_threads_exit”j )�”(jT(jU(Œ[https://docs.python.org/3/library/test.html#test.support.threading_helper.wait_threads_exit”j" t”bŒtest.support.wait_process”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/test.html#test.support.wait_process”j" t”bŒ6test.support.warnings_helper.check_no_resource_warning”j )�”(jT(jU(Œbhttps://docs.python.org/3/library/test.html#test.support.warnings_helper.check_no_resource_warning”j" t”bŒ1test.support.warnings_helper.check_syntax_warning”j )�”(jT(jU(Œ]https://docs.python.org/3/library/test.html#test.support.warnings_helper.check_syntax_warning”j" t”bŒ+test.support.warnings_helper.check_warnings”j )�”(jT(jU(ŒWhttps://docs.python.org/3/library/test.html#test.support.warnings_helper.check_warnings”j" t”bŒ,test.support.warnings_helper.ignore_warnings”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/test.html#test.support.warnings_helper.ignore_warnings”j" t”bŒtest.support.with_pymalloc”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/test.html#test.support.with_pymalloc”j" t”bŒtextwrap.dedent”j )�”(jT(jU(Œ?https://docs.python.org/3/library/textwrap.html#textwrap.dedent”j" t”bŒ textwrap.fill”j )�”(jT(jU(Œ=https://docs.python.org/3/library/textwrap.html#textwrap.fill”j" t”bŒtextwrap.indent”j )�”(jT(jU(Œ?https://docs.python.org/3/library/textwrap.html#textwrap.indent”j" t”bŒtextwrap.shorten”j )�”(jT(jU(Œ@https://docs.python.org/3/library/textwrap.html#textwrap.shorten”j" t”bŒ textwrap.wrap”j )�”(jT(jU(Œ=https://docs.python.org/3/library/textwrap.html#textwrap.wrap”j" t”bŒthreading.active_count”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/threading.html#threading.active_count”j" t”bŒthreading.current_thread”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/threading.html#threading.current_thread”j" t”bŒthreading.enumerate”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/threading.html#threading.enumerate”j" t”bŒthreading.excepthook”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/threading.html#threading.excepthook”j" t”bŒthreading.get_ident”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/threading.html#threading.get_ident”j" t”bŒthreading.get_native_id”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/threading.html#threading.get_native_id”j" t”bŒthreading.getprofile”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/threading.html#threading.getprofile”j" t”bŒthreading.gettrace”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/threading.html#threading.gettrace”j" t”bŒthreading.main_thread”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/threading.html#threading.main_thread”j" t”bŒthreading.setprofile”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/threading.html#threading.setprofile”j" t”bŒ threading.setprofile_all_threads”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/threading.html#threading.setprofile_all_threads”j" t”bŒthreading.settrace”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/threading.html#threading.settrace”j" t”bŒthreading.settrace_all_threads”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/threading.html#threading.settrace_all_threads”j" t”bŒthreading.stack_size”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/threading.html#threading.stack_size”j" t”bŒ time.asctime”j )�”(jT(jU(Œ8https://docs.python.org/3/library/time.html#time.asctime”j" t”bŒtime.clock_getres”j )�”(jT(jU(Œ=https://docs.python.org/3/library/time.html#time.clock_getres”j" t”bŒtime.clock_gettime”j )�”(jT(jU(Œ>https://docs.python.org/3/library/time.html#time.clock_gettime”j" t”bŒtime.clock_gettime_ns”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/time.html#time.clock_gettime_ns”j" t”bŒtime.clock_settime”j )�”(jT(jU(Œ>https://docs.python.org/3/library/time.html#time.clock_settime”j" t”bŒtime.clock_settime_ns”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/time.html#time.clock_settime_ns”j" t”bŒ time.ctime”j )�”(jT(jU(Œ6https://docs.python.org/3/library/time.html#time.ctime”j" t”bŒtime.get_clock_info”j )�”(jT(jU(Œ?https://docs.python.org/3/library/time.html#time.get_clock_info”j" t”bŒ time.gmtime”j )�”(jT(jU(Œ7https://docs.python.org/3/library/time.html#time.gmtime”j" t”bŒtime.localtime”j )�”(jT(jU(Œ:https://docs.python.org/3/library/time.html#time.localtime”j" t”bŒ time.mktime”j )�”(jT(jU(Œ7https://docs.python.org/3/library/time.html#time.mktime”j" t”bŒtime.monotonic”j )�”(jT(jU(Œ:https://docs.python.org/3/library/time.html#time.monotonic”j" t”bŒtime.monotonic_ns”j )�”(jT(jU(Œ=https://docs.python.org/3/library/time.html#time.monotonic_ns”j" t”bŒtime.perf_counter”j )�”(jT(jU(Œ=https://docs.python.org/3/library/time.html#time.perf_counter”j" t”bŒtime.perf_counter_ns”j )�”(jT(jU(Œ@https://docs.python.org/3/library/time.html#time.perf_counter_ns”j" t”bŒtime.process_time”j )�”(jT(jU(Œ=https://docs.python.org/3/library/time.html#time.process_time”j" t”bŒtime.process_time_ns”j )�”(jT(jU(Œ@https://docs.python.org/3/library/time.html#time.process_time_ns”j" t”bŒtime.pthread_getcpuclockid”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/time.html#time.pthread_getcpuclockid”j" t”bŒ time.sleep”j )�”(jT(jU(Œ6https://docs.python.org/3/library/time.html#time.sleep”j" t”bŒ time.strftime”j )�”(jT(jU(Œ9https://docs.python.org/3/library/time.html#time.strftime”j" t”bŒ time.strptime”j )�”(jT(jU(Œ9https://docs.python.org/3/library/time.html#time.strptime”j" t”bŒtime.thread_time”j )�”(jT(jU(Œhttps://docs.python.org/3/library/turtle.html#turtle.colormode”j" t”bŒturtle.degrees”j )�”(jT(jU(Œhttps://docs.python.org/3/library/turtle.html#turtle.fillcolor”j" t”bŒturtle.filling”j )�”(jT(jU(Œhttps://docs.python.org/3/library/turtle.html#turtle.getcanvas”j" t”bŒ turtle.getpen”j )�”(jT(jU(Œ;https://docs.python.org/3/library/turtle.html#turtle.getpen”j" t”bŒturtle.getscreen”j )�”(jT(jU(Œ>https://docs.python.org/3/library/turtle.html#turtle.getscreen”j" t”bŒturtle.getshapes”j )�”(jT(jU(Œ>https://docs.python.org/3/library/turtle.html#turtle.getshapes”j" t”bŒturtle.getturtle”j )�”(jT(jU(Œ>https://docs.python.org/3/library/turtle.html#turtle.getturtle”j" t”bŒ turtle.goto”j )�”(jT(jU(Œ9https://docs.python.org/3/library/turtle.html#turtle.goto”j" t”bŒturtle.heading”j )�”(jT(jU(Œhttps://docs.python.org/3/library/turtle.html#turtle.isvisible”j" t”bŒ turtle.left”j )�”(jT(jU(Œ9https://docs.python.org/3/library/turtle.html#turtle.left”j" t”bŒ turtle.listen”j )�”(jT(jU(Œ;https://docs.python.org/3/library/turtle.html#turtle.listen”j" t”bŒ turtle.lt”j )�”(jT(jU(Œ7https://docs.python.org/3/library/turtle.html#turtle.lt”j" t”bŒturtle.mainloop”j )�”(jT(jU(Œ=https://docs.python.org/3/library/turtle.html#turtle.mainloop”j" t”bŒ turtle.mode”j )�”(jT(jU(Œ9https://docs.python.org/3/library/turtle.html#turtle.mode”j" t”bŒturtle.no_animation”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/turtle.html#turtle.no_animation”j" t”bŒturtle.numinput”j )�”(jT(jU(Œ=https://docs.python.org/3/library/turtle.html#turtle.numinput”j" t”bŒturtle.onclick”j )�”(jT(jU(Œhttps://docs.python.org/3/library/turtle.html#turtle.onrelease”j" t”bŒturtle.onscreenclick”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/turtle.html#turtle.onscreenclick”j" t”bŒturtle.ontimer”j )�”(jT(jU(Œhttps://docs.python.org/3/library/turtle.html#turtle.shapesize”j" t”bŒturtle.shapetransform”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/turtle.html#turtle.shapetransform”j" t”bŒturtle.shearfactor”j )�”(jT(jU(Œ@https://docs.python.org/3/library/turtle.html#turtle.shearfactor”j" t”bŒturtle.showturtle”j )�”(jT(jU(Œ?https://docs.python.org/3/library/turtle.html#turtle.showturtle”j" t”bŒ turtle.speed”j )�”(jT(jU(Œ:https://docs.python.org/3/library/turtle.html#turtle.speed”j" t”bŒ turtle.st”j )�”(jT(jU(Œ7https://docs.python.org/3/library/turtle.html#turtle.st”j" t”bŒ turtle.stamp”j )�”(jT(jU(Œ:https://docs.python.org/3/library/turtle.html#turtle.stamp”j" t”bŒturtle.teleport”j )�”(jT(jU(Œ=https://docs.python.org/3/library/turtle.html#turtle.teleport”j" t”bŒturtle.textinput”j )�”(jT(jU(Œ>https://docs.python.org/3/library/turtle.html#turtle.textinput”j" t”bŒ turtle.tilt”j )�”(jT(jU(Œ9https://docs.python.org/3/library/turtle.html#turtle.tilt”j" t”bŒturtle.tiltangle”j )�”(jT(jU(Œ>https://docs.python.org/3/library/turtle.html#turtle.tiltangle”j" t”bŒ turtle.title”j )�”(jT(jU(Œ:https://docs.python.org/3/library/turtle.html#turtle.title”j" t”bŒturtle.towards”j )�”(jT(jU(Œhttps://docs.python.org/3/library/winreg.html#winreg.CreateKey”j" t”bŒwinreg.CreateKeyEx”j )�”(jT(jU(Œ@https://docs.python.org/3/library/winreg.html#winreg.CreateKeyEx”j" t”bŒwinreg.DeleteKey”j )�”(jT(jU(Œ>https://docs.python.org/3/library/winreg.html#winreg.DeleteKey”j" t”bŒwinreg.DeleteKeyEx”j )�”(jT(jU(Œ@https://docs.python.org/3/library/winreg.html#winreg.DeleteKeyEx”j" t”bŒwinreg.DeleteValue”j )�”(jT(jU(Œ@https://docs.python.org/3/library/winreg.html#winreg.DeleteValue”j" t”bŒwinreg.DisableReflectionKey”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/winreg.html#winreg.DisableReflectionKey”j" t”bŒwinreg.EnableReflectionKey”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/winreg.html#winreg.EnableReflectionKey”j" t”bŒwinreg.EnumKey”j )�”(jT(jU(Œhttps://docs.python.org/3/library/winreg.html#winreg.EnumValue”j" t”bŒwinreg.ExpandEnvironmentStrings”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/winreg.html#winreg.ExpandEnvironmentStrings”j" t”bŒwinreg.FlushKey”j )�”(jT(jU(Œ=https://docs.python.org/3/library/winreg.html#winreg.FlushKey”j" t”bŒwinreg.LoadKey”j )�”(jT(jU(Œhttps://docs.python.org/3/library/winreg.html#winreg.OpenKeyEx”j" t”bŒwinreg.QueryInfoKey”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/winreg.html#winreg.QueryInfoKey”j" t”bŒwinreg.QueryReflectionKey”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/winreg.html#winreg.QueryReflectionKey”j" t”bŒwinreg.QueryValue”j )�”(jT(jU(Œ?https://docs.python.org/3/library/winreg.html#winreg.QueryValue”j" t”bŒwinreg.QueryValueEx”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/winreg.html#winreg.QueryValueEx”j" t”bŒwinreg.SaveKey”j )�”(jT(jU(Œhttps://docs.python.org/3/library/zlib.html#zlib.decompressobj”j" t”bŒzoneinfo.available_timezones”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.available_timezones”j" t”bŒzoneinfo.reset_tzpath”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo.reset_tzpath”j" t”buŒstd:pdbcommand”}”(Œ!”j )�”(jT(jU(Œ7https://docs.python.org/3/library/pdb.html#pdbcommand-0”j" t”bŒalias”j )�”(jT(jU(Œ;https://docs.python.org/3/library/pdb.html#pdbcommand-alias”j" t”bŒargs”j )�”(jT(jU(Œ:https://docs.python.org/3/library/pdb.html#pdbcommand-args”j" t”bŒbreak”j )�”(jT(jU(Œ;https://docs.python.org/3/library/pdb.html#pdbcommand-break”j" t”bŒclear”j )�”(jT(jU(Œ;https://docs.python.org/3/library/pdb.html#pdbcommand-clear”j" t”bŒcommands”j )�”(jT(jU(Œ>https://docs.python.org/3/library/pdb.html#pdbcommand-commands”j" t”bŒ condition”j )�”(jT(jU(Œ?https://docs.python.org/3/library/pdb.html#pdbcommand-condition”j" t”bŒcontinue”j )�”(jT(jU(Œ>https://docs.python.org/3/library/pdb.html#pdbcommand-continue”j" t”bŒdebug”j )�”(jT(jU(Œ;https://docs.python.org/3/library/pdb.html#pdbcommand-debug”j" t”bŒdisable”j )�”(jT(jU(Œ=https://docs.python.org/3/library/pdb.html#pdbcommand-disable”j" t”bŒdisplay”j )�”(jT(jU(Œ=https://docs.python.org/3/library/pdb.html#pdbcommand-display”j" t”bŒdown”j )�”(jT(jU(Œ:https://docs.python.org/3/library/pdb.html#pdbcommand-down”j" t”bŒenable”j )�”(jT(jU(Œhttps://docs.python.org/3/library/pdb.html#pdbcommand-interact”j" t”bŒjump”j )�”(jT(jU(Œ:https://docs.python.org/3/library/pdb.html#pdbcommand-jump”j" t”bŒlist”j )�”(jT(jU(Œ:https://docs.python.org/3/library/pdb.html#pdbcommand-list”j" t”bŒll”j )�”(jT(jU(Œ8https://docs.python.org/3/library/pdb.html#pdbcommand-ll”j" t”bŒnext”j )�”(jT(jU(Œ:https://docs.python.org/3/library/pdb.html#pdbcommand-next”j" t”bŒp”j )�”(jT(jU(Œ7https://docs.python.org/3/library/pdb.html#pdbcommand-p”j" t”bŒpp”j )�”(jT(jU(Œ8https://docs.python.org/3/library/pdb.html#pdbcommand-pp”j" t”bŒquit”j )�”(jT(jU(Œ:https://docs.python.org/3/library/pdb.html#pdbcommand-quit”j" t”bŒrestart”j )�”(jT(jU(Œ=https://docs.python.org/3/library/pdb.html#pdbcommand-restart”j" t”bŒreturn”j )�”(jT(jU(Œhttps://docs.python.org/3/using/configure.html#cmdoption-build”j" t”bŒ--check-hash-based-pycs”j )�”(jT(jU(ŒLhttps://docs.python.org/3/using/cmdline.html#cmdoption-check-hash-based-pycs”j" t”bŒ --disable-gil”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/configure.html#cmdoption-disable-gil”j" t”bŒ--disable-ipv6”j )�”(jT(jU(ŒEhttps://docs.python.org/3/using/configure.html#cmdoption-disable-ipv6”j" t”bŒ--disable-safety”j )�”(jT(jU(ŒGhttps://docs.python.org/3/using/configure.html#cmdoption-disable-safety”j" t”bŒ--disable-test-modules”j )�”(jT(jU(ŒMhttps://docs.python.org/3/using/configure.html#cmdoption-disable-test-modules”j" t”bŒ--enable-big-digits”j )�”(jT(jU(ŒJhttps://docs.python.org/3/using/configure.html#cmdoption-enable-big-digits”j" t”bŒ --enable-bolt”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/configure.html#cmdoption-enable-bolt”j" t”bŒ--enable-experimental-jit”j )�”(jT(jU(ŒPhttps://docs.python.org/3/using/configure.html#cmdoption-enable-experimental-jit”j" t”bŒ--enable-framework”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#cmdoption-enable-framework”j" t”bŒ#--enable-loadable-sqlite-extensions”j )�”(jT(jU(ŒZhttps://docs.python.org/3/using/configure.html#cmdoption-enable-loadable-sqlite-extensions”j" t”bŒ--enable-optimizations”j )�”(jT(jU(ŒMhttps://docs.python.org/3/using/configure.html#cmdoption-enable-optimizations”j" t”bŒ--enable-profiling”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#cmdoption-enable-profiling”j" t”bŒ--enable-pystats”j )�”(jT(jU(ŒGhttps://docs.python.org/3/using/configure.html#cmdoption-enable-pystats”j" t”bŒ--enable-shared”j )�”(jT(jU(ŒFhttps://docs.python.org/3/using/configure.html#cmdoption-enable-shared”j" t”bŒ--enable-slower-safety”j )�”(jT(jU(ŒMhttps://docs.python.org/3/using/configure.html#cmdoption-enable-slower-safety”j" t”bŒ--enable-universalsdk”j )�”(jT(jU(ŒLhttps://docs.python.org/3/using/configure.html#cmdoption-enable-universalsdk”j" t”bŒ--enable-wasm-dynamic-linking”j )�”(jT(jU(ŒThttps://docs.python.org/3/using/configure.html#cmdoption-enable-wasm-dynamic-linking”j" t”bŒ--enable-wasm-pthreads”j )�”(jT(jU(ŒMhttps://docs.python.org/3/using/configure.html#cmdoption-enable-wasm-pthreads”j" t”bŒ --exec-prefix”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/configure.html#cmdoption-exec-prefix”j" t”bŒ--help”j )�”(jT(jU(Œ;https://docs.python.org/3/using/cmdline.html#cmdoption-help”j" t”bŒ --help-all”j )�”(jT(jU(Œ?https://docs.python.org/3/using/cmdline.html#cmdoption-help-all”j" t”bŒ --help-env”j )�”(jT(jU(Œ?https://docs.python.org/3/using/cmdline.html#cmdoption-help-env”j" t”bŒ--help-xoptions”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/cmdline.html#cmdoption-help-xoptions”j" t”bŒ--host”j )�”(jT(jU(Œ=https://docs.python.org/3/using/configure.html#cmdoption-host”j" t”bŒ--prefix”j )�”(jT(jU(Œ?https://docs.python.org/3/using/configure.html#cmdoption-prefix”j" t”bŒ --version”j )�”(jT(jU(Œ>https://docs.python.org/3/using/cmdline.html#cmdoption-version”j" t”bŒ--with-address-sanitizer”j )�”(jT(jU(ŒOhttps://docs.python.org/3/using/configure.html#cmdoption-with-address-sanitizer”j" t”bŒ--with-app-store-compliance”j )�”(jT(jU(ŒRhttps://docs.python.org/3/using/configure.html#cmdoption-with-app-store-compliance”j" t”bŒ--with-assertions”j )�”(jT(jU(ŒHhttps://docs.python.org/3/using/configure.html#cmdoption-with-assertions”j" t”bŒ--with-build-python”j )�”(jT(jU(ŒJhttps://docs.python.org/3/using/configure.html#cmdoption-with-build-python”j" t”bŒ--with-builtin-hashlib-hashes”j )�”(jT(jU(ŒThttps://docs.python.org/3/using/configure.html#cmdoption-with-builtin-hashlib-hashes”j" t”bŒ--with-computed-gotos”j )�”(jT(jU(ŒLhttps://docs.python.org/3/using/configure.html#cmdoption-with-computed-gotos”j" t”bŒ--with-dbmliborder”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#cmdoption-with-dbmliborder”j" t”bŒ --with-dtrace”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/configure.html#cmdoption-with-dtrace”j" t”bŒ--with-ensurepip”j )�”(jT(jU(ŒGhttps://docs.python.org/3/using/configure.html#cmdoption-with-ensurepip”j" t”bŒ--with-framework-name”j )�”(jT(jU(ŒLhttps://docs.python.org/3/using/configure.html#cmdoption-with-framework-name”j" t”bŒ--with-hash-algorithm”j )�”(jT(jU(ŒLhttps://docs.python.org/3/using/configure.html#cmdoption-with-hash-algorithm”j" t”bŒ --with-libc”j )�”(jT(jU(ŒBhttps://docs.python.org/3/using/configure.html#cmdoption-with-libc”j" t”bŒ --with-libm”j )�”(jT(jU(ŒBhttps://docs.python.org/3/using/configure.html#cmdoption-with-libm”j" t”bŒ --with-libs”j )�”(jT(jU(ŒBhttps://docs.python.org/3/using/configure.html#cmdoption-with-libs”j" t”bŒ --with-lto”j )�”(jT(jU(ŒAhttps://docs.python.org/3/using/configure.html#cmdoption-with-lto”j" t”bŒ--with-memory-sanitizer”j )�”(jT(jU(ŒNhttps://docs.python.org/3/using/configure.html#cmdoption-with-memory-sanitizer”j" t”bŒ--with-openssl”j )�”(jT(jU(ŒEhttps://docs.python.org/3/using/configure.html#cmdoption-with-openssl”j" t”bŒ--with-openssl-rpath”j •)�”(jT(jU(ŒKhttps://docs.python.org/3/using/configure.html#cmdoption-with-openssl-rpath”j" t”bŒ--with-pkg-config”j )�”(jT(jU(ŒHhttps://docs.python.org/3/using/configure.html#cmdoption-with-pkg-config”j" t”bŒ--with-platlibdir”j )�”(jT(jU(ŒHhttps://docs.python.org/3/using/configure.html#cmdoption-with-platlibdir”j" t”bŒ--with-pydebug”j )�”(jT(jU(ŒEhttps://docs.python.org/3/using/configure.html#cmdoption-with-pydebug”j" t”bŒ--with-readline”j )�”(jT(jU(ŒFhttps://docs.python.org/3/using/configure.html#cmdoption-with-readline”j" t”bŒ--with-ssl-default-suites”j )�”(jT(jU(ŒPhttps://docs.python.org/3/using/configure.html#cmdoption-with-ssl-default-suites”j" t”bŒ--with-strict-overflow”j )�”(jT(jU(ŒMhttps://docs.python.org/3/using/configure.html#cmdoption-with-strict-overflow”j" t”bŒ --with-suffix”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/configure.html#cmdoption-with-suffix”j" t”bŒ--with-system-expat”j )�”(jT(jU(ŒJhttps://docs.python.org/3/using/configure.html#cmdoption-with-system-expat”j" t”bŒ--with-system-libmpdec”j )�”(jT(jU(ŒMhttps://docs.python.org/3/using/configure.html#cmdoption-with-system-libmpdec”j" t”bŒ--with-tail-call-interp”j )�”(jT(jU(ŒNhttps://docs.python.org/3/using/configure.html#cmdoption-with-tail-call-interp”j" t”bŒ--with-thread-sanitizer”j )�”(jT(jU(ŒNhttps://docs.python.org/3/using/configure.html#cmdoption-with-thread-sanitizer”j" t”bŒ--with-trace-refs”j )�”(jT(jU(ŒHhttps://docs.python.org/3/using/configure.html#cmdoption-with-trace-refs”j" t”bŒ --with-tzpath”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/configure.html#cmdoption-with-tzpath”j" t”bŒ#--with-undefined-behavior-sanitizer”j )�”(jT(jU(ŒZhttps://docs.python.org/3/using/configure.html#cmdoption-with-undefined-behavior-sanitizer”j" t”bŒ--with-universal-archs”j )�”(jT(jU(ŒMhttps://docs.python.org/3/using/configure.html#cmdoption-with-universal-archs”j" t”bŒ--with-valgrind”j )�”(jT(jU(ŒFhttps://docs.python.org/3/using/configure.html#cmdoption-with-valgrind”j" t”bŒ--with-wheel-pkg-dir”j )�”(jT(jU(ŒKhttps://docs.python.org/3/using/configure.html#cmdoption-with-wheel-pkg-dir”j" t”bŒ--without-c-locale-coercion”j )�”(jT(jU(ŒRhttps://docs.python.org/3/using/configure.html#cmdoption-without-c-locale-coercion”j" t”bŒ--without-decimal-contextvar”j )�”(jT(jU(ŒShttps://docs.python.org/3/using/configure.html#cmdoption-without-decimal-contextvar”j" t”bŒ--without-doc-strings”j )�”(jT(jU(ŒLhttps://docs.python.org/3/using/configure.html#cmdoption-without-doc-strings”j" t”bŒ--without-mimalloc”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#cmdoption-without-mimalloc”j" t”bŒ--without-pymalloc”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#cmdoption-without-pymalloc”j" t”bŒ--without-readline”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#cmdoption-without-readline”j" t”bŒ--without-remote-debug”j )�”(jT(jU(ŒMhttps://docs.python.org/3/using/configure.html#cmdoption-without-remote-debug”j" t”bŒ--without-static-libpython”j )�”(jT(jU(ŒQhttps://docs.python.org/3/using/configure.html#cmdoption-without-static-libpython”j" t”bŒ-?”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-0”j" t”bŒ-B”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-B”j" t”bŒ-E”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-E”j" t”bŒ-I”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-I”j" t”bŒ-O”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-O”j" t”bŒ-OO”j )�”(jT(jU(Œ9https://docs.python.org/3/using/cmdline.html#cmdoption-OO”j" t”bŒ-P”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-P”j" t”bŒ-R”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-R”j" t”bŒ-S”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-S”j" t”bŒ-V”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-V”j" t”bŒ-W”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-W”j" t”bŒ-X”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-X”j" t”bŒ-b”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-b”j" t”bŒ-c”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-c”j" t”bŒ-d”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-d”j" t”bŒ-h”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-h”j" t”bŒ-i”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-i”j" t”bŒ-m”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-m”j" t”bŒ-q”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-q”j" t”bŒ-s”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-s”j" t”bŒ-u”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-u”j" t”bŒ-v”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-v”j" t”bŒ-x”j )�”(jT(jU(Œ8https://docs.python.org/3/using/cmdline.html#cmdoption-x”j" t”bŒBOLT_APPLY_FLAGS”j )�”(jT(jU(ŒMhttps://docs.python.org/3/using/configure.html#cmdoption-arg-BOLT_APPLY_FLAGS”j" t”bŒBOLT_INSTRUMENT_FLAGS”j )�”(jT(jU(ŒRhttps://docs.python.org/3/using/configure.html#cmdoption-arg-BOLT_INSTRUMENT_FLAGS”j" t”bŒ BZIP2_CFLAGS”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#cmdoption-arg-BZIP2_CFLAGS”j" t”bŒ BZIP2_LIBS”j )�”(jT(jU(ŒGhttps://docs.python.org/3/using/configure.html#cmdoption-arg-BZIP2_LIBS”j" t”bŒCC”j )�”(jT(jU(Œ?https://docs.python.org/3/using/configure.html#cmdoption-arg-CC”j" t”bŒCFLAGS”j )�”(jT(jU(ŒChttps://docs.python.org/3/using/configure.html#cmdoption-arg-CFLAGS”j" t”bŒ CONFIG_SITE”j )�”(jT(jU(ŒHhttps://docs.python.org/3/using/configure.html#cmdoption-arg-CONFIG_SITE”j" t”bŒCPP”j )�”(jT(jU(Œ@https://docs.python.org/3/using/configure.html#cmdoption-arg-CPP”j" t”bŒCPPFLAGS”j )�”(jT(jU(ŒEhttps://docs.python.org/3/using/configure.html#cmdoption-arg-CPPFLAGS”j" t”bŒ CURSES_CFLAGS”j )�”(jT(jU(ŒJhttps://docs.python.org/3/using/configure.html#cmdoption-arg-CURSES_CFLAGS”j" t”bŒ CURSES_LIBS”j )�”(jT(jU(ŒHhttps://docs.python.org/3/using/configure.html#cmdoption-arg-CURSES_LIBS”j" t”bŒ GDBM_CFLAGS”j )�”(jT(jU(ŒHhttps://docs.python.org/3/using/configure.html#cmdoption-arg-GDBM_CFLAGS”j" t”bŒ GDBM_LIBS”j )�”(jT(jU(ŒFhttps://docs.python.org/3/using/configure.html#cmdoption-arg-GDBM_LIBS”j" t”bŒ HOSTRUNNER”j )�”(jT(jU(ŒGhttps://docs.python.org/3/using/configure.html#cmdoption-arg-HOSTRUNNER”j" t”bŒLDFLAGS”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LDFLAGS”j" t”bŒLIBEDIT_CFLAGS”j )�”(jT(jU(ŒKhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBEDIT_CFLAGS”j" t”bŒ LIBEDIT_LIBS”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBEDIT_LIBS”j" t”bŒ LIBFFI_CFLAGS”j )�”(jT(jU(ŒJhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBFFI_CFLAGS”j" t”bŒ LIBFFI_LIBS”j )�”(jT(jU(ŒHhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBFFI_LIBS”j" t”bŒLIBLZMA_CFLAGS”j )�”(jT(jU(ŒKhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBLZMA_CFLAGS”j" t”bŒ LIBLZMA_LIBS”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBLZMA_LIBS”j" t”bŒLIBMPDEC_CFLAGS”j )�”(jT(jU(ŒLhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBMPDEC_CFLAGS”j" t”bŒ LIBMPDEC_LIBS”j )�”(jT(jU(ŒJhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBMPDEC_LIBS”j" t”bŒLIBREADLINE_CFLAGS”j )�”(jT(jU(ŒOhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBREADLINE_CFLAGS”j" t”bŒLIBREADLINE_LIBS”j )�”(jT(jU(ŒMhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBREADLINE_LIBS”j" t”bŒLIBS”j )�”(jT(jU(ŒAhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBS”j" t”bŒLIBSQLITE3_CFLAGS”j )�”(jT(jU(ŒNhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBSQLITE3_CFLAGS”j" t”bŒLIBSQLITE3_LIBS”j )�”(jT(jU(ŒLhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBSQLITE3_LIBS”j" t”bŒLIBUUID_CFLAGS”j )�”(jT(jU(ŒKhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBUUID_CFLAGS”j" t”bŒ LIBUUID_LIBS”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBUUID_LIBS”j" t”bŒLIBZSTD_CFLAGS”j )�”(jT(jU(ŒKhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBZSTD_CFLAGS”j" t”bŒ LIBZSTD_LIBS”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#cmdoption-arg-LIBZSTD_LIBS”j" t”bŒMACHDEP”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/configure.html#cmdoption-arg-MACHDEP”j" t”bŒ PANEL_CFLAGS”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#cmdoption-arg-PANEL_CFLAGS”j" t”bŒ PANEL_LIBS”j )�”(jT(jU(ŒGhttps://docs.python.org/3/using/configure.html#cmdoption-arg-PANEL_LIBS”j" t”bŒ PKG_CONFIG”j )�”(jT(jU(ŒGhttps://docs.python.org/3/using/configure.html#cmdoption-arg-PKG_CONFIG”j" t”bŒPKG_CONFIG_LIBDIR”j )�”(jT(jU(ŒNhttps://docs.python.org/3/using/configure.html#cmdoption-arg-PKG_CONFIG_LIBDIR”j" t”bŒPKG_CONFIG_PATH”j )�”(jT(jU(ŒLhttps://docs.python.org/3/using/configure.html#cmdoption-arg-PKG_CONFIG_PATH”j" t”bŒ TCLTK_CFLAGS”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#cmdoption-arg-TCLTK_CFLAGS”j" t”bŒ TCLTK_LIBS”j )�”(jT(jU(ŒGhttps://docs.python.org/3/using/configure.html#cmdoption-arg-TCLTK_LIBS”j" t”bŒ ZLIB_CFLAGS”j )�”(jT(jU(ŒHhttps://docs.python.org/3/using/configure.html#cmdoption-arg-ZLIB_CFLAGS”j" t”bŒ ZLIB_LIBS”j )�”(jT(jU(ŒFhttps://docs.python.org/3/using/configure.html#cmdoption-arg-ZLIB_LIBS”j" t”bŒast.--feature-version”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/ast.html#cmdoption-ast-feature-version”j" t”bŒ ast.--help”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ast.html#cmdoption-ast-h”j" t”bŒast.--include-attributes”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ast.html#cmdoption-ast-a”j" t”bŒ ast.--indent”j )�”(jT(jU(Œ?https://docs.python.org/3/library/ast.html#cmdoption-ast-indent”j" t”bŒ ast.--mode”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ast.html#cmdoption-ast-mode”j" t”bŒast.--no-type-comments”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/ast.html#cmdoption-ast-no-type-comments”j" t”bŒast.--optimize”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/ast.html#cmdoption-ast-optimize”j" t”bŒast.--show-empty”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/ast.html#cmdoption-ast-show-empty”j" t”bŒast.-O”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ast.html#cmdoption-ast-O”j" t”bŒast.-a”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ast.html#cmdoption-ast-a”j" t”bŒast.-h”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ast.html#cmdoption-ast-h”j" t”bŒast.-i”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ast.html#cmdoption-ast-i”j" t”bŒast.-m”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ast.html#cmdoption-ast-m”j" t”bŒ cProfile.-m”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/profile.html#cmdoption-cProfile-m”j" t”bŒ cProfile.-o”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/profile.html#cmdoption-cProfile-o”j" t”bŒ cProfile.-s”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/profile.html#cmdoption-cProfile-s”j" t”bŒcalendar.--css”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-css”j" t”bŒcalendar.--encoding”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-encoding”j" t”bŒcalendar.--first-weekday”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-first-weekday”j" t”bŒcalendar.--help”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-help”j" t”bŒcalendar.--lines”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-lines”j" t”bŒcalendar.--locale”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-locale”j" t”bŒcalendar.--months”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-months”j" t”bŒcalendar.--spacing”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-spacing”j" t”bŒcalendar.--type”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-type”j" t”bŒcalendar.--width”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-width”j" t”bŒ calendar.-L”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-locale”j" t”bŒ calendar.-c”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-css”j" t”bŒ calendar.-e”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-encoding”j" t”bŒ calendar.-f”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-first-weekday”j" t”bŒ calendar.-h”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-help”j" t”bŒ calendar.-l”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-lines”j" t”bŒ calendar.-m”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-months”j" t”bŒ calendar.-s”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-spacing”j" t”bŒ calendar.-t”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-type”j" t”bŒ calendar.-w”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-width”j" t”bŒcalendar.month”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-arg-month”j" t”bŒ calendar.year”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/calendar.html#cmdoption-calendar-arg-year”j" t”bŒcompileall.--hardlink-dupes”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-hardlink-dupes”j" t”bŒcompileall.--invalidation-mode”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-invalidation-mode”j" t”bŒ compileall.-b”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-b”j" t”bŒ compileall.-d”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-d”j" t”bŒ compileall.-e”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-e”j" t”bŒ compileall.-f”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-f”j" t”bŒ compileall.-i”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-i”j" t”bŒ compileall.-j”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-j”j" t”bŒ compileall.-l”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-l”j" t”bŒ compileall.-o”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-o”j" t”bŒ compileall.-p”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-p”j" t”bŒ compileall.-q”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-q”j" t”bŒ compileall.-r”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-r”j" t”bŒ compileall.-s”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-s”j" t”bŒ compileall.-x”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-x”j" t”bŒcompileall.directory”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-arg-directory”j" t”bŒcompileall.file”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/compileall.html#cmdoption-compileall-arg-file”j" t”bŒ dis.--help”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#cmdoption-dis-h”j" t”bŒdis.--show-caches”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#cmdoption-dis-C”j" t”bŒdis.--show-offsets”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#cmdoption-dis-O”j" t”bŒdis.--show-positions”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#cmdoption-dis-P”j" t”bŒdis.--specialized”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#cmdoption-dis-S”j" t”bŒdis.-C”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#cmdoption-dis-C”j" t”bŒdis.-O”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#cmdoption-dis-O”j" t”bŒdis.-P”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#cmdoption-dis-P”j" t”bŒdis.-S”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#cmdoption-dis-S”j" t”bŒdis.-h”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#cmdoption-dis-h”j" t”bŒdoctest.--fail-fast”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/doctest.html#cmdoption-doctest-f”j" t”bŒdoctest.--option”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/doctest.html#cmdoption-doctest-o”j" t”bŒdoctest.--verbose”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/doctest.html#cmdoption-doctest-v”j" t”bŒ doctest.-f”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/doctest.html#cmdoption-doctest-f”j" t”bŒ doctest.-o”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/doctest.html#cmdoption-doctest-o”j" t”bŒ doctest.-v”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/doctest.html#cmdoption-doctest-v”j" t”bŒensurepip.--altinstall”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/ensurepip.html#cmdoption-ensurepip-altinstall”j" t”bŒensurepip.--default-pip”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/ensurepip.html#cmdoption-ensurepip-default-pip”j" t”bŒensurepip.--root”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/ensurepip.html#cmdoption-ensurepip-root”j" t”bŒensurepip.--user”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/ensurepip.html#cmdoption-ensurepip-user”j" t”bŒ gzip.--best”j )�”(jT(jU(Œ?https://docs.python.org/3/library/gzip.html#cmdoption-gzip-best”j" t”bŒgzip.--decompress”j )�”(jT(jU(Œ”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/py_compile.html#cmdoption-python-m-py_compile-arg-file”j" t”bŒ3python--m-sqlite3-[-h]-[-v]-[filename]-[sql].--help”j )�”(jT(jU(Œ\https://docs.python.org/3/library/sqlite3.html#cmdoption-python-m-sqlite3-h-v-filename-sql-h”j" t”bŒ6python--m-sqlite3-[-h]-[-v]-[filename]-[sql].--version”j )�”(jT(jU(Œ\https://docs.python.org/3/library/sqlite3.html#cmdoption-python-m-sqlite3-h-v-filename-sql-v”j" t”bŒ/python--m-sqlite3-[-h]-[-v]-[filename]-[sql].-h”j )�”(jT(jU(Œ\https://docs.python.org/3/library/sqlite3.html#cmdoption-python-m-sqlite3-h-v-filename-sql-h”j" t”bŒ/python--m-sqlite3-[-h]-[-v]-[filename]-[sql].-v”j )�”(jT(jU(Œ\https://docs.python.org/3/library/sqlite3.html#cmdoption-python-m-sqlite3-h-v-filename-sql-v”j" t”bŒrandom.--choice”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/random.html#cmdoption-random-choice”j" t”bŒrandom.--float”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/random.html#cmdoption-random-float”j" t”bŒ random.--help”j )�”(jT(jU(Œ@https://docs.python.org/3/library/random.html#cmdoption-random-h”j" t”bŒrandom.--integer”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/random.html#cmdoption-random-integer”j" t”bŒ random.-c”j )�”(jT(jU(Œ@https://docs.python.org/3/library/random.html#cmdoption-random-c”j" t”bŒ random.-f”j )�”(jT(jU(Œ@https://docs.python.org/3/library/random.html#cmdoption-random-f”j" t”bŒ random.-h”j )�”(jT(jU(Œ@https://docs.python.org/3/library/random.html#cmdoption-random-h”j" t”bŒ random.-i”j )�”(jT(jU(Œ@https://docs.python.org/3/library/random.html#cmdoption-random-i”j" t”bŒsite.--user-base”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/site.html#cmdoption-site-user-base”j" t”bŒsite.--user-site”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/site.html#cmdoption-site-user-site”j" t”bŒtarfile.--create”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-create”j" t”bŒtarfile.--extract”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-extract”j" t”bŒtarfile.--filter”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-filter”j" t”bŒtarfile.--list”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-list”j" t”bŒtarfile.--test”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-test”j" t”bŒtarfile.--verbose”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-v”j" t”bŒ tarfile.-c”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-c”j" t”bŒ tarfile.-e”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-e”j" t”bŒ tarfile.-l”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-l”j" t”bŒ tarfile.-t”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-t”j" t”bŒ tarfile.-v”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tarfile.html#cmdoption-tarfile-v”j" t”bŒ timeit.--help”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-h”j" t”bŒtimeit.--number”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-n”j" t”bŒtimeit.--process”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-p”j" t”bŒtimeit.--repeat”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-r”j" t”bŒtimeit.--setup”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-s”j" t”bŒ timeit.--unit”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-u”j" t”bŒtimeit.--verbose”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-v”j" t”bŒ timeit.-h”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-h”j" t”bŒ timeit.-n”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-n”j" t”bŒ timeit.-p”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-p”j" t”bŒ timeit.-r”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-r”j" t”bŒ timeit.-s”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-s”j" t”bŒ timeit.-u”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-u”j" t”bŒ timeit.-v”j )�”(jT(jU(Œ@https://docs.python.org/3/library/timeit.html#cmdoption-timeit-v”j" t”bŒtokenize.--exact”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/tokenize.html#cmdoption-tokenize-e”j" t”bŒtokenize.--help”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/tokenize.html#cmdoption-tokenize-h”j" t”bŒ tokenize.-e”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/tokenize.html#cmdoption-tokenize-e”j" t”bŒ tokenize.-h”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/tokenize.html#cmdoption-tokenize-h”j" t”bŒ trace.--count”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-c”j" t”bŒtrace.--coverdir”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-C”j" t”bŒ trace.--file”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-f”j" t”bŒ trace.--help”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/trace.html#cmdoption-trace-help”j" t”bŒtrace.--ignore-dir”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/trace.html#cmdoption-trace-ignore-dir”j" t”bŒtrace.--ignore-module”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/trace.html#cmdoption-trace-ignore-module”j" t”bŒtrace.--listfuncs”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-l”j" t”bŒtrace.--missing”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-m”j" t”bŒtrace.--no-report”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-R”j" t”bŒtrace.--report”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-r”j" t”bŒtrace.--summary”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-s”j" t”bŒtrace.--timing”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-g”j" t”bŒ trace.--trace”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-t”j" t”bŒtrace.--trackcalls”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-T”j" t”bŒtrace.--version”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/trace.html#cmdoption-trace-version”j" t”bŒtrace.-C”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-C”j" t”bŒtrace.-R”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-R”j" t”bŒtrace.-T”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-T”j" t”bŒtrace.-c”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-c”j" t”bŒtrace.-f”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-f”j" t”bŒtrace.-g”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-g”j" t”bŒtrace.-l”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-l”j" t”bŒtrace.-m”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-m”j" t”bŒtrace.-r”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-r”j" t”bŒtrace.-s”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-s”j" t”bŒtrace.-t”j )�”(jT(jU(Œ>https://docs.python.org/3/library/trace.html#cmdoption-trace-t”j" t”bŒunittest-discover.--pattern”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-p”j" t”bŒ#unittest-discover.--start-directory”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-s”j" t”bŒ'unittest-discover.--top-level-directory”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-t”j" t”bŒunittest-discover.--verbose”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-v”j" t”bŒunittest-discover.-p”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-p”j" t”bŒunittest-discover.-s”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-s”j" t”bŒunittest-discover.-t”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-t”j" t”bŒunittest-discover.-v”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-discover-v”j" t”bŒunittest.--buffer”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-b”j" t”bŒunittest.--catch”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-c”j" t”bŒunittest.--durations”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-durations”j" t”bŒunittest.--failfast”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-f”j" t”bŒunittest.--locals”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-locals”j" t”bŒ unittest.-b”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-b”j" t”bŒ unittest.-c”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-c”j" t”bŒ unittest.-f”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-f”j" t”bŒ unittest.-k”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/unittest.html#cmdoption-unittest-k”j" t”bŒ uuid.--count”j )�”(jT(jU(Œ@https://docs.python.org/3/library/uuid.html#cmdoption-uuid-count”j" t”bŒ uuid.--help”j )�”(jT(jU(Œ>>”j )�”(jT(jU(Œ.https://docs.python.org/3/glossary.html#term-0”j" t”bŒBDFL”j )�”(jT(jU(Œ1https://docs.python.org/3/glossary.html#term-BDFL”j" t”bŒCPython”j )�”(jT(jU(Œ4https://docs.python.org/3/glossary.html#term-CPython”j" t”bŒEAFP”j )�”(jT(jU(Œ1https://docs.python.org/3/glossary.html#term-EAFP”j" t”bŒGIL”j )�”(jT(jU(Œ0https://docs.python.org/3/glossary.html#term-GIL”j" t”bŒIDLE”j )�”(jT(jU(Œ1https://docs.python.org/3/glossary.html#term-IDLE”j" t”bŒLBYL”j )�”(jT(jU(Œ1https://docs.python.org/3/glossary.html#term-LBYL”j" t”bŒMRO”j )�”(jT(jU(Œ0https://docs.python.org/3/glossary.html#term-MRO”j" t”bŒPEP”j )�”(jT(jU(Œ0https://docs.python.org/3/glossary.html#term-PEP”j" t”bŒ Python 3000”j )�”(jT(jU(Œ8https://docs.python.org/3/glossary.html#term-Python-3000”j" t”bŒPythonic”j )�”(jT(jU(Œ5https://docs.python.org/3/glossary.html#term-Pythonic”j" t”bŒREPL”j )�”(jT(jU(Œ1https://docs.python.org/3/glossary.html#term-REPL”j" t”bŒ Zen of Python”j )�”(jT(jU(Œ:https://docs.python.org/3/glossary.html#term-Zen-of-Python”j" t”bŒ __future__”j )�”(jT(jU(Œ7https://docs.python.org/3/glossary.html#term-__future__”j" t”bŒ __slots__”j )�”(jT(jU(Œ6https://docs.python.org/3/glossary.html#term-__slots__”j" t”bŒabstract base class”j )�”(jT(jU(Œ@https://docs.python.org/3/glossary.html#term-abstract-base-class”j" t”bŒannotate function”j )�”(jT(jU(Œ>https://docs.python.org/3/glossary.html#term-annotate-function”j" t”bŒ annotation”j )�”(jT(jU(Œ7https://docs.python.org/3/glossary.html#term-annotation”j" t”bŒargument”j )�”(jT(jU(Œ5https://docs.python.org/3/glossary.html#term-argument”j" t”bŒasynchronous context manager”j )�”(jT(jU(ŒIhttps://docs.python.org/3/glossary.html#term-asynchronous-context-manager”j" t”bŒasynchronous generator”j )�”(jT(jU(ŒChttps://docs.python.org/3/glossary.html#term-asynchronous-generator”j" t”bŒasynchronous generator iterator”j )�”(jT(jU(ŒLhttps://docs.python.org/3/glossary.html#term-asynchronous-generator-iterator”j" t”bŒasynchronous iterable”j )�”(jT(jU(ŒBhttps://docs.python.org/3/glossary.html#term-asynchronous-iterable”j" t”bŒasynchronous iterator”j )�”(jT(jU(ŒBhttps://docs.python.org/3/glossary.html#term-asynchronous-iterator”j" t”bŒatomic operation”j )�”(jT(jU(Œ=https://docs.python.org/3/glossary.html#term-atomic-operation”j" t”bŒattached thread state”j )�”(jT(jU(ŒBhttps://docs.python.org/3/glossary.html#term-attached-thread-state”j" t”bŒ attribute”j )�”(jT(jU(Œ6https://docs.python.org/3/glossary.html#term-attribute”j" t”bŒ awaitable”j )�”(jT(jU(Œ6https://docs.python.org/3/glossary.html#term-awaitable”j" t”bŒ binary file”j )�”(jT(jU(Œ8https://docs.python.org/3/glossary.html#term-binary-file”j" t”bŒborrowed reference”j )�”(jT(jU(Œ?https://docs.python.org/3/glossary.html#term-borrowed-reference”j" t”bŒbytecode”j )�”(jT(jU(Œ5https://docs.python.org/3/glossary.html#term-bytecode”j" t”bŒbytes-like object”j )�”(jT(jU(Œ>https://docs.python.org/3/glossary.html#term-bytes-like-object”j" t”bŒcallable”j )�”(jT(jU(Œ5https://docs.python.org/3/glossary.html#term-callable”j" t”bŒcallback”j )�”(jT(jU(Œ5https://docs.python.org/3/glossary.html#term-callback”j" t”bŒclass”j )�”(jT(jU(Œ2https://docs.python.org/3/glossary.html#term-class”j" t”bŒclass variable”j )�”(jT(jU(Œ;https://docs.python.org/3/glossary.html#term-class-variable”j" t”bŒclosure variable”j )�”(jT(jU(Œ=https://docs.python.org/3/glossary.html#term-closure-variable”j" t”bŒcomplex number”j )�”(jT(jU(Œ;https://docs.python.org/3/glossary.html#term-complex-number”j" t”bŒ concurrency”j )�”(jT(jU(Œ8https://docs.python.org/3/glossary.html#term-concurrency”j" t”bŒconcurrent modification”j )�”(jT(jU(ŒDhttps://docs.python.org/3/glossary.html#term-concurrent-modification”j" t”bŒcontext”j )�”(jT(jU(Œ4https://docs.python.org/3/glossary.html#term-context”j" t”bŒcontext management protocol”j )�”(jT(jU(ŒHhttps://docs.python.org/3/glossary.html#term-context-management-protocol”j" t”bŒcontext manager”j )�”(jT(jU(Œhttps://docs.python.org/3/glossary.html#term-evaluate-function”j" t”bŒ expression”j )�”(jT(jU(Œ7https://docs.python.org/3/glossary.html#term-expression”j" t”bŒextension module”j )�”(jT(jU(Œ=https://docs.python.org/3/glossary.html#term-extension-module”j" t”bŒf-string”j )�”(jT(jU(Œ5https://docs.python.org/3/glossary.html#term-f-string”j" t”bŒ f-strings”j )�”(jT(jU(Œ6https://docs.python.org/3/glossary.html#term-f-strings”j" t”bŒ file object”j )�”(jT(jU(Œ8https://docs.python.org/3/glossary.html#term-file-object”j" t”bŒfile-like object”j )�”(jT(jU(Œ=https://docs.python.org/3/glossary.html#term-file-like-object”j" t”bŒ%filesystem encoding and error handler”j )�”(jT(jU(ŒRhttps://docs.python.org/3/glossary.html#term-filesystem-encoding-and-error-handler”j" t”bŒfinder”j )�”(jT(jU(Œ3https://docs.python.org/3/glossary.html#term-finder”j" t”bŒfloor division”j )�”(jT(jU(Œ;https://docs.python.org/3/glossary.html#term-floor-division”j" t”bŒfree threading”j )�”(jT(jU(Œ;https://docs.python.org/3/glossary.html#term-free-threading”j" t”bŒ free variable”j )�”(jT(jU(Œ:https://docs.python.org/3/glossary.html#term-free-variable”j" t”bŒfree-threaded build”j )�”(jT(jU(Œ@https://docs.python.org/3/glossary.html#term-free-threaded-build”j" t”bŒfunction”j )�”(jT(jU(Œ5https://docs.python.org/3/glossary.html#term-function”j" t”bŒfunction annotation”j )�”(jT(jU(Œ@https://docs.python.org/3/glossary.html#term-function-annotation”j" t”bŒgarbage collection”j )�”(jT(jU(Œ?https://docs.python.org/3/glossary.html#term-garbage-collection”j" t”bŒ generator”j )�”(jT(jU(Œ6https://docs.python.org/3/glossary.html#term-generator”j" t”bŒgenerator expression”j )�”(jT(jU(ŒAhttps://docs.python.org/3/glossary.html#term-generator-expression”j" t”bŒgenerator iterator”j )�”(jT(jU(Œ?https://docs.python.org/3/glossary.html#term-generator-iterator”j" t”bŒgeneric function”j )�”(jT(jU(Œ=https://docs.python.org/3/glossary.html#term-generic-function”j" t”bŒ generic type”j )�”(jT(jU(Œ9https://docs.python.org/3/glossary.html#term-generic-type”j" t”bŒglobal interpreter lock”j )�”(jT(jU(ŒDhttps://docs.python.org/3/glossary.html#term-global-interpreter-lock”j" t”bŒ global state”j )�”(jT(jU(Œ9https://docs.python.org/3/glossary.html#term-global-state”j" t”bŒhash-based pyc”j )�”(jT(jU(Œ;https://docs.python.org/3/glossary.html#term-hash-based-pyc”j" t”bŒhashable”j )�”(jT(jU(Œ5https://docs.python.org/3/glossary.html#term-hashable”j" t”bŒimmortal”j )�”(jT(jU(Œ5https://docs.python.org/3/glossary.html#term-immortal”j" t”bŒ immutable”j )�”(jT(jU(Œ6https://docs.python.org/3/glossary.html#term-immutable”j" t”bŒ import path”j )�”(jT(jU(Œ8https://docs.python.org/3/glossary.html#term-import-path”j" t”bŒimporter”j )�”(jT(jU(Œ5https://docs.python.org/3/glossary.html#term-importer”j" t”bŒ importing”j )�”(jT(jU(Œ6https://docs.python.org/3/glossary.html#term-importing”j" t”bŒindex”j )�”(jT(jU(Œ2https://docs.python.org/3/glossary.html#term-index”j" t”bŒ interactive”j )�”(jT(jU(Œ8https://docs.python.org/3/glossary.html#term-interactive”j" t”bŒ interpreted”j )�”(jT(jU(Œ8https://docs.python.org/3/glossary.html#term-interpreted”j" t”bŒinterpreter shutdown”j )�”(jT(jU(ŒAhttps://docs.python.org/3/glossary.html#term-interpreter-shutdown”j" t”bŒiterable”j )�”(jT(jU(Œ5https://docs.python.org/3/glossary.html#term-iterable”j" t”bŒiterator”j )�”(jT(jU(Œ5https://docs.python.org/3/glossary.html#term-iterator”j" t”bŒkey”j )�”(jT(jU(Œ0https://docs.python.org/3/glossary.html#term-key”j" t”bŒ key function”j )�”(jT(jU(Œ9https://docs.python.org/3/glossary.html#term-key-function”j" t”bŒkeyword argument”j )�”(jT(jU(Œ=https://docs.python.org/3/glossary.html#term-keyword-argument”j" t”bŒlambda”j )�”(jT(jU(Œ3https://docs.python.org/3/glossary.html#term-lambda”j" t”bŒlexical analyzer”j )�”(jT(jU(Œ=https://docs.python.org/3/glossary.html#term-lexical-analyzer”j" t”bŒlist”j )�”(jT(jU(Œ1https://docs.python.org/3/glossary.html#term-list”j" t”bŒlist comprehension”j )�”(jT(jU(Œ?https://docs.python.org/3/glossary.html#term-list-comprehension”j" t”bŒloader”j )�”(jT(jU(Œ3https://docs.python.org/3/glossary.html#term-loader”j" t”bŒlocale encoding”j )�”(jT(jU(Œhttps://docs.python.org/3/glossary.html#term-namespace-package”j" t”bŒ native code”j )�”(jT(jU(Œ8https://docs.python.org/3/glossary.html#term-native-code”j" t”bŒ nested scope”j )�”(jT(jU(Œ9https://docs.python.org/3/glossary.html#term-nested-scope”j" t”bŒnew-style class”j )�”(jT(jU(Œhttps://docs.python.org/3/glossary.html#term-non-deterministic”j" t”bŒobject”j )�”(jT(jU(Œ3https://docs.python.org/3/glossary.html#term-object”j" t”bŒoptimized scope”j )�”(jT(jU(Œhttps://docs.python.org/3/glossary.html#term-path-based-finder”j" t”bŒ path entry”j )�”(jT(jU(Œ7https://docs.python.org/3/glossary.html#term-path-entry”j" t”bŒpath entry finder”j )�”(jT(jU(Œ>https://docs.python.org/3/glossary.html#term-path-entry-finder”j" t”bŒpath entry hook”j )�”(jT(jU(Œhttps://docs.python.org/3/glossary.html#term-set-comprehension”j" t”bŒsingle dispatch”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/intro.html#api-refcountdetails”ŒReference Count Details”t”bŒ api-refcounts”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/intro.html#api-refcounts”ŒReference Counts”t”bŒ api-types”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/intro.html#api-types”ŒTypes”t”bŒ apiabiversion”j )�”(jT(jU(Œ@https://docs.python.org/3/c-api/apiabiversion.html#apiabiversion”ŒAPI and ABI Versioning”t”bŒ applications”j )�”(jT(•jU(Œ:https://docs.python.org/3/library/struct.html#applications”Œ Applications”t”bŒarbitrary-object-messages”j )�”(jT(jU(ŒFhttps://docs.python.org/3/howto/logging.html#arbitrary-object-messages”Œ#Using arbitrary objects as messages”t”bŒ archiving”j )�”(jT(jU(Œ:https://docs.python.org/3/library/archiving.html#archiving”ŒData Compression and Archiving”t”bŒarchiving-operations”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/shutil.html#archiving-operations”ŒArchiving operations”t”bŒ arg-parsing”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/arg.html#arg-parsing”Œ%Parsing arguments and building values”t”bŒarg-parsing-string-and-buffers”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/arg.html#arg-parsing-string-and-buffers”ŒStrings and buffers”t”bŒargparse-tutorial”j )�”(jT(jU(Œ?https://docs.python.org/3/howto/argparse.html#argparse-tutorial”ŒArgparse Tutorial”t”bŒ argparse-type”j )�”(jT(jU(Œ=https://docs.python.org/3/library/argparse.html#argparse-type”Œtype”t”bŒargs”j )�”(jT(jU(Œ4https://docs.python.org/3/library/argparse.html#args”ŒBeyond sys.argv”t”bŒas”j )�”(jT(jU(Œ:https://docs.python.org/3/reference/compound_stmts.html#as”ŒThe with statement”t”bŒ as-patterns”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/compound_stmts.html#as-patterns”Œ AS Patterns”t”bŒassert”j )�”(jT(jU(Œhttps://docs.python.org/3/library/unittest.html#assert-methods”j" t”bŒ assignment”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/simple_stmts.html#assignment”ŒAssignment statements”t”bŒassignment-expressions”j )�”(jT(jU(ŒKhttps://docs.python.org/3/reference/expressions.html#assignment-expressions”ŒAssignment expressions”t”bŒast-cli”j )�”(jT(jU(Œ2https://docs.python.org/3/library/ast.html#ast-cli”ŒCommand-line usage”t”bŒast-compiler-flags”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ast.html#ast-compiler-flags”ŒCompiler flags”t”bŒast-expressions”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ast.html#ast-expressions”Œ Expressions”t”bŒast-root-nodes”j )�”(jT(jU(Œ9https://docs.python.org/3/library/ast.html#ast-root-nodes”Œ Root nodes”t”bŒast-statements”j )�”(jT(jU(Œ9https://docs.python.org/3/library/ast.html#ast-statements”Œ Statements”t”bŒast-type-params”j )�”(jT(jU(Œ:https://docs.python.org/3/library/ast.html#ast-type-params”ŒType parameters”t”bŒasync”j )�”(jT(jU(Œ=https://docs.python.org/3/reference/compound_stmts.html#async”Œ Coroutines”t”bŒ async def”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/compound_stmts.html#async-def”ŒCoroutine function definition”t”bŒ async for”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/compound_stmts.html#async-for”ŒThe async for statement”t”bŒ async with”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/compound_stmts.html#async-with”ŒThe async with statement”t”bŒasync-context-managers”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/datamodel.html#async-context-managers”ŒAsynchronous Context Managers”t”bŒasync-iterators”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/datamodel.html#async-iterators”ŒAsynchronous Iterators”t”bŒ async-structs”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/typeobj.html#async-structs”ŒAsync Object Structures”t”bŒ asynchronous-generator-functions”j )�”(jT(jU(ŒUhttps://docs.python.org/3/reference/expressions.html#asynchronous-generator-functions”Œ Asynchronous generator functions”t”bŒasynchronous-generator-methods”j )�”(jT(jU(ŒShttps://docs.python.org/3/reference/expressions.html#asynchronous-generator-methods”Œ'Asynchronous generator-iterator methods”t”bŒasynchronous-programming”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/typing.html#asynchronous-programming”Œ/Aliases to asynchronous ABCs in collections.abc”t”bŒasyncio-awaitables”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/asyncio-task.html#asyncio-awaitables”Œ Awaitables”t”bŒ asyncio-cli”j )�”(jT(jU(Œ:https://docs.python.org/3/library/asyncio.html#asyncio-cli”Œ asyncio REPL”t”bŒasyncio-coroutine-not-scheduled”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/asyncio-dev.html#asyncio-coroutine-not-scheduled”ŒDetect never-awaited coroutines”t”bŒasyncio-custom-policies”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/asyncio-policy.html#asyncio-custom-policies”ŒCustom Policies”t”bŒasyncio-debug-mode”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/asyncio-dev.html#asyncio-debug-mode”Œ Debug Mode”t”bŒasyncio-delayed-calls”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-delayed-calls”ŒScheduling delayed callbacks”t”bŒ asyncio-dev”j )�”(jT(jU(Œ>https://docs.python.org/3/library/asyncio-dev.html#asyncio-dev”ŒDeveloping with asyncio”t”bŒasyncio-event-loop”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-event-loop”Œ Event loop”t”bŒ"asyncio-event-loop-implementations”j )�”(jT(jU(Œ[https://docs.python.org/3/library/asyncio-eventloop.html#asyncio-event-loop-implementations”ŒEvent loop implementations”t”bŒasyncio-event-loop-methods”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-event-loop-methods”ŒEvent loop methods”t”bŒasyncio-event-loops”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-event-loops”ŒEvent loop implementations”t”bŒasyncio-exceptions”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/asyncio-exceptions.html#asyncio-exceptions”Œ Exceptions”t”bŒasyncio-future-obj”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/asyncio-future.html#asyncio-future-obj”Œ Future Object”t”bŒasyncio-futures”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/asyncio-future.html#asyncio-futures”ŒFutures”t”bŒ asyncio-graph”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/asyncio-graph.html#asyncio-graph”ŒCall Graph Introspection”t”bŒasyncio-handle-blocking”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/asyncio-dev.html#asyncio-handle-blocking”ŒRunning Blocking Code”t”bŒasyncio-logger”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/asyncio-dev.html#asyncio-logger”ŒLogging”t”bŒasyncio-multithreading”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/asyncio-dev.html#asyncio-multithreading”ŒConcurrency and Multithreading”t”bŒasyncio-pass-keywords”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-pass-keywords”j" t”bŒasyncio-platform-support”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/asyncio-platforms.html#asyncio-platform-support”ŒPlatform Support”t”bŒasyncio-policies”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/asyncio-policy.html#asyncio-policies”ŒPolicies”t”bŒasyncio-policy-builtin”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/asyncio-policy.html#asyncio-policy-builtin”j" t”bŒasyncio-policy-get-set”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/asyncio-policy.html#asyncio-policy-get-set”ŒGetting and Setting the Policy”t”bŒasyncio-policy-objects”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/asyncio-policy.html#asyncio-policy-objects”ŒPolicy Objects”t”bŒasyncio-protocol”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-protocol”Œ Protocols”t”bŒasyncio-queues”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/asyncio-queue.html#asyncio-queues”ŒQueues”t”bŒasyncio-streams”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/asyncio-stream.html#asyncio-streams”ŒStreams”t”bŒasyncio-subprocess”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/asyncio-subprocess.html#asyncio-subprocess”Œ Subprocesses”t”bŒasyncio-subprocess-protocols”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-subprocess-protocols”ŒSubprocess Protocols”t”bŒasyncio-subprocess-threads”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/asyncio-subprocess.html#asyncio-subprocess-threads”ŒSubprocess and Threads”t”bŒasyncio-subprocess-transports”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-subprocess-transports”ŒSubprocess Transports”t”bŒ asyncio-sync”j )�”(jT(jU(Œ@https://docs.python.org/3/library/asyncio-sync.html#asyncio-sync”ŒSynchronization Primitives”t”bŒasyncio-task-obj”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/asyncio-task.html#asyncio-task-obj”Œ Task object”t”bŒasyncio-tcp-echo-client-streams”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/asyncio-stream.html#asyncio-tcp-echo-client-streams”ŒTCP echo client using streams”t”bŒasyncio-tcp-echo-server-streams”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/asyncio-stream.html#asyncio-tcp-echo-server-streams”ŒTCP echo server using streams”t”bŒasyncio-transport”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-transport”Œ Transports”t”bŒasyncio-transports-protocols”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-transports-protocols”ŒTransports and Protocols”t”bŒ asyncio-udp-echo-client-protocol”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-udp-echo-client-protocol”ŒUDP Echo Client”t”bŒ asyncio-udp-echo-server-protocol”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-udp-echo-server-protocol”ŒUDP Echo Server”t”bŒasyncio-windows-subprocess”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/asyncio-platforms.html#asyncio-windows-subprocess”ŒSubprocess Support on Windows”t”bŒasyncio_example_barrier”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/asyncio-sync.html#asyncio-example-barrier”j" t”bŒasyncio_example_call_later”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-example-call-later”Œ*Display the current date with call_later()”t”bŒ!asyncio_example_create_connection”j )�”(jT(jU(ŒYhttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-example-create-connection”ŒConnecting Existing Sockets”t”bŒ)asyncio_example_create_connection-streams”j )�”(jT(jU(Œ_https://docs.python.org/3/library/asyncio-stream.html#asyncio-example-create-connection-streams”Œ6Register an open socket to wait for data using streams”t”bŒ&asyncio_example_create_subprocess_exec”j )�”(jT(jU(Œ`https://docs.python.org/3/library/asyncio-subprocess.html#asyncio-example-create-subprocess-exec”j" t”bŒasyncio_example_future”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/asyncio-future.html#asyncio-example-future”j" t”bŒasyncio_example_gather”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/asyncio-task.html#asyncio-example-gather”j" t”bŒ#asyncio_example_lowlevel_helloworld”j )�”(jT(jU(Œ\https://docs.python.org/3/library/asyncio-eventloop.html#asyncio-example-lowlevel-helloworld”ŒHello World with call_soon()”t”bŒasyncio_example_queue_dist”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/asyncio-queue.html#asyncio-example-queue-dist”j" t”bŒasyncio_example_sleep”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/asyncio-task.html#asyncio-example-sleep”j" t”bŒasyncio_example_stream”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/asyncio-stream.html#asyncio-example-stream”j" t”bŒ asyncio_example_subprocess_proto”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/asyncio-protocol.html#asyncio-example-subprocess-proto”Œ-loop.subprocess_exec() and SubprocessProtocol”t”bŒ asyncio_example_subprocess_shell”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/asyncio-subprocess.html#asyncio-example-subprocess-shell”j" t”bŒasyncio_example_sync_event”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/asyncio-sync.html#asyncio-example-sync-event”j" t”bŒasyncio_example_task_cancel”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/asyncio-task.html#asyncio-example-task-cancel”j" t”bŒ(asyncio_example_tcp_echo_client_protocol”j )�”(jT(jU(Œ`https://docs.python.org/3/library/asyncio-protocol.html#asyncio-example-tcp-echo-client-protocol”ŒTCP Echo Client”t”bŒ(asyncio_example_tcp_echo_server_protocol”j )�”(jT(jU(Œ`https://docs.python.org/3/library/asyncio-protocol.html#asyncio-example-tcp-echo-server-protocol”ŒTCP Echo Server”t”bŒasyncio_example_unix_signals”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-example-unix-signals”Œ*Set signal handlers for SIGINT and SIGTERM”t”bŒasyncio_example_waitfor”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/asyncio-task.html#asyncio-example-waitfor”j" t”bŒasyncio_example_watch_fd”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio-example-watch-fd”Œ'Watch a file descriptor for read events”t”bŒatexit-example”j )�”(jT(jU(Œhttps://docs.python.org/3/library/bisect.html#bisect-functions”j" t”bŒbisect-example”j )�”(jT(jU(Œhttps://docs.python.org/3/whatsnew/3.8.html#bpo-36085-whatsnew”j" t”bŒbpo-36817-whatsnew”j )�”(jT(jU(Œ>https://docs.python.org/3/whatsnew/3.8.html#bpo-36817-whatsnew”ŒBf-strings support = for self-documenting expressions and debugging”t”bŒbreak”j )�”(jT(jU(Œ;https://docs.python.org/3/reference/simple_stmts.html#break”ŒThe break statement”t”bŒ7break-and-continue-statements-and-else-clauses-on-loops”j )�”(jT(jU(Œkhttps://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops”Œelse Clauses on Loops”t”bŒbrowser-controllers”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/webbrowser.html#browser-controllers”ŒBrowser controller objects”t”bŒbsd0”j )�”(jT(jU(Œ+https://docs.python.org/3/license.html#bsd0”Œhttps://docs.python.org/3/c-api/arg.html#c-arg-borrowed-buffer”j" t”bŒ c-preinit”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/init_config.html#c-preinit”Œ%Preinitialize Python with PyPreConfig”t”bŒc-stack-compatibility”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/faulthandler.html#c-stack-compatibility”ŒC Stack Compatibility”t”bŒc-wrapper-software”j )�”(jT(jU(Œ?https://docs.python.org/3/faq/extending.html#c-wrapper-software”Œ.Writing C is hard; are there any alternatives?”t”bŒc99”j )�”(jT(jU(Œ.https://docs.python.org/3/library/sys.html#c99”j" t”bŒc_codeobject_flags”j )�”(jT(jU(Œhttps://docs.python.org/3/library/cmdlinelibs.html#cmdlinelibs”Œ Command-line interface libraries”t”bŒ code-context”j )�”(jT(jU(Œ8https://docs.python.org/3/library/idle.html#code-context”Œ Code Context”t”bŒ code-objects”j )�”(jT(jU(Œ?https://docs.python.org/3/reference/datamodel.html#code-objects”Œ Code objects”t”bŒcodec-base-classes”j )�”(jT(jU(Œ@https://docs.python.org/3/library/codecs.html#codec-base-classes”ŒCodec Base Classes”t”bŒcodec-handling-improvements”j )�”(jT(jU(ŒGhttps://docs.python.org/3/whatsnew/3.4.html#codec-handling-improvements”ŒImprovements to Codec Handling”t”bŒ codec-objects”j )�”(jT(jU(Œ;https://docs.python.org/3/library/codecs.html#codec-objects”ŒStateless Encoding and Decoding”t”bŒcodec-registry”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/codec.html#codec-registry”Œ$Codec registry and support functions”t”bŒ codeobjects”j )�”(jT(jU(Œ5https://docs.python.org/3/c-api/code.html#codeobjects”Œ Code Objects”t”bŒ!collections-abstract-base-classes”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/collections.abc.html#collections-abstract-base-classes”Œ!Collections Abstract Base Classes”t”bŒcollections_ordereddict__eq__”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/collections.html#collections-ordereddict-eq”j" t”bŒcomments”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/lexical_analysis.html#comments”ŒComments”t”bŒcommon-structs”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/structures.html#common-structs”ŒCommon Object Structures”t”bŒcomparison-with-json”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/pickle.html#comparison-with-json”ŒComparison with json”t”bŒ comparisons”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/expressions.html#comparisons”Œ Comparisons”t”bŒcompat32_message”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/email.compat32-message.html#compat32-message”ŒKemail.message.Message: Representing an email message using the compat32 API”t”bŒ compilation”j )�”(jT(jU(Œ>https://docs.python.org/3/extending/extending.html#compilation”ŒCompilation and Linkage”t”bŒcompileall-cli”j )�”(jT(jU(Œ@https://docs.python.org/3/library/compileall.html#compileall-cli”ŒCommand-line use”t”bŒ compiling”j )�”(jT(jU(Œhttps://docs.python.org/3/library/concurrency.html#concurrency”ŒConcurrent Execution”t”bŒcondition-objects”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/threading.html#condition-objects”ŒCondition objects”t”bŒconfigparser-objects”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/configparser.html#configparser-objects”ŒConfigParser Objects”t”bŒconfigure-options”j )�”(jT(jU(Œ@https://docs.python.org/3/using/configure.html#configure-options”ŒConfigure Options”t”bŒ"configure-options-for-dependencies”j )�”(jT(jU(ŒQhttps://docs.python.org/3/using/configure.html#configure-options-for-dependencies”Œ$Options for third-party dependencies”t”bŒconfigure-queue”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/logging.config.html#configure-queue”Œ*Configuring QueueHandler and QueueListener”t”bŒconsole-objects”j )�”(jT(jU(Œ;https://docs.python.org/3/library/code.html#console-objects”ŒInteractive Console Objects”t”bŒconst”j )�”(jT(jU(Œ5https://docs.python.org/3/library/argparse.html#const”j" t”bŒ constants”j )�”(jT(jU(Œ7https://docs.python.org/3/library/winreg.html#constants”Œ Constants”t”bŒcontent-handler-objects”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/xml.sax.handler.html#content-handler-objects”ŒContentHandler Objects”t”bŒcontents-of-module-re”j )�”(jT(jU(Œ?https://docs.python.org/3/library/re.html#contents-of-module-re”ŒModule Contents”t”bŒ context-info”j )�”(jT(jU(ŒBhttps://docs.python.org/3/howto/logging-cookbook.html#context-info”Œ4Adding contextual information to your logging output”t”bŒcontext-manager”j )�”(jT(jU(ŒEhttps://docs.python.org/3/howto/logging-cookbook.html#context-manager”Œ-Using a context manager for selective logging”t”bŒcontext-manager-types”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/typing.html#context-manager-types”ŒAliases to contextlib ABCs”t”bŒcontext-managers”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/datamodel.html#context-managers”ŒWith Statement Context Managers”t”bŒ contextlibmod”j )�”(jT(jU(Œ9https://docs.python.org/3/whatsnew/2.5.html#contextlibmod”ŒThe contextlib module”t”bŒcontextvarsobjects”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/contextvars.html#contextvarsobjects”ŒContext Variables Objects”t”bŒ%contextvarsobjects_pointertype_change”j )�”(jT(jU(ŒVhttps://docs.python.org/3/c-api/contextvars.html#contextvarsobjects-pointertype-change”j" t”bŒcontinue”j )�”(jT(jU(Œ>https://docs.python.org/3/reference/simple_stmts.html#continue”ŒThe continue statement”t”bŒcontributing-to-python”j )�”(jT(jU(Œ:https://docs.python.org/3/bugs.html#contributing-to-python”Œ/Getting started contributing to Python yourself”t”bŒ conversions”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/expressions.html#conversions”ŒArithmetic conversions”t”bŒconverting-argument-sequence”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/subprocess.html#converting-argument-sequence”Œ6Converting an argument sequence to a string on Windows”t”bŒcookbook-ref-links”j )�”(jT(jU(ŒHhttps://docs.python.org/3/howto/logging-cookbook.html#cookbook-ref-links”ŒOther resources”t”bŒcookbook-rotator-namer”j )�”(jT(jU(ŒLhttps://docs.python.org/3/howto/logging-cookbook.html#cookbook-rotator-namer”Œ>Using a rotator and namer to customize log rotation processing”t”bŒcookie-example”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/http.cookies.html#cookie-example”ŒExample”t”bŒcookie-jar-objects”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/http.cookiejar.html#cookie-jar-objects”Œ#CookieJar and FileCookieJar Objects”t”bŒcookie-objects”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/http.cookies.html#cookie-objects”ŒCookie Objects”t”bŒcookie-policy-objects”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/http.cookiejar.html#cookie-policy-objects”ŒCookiePolicy Objects”t”bŒ coro-objects”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/coro.html#coro-objects”ŒCoroutine Objects”t”bŒ coroutine”j )�”(jT(jU(Œ=https://docs.python.org/3/library/asyncio-task.html#coroutine”Œ Coroutines”t”bŒcoroutine-objects”j )�”(jT(jU(ŒDhttps://docs.python.org/3/reference/datamodel.html#coroutine-objects”ŒCoroutine Objects”t”bŒcorresponding-to-built-in-types”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/typing.html#corresponding-to-built-in-types”ŒAliases to built-in types”t”bŒ/corresponding-to-collections-in-collections-abc”j )�”(jT(jU(Œ]https://docs.python.org/3/library/typing.html#corresponding-to-collections-in-collections-abc”Œ,Aliases to container ABCs in collections.abc”t”bŒ/corresponding-to-other-types-in-collections-abc”j )�”(jT(jU(Œ]https://docs.python.org/3/library/typing.html#corresponding-to-other-types-in-collections-abc”Œ(Aliases to other ABCs in collections.abc”t”bŒ%corresponding-to-types-in-collections”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/typing.html#corresponding-to-types-in-collections”ŒAliases to types in collections”t”bŒ countingrefs”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/refcounting.html#countingrefs”ŒReference Counting”t”bŒ cplusplus”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ctypes.html#ctypes-surprises”Œ Surprises”t”bŒctypes-thread-safety”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/ctypes.html#ctypes-thread-safety”ŒThread safety without the GIL”t”bŒctypes-type-conversions”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/ctypes.html#ctypes-type-conversions”ŒType conversions”t”bŒctypes-utility-functions”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/ctypes.html#ctypes-utility-functions”ŒUtility functions”t”bŒ ctypes-variable-sized-data-types”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/ctypes.html#ctypes-variable-sized-data-types”ŒVariable-sized data types”t”bŒctypes-wintypes”j )�”(jT(jU(Œ=https://docs.python.org/3/library/ctypes.html#ctypes-wintypes”j" t”bŒcurses-acs-codes”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses-acs-codes”j" t”bŒcurses-functions”j )�”(jT(jU(Œ>https://docs.python.org/3/library/curses.html#curses-functions”Œ Functions”t”bŒ curses-howto”j )�”(jT(jU(Œ8https://docs.python.org/3/howto/curses.html#curses-howto”ŒCurses Programming with Python”t”bŒcurses-panel-objects”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/curses.panel.html#curses-panel-objects”Œ Panel Objects”t”bŒcurses-textpad-objects”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/curses.html#curses-textpad-objects”ŒTextbox objects”t”bŒcurses-window-objects”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/curses.html#curses-window-objects”ŒWindow Objects”t”bŒcursespanel-functions”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/curses.panel.html#cursespanel-functions”Œ Functions”t”bŒcustom-format-exception”j )�”(jT(jU(ŒMhttps://docs.python.org/3/howto/logging-cookbook.html#custom-format-exception”ŒCustomized exception formatting”t”bŒcustom-handlers”j )�”(jT(jU(ŒEhttps://docs.python.org/3/howto/logging-cookbook.html#custom-handlers”Œ&Customizing handlers with dictConfig()”t”bŒcustom-level-handling”j )�”(jT(jU(ŒKhttps://docs.python.org/3/howto/logging-cookbook.html#custom-level-handling”ŒCustom handling of levels”t”bŒ custom-levels”j )�”(jT(jU(Œ:https://docs.python.org/3/howto/logging.html#custom-levels”Œ Custom Levels”t”bŒcustom-logrecord”j )�”(jT(jU(ŒFhttps://docs.python.org/3/howto/logging-cookbook.html#custom-logrecord”ŒCustomizing LogRecord”t”bŒ custominterp”j )�”(jT(jU(Œ@https://docs.python.org/3/library/custominterp.html#custominterp”ŒCustom Python Interpreters”t”bŒ customization”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/datamodel.html#customization”ŒBasic customization”t”bŒcustomize-memory-allocators”j )�”(jT(jU(ŒGhttps://docs.python.org/3/c-api/memory.html#customize-memory-allocators”ŒCustomize Memory Allocators”t”bŒdata-handler-objects”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/urllib.request.html#data-handler-objects”ŒDataHandler Objects”t”bŒdataclasses-class-variables”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/dataclasses.html#dataclasses-class-variables”ŒClass variables”t”bŒdataclasses-frozen”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/dataclasses.html#dataclasses-frozen”ŒFrozen instances”t”bŒdataclasses-inheritance”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/dataclasses.html#dataclasses-inheritance”Œ Inheritance”t”bŒdataclasses-init-only-variables”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/dataclasses.html#dataclasses-init-only-variables”ŒInit-only variables”t”bŒdatagram-handler”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/logging.handlers.html#datagram-handler”ŒDatagramHandler”t”bŒ datamodel”j )�”(jT(jU(Œhttps://docs.python.org/3/library/decimal.html#decimal-context”ŒContext objects”t”bŒdecimal-decimal”j )�”(jT(jU(Œ>https://docs.python.org/3/library/decimal.html#decimal-decimal”ŒDecimal objects”t”bŒ decimal-faq”j )�”(jT(jU(Œ:https://docs.python.org/3/library/decimal.html#decimal-faq”Œ Decimal FAQ”t”bŒ decimal-notes”j )�”(jT(jU(Œhttps://docs.python.org/3/library/decimal.html#decimal-recipes”ŒRecipes”t”bŒdecimal-rounding-modes”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/decimal.html#decimal-rounding-modes”Œ Constants”t”bŒdecimal-signals”j )�”(jT(jU(Œ>https://docs.python.org/3/library/decimal.html#decimal-signals”ŒSignals”t”bŒdecimal-threads”j )�”(jT(jU(Œ>https://docs.python.org/3/library/decimal.html#decimal-threads”ŒWorking with threads”t”bŒdecimal-tutorial”j )�”(jT(jU(Œ?https://docs.python.org/3/library/decimal.html#decimal-tutorial”ŒQuick-start tutorial”t”bŒdecompress-wbits”j )�”(jT(jU(Œhttps://docs.python.org/3/reference/datamodel.html#descriptors”ŒImplementing Descriptors”t”bŒdest”j )�”(jT(jU(Œ4https://docs.python.org/3/library/argparse.html#dest”j" t”bŒdetaching-thread-state”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/threads.html#detaching-thread-state”Œ.Detaching the thread state from extension code”t”bŒdeterministic-profiling”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/profile.html#deterministic-profiling”Œ What Is Deterministic Profiling?”t”bŒ development”j )�”(jT(jU(Œ>https://docs.python.org/3/library/development.html#development”ŒDevelopment Tools”t”bŒdevmode”j )�”(jT(jU(Œ6https://docs.python.org/3/library/devmode.html#devmode”ŒPython Development Mode”t”bŒdevpoll-objects”j )�”(jT(jU(Œ=https://docs.python.org/3/library/select.html#devpoll-objects”Œ/dev/poll Polling Objects”t”bŒdict”j )�”(jT(jU(Œ9https://docs.python.org/3/reference/expressions.html#dict”ŒDictionary displays”t”bŒ dict-views”j )�”(jT(jU(Œ:https://docs.python.org/3/library/stdtypes.html#dict-views”ŒDictionary view objects”t”bŒ dictobjects”j )�”(jT(jU(Œ5https://docs.python.org/3/c-api/dict.html#dictobjects”ŒDictionary Objects”t”bŒdiffer-examples”j )�”(jT(jU(Œ>https://docs.python.org/3/library/difflib.html#differ-examples”ŒDiffer example”t”bŒdiffer-objects”j )�”(jT(jU(Œ=https://docs.python.org/3/library/difflib.html#differ-objects”ŒDiffer objects”t”bŒdifflib-interface”j )�”(jT(jU(Œ@https://docs.python.org/3/library/difflib.html#difflib-interface”Œ#A command-line interface to difflib”t”bŒdir_fd”j )�”(jT(jU(Œ0https://docs.python.org/3/library/os.html#dir-fd”j" t”bŒdircmp-objects”j )�”(jT(jU(Œ=https://docs.python.org/3/library/filecmp.html#dircmp-objects”ŒThe dircmp class”t”bŒdis-cli”j )�”(jT(jU(Œ2https://docs.python.org/3/library/dis.html#dis-cli”ŒCommand-line interface”t”bŒdisable_posix_spawn”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/subprocess.html#disable-posix-spawn”ŒDisable use of posix_spawn()”t”bŒdistinct”j )�”(jT(jU(Œ6https://docs.python.org/3/library/typing.html#distinct”ŒNewType”t”bŒdistributing-index”j )�”(jT(jU(ŒDhttps://docs.python.org/3/distributing/index.html#distributing-index”ŒDistributing Python Modules”t”bŒ+distributing-python-applications-on-the-mac”j )�”(jT(jU(ŒThttps://docs.python.org/3/using/mac.html#distributing-python-applications-on-the-mac”Œ Distributing Python Applications”t”bŒ distributions”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/importlib.metadata.html#distributions”Œ Distributions”t”bŒdistutils-deprecated”j )�”(jT(jU(ŒAhttps://docs.python.org/3/whatsnew/3.10.html#distutils-deprecated”Œ distutils”t”bŒ dnt-basics”j )�”(jT(jU(ŒEhttps://docs.python.org/3/extending/newtypes_tutorial.html#dnt-basics”Œ The Basics”t”bŒdnt-type-methods”j )�”(jT(jU(ŒBhttps://docs.python.org/3/extending/newtypes.html#dnt-type-methods”j" t”bŒdoc-xmlrpc-servers”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/xmlrpc.server.html#doc-xmlrpc-servers”ŒDocXMLRPCServer objects”t”bŒdoctest-advanced-api”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/doctest.html#doctest-advanced-api”Œ Advanced API”t”bŒdoctest-basic-api”j )�”(jT(jU(Œ@https://docs.python.org/3/library/doctest.html#doctest-basic-api”Œ Basic API”t”bŒ doctest-cli”j )�”(jT(jU(Œ:https://docs.python.org/3/library/doctest.html#doctest-cli”ŒCommand-line Usage”t”bŒdoctest-debugging”j )�”(jT(jU(Œ@https://docs.python.org/3/library/doctest.html#doctest-debugging”Œ Debugging”t”bŒdoctest-directives”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/doctest.html#doctest-directives”Œ Directives”t”bŒdoctest-doctest”j )�”(jT(jU(Œ>https://docs.python.org/3/library/doctest.html#doctest-doctest”ŒDocTest Objects”t”bŒdoctest-doctestfinder”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/doctest.html#doctest-doctestfinder”ŒDocTestFinder objects”t”bŒdoctest-doctestparser”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/doctest.html#doctest-doctestparser”ŒDocTestParser objects”t”bŒdoctest-doctestrunner”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/doctest.html#doctest-doctestrunner”ŒDocTestRunner objects”t”bŒdoctest-example”j )�”(jT(jU(Œ>https://docs.python.org/3/library/doctest.html#doctest-example”ŒExample Objects”t”bŒdoctest-exceptions”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/doctest.html#doctest-exceptions”ŒWhat About Exceptions?”t”bŒdoctest-execution-context”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/doctest.html#doctest-execution-context”ŒWhat’s the Execution Context?”t”bŒdoctest-finding-examples”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/doctest.html#doctest-finding-examples”Œ&How are Docstring Examples Recognized?”t”bŒdoctest-how-it-works”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/doctest.html#doctest-how-it-works”Œ How It Works”t”bŒdoctest-options”j )�”(jT(jU(Œ>https://docs.python.org/3/library/doctest.html#doctest-options”Œ Option Flags”t”bŒdoctest-outputchecker”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/doctest.html#doctest-outputchecker”ŒOutputChecker objects”t”bŒdoctest-simple-testfile”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/doctest.html#doctest-simple-testfile”Œ.Simple Usage: Checking Examples in a Text File”t”bŒdoctest-simple-testmod”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/doctest.html#doctest-simple-testmod”Œ-Simple Usage: Checking Examples in Docstrings”t”bŒdoctest-soapbox”j )�”(jT(jU(Œ>https://docs.python.org/3/library/doctest.html#doctest-soapbox”ŒSoapbox”t”bŒdoctest-unittest-api”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/doctest.html#doctest-unittest-api”Œ Unittest API”t”bŒdoctest-warnings”j )�”(jT(jU(Œ?https://docs.python.org/3/library/doctest.html#doctest-warnings”ŒWarnings”t”bŒdoctest-which-docstrings”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/doctest.html#doctest-which-docstrings”ŒWhich Docstrings Are Examined?”t”bŒdom-accessor-methods”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/xml.dom.html#dom-accessor-methods”ŒAccessor Methods”t”bŒdom-attr-objects”j )�”(jT(jU(Œ?https://docs.python.org/3/library/xml.dom.html#dom-attr-objects”Œ Attr Objects”t”bŒdom-attributelist-objects”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/xml.dom.html#dom-attributelist-objects”ŒNamedNodeMap Objects”t”bŒdom-comment-objects”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/xml.dom.html#dom-comment-objects”ŒComment Objects”t”bŒdom-conformance”j )�”(jT(jU(Œ>https://docs.python.org/3/library/xml.dom.html#dom-conformance”Œ Conformance”t”bŒdom-document-objects”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/xml.dom.html#dom-document-objects”ŒDocument Objects”t”bŒdom-documenttype-objects”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/xml.dom.html#dom-documenttype-objects”ŒDocumentType Objects”t”bŒdom-element-objects”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/xml.dom.html#dom-element-objects”ŒElement Objects”t”bŒ dom-example”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/xml.dom.minidom.html#dom-example”Œ DOM Example”t”bŒdom-exceptions”j )�”(jT(jU(Œ=https://docs.python.org/3/library/xml.dom.html#dom-exceptions”Œ Exceptions”t”bŒdom-implementation-objects”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/xml.dom.html#dom-implementation-objects”ŒDOMImplementation Objects”t”bŒdom-node-objects”j )�”(jT(jU(Œ?https://docs.python.org/3/library/xml.dom.html#dom-node-objects”Œ Node Objects”t”bŒdom-nodelist-objects”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/xml.dom.html#dom-nodelist-objects”ŒNodeList Objects”t”bŒ dom-objects”j )�”(jT(jU(Œ:https://docs.python.org/3/library/xml.dom.html#dom-objects”ŒObjects in the DOM”t”bŒdom-pi-objects”j )�”(jT(jU(Œ=https://docs.python.org/3/library/xml.dom.html#dom-pi-objects”ŒProcessingInstruction Objects”t”bŒdom-text-objects”j )�”(jT(jU(Œ?https://docs.python.org/3/library/xml.dom.html#dom-text-objects”ŒText and CDATASection Objects”t”bŒdom-type-mapping”j )�”(jT(jU(Œ?https://docs.python.org/3/library/xml.dom.html#dom-type-mapping”Œ Type Mapping”t”bŒdomeventstream-objects”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/xml.dom.pulldom.html#domeventstream-objects”ŒDOMEventStream Objects”t”bŒdtd-handler-objects”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/xml.sax.handler.html#dtd-handler-objects”ŒDTDHandler Objects”t”bŒdynamic-features”j )�”(jT(jU(ŒHhttps://docs.python.org/3/reference/executionmodel.html#dynamic-features”Œ!Interaction with dynamic features”t”bŒdynamic-linking”j )�”(jT(jU(Œ@https://docs.python.org/3/extending/windows.html#dynamic-linking”Œ$Differences Between Unix and Windows”t”bŒeager-task-factory”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/asyncio-task.html#eager-task-factory”ŒEager task factory”t”bŒediting-and-navigation”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/idle.html#editing-and-navigation”ŒEditing and Navigation”t”bŒeditors”j )�”(jT(jU(Œ4https://docs.python.org/3/using/editors.html#editors”ŒEditors and IDEs”t”bŒefficient_string_concatenation”j )�”(jT(jU(ŒMhttps://docs.python.org/3/faq/programming.html#efficient-string-concatenation”ŒDWhat is the most efficient way to concatenate many strings together?”t”bŒelementinclude-functions”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementinclude-functions”Œ Functions”t”bŒelementtree-element-objects”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-element-objects”ŒElement Objects”t”bŒelementtree-elementtree-objects”j )�”(jT(jU(Œ\https://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-elementtree-objects”ŒElementTree Objects”t”bŒelementtree-functions”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-functions”Œ Functions”t”bŒelementtree-parsing-xml”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-parsing-xml”Œ Parsing XML”t”bŒelementtree-pull-parsing”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-pull-parsing”Œ!Pull API for non-blocking parsing”t”bŒelementtree-qname-objects”j )�”(jT(jU(ŒVhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-qname-objects”Œ QName Objects”t”bŒelementtree-section”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/2.7.html#elementtree-section”ŒUpdated module: ElementTree 1.3”t”bŒelementtree-treebuilder-objects”j )�”(jT(jU(Œ\https://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-treebuilder-objects”ŒTreeBuilder Objects”t”bŒelementtree-xinclude”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xinclude”ŒXInclude support”t”bŒelementtree-xmlparser-objects”j )�”(jT(jU(ŒZhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xmlparser-objects”ŒXMLParser Objects”t”bŒ!elementtree-xmlpullparser-objects”j )�”(jT(jU(Œ^https://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xmlpullparser-objects”ŒXMLPullParser Objects”t”bŒelementtree-xpath”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xpath”Œ XPath support”t”bŒelif”j )�”(jT(jU(Œhttps://docs.python.org/3/library/locale.html#embedding-locale”Œ4For extension writers and programs that embed Python”t”bŒembeddingincplusplus”j )�”(jT(jU(ŒGhttps://docs.python.org/3/extending/embedding.html#embeddingincplusplus”ŒEmbedding Python in C++”t”bŒ encodings”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/lexical_analysis.html#encodings”ŒEncoding declarations”t”bŒencodings-overview”j )�”(jT(jU(Œ@https://docs.python.org/3/library/codecs.html#encodings-overview”ŒEncodings and Unicode”t”bŒendmarker-token”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/lexical_analysis.html#endmarker-token”Œ End marker”t”bŒ ensurepip-cli”j •@)�”(jT(jU(Œ>https://docs.python.org/3/library/ensurepip.html#ensurepip-cli”ŒCommand-line interface”t”bŒentity-resolver-objects”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/xml.sax.handler.html#entity-resolver-objects”ŒEntityResolver Objects”t”bŒ entry-points”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/importlib.metadata.html#entry-points”Œ Entry points”t”bŒenum-advanced-tutorial”j )�”(jT(jU(Œ@https://docs.python.org/3/howto/enum.html#enum-advanced-tutorial”Œ?Programmatic access to enumeration members and their attributes”t”bŒenum-basic-tutorial”j )�”(jT(jU(Œ=https://docs.python.org/3/howto/enum.html#enum-basic-tutorial”j" t”bŒenum-class-differences”j )�”(jT(jU(Œ@https://docs.python.org/3/howto/enum.html#enum-class-differences”Œ"How are Enums and Flags different?”t”bŒ enum-cookbook”j )�”(jT(jU(Œ7https://docs.python.org/3/howto/enum.html#enum-cookbook”Œ Enum Cookbook”t”bŒenum-dataclass-support”j )�”(jT(jU(Œ@https://docs.python.org/3/howto/enum.html#enum-dataclass-support”ŒDataclass support”t”bŒenum-dunder-sunder”j )�”(jT(jU(Œ>https://docs.python.org/3/library/enum.html#enum-dunder-sunder”ŒSupported __dunder__ names”t”bŒ enum-howto”j )�”(jT(jU(Œ4https://docs.python.org/3/howto/enum.html#enum-howto”Œ Enum HOWTO”t”bŒenum-time-period”j )�”(jT(jU(Œ:https://docs.python.org/3/howto/enum.html#enum-time-period”Œ TimePeriod”t”bŒenumtype-examples”j )�”(jT(jU(Œ;https://docs.python.org/3/howto/enum.html#enumtype-examples”ŒSubclassing EnumType”t”bŒepoch”j )�”(jT(jU(Œ1https://docs.python.org/3/library/time.html#epoch”j" t”bŒ epoll-objects”j )�”(jT(jU(Œ;https://docs.python.org/3/library/select.html#epoll-objects”Œ.Edge and Level Trigger Polling (epoll) Objects”t”bŒerror-handlers”j )�”(jT(jU(Œhttps://docs.python.org/3/reference/expressions.html#evalorder”ŒEvaluation order”t”bŒ event-objects”j )�”(jT(jU(Œ>https://docs.python.org/3/library/threading.html#event-objects”Œ Event objects”t”bŒexcept”j )�”(jT(jU(Œ>https://docs.python.org/3/reference/compound_stmts.html#except”Œ except clause”t”bŒ except_else”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/compound_stmts.html#except-else”Œ else clause”t”bŒ except_star”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/compound_stmts.html#except-star”Œexcept* clause”t”bŒexception-changed”j )�”(jT(jU(Œ?https://docs.python.org/3/library/winreg.html#exception-changed”j" t”bŒexceptionhandling”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/exceptions.html#exceptionhandling”ŒException Handling”t”bŒ exceptions”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/executionmodel.html#exceptions”Œ Exceptions”t”bŒexeccomponents”j )�”(jT(jU(ŒFhttps://docs.python.org/3/reference/executionmodel.html#execcomponents”ŒRuntime Components”t”bŒ execmodel”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/executionmodel.html#execmodel”ŒExecution model”t”bŒexpat-content-models”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/pyexpat.html#expat-content-models”ŒContent Model Descriptions”t”bŒ expat-errors”j )�”(jT(jU(Œ;https://docs.python.org/3/library/pyexpat.html#expat-errors”ŒExpat error constants”t”bŒ expat-example”j )�”(jT(jU(Œhttps://docs.python.org/3/reference/expressions.html#exprlists”ŒExpression lists”t”bŒ exprstmts”j )�”(jT(jU(Œ?https://docs.python.org/3/reference/simple_stmts.html#exprstmts”ŒExpression statements”t”bŒextending-errors”j )�”(jT(jU(ŒChttps://docs.python.org/3/extending/extending.html#extending-errors”Œ!Intermezzo: Errors and Exceptions”t”bŒextending-index”j )�”(jT(jU(Œ>https://docs.python.org/3/extending/index.html#extending-index”Œ.Extending and Embedding the Python Interpreter”t”bŒextending-intro”j )�”(jT(jU(ŒBhttps://docs.python.org/3/extending/extending.html#extending-intro”ŒExtending Python with C or C++”t”bŒextending-simpleexample”j )�”(jT(jU(ŒJhttps://docs.python.org/3/extending/extending.html#extending-simpleexample”ŒA Simple Example”t”bŒextending-with-embedding”j )�”(jT(jU(ŒKhttps://docs.python.org/3/extending/embedding.html#extending-with-embedding”ŒExtending Embedded Python”t”bŒextension-export-hook”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/extension-modules.html#extension-export-hook”ŒInitialization function”t”bŒextension-modules”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/extension-modules.html#extension-modules”ŒDefining extension modules”t”bŒ f-strings”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/lexical_analysis.html#f-strings”j" t”bŒfaq-argument-vs-parameter”j )�”(jT(jU(ŒHhttps://docs.python.org/3/faq/programming.html#faq-argument-vs-parameter”Œ8What is the difference between arguments and parameters?”t”bŒ$faq-augmented-assignment-tuple-error”j )�”(jT(jU(ŒShttps://docs.python.org/3/faq/programming.html#faq-augmented-assignment-tuple-error”ŒOWhy does a_tuple[i] += [‘item’] raise an exception when the addition works?”t”bŒfaq-cache-method-calls”j )�”(jT(jU(ŒEhttps://docs.python.org/3/faq/programming.html#faq-cache-method-calls”ŒHow do I cache method calls?”t”bŒfaq-create-standalone-binary”j )�”(jT(jU(ŒKhttps://docs.python.org/3/faq/programming.html#faq-create-standalone-binary”Œ;How can I create a stand-alone binary from a Python script?”t”bŒfaq-identity-with-is”j )�”(jT(jU(ŒChttps://docs.python.org/3/faq/programming.html#faq-identity-with-is”Œ7When can I rely on identity tests with the is operator?”t”bŒ faq-index”j )�”(jT(jU(Œ2https://docs.python.org/3/faq/index.html#faq-index”Œ!Python Frequently Asked Questions”t”bŒfaq-multidimensional-list”j )�”(jT(jU(ŒHhttps://docs.python.org/3/faq/programming.html#faq-multidimensional-list”Œ(How do I create a multidimensional list?”t”bŒfaq-positional-only-arguments”j )�”(jT(jU(ŒLhttps://docs.python.org/3/faq/programming.html#faq-positional-only-arguments”Œ@What does the slash(/) in the parameter list of a function mean?”t”bŒ$faq-programming-raw-string-backslash”j )�”(jT(jU(ŒShttps://docs.python.org/3/faq/programming.html#faq-programming-raw-string-backslash”Œ9Can I end a raw string with an odd number of backslashes?”t”bŒfaq-run-program-under-windows”j )�”(jT(jU(ŒHhttps://docs.python.org/3/faq/windows.html#faq-run-program-under-windows”Œ,How do I run a Python program under Windows?”t”bŒfaq-unboundlocalerror”j )�”(jT(jU(ŒDhttps://docs.python.org/3/faq/programming.html#faq-unboundlocalerror”ŒDWhy am I getting an UnboundLocalError when the variable has a value?”t”bŒfaq-version-numbering-scheme”j )�”(jT(jU(ŒGhttps://docs.python.org/3/faq/general.html#faq-version-numbering-scheme”Œ2How does the Python version numbering scheme work?”t”bŒfaster-cpython-faq-memory”j )�”(jT(jU(ŒFhttps://docs.python.org/3/whatsnew/3.11.html#faster-cpython-faq-memory”Œ"Will CPython 3.11 use more memory?”t”bŒfaster-cpython-faq-my-code”j )�”(jT(jU(ŒGhttps://docs.python.org/3/whatsnew/3.11.html#faster-cpython-faq-my-code”Œ5How should I write my code to utilize these speedups?”t”bŒfaster-cpython-jit”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#faster-cpython-jit”ŒIs there a JIT compiler?”t”bŒfaster-cpython-ymmv”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.11.html#faster-cpython-ymmv”Œ/I don’t see any speedups in my workload. Why?”t”bŒ fault-objects”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/xmlrpc.client.html#fault-objects”Œ Fault Objects”t”bŒfaulthandler-fd”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/faulthandler.html#faulthandler-fd”ŒIssue with file descriptors”t”bŒfd_inheritance”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#fd-inheritance”ŒInheritance of File Descriptors”t”bŒfile-cookie-jar-classes”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/http.cookiejar.html#file-cookie-jar-classes”Œ;FileCookieJar subclasses and co-operation with web browsers”t”bŒ file-handler”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/logging.handlers.html#file-handler”Œ FileHandler”t”bŒfile-handler-objects”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/urllib.request.html#file-handler-objects”ŒFileHandler Objects”t”bŒ file-input”j )�”(jT(jU(ŒGhttps://docs.python.org/3/reference/toplevel_components.html#file-input”Œ File input”t”bŒfile-operations”j )�”(jT(jU(Œ=https://docs.python.org/3/library/shutil.html#file-operations”ŒDirectory and files operations”t”bŒ fileformats”j )�”(jT(jU(Œ>https://docs.python.org/3/library/fileformats.html#fileformats”Œ File Formats”t”bŒ filemodes”j )�”(jT(jU(Œ:https://docs.python.org/3/library/functions.html#filemodes”j" t”bŒ fileobjects”j )�”(jT(jU(Œ5https://docs.python.org/3/c-api/file.html#fileobjects”Œ File objects”t”bŒfiles”j )�”(jT(jU(Œ?https://docs.python.org/3/library/importlib.metadata.html#files”ŒDistribution files”t”bŒfilesys”j )�”(jT(jU(Œ6https://docs.python.org/3/library/filesys.html#filesys”ŒFile and Directory Access”t”bŒfilesystem-encoding”j )�”(jT(jU(Œ=https://docs.python.org/3/library/os.html#filesystem-encoding”Œ=File Names, Command Line Arguments, and Environment Variables”t”bŒfilter”j )�”(jT(jU(Œ5https://docs.python.org/3/library/logging.html#filter”ŒFilter Objects”t”bŒfilter-chain-specs”j )�”(jT(jU(Œ>https://docs.python.org/3/library/lzma.html#filter-chain-specs”ŒSpecifying custom filter chains”t”bŒfilters-contextual”j )�”(jT(jU(ŒHhttps://docs.python.org/3/howto/logging-cookbook.html#filters-contextual”Œ.Using Filters to impart contextual information”t”bŒfilters-dictconfig”j )�”(jT(jU(ŒHhttps://docs.python.org/3/howto/logging-cookbook.html#filters-dictconfig”Œ%Configuring filters with dictConfig()”t”bŒfinalize-examples”j )�”(jT(jU(Œ@https://docs.python.org/3/library/weakref.html#finalize-examples”ŒFinalizer Objects”t”bŒfinally”j )�”(jT(jU(Œ?https://docs.python.org/3/reference/compound_stmts.html#finally”Œfinally clause”t”bŒfinders-and-loaders”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/import.html#finders-and-loaders”ŒFinders and loaders”t”bŒfloating”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/lexical_analysis.html#floating”ŒFloating-point literals”t”bŒ floatobjects”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/float.html#floatobjects”ŒFloating-Point Objects”t”bŒfollow_symlinks”j )�”(jT(jU(Œ9https://docs.python.org/3/library/os.html#follow-symlinks”j" t”bŒfor”j )�”(jT(jU(Œ;https://docs.python.org/3/reference/compound_stmts.html#for”ŒThe for statement”t”bŒfork-and-threads”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/threads.html#fork-and-threads”ŒCautions about fork()”t”bŒ format-block”j )�”(jT(jU(Œ8https://docs.python.org/3/library/idle.html#format-block”Œ Format block”t”bŒformat-characters”j )�”(jT(jU(Œ?https://docs.python.org/3/library/struct.html#format-characters”ŒFormat Characters”t”bŒ format-codes”j )�”(jT(jU(ŒUsing particular formatting styles throughout your application”t”bŒ frame-objects”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/datamodel.html#frame-objects”Œ Frame objects”t”bŒ frameworks”j )�”(jT(jU(Œhttps://docs.python.org/3/library/ftplib.html#ftplib-reference”Œ Reference”t”bŒfull-grammar-specification”j )�”(jT(jU(ŒKhttps://docs.python.org/3/reference/grammar.html#full-grammar-specification”ŒFull Grammar specification”t”bŒfunc-bytearray”j )�”(jT(jU(Œ?https://docs.python.org/3/library/functions.html#func-bytearray”j" t”bŒ func-bytes”j )�”(jT(jU(Œ;https://docs.python.org/3/library/functions.html#func-bytes”j" t”bŒ func-dict”j )�”(jT(jU(Œ:https://docs.python.org/3/library/functions.html#func-dict”j" t”bŒ func-eval”j )�”(jT(jU(Œ:https://docs.python.org/3/library/functions.html#func-eval”j" t”bŒfunc-frozenset”j )�”(jT(jU(Œ?https://docs.python.org/3/library/functions.html#func-frozenset”j" t”bŒ func-list”j )�”(jT(jU(Œ:https://docs.python.org/3/library/functions.html#func-list”j" t”bŒfunc-memoryview”j )�”(jT(jU(Œ@https://docs.python.org/3/library/functions.html#func-memoryview”j" t”bŒ func-range”j )�”(jT(jU(Œ;https://docs.python.org/3/library/functions.html#func-range”j" t”bŒfunc-set”j )�”(jT(jU(Œ9https://docs.python.org/3/library/functions.html#func-set”j" t”bŒfunc-str”j )�”(jT(jU(Œ9https://docs.python.org/3/library/functions.html#func-str”j" t”bŒ func-tuple”j )�”(jT(jU(Œ;https://docs.python.org/3/library/functions.html#func-tuple”j" t”bŒfunction”j )�”(jT(jU(Œ@https://docs.python.org/3/reference/compound_stmts.html#function”ŒFunction definitions”t”bŒfunction-objects”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/function.html#function-objects”ŒFunction Objects”t”bŒfunctional-howto”j )�”(jT(jU(Œ@https://docs.python.org/3/howto/functional.html#functional-howto”ŒFunctional Programming HOWTO”t”bŒfunctional-howto-iterators”j )�”(jT(jU(ŒJhttps://docs.python.org/3/howto/functional.html#functional-howto-iterators”Œ Iterators”t”bŒ functions”j )�”(jT(jU(Œ7https://docs.python.org/3/library/winreg.html#functions”Œ Functions”t”bŒ fundamental”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/concrete.html#fundamental”ŒFundamental Objects”t”bŒfurther-examples”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/unittest.mock-examples.html#further-examples”ŒFurther examples”t”bŒfuture”j )�”(jT(jU(Œhttps://docs.python.org/3/library/hashlib.html#hash-algorithms”ŒHash algorithms”t”bŒhashlib-blake2”j )�”(jT(jU(Œ=https://docs.python.org/3/library/hashlib.html#hashlib-blake2”ŒBLAKE2”t”bŒhashlib-seealso”j )�”(jT(jU(Œ>https://docs.python.org/3/library/hashlib.html#hashlib-seealso”j" t”bŒhashlib-usedforsecurity”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/hashlib.html#hashlib-usedforsecurity”j" t”bŒ heap-types”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/typeobj.html#heap-types”Œ Heap Types”t”bŒhelp”j )�”(jT(jU(Œ4https://docs.python.org/3/library/argparse.html#help”j" t”bŒ help-sources”j )�”(jT(jU(Œ8https://docs.python.org/3/library/idle.html#help-sources”Œ Help sources”t”bŒhigh-level-embedding”j )�”(jT(jU(ŒGhttps://docs.python.org/3/extending/embedding.html#high-level-embedding”ŒVery High Level Embedding”t”bŒhistory-and-license”j )�”(jT(jU(Œ:https://docs.python.org/3/license.html#history-and-license”ŒHistory and License”t”bŒhkey-constants”j )�”(jT(jU(Œhttps://docs.python.org/3/howto/ipaddress.html#ipaddress-howto”Œ'An introduction to the ipaddress module”t”bŒipc”j )�”(jT(jU(Œ.https://docs.python.org/3/library/ipc.html#ipc”Œ)Networking and Interprocess Communication”t”bŒirrefutable_case”j )�”(jT(jU(ŒHhttps://docs.python.org/3/reference/compound_stmts.html#irrefutable-case”ŒIrrefutable Case Blocks”t”bŒis”j )�”(jT(jU(Œ7https://docs.python.org/3/reference/expressions.html#is”ŒIdentity comparisons”t”bŒis not”j )�”(jT(jU(Œ;https://docs.python.org/3/reference/expressions.html#is-not”ŒIdentity comparisons”t”bŒisolating-extensions-howto”j )�”(jT(jU(ŒThttps://docs.python.org/3/howto/isolating-extensions.html#isolating-extensions-howto”ŒIsolating Extension Modules”t”bŒisolating-extensions-optout”j )�”(jT(jU(ŒUhttps://docs.python.org/3/howto/isolating-extensions.html#isolating-extensions-optout”Œ2Opt-Out: Limiting to One Module Object per Process”t”bŒiterator”j )�”(jT(jU(Œ2https://docs.python.org/3/c-api/iter.html#iterator”ŒIterator Protocol”t”bŒiterator-objects”j )�”(jT(jU(Œ>https://docs.python.org/3/c-api/iterator.html#iterator-objects”ŒIterator Objects”t”bŒitertools-functions”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/itertools.html#itertools-functions”ŒItertool Functions”t”bŒitertools-recipes”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/itertools.html#itertools-recipes”ŒItertools Recipes”t”bŒjson-commandline”j )�”(jT(jU(Œhttps://docs.python.org/3/glossary.html#keyword-only-parameter”j" t”bŒkeywords”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/lexical_analysis.html#keywords”ŒKeywords”t”bŒkqueue-objects”j )�”(jT(jU(Œhttps://docs.python.org/3/library/cmdline.html#library-cmdline”Œ$Modules command-line interface (CLI)”t”bŒlibrary-config”j )�”(jT(jU(Œ;https://docs.python.org/3/howto/logging.html#library-config”Œ!Configuring Logging for a Library”t”bŒ library-index”j )�”(jT(jU(Œ:https://docs.python.org/3/library/index.html#library-index”ŒThe Python Standard Library”t”bŒ library-intro”j )�”(jT(jU(Œ:https://docs.python.org/3/library/intro.html#library-intro”Œ Introduction”t”bŒ life-cycle”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/lifecycle.html#life-cycle”ŒObject Life Cycle”t”bŒlife-events-graph-description”j )�”(jT(jU(ŒLhttps://docs.python.org/3/c-api/lifecycle.html#life-events-graph-description”j" t”bŒlimited-api-list”j )�”(jT(jU(Œhttps://docs.python.org/3/library/mailbox.html#mailbox-maildir”ŒMaildir objects”t”bŒmailbox-maildirmessage”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/mailbox.html#mailbox-maildirmessage”ŒMaildirMessage objects”t”bŒ mailbox-mbox”j )�”(jT(jU(Œ;https://docs.python.org/3/library/mailbox.html#mailbox-mbox”Œ mbox objects”t”bŒmailbox-mboxmessage”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/mailbox.html#mailbox-mboxmessage”ŒmboxMessage objects”t”bŒmailbox-message-objects”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/mailbox.html#mailbox-message-objects”ŒMessage objects”t”bŒ mailbox-mh”j )�”(jT(jU(Œ9https://docs.python.org/3/library/mailbox.html#mailbox-mh”Œ MH objects”t”bŒmailbox-mhmessage”j )�”(jT(jU(Œ@https://docs.python.org/3/library/mailbox.html#mailbox-mhmessage”ŒMHMessage objects”t”bŒ mailbox-mmdf”j )�”(jT(jU(Œ;https://docs.python.org/3/library/mailbox.html#mailbox-mmdf”Œ MMDF objects”t”bŒmailbox-mmdfmessage”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/mailbox.html#mailbox-mmdfmessage”ŒMMDFMessage objects”t”bŒmailbox-objects”j )�”(jT(jU(Œ>https://docs.python.org/3/library/mailbox.html#mailbox-objects”ŒMailbox objects”t”bŒ main_spec”j )�”(jT(jU(Œ9https://docs.python.org/3/reference/import.html#main-spec”Œ__main__.__spec__”t”bŒ map-constants”j )�”(jT(jU(Œ9https://docs.python.org/3/library/mmap.html#map-constants”ŒMAP_* Constants”t”bŒ mapobjects”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/concrete.html#mapobjects”ŒContainer Objects”t”bŒmapping”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/mapping.html#mapping”ŒMapping Protocol”t”bŒmapping-patterns”j )�”(jT(jU(ŒHhttps://docs.python.org/3/reference/compound_stmts.html#mapping-patterns”ŒMapping Patterns”t”bŒmapping-structs”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/marshal.html#marshalling-utils”ŒData marshalling support”t”bŒmatch”j )�”(jT(jU(Œ=https://docs.python.org/3/reference/compound_stmts.html#match”ŒThe match statement”t”bŒ match-objects”j )�”(jT(jU(Œ7https://docs.python.org/3/library/re.html#match-objects”Œ Match Objects”t”bŒmax-path”j )�”(jT(jU(Œ5https://docs.python.org/3/using/windows.html#max-path”Œ Removing the MAX_PATH limitation”t”bŒmembership-test-details”j )�”(jT(jU(ŒLhttps://docs.python.org/3/reference/expressions.html#membership-test-details”ŒMembership test operations”t”bŒmemory”j )�”(jT(jU(Œ2https://docs.python.org/3/c-api/memory.html#memory”ŒMemory Management”t”bŒmemory-handler”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/logging.handlers.html#memory-handler”Œ MemoryHandler”t”bŒmemoryexamples”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/memory.html#memoryexamples”ŒExamples”t”bŒmemoryinterface”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/memory.html#memoryinterface”ŒMemory Interface”t”bŒmemoryoverview”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/memory.html#memoryoverview”ŒOverview”t”bŒmemoryview-objects”j )�”(jT(jU(ŒBhttps://docs.python.org/3/c-api/memoryview.html#memoryview-objects”ŒMemoryView objects”t”bŒmessagebox-buttons”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/tkinter.messagebox.html#messagebox-buttons”j" t”bŒmessagebox-icons”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/tkinter.messagebox.html#messagebox-icons”j" t”bŒmessagebox-types”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/tkinter.messagebox.html#messagebox-types”j" t”bŒ metaclasses”j )�”(jT(jU(Œ>https://docs.python.org/3/reference/datamodel.html#metaclasses”Œ Metaclasses”t”bŒmetadata”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/importlib.metadata.html#metadata”ŒDistribution metadata”t”bŒmetavar”j )�”(jT(jU(Œ7https://docs.python.org/3/library/argparse.html#metavar”j" t”bŒ meth-str-join”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#meth-str-join”j" t”bŒmeth-thread-join”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/threading.html#meth-thread-join”j" t”bŒmeth_fastcall-meth_keywords”j )�”(jT(jU(ŒKhttps://docs.python.org/3/c-api/structures.html#meth-fastcall-meth-keywords”ŒMETH_FASTCALL | METH_KEYWORDS”t”bŒ'meth_method-meth_fastcall-meth_keywords”j )�”(jT(jU(ŒWhttps://docs.python.org/3/c-api/structures.html#meth-method-meth-fastcall-meth-keywords”Œ+METH_METHOD | METH_FASTCALL | METH_KEYWORDS”t”bŒmeth_varargs-meth_keywords”j )�”(jT(jU(ŒJhttps://docs.python.org/3/c-api/structures.html#meth-varargs-meth-keywords”ŒMETH_VARARGS | METH_KEYWORDS”t”bŒmethod-binding”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#method-binding”j" t”bŒmethod-objects”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/method.html#method-objects”ŒMethod Objects”t”bŒ methodtable”j )�”(jT(jU(Œ>https://docs.python.org/3/extending/extending.html#methodtable”Œ7The Module’s Method Table and Initialization Function”t”bŒmigrating-optparse-code”j )�”(jT(jU(ŒNhttps://docs.python.org/3/howto/argparse-optparse.html#migrating-optparse-code”Œ#Migrating optparse code to argparse”t”bŒmimalloc”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/memory.html#mimalloc”ŒThe mimalloc allocator”t”bŒmimalloc-license”j )�”(jT(jU(Œ7https://docs.python.org/3/license.html#mimalloc-license”Œmimalloc”t”bŒ mimetypes-cli”j )�”(jT(jU(Œ>https://docs.python.org/3/library/mimetypes.html#mimetypes-cli”ŒCommand-line usage”t”bŒmimetypes-objects”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/mimetypes.html#mimetypes-objects”ŒMimeTypes objects”t”bŒminidom-and-dom”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/xml.dom.minidom.html#minidom-and-dom”Œminidom and the DOM standard”t”bŒminidom-objects”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/xml.dom.minidom.html#minidom-objects”Œ DOM Objects”t”bŒmkdir_modebits”j )�”(jT(jU(Œ8https://docs.python.org/3/library/os.html#mkdir-modebits”j" t”bŒmmedia”j )�”(jT(jU(Œ0https://docs.python.org/3/library/mm.html#mmedia”ŒMultimedia Services”t”bŒmobile-availability”j )�”(jT(jU(Œ@https://docs.python.org/3/library/intro.html#mobile-availability”ŒMobile platforms”t”bŒ mod-weakref”j )�”(jT(jU(Œ:https://docs.python.org/3/library/weakref.html#mod-weakref”Œweakref — Weak references”t”bŒmodindex”j )�”(jT(jU(Œ*https://docs.python.org/3/py-modindex.html”Œ Module Index”t”bŒ module-ctypes”j )�”(jT(jU(Œ9https://docs.python.org/3/whatsnew/2.5.html#module-ctypes”ŒThe ctypes package”t”bŒ module-etree”j )�”(jT(jU(Œ8https://docs.python.org/3/whatsnew/2.5.html#module-etree”ŒThe ElementTree package”t”bŒmodule-hashlib”j )�”(jT(jU(Œ:https://docs.python.org/3/whatsnew/2.5.html#module-hashlib”ŒThe hashlib package”t”bŒmodule-objects”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/datamodel.html#module-objects”ŒModules”t”bŒ module-specs”j )�”(jT(jU(Œhttps://docs.python.org/3/howto/regex.html#more-metacharacters”ŒMore metacharacters”t”bŒmorsel-objects”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/http.cookies.html#morsel-objects”ŒMorsel Objects”t”bŒmsvcrt-console”j )�”(jT(jU(Œhttps://docs.python.org/3/reference/executionmodel.html#naming”ŒNaming and binding”t”bŒnargs”j )�”(jT(jU(Œ5https://docs.python.org/3/library/argparse.html#nargs”j" t”bŒnetdata”j )�”(jT(jU(Œ6https://docs.python.org/3/library/netdata.html#netdata”ŒInternet Data Handling”t”bŒ netrc-objects”j )�”(jT(jU(Œ:https://docs.python.org/3/library/netrc.html#netrc-objects”Œ netrc Objects”t”bŒnetwork-logging”j )�”(jT(jU(ŒEhttps://docs.python.org/3/howto/logging-cookbook.html#network-logging”Œ5Sending and receiving logging events across a network”t”bŒnew-25-context-managers”j )�”(jT(jU(ŒChttps://docs.python.org/3/whatsnew/2.5.html#new-25-context-managers”ŒWriting Context Managers”t”bŒnew-26-context-managers”j )�”(jT(jU(ŒChttps://docs.python.org/3/whatsnew/2.6.html#new-26-context-managers”ŒWriting Context Managers”t”bŒnew-26-interpreter”j )�”(jT(jU(Œ>https://docs.python.org/3/whatsnew/2.6.html#new-26-interpreter”ŒInterpreter Changes”t”bŒnew-27-interpreter”j )�”(jT(jU(Œ>https://docs.python.org/3/whatsnew/2.7.html#new-27-interpreter”ŒInterpreter Changes”t”bŒ new-decimal”j )�”(jT(jU(Œ7https://docs.python.org/3/whatsnew/3.3.html#new-decimal”Œdecimal”t”bŒ new-email”j )�”(jT(jU(Œ5https://docs.python.org/3/whatsnew/3.3.html#new-email”Œemail”t”bŒnew-feat-related-type-hints”j )�”(jT(jU(ŒHhttps://docs.python.org/3/whatsnew/3.10.html#new-feat-related-type-hints”Œ"New Features Related to Type Hints”t”bŒnew-feat-related-type-hints-311”j )�”(jT(jU(ŒLhttps://docs.python.org/3/whatsnew/3.11.html#new-feat-related-type-hints-311”Œ"New Features Related to Type Hints”t”bŒnew-module-contextlib”j )�”(jT(jU(ŒAhttps://docs.python.org/3/whatsnew/2.6.html#new-module-contextlib”ŒThe contextlib module”t”bŒnew-types-topics”j )�”(jT(jU(ŒBhttps://docs.python.org/3/extending/newtypes.html#new-types-topics”Œ)Defining Extension Types: Assorted Topics”t”bŒ new-vs-init”j )�”(jT(jU(Œ5https://docs.python.org/3/howto/enum.html#new-vs-init”Œ$When to use __new__() vs. __init__()”t”bŒnewtypes”j )�”(jT(jU(Œ5https://docs.python.org/3/c-api/objimpl.html#newtypes”ŒObject Implementation Support”t”bŒ noneobject”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/none.html#noneobject”ŒThe None Object”t”bŒnonlocal”j )�”(jT(jU(Œ>https://docs.python.org/3/reference/simple_stmts.html#nonlocal”ŒThe nonlocal statement”t”bŒnot”j )�”(jT(jU(Œ8https://docs.python.org/3/reference/expressions.html#not”ŒBoolean operations”t”bŒnot in”j )�”(jT(jU(Œ;https://docs.python.org/3/reference/expressions.html#not-in”ŒMembership test operations”t”bŒnotation”j )�”(jT(jU(Œ>https://docs.python.org/3/reference/introduction.html#notation”ŒNotation”t”bŒnotation-lexical-vs-syntactic”j )�”(jT(jU(ŒShttps://docs.python.org/3/reference/introduction.html#notation-lexical-vs-syntactic”Œ!Lexical and Syntactic definitions”t”bŒnote”j )�”(jT(jU(Œ2https://docs.python.org/3/library/turtle.html#note”j" t”bŒnt-eventlog-handler”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/logging.handlers.html#nt-eventlog-handler”ŒNTEventLogHandler”t”bŒ null-handler”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/logging.handlers.html#null-handler”Œ NullHandler”t”bŒ nullpointers”j )�”(jT(jU(Œ?https://docs.python.org/3/extending/extending.html#nullpointers”Œ NULL Pointers”t”bŒnumber”j )�”(jT(jU(Œ2https://docs.python.org/3/c-api/number.html#number”ŒNumber Protocol”t”bŒnumber-structs”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/typeobj.html#number-structs”ŒNumber Object Structures”t”bu(Œnumbers”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/lexical_analysis.html#numbers”ŒNumeric literals”t”bŒnumeric”j )�”(jT(jU(Œ6https://docs.python.org/3/library/numeric.html#numeric”Œ Numeric and Mathematical Modules”t”bŒ numeric-hash”j )�”(jT(jU(Œhttps://docs.python.org/3/library/os.html#os-scheduling-policy”j" t”bŒ os-timerfd”j )�”(jT(jU(Œ4https://docs.python.org/3/library/os.html#os-timerfd”ŒTimer File Descriptors”t”bŒos-unshare-clone-flags”j )�”(jT(jU(Œ@https://docs.python.org/3/library/os.html#os-unshare-clone-flags”j" t”bŒosx-gui-scripts”j )�”(jT(jU(Œ8https://docs.python.org/3/using/mac.html#osx-gui-scripts”ŒGUI Programming”t”bŒother-concrete-types”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/typing.html#other-concrete-types”ŒAliases to other concrete types”t”bŒother-improvements-3.4”j )�”(jT(jU(ŒBhttps://docs.python.org/3/whatsnew/3.4.html#other-improvements-3-4”ŒOther Improvements”t”bŒ other-lang”j )�”(jT(jU(Œ6https://docs.python.org/3/whatsnew/2.5.html#other-lang”ŒOther Language Changes”t”bŒother-methods-and-attrs”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/unittest.html#other-methods-and-attrs”j" t”bŒ other-tokens”j )�”(jT(jU(ŒFhttps://docs.python.org/3/reference/lexical_analysis.html#other-tokens”Œ Other tokens”t”bŒ otherlicenses”j )�”(jT(jU(Œ4https://docs.python.org/3/license.html#otherlicenses”Œ7Licenses and Acknowledgements for Incorporated Software”t”bŒ otherobjects”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/concrete.html#otherobjects”ŒFunction Objects”t”bŒoverload”j )�”(jT(jU(Œ6https://docs.python.org/3/library/typing.html#overload”j" t”bŒownershiprules”j )�”(jT(jU(ŒAhttps://docs.python.org/3/extending/extending.html#ownershiprules”ŒOwnership Rules”t”bŒpackage-distributions”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/importlib.metadata.html#package-distributions”Œ'Mapping import to distribution packages”t”bŒpackage-path-rules”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/import.html#package-path-rules”Œ__path__ attributes on modules”t”bŒ parenthesized”j )�”(jT(jU(ŒBhttps://docs.python.org/3/reference/expressions.html#parenthesized”ŒParenthesized forms”t”bŒ parsetuple”j )�”(jT(jU(Œ=https://docs.python.org/3/extending/extending.html#parsetuple”Œ,Extracting Parameters in Extension Functions”t”bŒparsetupleandkeywords”j )�”(jT(jU(ŒHhttps://docs.python.org/3/extending/extending.html#parsetupleandkeywords”Œ*Keyword Parameters for Extension Functions”t”bŒparsing-ascii-encoded-bytes”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/urllib.parse.html#parsing-ascii-encoded-bytes”ŒParsing ASCII Encoded Bytes”t”bŒpartial-objects”j )�”(jT(jU(Œ@https://docs.python.org/3/library/functools.html#partial-objects”Œpartial Objects”t”bŒpass”j )�”(jT(jU(Œ:https://docs.python.org/3/reference/simple_stmts.html#pass”ŒThe pass statement”t”bŒpatch-builtins”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/unittest.mock.html#patch-builtins”Œpatch builtins”t”bŒ path-objects”j )�”(jT(jU(Œ;https://docs.python.org/3/library/zipfile.html#path-objects”Œ Path objects”t”bŒpath_fd”j )�”(jT(jU(Œ1https://docs.python.org/3/library/os.html#path-fd”j" t”bŒpathlib-pattern-language”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/pathlib.html#pathlib-pattern-language”ŒPattern language”t”bŒpdb-cli”j )�”(jT(jU(Œ2https://docs.python.org/3/library/pdb.html#pdb-cli”ŒCommand-line interface”t”bŒpep-0343”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-0343”Œ!PEP 343: The ‘with’ statement”t”bŒpep-0366”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-0366”Œ5PEP 366: Explicit Relative Imports From a Main Module”t”bŒpep-0370”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-0370”Œ)PEP 370: Per-user site-packages Directory”t”bŒpep-0371”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-0371”Œ$PEP 371: The multiprocessing Package”t”bŒpep-0372”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.7.html#pep-0372”Œ4PEP 372: Adding an Ordered Dictionary to collections”t”bŒpep-0378”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.7.html#pep-0378”Œ1PEP 378: Format Specifier for Thousands Separator”t”bŒpep-308”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/2.5.html#pep-308”Œ PEP 308: Conditional Expressions”t”bŒpep-309”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/2.5.html#pep-309”Œ%PEP 309: Partial Function Application”t”bŒpep-3101”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-3101”Œ$PEP 3101: Advanced String Formatting”t”bŒpep-3105”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-3105”ŒPEP 3105: print As a Function”t”bŒpep-3110”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-3110”Œ$PEP 3110: Exception-Handling Changes”t”bŒpep-3112”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-3112”ŒPEP 3112: Byte Literals”t”bŒpep-3116”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-3116”ŒPEP 3116: New I/O Library”t”bŒpep-3118”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-3118”Œ!PEP 3118: Revised Buffer Protocol”t”bŒpep-3118-update”j )�”(jT(jU(Œ;https://docs.python.org/3/whatsnew/3.3.html#pep-3118-update”ŒIPEP 3118: New memoryview implementation and buffer protocol documentation”t”bŒpep-3119”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-3119”ŒPEP 3119: Abstract Base Classes”t”bŒpep-3127”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-3127”Œ,PEP 3127: Integer Literal Support and Syntax”t”bŒpep-3129”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-3129”ŒPEP 3129: Class Decorators”t”bŒpep-314”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/2.5.html#pep-314”Œ3PEP 314: Metadata for Python Software Packages v1.1”t”bŒpep-3141”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/2.6.html#pep-3141”Œ&PEP 3141: A Type Hierarchy for Numbers”t”bŒpep-3151”j )�”(jT(jU(Œ4https://docs.python.org/3/whatsnew/3.3.html#pep-3151”Œ5PEP 3151: Reworking the OS and IO exception hierarchy”t”bŒpep-328”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/2.5.html#pep-328”Œ&PEP 328: Absolute and Relative Imports”t”bŒpep-338”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/2.5.html#pep-338”Œ%PEP 338: Executing Modules as Scripts”t”bŒpep-341”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/2.5.html#pep-341”Œ#PEP 341: Unified try/except/finally”t”bŒpep-342”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/2.5.html#pep-342”ŒPEP 342: New Generator Features”t”bŒpep-343”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/2.5.html#pep-343”Œ!PEP 343: The ‘with’ statement”t”bŒpep-352”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/2.5.html#pep-352”Œ(PEP 352: Exceptions as New-Style Classes”t”bŒpep-353”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/2.5.html#pep-353”Œ(PEP 353: Using ssize_t as the index type”t”bŒpep-357”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/2.5.html#pep-357”Œ#PEP 357: The ‘__index__’ method”t”bŒpep-380”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/3.3.html#pep-380”Œ0PEP 380: Syntax for Delegating to a Subgenerator”t”bŒpep-393”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/3.3.html#pep-393”Œ'PEP 393: Flexible String Representation”t”bŒpep-397”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/3.3.html#pep-397”Œ$PEP 397: Python Launcher for Windows”t”bŒpep-405”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/3.3.html#pep-405”ŒPEP 405: Virtual Environments”t”bŒpep-412”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/3.3.html#pep-412”ŒPEP 412: Key-Sharing Dictionary”t”bŒpep-476”j )�”(jT(jU(Œ3https://docs.python.org/3/whatsnew/3.4.html#pep-476”ŒMPEP 476: Enabling certificate verification by default for stdlib http clients”t”bŒpep667-porting-notes-c”j )�”(jT(jU(ŒChttps://docs.python.org/3/whatsnew/3.13.html#pep667-porting-notes-c”j" t”bŒpep667-porting-notes-py”j )�”(jT(jU(ŒDhttps://docs.python.org/3/whatsnew/3.13.html#pep667-porting-notes-py”j" t”bŒper-interpreter-gil”j )�”(jT(jU(ŒHhttps://docs.python.org/3/c-api/subinterpreters.html#per-interpreter-gil”ŒA per-interpreter GIL”t”bŒperf_profiling”j )�”(jT(jU(ŒBhttps://docs.python.org/3/howto/perf_profiling.html#perf-profiling”Œ*Python support for the Linux perf profiler”t”bŒperfmaps”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/perfmaps.html#perfmaps”ŒSupport for Perf Maps”t”bŒpermission-requirements”j )�”(jT(jU(ŒMhttps://docs.python.org/3/howto/remote_debugging.html#permission-requirements”ŒPermission requirements”t”bŒ persistence”j )�”(jT(jU(Œ>https://docs.python.org/3/library/persistence.html#persistence”ŒData Persistence”t”bŒphysical-lines”j )�”(jT(jU(ŒHhttps://docs.python.org/3/reference/lexical_analysis.html#physical-lines”ŒPhysical lines”t”bŒ pickle-cli”j )�”(jT(jU(Œ8https://docs.python.org/3/library/pickle.html#pickle-cli”ŒCommand-line interface”t”bŒpickle-dispatch”j )�”(jT(jU(Œ=https://docs.python.org/3/library/pickle.html#pickle-dispatch”ŒDispatch Tables”t”bŒpickle-example”j )�”(jT(jU(Œhttps://docs.python.org/3/library/pickle.html#pickle-picklable”Œ"What can be pickled and unpickled?”t”bŒpickle-protocols”j )�”(jT(jU(Œ>https://docs.python.org/3/library/pickle.html#pickle-protocols”ŒData stream format”t”bŒpickle-restrict”j )�”(jT(jU(Œ=https://docs.python.org/3/library/pickle.html#pickle-restrict”ŒRestricting Globals”t”bŒ pickle-state”j )�”(jT(jU(Œ:https://docs.python.org/3/library/pickle.html#pickle-state”ŒHandling Stateful Objects”t”bŒpicklebuffer-objects”j )�”(jT(jU(ŒFhttps://docs.python.org/3/c-api/picklebuffer.html#picklebuffer-objects”ŒPickle buffer objects”t”bŒpickletools-cli”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/pickletools.html#pickletools-cli”ŒCommand-line usage”t”bŒpickling”j )�”(jT(jU(Œ8https://docs.python.org/3/library/zoneinfo.html#pickling”ŒPickle serialization”t”bŒ platform-cli”j )�”(jT(jU(Œhttps://docs.python.org/3/library/posix.html#posix-large-files”ŒLarge File Support”t”bŒpost-init-processing”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/dataclasses.html#post-init-processing”ŒPost-init processing”t”bŒpower”j )�”(jT(jU(Œ:https://docs.python.org/3/reference/expressions.html#power”ŒThe power operator”t”bŒpprint-example”j )�”(jT(jU(Œhttps://docs.python.org/3/library/pprint.html#pprint-functions”Œ Functions”t”bŒ pre-init-safe”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/interp-lifecycle.html#pre-init-safe”ŒBefore Python initialization”t”bŒ preferences”j )�”(jT(jU(Œ7https://docs.python.org/3/library/idle.html#preferences”ŒSetting preferences”t”bŒprefix-matching”j )�”(jT(jU(Œ?https://docs.python.org/3/library/argparse.html#prefix-matching”Œ(Argument abbreviations (prefix matching)”t”bŒprepare”j )�”(jT(jU(Œ:https://docs.python.org/3/reference/datamodel.html#prepare”ŒPreparing the class namespace”t”bŒprettyprinter-objects”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/pprint.html#prettyprinter-objects”ŒPrettyPrinter Objects”t”bŒ primaries”j )�”(jT(jU(Œ>https://docs.python.org/3/reference/expressions.html#primaries”Œ Primaries”t”bŒprivate-name-mangling”j )�”(jT(jU(ŒJhttps://docs.python.org/3/reference/expressions.html#private-name-mangling”ŒPrivate name mangling”t”bŒprocesscontrol”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/sys.html#processcontrol”ŒProcess Control”t”bŒprocesspoolexecutor-example”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/concurrent.futures.html#processpoolexecutor-example”ŒProcessPoolExecutor Example”t”bŒprofile”j )�”(jT(jU(Œ6https://docs.python.org/3/library/profile.html#profile”ŒThe Python Profilers”t”bŒprofile-calibration”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/profile.html#profile-calibration”Œ Calibration”t”bŒ profile-cli”j )�”(jT(jU(Œ:https://docs.python.org/3/library/profile.html#profile-cli”j" t”bŒprofile-instant”j )�”(jT(jU(Œ>https://docs.python.org/3/library/profile.html#profile-instant”ŒInstant User’s Manual”t”bŒprofile-limitations”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/profile.html#profile-limitations”Œ Limitations”t”bŒ profile-stats”j )�”(jT(jU(Œhttps://docs.python.org/3/using/windows.html#pymanager-offline”ŒOffline installs”t”bŒpymanager-shebang”j )�”(jT(jU(Œ>https://docs.python.org/3/using/windows.html#pymanager-shebang”Œ Shebang lines”t”bŒpymanager-troubleshoot”j )�”(jT(jU(ŒChttps://docs.python.org/3/using/windows.html#pymanager-troubleshoot”ŒTroubleshooting”t”bŒpymem-debug-hooks”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/memory.html#pymem-debug-hooks”Œ+Debug hooks on the Python memory allocators”t”bŒpymemberdef-flags”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#pymemberdef-flags”Œ Member flags”t”bŒpymemberdef-offsets”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/structures.html#pymemberdef-offsets”j" t”bŒpymemberdef-types”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/structures.html#pymemberdef-types”Œ Member types”t”bŒ pymoduledef”j )�”(jT(jU(Œ7https://docs.python.org/3/c-api/module.html#pymoduledef”ŒModule definitions”t”bŒpynng-handlers”j )�”(jT(jU(ŒDhttps://docs.python.org/3/howto/logging-cookbook.html#pynng-handlers”Œ;Subclassing QueueHandler and QueueListener- a pynng example”t”bŒpyporting-howto”j )�”(jT(jU(Œ>https://docs.python.org/3/howto/pyporting.html#pyporting-howto”Œ%How to port Python 2 Code to Python 3”t”bŒpython”j )�”(jT(jU(Œ4https://docs.python.org/3/library/python.html#python”ŒPython Runtime Services”t”bŒpython-buffer-protocol”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/datamodel.html#python-buffer-protocol”ŒEmulating buffer types”t”bŒpython-critical-section-api”j )�”(jT(jU(ŒPhttps://docs.python.org/3/c-api/synchronization.html#python-critical-section-api”ŒPython critical section API”t”bŒpython-interface”j )�”(jT(jU(Œ>https://docs.python.org/3/library/timeit.html#python-interface”ŒPython Interface”t”bŒ python-shell”j )�”(jT(jU(Œ8https://docs.python.org/3/library/idle.html#python-shell”Œ Python Shell”t”bŒpython_2.3_mro”j )�”(jT(jU(Œ7https://docs.python.org/3/howto/mro.html#python-2-3-mro”Œ&The Python 2.3 Method Resolution Order”t”bŒpyzipfile-objects”j )�”(jT(jU(Œ@https://docs.python.org/3/library/zipfile.html#pyzipfile-objects”ŒPyZipFile objects”t”bŒqt-gui”j )�”(jT(jU(Œhttps://docs.python.org/3/library/re.html#re-special-sequences”j" t”bŒ re-syntax”j )�”(jT(jU(Œ3https://docs.python.org/3/library/re.html#re-syntax”ŒRegular Expression Syntax”t”bŒreader-objects”j )�”(jT(jU(Œ9https://docs.python.org/3/library/csv.html#reader-objects”ŒReader Objects”t”bŒreadline-completion”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/readline.html#readline-completion”Œ Completion”t”bŒreadline-example”j )�”(jT(jU(Œ@https://docs.python.org/3/library/readline.html#readline-example”ŒExample”t”bŒreal-valued-distributions”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/random.html#real-valued-distributions”ŒReal-valued distributions”t”bŒ recursion”j )�”(jT(jU(Œ9https://docs.python.org/3/c-api/exceptions.html#recursion”ŒRecursion Control”t”bŒreducer_override”j )�”(jT(jU(Œ>https://docs.python.org/3/library/pickle.html#reducer-override”Œ8Custom Reduction for Types, Functions, and Other Objects”t”bŒ reentrant-cms”j )�”(jT(jU(Œ?https://docs.python.org/3/library/contextlib.html#reentrant-cms”ŒReentrant context managers”t”bŒ refcounts”j )�”(jT(jU(Œhttps://docs.python.org/3/reference/index.html#reference-index”ŒThe Python Language Reference”t”bŒreference-namespace-package”j )�”(jT(jU(ŒKhttps://docs.python.org/3/reference/import.html#reference-namespace-package”ŒNamespace packages”t”bŒ reflection”j )�”(jT(jU(Œ:https://docs.python.org/3/c-api/reflection.html#reflection”Œ Reflection”t”bŒ regex-howto”j )�”(jT(jU(Œ6https://docs.python.org/3/howto/regex.html#regex-howto”ŒRegular expression HOWTO”t”bŒregrtest”j )�”(jT(jU(Œ4https://docs.python.org/3/library/test.html#regrtest”Œ.Running tests using the command-line interface”t”bŒrelativeimports”j )�”(jT(jU(Œ?https://docs.python.org/3/reference/import.html#relativeimports”ŒPackage Relative Imports”t”bŒ relevant-peps”j )�”(jT(jU(Œ;https://docs.python.org/3/library/typing.html#relevant-peps”Œ(Specification for the Python Type System”t”bŒremote-debugging”j )�”(jT(jU(ŒFhttps://docs.python.org/3/howto/remote_debugging.html#remote-debugging”Œ$Remote debugging attachment protocol”t”bŒremote-debugging-threat-model”j )�”(jT(jU(ŒShttps://docs.python.org/3/howto/remote_debugging.html#remote-debugging-threat-model”ŒSecurity and threat model”t”bŒremoved”j )�”(jT(jU(Œ6https://docs.python.org/3/library/removed.html#removed”ŒRemoved Modules”t”bŒremoved-in-python-39”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.9.html#removed-in-python-39”ŒRemoved”t”bŒ%repeated-warning-suppression-criteria”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/warnings.html#repeated-warning-suppression-criteria”Œ%Repeated Warning Suppression Criteria”t”bŒreporting-bugs”j )�”(jT(jU(Œ2https://docs.python.org/3/bugs.html#reporting-bugs”ŒDealing with Bugs”t”bŒ repr-objects”j )�”(jT(jU(Œ;https://docs.python.org/3/library/reprlib.html#repr-objects”Œ Repr Objects”t”bŒrequest-objects”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/urllib.request.html#request-objects”ŒRequest Objects”t”bŒrequired”j )�”(jT(jU(Œ8https://docs.python.org/3/library/argparse.html#required”j" t”bŒ requirements”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/importlib.metadata.html#requirements”ŒDistribution requirements”t”bŒ resolve_names”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/executionmodel.html#resolve-names”ŒResolution of names”t”bŒ restrict_exec”j )�”(jT(jU(ŒEhttps://docs.python.org/3/reference/executionmodel.html#restrict-exec”Œ!Builtins and restricted execution”t”bŒreturn”j )�”(jT(jU(Œhttps://docs.python.org/3/library/contextlib.html#reusable-cms”ŒReusable context managers”t”bŒ richcmpfuncs”j )�”(jT(jU(Œ?https://docs.python.org/3/reference/datamodel.html#richcmpfuncs”j" t”bŒrlcompleter-config”j )�”(jT(jU(Œ>https://docs.python.org/3/library/site.html#rlcompleter-config”ŒReadline configuration”t”bŒ rlock-objects”j )�”(jT(jU(Œ>https://docs.python.org/3/library/threading.html#rlock-objects”Œ RLock objects”t”bŒrotating-file-handler”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/logging.handlers.html#rotating-file-handler”ŒRotatingFileHandler”t”bŒ run-custom”j )�”(jT(jU(Œ6https://docs.python.org/3/library/idle.html#run-custom”ŒRun… Customized”t”bŒ run-module”j )�”(jT(jU(Œ6https://docs.python.org/3/library/idle.html#run-module”Œ Run Module”t”bŒsax-error-handler”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/xml.sax.handler.html#sax-error-handler”ŒErrorHandler Objects”t”bŒsax-exception-objects”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/xml.sax.html#sax-exception-objects”ŒSAXException Objects”t”bŒscheduler-objects”j )�”(jT(jU(Œ>https://docs.python.org/3/library/sched.html#scheduler-objects”ŒScheduler Objects”t”bŒscreenspecific”j )�”(jT(jU(Œhttps://docs.python.org/3/whatsnew/2.3.html#section-generators”ŒPEP 255: Simple Generators”t”bŒsection-pep301”j )�”(jT(jU(Œ:https://docs.python.org/3/whatsnew/2.3.html#section-pep301”Œ1PEP 301: Package Index and Metadata for Distutils”t”bŒsection-pep302”j )�”(jT(jU(Œ:https://docs.python.org/3/whatsnew/2.3.html#section-pep302”ŒPEP 302: New Import Hooks”t”bŒsection-pep305”j )�”(jT(jU(Œ:https://docs.python.org/3/whatsnew/2.3.html#section-pep305”ŒPEP 305: Comma-separated Files”t”bŒsection-pep307”j )�”(jT(jU(Œ:https://docs.python.org/3/whatsnew/2.3.html#section-pep307”ŒPEP 307: Pickle Enhancements”t”bŒsection-pymalloc”j )�”(jT(jU(Œhttps://docs.python.org/3/library/socket.html#socket-addresses”ŒSocket families”t”bŒsocket-ethernet-types”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/socket.html#socket-ethernet-types”j" t”bŒsocket-example”j )�”(jT(jU(Œhttps://docs.python.org/3/library/sqlite3.html#sqlite3-conform”ŒHow to write adaptable objects”t”bŒ"sqlite3-connection-context-manager”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/sqlite3.html#sqlite3-connection-context-manager”Œ)How to use the connection context manager”t”bŒsqlite3-connection-objects”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/sqlite3.html#sqlite3-connection-objects”ŒConnection objects”t”bŒsqlite3-connection-shortcuts”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/sqlite3.html#sqlite3-connection-shortcuts”Œ&How to use connection shortcut methods”t”bŒ sqlite3-controlling-transactions”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/sqlite3.html#sqlite3-controlling-transactions”ŒTransaction control”t”bŒsqlite3-converters”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/sqlite3.html#sqlite3-converters”Œ3How to convert SQLite values to custom Python types”t”bŒsqlite3-cursor-objects”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/sqlite3.html#sqlite3-cursor-objects”ŒCursor objects”t”bŒsqlite3-dbconfig-constants”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/sqlite3.html#sqlite3-dbconfig-constants”j" t”bŒsqlite3-default-converters”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/sqlite3.html#sqlite3-default-converters”Œ,Default adapters and converters (deprecated)”t”bŒsqlite3-exceptions”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/sqlite3.html#sqlite3-exceptions”Œ Exceptions”t”bŒsqlite3-explanation”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/sqlite3.html#sqlite3-explanation”Œ Explanation”t”bŒsqlite3-howto-encoding”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/sqlite3.html#sqlite3-howto-encoding”Œ&How to handle non-UTF-8 text encodings”t”bŒsqlite3-howto-row-factory”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/sqlite3.html#sqlite3-howto-row-factory”Œ#How to create and use row factories”t”bŒsqlite3-howtos”j )�”(jT(jU(Œ=https://docs.python.org/3/library/sqlite3.html#sqlite3-howtos”Œ How-to guides”t”bŒ sqlite3-intro”j )�”(jT(jU(Œhttps://docs.python.org/3/library/stdtypes.html#stdcomparisons”Œ Comparisons”t”bŒstdtypes-fstrings”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#stdtypes-fstrings”Œ%Formatted String Literals (f-strings)”t”bŒstdtypes-mixed-arithmetic”j )�”(jT(jU(ŒIhttps://docs.python.org/3/library/stdtypes.html#stdtypes-mixed-arithmetic”j" t”bŒstdtypes-tstrings”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/stdtypes.html#stdtypes-tstrings”Œ$Template String Literals (t-strings)”t”bŒstream-handler”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/logging.handlers.html#stream-handler”Œ StreamHandler”t”bŒstream-reader-objects”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/codecs.html#stream-reader-objects”ŒStreamReader Objects”t”bŒstream-reader-writer”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/codecs.html#stream-reader-writer”ŒStreamReaderWriter Objects”t”bŒstream-recoder-objects”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/codecs.html#stream-recoder-objects”ŒStreamRecoder Objects”t”bŒstream-writer-objects”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/codecs.html#stream-writer-objects”ŒStreamWriter Objects”t”bŒstrftime-strptime-behavior”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/datetime.html#strftime-strptime-behavior”Œ"strftime() and strptime() behavior”t”bŒstring-concatenation”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/expressions.html#string-concatenation”ŒString literal concatenation”t”bŒstring-conversion”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/conversion.html#string-conversion”Œ String conversion and formatting”t”bŒstring-escape-escaped-char”j )�”(jT(jU(ŒThttps://docs.python.org/3/reference/lexical_analysis.html#string-escape-escaped-char”ŒEscaped characters”t”bŒstring-escape-hex”j )�”(jT(jU(ŒKhttps://docs.python.org/3/reference/lexical_analysis.html#string-escape-hex”ŒHexadecimal character”t”bŒstring-escape-ignore”j )�”(jT(jU(ŒNhttps://docs.python.org/3/reference/lexical_analysis.html#string-escape-ignore”ŒIgnored end of line”t”bŒstring-escape-long-hex”j )�”(jT(jU(ŒPhttps://docs.python.org/3/reference/lexical_analysis.html#string-escape-long-hex”ŒHexadecimal Unicode characters”t”bŒstring-escape-named”j )�”(jT(jU(ŒMhttps://docs.python.org/3/reference/lexical_analysis.html#string-escape-named”ŒNamed Unicode character”t”bŒstring-escape-oct”j )�”(jT(jU(ŒKhttps://docs.python.org/3/reference/lexical_analysis.html#string-escape-oct”ŒOctal character”t”bŒstring-formatting”j )�”(jT(jU(Œ?https://docs.python.org/3/library/string.html#string-formatting”ŒCustom string formatting”t”bŒstring-methods”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#string-methods”ŒString Methods”t”bŒstrings”j )�”(jT(jU(ŒAhttps://docs.python.org/3/reference/lexical_analysis.html#strings”ŒString and Bytes literals”t”bŒstringservices”j )�”(jT(jU(Œ:https://docs.python.org/3/library/text.html#stringservices”ŒText Processing Services”t”bŒstruct-alignment”j )�”(jT(jU(Œ>https://docs.python.org/3/library/struct.html#struct-alignment”ŒByte Order, Size, and Alignment”t”bŒstruct-examples”j )�”(jT(jU(Œ=https://docs.python.org/3/library/struct.html#struct-examples”ŒExamples”t”bŒstruct-format-strings”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/struct.html#struct-format-strings”ŒFormat Strings”t”bŒstruct-native-formats”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/struct.html#struct-native-formats”ŒNative Formats”t”bŒstruct-objects”j )�”(jT(jU(Œhttps://docs.python.org/3/library/sysconfig.html#sysconfig-cli”ŒCommand-line usage”t”bŒsysconfig-home-scheme”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/sysconfig.html#sysconfig-home-scheme”Œ Home scheme”t”bŒsysconfig-prefix-scheme”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/sysconfig.html#sysconfig-prefix-scheme”Œ Prefix scheme”t”bŒsysconfig-user-scheme”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/sysconfig.html#sysconfig-user-scheme”Œ User scheme”t”bŒsyslog-handler”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/logging.handlers.html#syslog-handler”Œ SysLogHandler”t”bŒsystemfunctions”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/sys.html#systemfunctions”ŒSystem Functions”t”bŒ t-strings”j )�”(jT(jU(ŒChttps://docs.python.org/3/reference/lexical_analysis.html#t-strings”j" t”bŒ tar-examples”j )�”(jT(jU(Œ;https://docs.python.org/3/library/tarfile.html#tar-examples”ŒExamples”t”bŒ tar-formats”j )�”(jT(jU(Œ:https://docs.python.org/3/library/tarfile.html#tar-formats”ŒSupported tar formats”t”bŒ tar-unicode”j )�”(jT(jU(Œ:https://docs.python.org/3/library/tarfile.html#tar-unicode”ŒUnicode issues”t”bŒtarfile-commandline”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/tarfile.html#tarfile-commandline”ŒCommand-Line Interface”t”bŒtarfile-extraction-filter”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/tarfile.html#tarfile-extraction-filter”ŒExtraction filters”t”bŒtarfile-extraction-refuse”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/tarfile.html#tarfile-extraction-refuse”Œ Filter errors”t”bŒtarfile-further-verification”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/tarfile.html#tarfile-further-verification”ŒHints for further verification”t”bŒtarfile-objects”j )�”(jT(jU(Œ>https://docs.python.org/3/library/tarfile.html#tarfile-objects”ŒTarFile Objects”t”bŒtarinfo-objects”j )�”(jT(jU(Œ>https://docs.python.org/3/library/tarfile.html#tarinfo-objects”ŒTarInfo Objects”t”bŒ taskgroups”j )�”(jT(jU(Œ>https://docs.python.org/3/library/asyncio-task.html#taskgroups”Œ Task groups”t”bŒtempfile-examples”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/tempfile.html#tempfile-examples”ŒExamples”t”bŒtempfile-mktemp-deprecated”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/tempfile.html#tempfile-mktemp-deprecated”Œ"Deprecated functions and variables”t”bŒtemplate-string-literals”j )�”(jT(jU(ŒRhttps://docs.python.org/3/reference/lexical_analysis.html#template-string-literals”Œ t-strings”t”bŒtemplate-strings”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/string.templatelib.html#template-strings”ŒTemplate strings”t”bŒtemplate-strings-pep292”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/string.html#template-strings-pep292”ŒTemplate strings ($-strings)”t”bŒ terminal-size”j )�”(jT(jU(Œ7https://docs.python.org/3/library/os.html#terminal-size”ŒQuerying the size of a terminal”t”bŒtermios-example”j )�”(jT(jU(Œ>https://docs.python.org/3/library/termios.html#termios-example”ŒExample”t”bŒ test-prefix”j )�”(jT(jU(Œ@https://docs.python.org/3/library/unittest.mock.html#test-prefix”Œ TEST_PREFIX”t”bŒtestcase-objects”j )�”(jT(jU(Œ@https://docs.python.org/3/library/unittest.html#testcase-objects”Œ Test cases”t”bŒtestsuite-objects”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/unittest.html#testsuite-objects”ŒGrouping tests”t”bŒtext-methods-summary”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/stdtypes.html#text-methods-summary”Œ-Text and Binary Sequence Type Methods Summary”t”bŒtext-transforms”j )�”(jT(jU(Œ=https://docs.python.org/3/library/codecs.html#text-transforms”ŒText Transforms”t”bŒtextseq”j )�”(jT(jU(Œ7https://docs.python.org/3/library/stdtypes.html#textseq”ŒText Sequence Type — str”t”bŒ textservices”j )�”(jT(jU(Œ8https://docs.python.org/3/library/text.html#textservices”ŒText Processing Services”t”bŒthe-backslash-plague”j )�”(jT(jU(Œ?https://docs.python.org/3/howto/regex.html#the-backslash-plague”ŒThe backslash plague”t”bŒthinice”j )�”(jT(jU(Œ:https://docs.python.org/3/extending/extending.html#thinice”ŒThin Ice”t”bŒthread-local-storage”j )�”(jT(jU(Œ=https://docs.python.org/3/c-api/tls.html#thread-local-storage”ŒThread-local storage support”t”bŒthread-local-storage-api”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/tls.html#thread-local-storage-api”Œ Legacy APIs”t”bŒthread-objects”j )�”(jT(jU(Œ?https://docs.python.org/3/library/threading.html#thread-objects”ŒThread objects”t”bŒthread-safety-bytearray”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/threadsafety.html#thread-safety-bytearray”Œ#Thread safety for bytearray objects”t”bŒthread-safety-dict”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/threadsafety.html#thread-safety-dict”ŒThread safety for dict objects”t”bŒthread-safety-list”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/threadsafety.html#thread-safety-list”ŒThread safety for list objects”t”bŒthread-safety-memoryview”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/threadsafety.html#thread-safety-memoryview”Œ$Thread safety for memoryview objects”t”bŒthread-safety-set”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/threadsafety.html#thread-safety-set”ŒThread safety for set objects”t”bŒthread-specific-storage-api”j )�”(jT(jU(ŒDhttps://docs.python.org/3/c-api/tls.html#thread-specific-storage-api”ŒThread-specific storage API”t”bŒthreadpoolexecutor-example”j )�”(jT(jU(ŒThttps://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor-example”ŒThreadPoolExecutor Example”t”bŒthreads”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/threads.html#threads”Œ-Thread states and the global interpreter lock”t”bŒ threadsafety”j )�”(jT(jU(Œ@https://docs.python.org/3/library/threadsafety.html#threadsafety”ŒThread Safety Guarantees”t”bŒthreadsafety-level-atomic”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/threadsafety.html#threadsafety-level-atomic”ŒAtomic”t”bŒthreadsafety-level-compatible”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/threadsafety.html#threadsafety-level-compatible”Œ Compatible”t”bŒthreadsafety-level-distinct”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/threadsafety.html#threadsafety-level-distinct”ŒSafe on distinct objects”t”bŒthreadsafety-level-incompatible”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/threadsafety.html#threadsafety-level-incompatible”Œ Incompatible”t”bŒthreadsafety-level-shared”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/threadsafety.html#threadsafety-level-shared”• ŒSafe on shared objects”t”bŒthreadsafety-levels”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/threadsafety.html#threadsafety-levels”ŒThread safety levels”t”bŒtime-clock-id-constants”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/time.html#time-clock-id-constants”ŒClock ID Constants”t”bŒtime-functions”j )�”(jT(jU(Œ:https://docs.python.org/3/library/time.html#time-functions”Œ Functions”t”bŒtime-timezone-constants”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/time.html#time-timezone-constants”ŒTimezone Constants”t”bŒtimed-rotating-file-handler”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/logging.handlers.html#timed-rotating-file-handler”ŒTimedRotatingFileHandler”t”bŒtimeit-command-line-interface”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/timeit.html#timeit-command-line-interface”ŒCommand-Line Interface”t”bŒtimeit-examples”j )�”(jT(jU(Œ=https://docs.python.org/3/library/timeit.html#timeit-examples”ŒExamples”t”bŒ timer-objects”j )�”(jT(jU(Œ>https://docs.python.org/3/library/threading.html#timer-objects”Œ Timer objects”t”bŒ timerfd-howto”j )�”(jT(jU(Œ:https://docs.python.org/3/howto/timerfd.html#timerfd-howto”Œtimer file descriptor HOWTO”t”bŒtkinter”j )�”(jT(jU(Œ1https://docs.python.org/3/library/tk.html#tkinter”Œ!Graphical user interfaces with Tk”t”bŒtkinter-file-handlers”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/tkinter.html#tkinter-file-handlers”Œ File Handlers”t”bŒtkinter-setting-options”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/tkinter.html#tkinter-setting-options”ŒSetting Options”t”bŒtoken_operators_delimiters”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/token.html#token-operators-delimiters”j" t”bŒ tokenize-cli”j )�”(jT(jU(Œhttps://docs.python.org/3/tutorial/appendix.html#tut-customize”ŒThe Customization Modules”t”bŒtut-data-compression”j )�”(jT(jU(ŒChttps://docs.python.org/3/tutorial/stdlib.html#tut-data-compression”ŒData compression”t”bŒtut-dates-and-times”j )�”(jT(jU(ŒBhttps://docs.python.org/3/tutorial/stdlib.html#tut-dates-and-times”ŒDates and times”t”bŒtut-decimal-fp”j )�”(jT(jU(Œ>https://docs.python.org/3/tutorial/stdlib2.html#tut-decimal-fp”Œ!Decimal floating-point arithmetic”t”bŒtut-defaultargs”j )�”(jT(jU(ŒChttps://docs.python.org/3/tutorial/controlflow.html#tut-defaultargs”ŒDefault Argument Values”t”bŒ tut-defining”j )�”(jT(jU(Œ@https://docs.python.org/3/tutorial/controlflow.html#tut-defining”ŒMore on Defining Functions”t”bŒtut-del”j )�”(jT(jU(Œ>https://docs.python.org/3/tutorial/datastructures.html#tut-del”ŒThe del statement”t”bŒtut-dictionaries”j )�”(jT(jU(ŒGhttps://docs.python.org/3/tutorial/datastructures.html#tut-dictionaries”Œ Dictionaries”t”bŒtut-dir”j )�”(jT(jU(Œ7https://docs.python.org/3/tutorial/modules.html#tut-dir”ŒThe dir() Function”t”bŒtut-docstrings”j )�”(jT(jU(ŒBhttps://docs.python.org/3/tutorial/controlflow.html#tut-docstrings”ŒDocumentation Strings”t”bŒ tut-error”j )�”(jT(jU(Œ:https://docs.python.org/3/tutorial/appendix.html#tut-error”ŒError Handling”t”bŒ tut-errors”j )�”(jT(jU(Œ9https://docs.python.org/3/tutorial/errors.html#tut-errors”ŒErrors and Exceptions”t”bŒtut-exception-chaining”j )�”(jT(jU(ŒEhttps://docs.python.org/3/tutorial/errors.html#tut-exception-chaining”ŒException Chaining”t”bŒtut-exception-groups”j )�”(jT(jU(ŒChttps://docs.python.org/3/tutorial/errors.html#tut-exception-groups”Œ2Raising and Handling Multiple Unrelated Exceptions”t”bŒtut-exception-notes”j )�”(jT(jU(ŒBhttps://docs.python.org/3/tutorial/errors.html#tut-exception-notes”ŒEnriching Exceptions with Notes”t”bŒtut-exceptions”j )�”(jT(jU(Œ=https://docs.python.org/3/tutorial/errors.html#tut-exceptions”Œ Exceptions”t”bŒ tut-f-strings”j )�”(jT(jU(ŒAhttps://docs.python.org/3/tutorial/inputoutput.html#tut-f-strings”ŒFormatted String Literals”t”bŒtut-file-wildcards”j )�”(jT(jU(ŒAhttps://docs.python.org/3/tutorial/stdlib.html#tut-file-wildcards”ŒFile wildcards”t”bŒtut-filemethods”j )�”(jT(jU(ŒChttps://docs.python.org/3/tutorial/inputoutput.html#tut-filemethods”ŒMethods of File Objects”t”bŒ tut-files”j )�”(jT(jU(Œ=https://docs.python.org/3/tutorial/inputoutput.html#tut-files”ŒReading and Writing Files”t”bŒtut-firstclasses”j )�”(jT(jU(Œ@https://docs.python.org/3/tutorial/classes.html#tut-firstclasses”ŒA First Look at Classes”t”bŒtut-firststeps”j )�”(jT(jU(ŒChttps://docs.python.org/3/tutorial/introduction.html#tut-firststeps”ŒFirst Steps Towards Programming”t”bŒtut-for”j )�”(jT(jU(Œ;https://docs.python.org/3/tutorial/controlflow.html#tut-for”Œfor Statements”t”bŒ tut-for-else”j )�”(jT(jU(Œ@https://docs.python.org/3/tutorial/controlflow.html#tut-for-else”Œelse Clauses on Loops”t”bŒtut-formatting”j )�”(jT(jU(ŒBhttps://docs.python.org/3/tutorial/inputoutput.html#tut-formatting”ŒFancier Output Formatting”t”bŒ tut-fp-error”j )�”(jT(jU(ŒBhttps://docs.python.org/3/tutorial/floatingpoint.html#tut-fp-error”ŒRepresentation Error”t”bŒ tut-fp-issues”j )�”(jT(jU(ŒChttps://docs.python.org/3/tutorial/floatingpoint.html#tut-fp-issues”Œ2Floating-Point Arithmetic: Issues and Limitations”t”bŒ tut-functions”j )�”(jT(jU(ŒAhttps://docs.python.org/3/tutorial/controlflow.html#tut-functions”ŒDefining Functions”t”bŒtut-generators”j )�”(jT(jU(Œ>https://docs.python.org/3/tutorial/classes.html#tut-generators”Œ Generators”t”bŒ tut-genexps”j )�”(jT(jU(Œ;https://docs.python.org/3/tutorial/classes.html#tut-genexps”ŒGenerator Expressions”t”bŒ tut-handling”j )�”(jT(jU(Œ;https://docs.python.org/3/tutorial/errors.html#tut-handling”ŒHandling Exceptions”t”bŒtut-if”j )�”(jT(jU(Œ:https://docs.python.org/3/tutorial/controlflow.html#tut-if”Œ if Statements”t”bŒ tut-informal”j )�”(jT(jU(ŒAhttps://docs.python.org/3/tutorial/introduction.html#tut-informal”Œ"An Informal Introduction to Python”t”bŒtut-inheritance”j )�”(jT(jU(Œ?https://docs.python.org/3/tutorial/classes.html#tut-inheritance”Œ Inheritance”t”bŒtut-instanceobjects”j )�”(jT(jU(ŒChttps://docs.python.org/3/tutorial/classes.html#tut-instanceobjects”ŒInstance Objects”t”bŒ tut-interac”j )�”(jT(jU(Œhttps://docs.python.org/3/tutorial/interpreter.html#tut-interp”Œ#The Interpreter and Its Environment”t”bŒ tut-intro”j )�”(jT(jU(Œ:https://docs.python.org/3/tutorial/appetite.html#tut-intro”ŒWhetting Your Appetite”t”bŒ tut-invoking”j )�”(jT(jU(Œ@https://docs.python.org/3/tutorial/interpreter.html#tut-invoking”ŒInvoking the Interpreter”t”bŒtut-io”j )�”(jT(jU(Œ:https://docs.python.org/3/tutorial/inputoutput.html#tut-io”ŒInput and Output”t”bŒ tut-iterators”j )�”(jT(jU(Œ=https://docs.python.org/3/tutorial/classes.html#tut-iterators”Œ Iterators”t”bŒtut-json”j )�”(jT(jU(Œhttps://docs.python.org/3/tutorial/controlflow.html#tut-lambda”ŒLambda Expressions”t”bŒtut-list-tools”j )�”(jT(jU(Œ>https://docs.python.org/3/tutorial/stdlib2.html#tut-list-tools”ŒTools for working with lists”t”bŒ tut-listcomps”j )�”(jT(jU(ŒDhttps://docs.python.org/3/tutorial/datastructures.html#tut-listcomps”ŒList Comprehensions”t”bŒ tut-lists”j )�”(jT(jU(Œ>https://docs.python.org/3/tutorial/introduction.html#tut-lists”ŒLists”t”bŒtut-lists-as-queues”j )�”(jT(jU(ŒJhttps://docs.python.org/3/tutorial/datastructures.html#tut-lists-as-queues”ŒUsing Lists as Queues”t”bŒtut-lists-as-stacks”j )�”(jT(jU(ŒJhttps://docs.python.org/3/tutorial/datastructures.html#tut-lists-as-stacks”ŒUsing Lists as Stacks”t”bŒ tut-logging”j )�”(jT(jU(Œ;https://docs.python.org/3/tutorial/stdlib2.html#tut-logging”ŒLogging”t”bŒtut-loopidioms”j )�”(jT(jU(ŒEhttps://docs.python.org/3/tutorial/datastructures.html#tut-loopidioms”ŒLooping Techniques”t”bŒ tut-match”j )�”(jT(jU(Œ=https://docs.python.org/3/tutorial/controlflow.html#tut-match”Œmatch Statements”t”bŒtut-mathematics”j )�”(jT(jU(Œ>https://docs.python.org/3/tutorial/stdlib.html#tut-mathematics”Œ Mathematics”t”bŒtut-methodobjects”j )�”(jT(jU(ŒAhttps://docs.python.org/3/tutorial/classes.html#tut-methodobjects”ŒMethod Objects”t”bŒ tut-modules”j )�”(jT(jU(Œ;https://docs.python.org/3/tutorial/modules.html#tut-modules”ŒModules”t”bŒtut-modulesasscripts”j )�”(jT(jU(ŒDhttps://docs.python.org/3/tutorial/modules.html#tut-modulesasscripts”ŒExecuting modules as scripts”t”bŒtut-morecontrol”j )�”(jT(jU(ŒChttps://docs.python.org/3/tutorial/controlflow.html#tut-morecontrol”ŒMore Control Flow Tools”t”bŒ tut-morelists”j )�”(jT(jU(ŒDhttps://docs.python.org/3/tutorial/datastructures.html#tut-morelists”Œ More on Lists”t”bŒtut-moremodules”j )�”(jT(jU(Œ?https://docs.python.org/3/tutorial/modules.html#tut-moremodules”ŒMore on Modules”t”bŒtut-multi-threading”j )�”(jT(jU(ŒChttps://docs.python.org/3/tutorial/stdlib2.html#tut-multi-threading”ŒMulti-threading”t”bŒ tut-multiple”j )�”(jT(jU(Œhttps://docs.python.org/3/tutorial/modules.html#tut-searchpath”ŒThe Module Search Path”t”bŒtut-sets”j )�”(jT(jU(Œ?https://docs.python.org/3/tutorial/datastructures.html#tut-sets”ŒSets”t”bŒtut-source-encoding”j )�”(jT(jU(ŒGhttps://docs.python.org/3/tutorial/interpreter.html#tut-source-encoding”ŒSource Code Encoding”t”bŒtut-standardmodules”j )�”(jT(jU(ŒChttps://docs.python.org/3/tutorial/modules.html#tut-standardmodules”ŒStandard Modules”t”bŒ tut-startup”j )�”(jT(jU(Œhttps://docs.python.org/3/tutorial/stdlib2.html#tut-templating”Œ Templating”t”bŒ tut-tuples”j )�”(jT(jU(ŒAhttps://docs.python.org/3/tutorial/datastructures.html#tut-tuples”ŒTuples and Sequences”t”bŒtut-unpacking-arguments”j )�”(jT(jU(ŒKhttps://docs.python.org/3/tutorial/controlflow.html#tut-unpacking-arguments”ŒUnpacking Argument Lists”t”bŒtut-userexceptions”j )�”(jT(jU(ŒAhttps://docs.python.org/3/tutorial/errors.html#tut-userexceptions”ŒUser-defined Exceptions”t”bŒ tut-using”j )�”(jT(jU(Œ=https://docs.python.org/3/tutorial/interpreter.html#tut-using”ŒUsing the Python Interpreter”t”bŒtut-venv”j )�”(jT(jU(Œ5https://docs.python.org/3/tutorial/venv.html#tut-venv”Œ!Virtual Environments and Packages”t”bŒtut-weak-references”j )�”(jT(jU(ŒChttps://docs.python.org/3/tutorial/stdlib2.html#tut-weak-references”ŒWeak references”t”bŒ tut-whatnow”j )�”(jT(jU(Œ;https://docs.python.org/3/tutorial/whatnow.html#tut-whatnow”Œ What Now?”t”bŒtutorial-index”j )�”(jT(jU(Œhttps://docs.python.org/3/c-api/typehints.html#typehintobjects”ŒObjects for Type Hinting”t”bŒtypeiter”j )�”(jT(jU(Œ8https://docs.python.org/3/library/stdtypes.html#typeiter”ŒIterator Types”t”bŒtypememoryview”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#typememoryview”Œ Memory Views”t”bŒ typeobjects”j )�”(jT(jU(Œ5https://docs.python.org/3/c-api/type.html#typeobjects”Œ Type Objects”t”bŒtypes”j )�”(jT(jU(Œ8https://docs.python.org/3/reference/datamodel.html#types”ŒThe standard type hierarchy”t”bŒtypes-genericalias”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/stdtypes.html#types-genericalias”ŒGeneric Alias Type”t”bŒ types-set”j )�”(jT(jU(Œ9https://docs.python.org/3/library/stdtypes.html#types-set”ŒSet Types — set, frozenset”t”bŒ types-union”j )�”(jT(jU(Œ;https://docs.python.org/3/library/stdtypes.html#types-union”Œ Union Type”t”bŒtypesfunctions”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#typesfunctions”Œ Functions”t”bŒ typesinternal”j )�”(jT(jU(Œ=https://docs.python.org/3/library/stdtypes.html#typesinternal”ŒInternal Objects”t”bŒ typesmapping”j )�”(jT(jU(Œhttps://docs.python.org/3/library/stdtypes.html#typesseq-range”ŒRanges”t”bŒtypesseq-tuple”j )�”(jT(jU(Œ>https://docs.python.org/3/library/stdtypes.html#typesseq-tuple”ŒTuples”t”bŒtypevar”j )�”(jT(jU(Œ5https://docs.python.org/3/library/typing.html#typevar”j" t”bŒ typevartuple”j )�”(jT(jU(Œ:https://docs.python.org/3/library/typing.html#typevartuple”j" t”bŒtyping-constrained-typevar”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/typing.html#typing-constrained-typevar”j" t”bŒ typing-io”j )�”(jT(jU(Œ7https://docs.python.org/3/library/typing.html#typing-io”Œ'ABCs and Protocols for working with I/O”t”bŒunary”j )�”(jT(jU(Œ:https://docs.python.org/3/reference/expressions.html#unary”Œ'Unary arithmetic and bitwise operations”t”bŒ unicode-howto”j )�”(jT(jU(Œ:https://docs.python.org/3/howto/unicode.html#unicode-howto”Œ Unicode HOWTO”t”bŒunicode-properties”j )�”(jT(jU(Œ?https://docs.python.org/3/howto/unicode.html#unicode-properties”ŒUnicode Properties”t”bŒunicodeexceptions”j )�”(jT(jU(ŒAhttps://docs.python.org/3/c-api/exceptions.html#unicodeexceptions”ŒUnicode Exception Objects”t”bŒunicodemethodsandslots”j )�”(jT(jU(ŒChttps://docs.python.org/3/c-api/unicode.html#unicodemethodsandslots”ŒMethods and Slot Functions”t”bŒunicodeobjects”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/unicode.html#unicodeobjects”ŒUnicode Objects and Codecs”t”bŒunittest-command-line-interface”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/unittest.html#unittest-command-line-interface”ŒCommand-Line Interface”t”bŒunittest-contents”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/unittest.html#unittest-contents”ŒClasses and functions”t”bŒunittest-minimal-example”j )�”(jT(jU(ŒHhttps://docs.python.org/3/library/unittest.html#unittest-minimal-example”Œ Basic example”t”bŒunittest-section”j )�”(jT(jU(Œhttps://docs.python.org/3/using/cmdline.html#using-on-warnings”j" t”bŒusing-on-windows”j )�”(jT(jU(Œ=https://docs.python.org/3/using/windows.html#using-on-windows”ŒUsing Python on Windows”t”bŒusing-sysconfig-as-a-script”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/sysconfig.html#using-sysconfig-as-a-script”ŒCommand-line usage”t”bŒusing-the-tracker”j )�”(jT(jU(Œ5https://docs.python.org/3/bugs.html#using-the-tracker”ŒUsing the Python issue tracker”t”bŒutc-formatting”j )�”(jT(jU(ŒDhttps://docs.python.org/3/howto/logging-cookbook.html#utc-formatting”Œ2Formatting times using UTC (GMT) via configuration”t”bŒ utf8-mode”j )�”(jT(jU(Œ3https://docs.python.org/3/library/os.html#utf8-mode”ŒPython UTF-8 Mode”t”bŒ utilities”j )�”(jT(jU(Œ8https://docs.python.org/3/c-api/utilities.html#utilities”Œ Utilities”t”bŒuuid-cli”j )�”(jT(jU(Œ4https://docs.python.org/3/library/uuid.html#uuid-cli”ŒCommand-Line Usage”t”bŒuuid-cli-example”j )�”(jT(jU(Œhttps://docs.python.org/3/library/warnings.html#warning-filter”ŒThe Warnings Filter”t”bŒwarning-functions”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/warnings.html#warning-functions”ŒAvailable Functions”t”bŒwarning-ignored”j )�”(jT(jU(Œ?https://docs.python.org/3/library/warnings.html#warning-ignored”Œ.Updating Code For New Versions of Dependencies”t”bŒwarning-suppress”j )�”(jT(jU(Œ@https://docs.python.org/3/library/warnings.html#warning-suppress”Œ Temporarily Suppressing Warnings”t”bŒwarning-testing”j )�”(jT(jU(Œ?https://docs.python.org/3/library/warnings.html#warning-testing”ŒTesting Warnings”t”bŒwasm-availability”j )�”(jT(jU(Œ>https://docs.python.org/3/library/intro.html#wasm-availability”ŒWebAssembly platforms”t”bŒwatched-file-handler”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/logging.handlers.html#watched-file-handler”ŒWatchedFileHandler”t”bŒwave-read-objects”j )�”(jT(jU(Œ=https://docs.python.org/3/library/wave.html#wave-read-objects”ŒWave_read Objects”t”bŒwave-write-objects”j )�”(jT(jU(Œ>https://docs.python.org/3/library/wave.html#wave-write-objects”ŒWave_write Objects”t”bŒweakref-example”j )�”(jT(jU(Œ>https://docs.python.org/3/library/weakref.html#weakref-example”ŒExample”t”bŒweakref-objects”j )�”(jT(jU(Œ>https://docs.python.org/3/library/weakref.html#weakref-objects”ŒWeak Reference Objects”t”bŒweakref-support”j )�”(jT(jU(ŒAhttps://docs.python.org/3/extending/newtypes.html#weakref-support”ŒWeak Reference Support”t”bŒweakrefobjects”j )�”(jT(jU(Œ;https://docs.python.org/3/c-api/weakref.html#weakrefobjects”ŒWeak Reference Objects”t”bŒwebbrowser-cli”j )�”(jT(jU(Œ@https://docs.python.org/3/library/webbrowser.html#webbrowser-cli”ŒCommand-line interface”t”bŒwhats-new-in-2.6”j )�”(jT(jU(Œhttps://docs.python.org/3/whatsnew/3.4.html#whatsnew-ensurepip”Œ ensurepip”t”bŒ whatsnew-enum”j )�”(jT(jU(Œ9https://docs.python.org/3/whatsnew/3.4.html#whatsnew-enum”Œenum”t”bŒwhatsnew-index”j )�”(jT(jU(Œhttps://docs.python.org/3/whatsnew/3.4.html#whatsnew-marshal-3”Œmarshal”t”bŒ whatsnew-multiprocessing-no-fork”j )�”(jT(jU(ŒLhttps://docs.python.org/3/whatsnew/3.4.html#whatsnew-multiprocessing-no-fork”j" t”bŒwhatsnew-ordereddict”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.5.html#whatsnew-ordereddict”j" t”bŒwhatsnew-pathlib”j )�”(jT(jU(ŒPEP 453: Explicit Bootstrapping of PIP in Python Installations”t”bŒwhatsnew-pep-456”j )�”(jT(jU(ŒPEP 465 - A dedicated infix operator for matrix multiplication”t”bŒwhatsnew-pep-471”j )�”(jT(jU(Œhttps://docs.python.org/3/whatsnew/3.4.html#whatsnew-selectors”Œ selectors”t”bŒwhatsnew-singledispatch”j )�”(jT(jU(ŒChttps://docs.python.org/3/whatsnew/3.4.html#whatsnew-singledispatch”j" t”bŒwhatsnew-sslmemorybio”j )�”(jT(jU(ŒAhttps://docs.python.org/3/whatsnew/3.5.html#whatsnew-sslmemorybio”ŒMemory BIO Support”t”bŒwhatsnew-statistics”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.4.html#whatsnew-statistics”Œ statistics”t”bŒwhatsnew-subprocess”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.5.html#whatsnew-subprocess”Œ subprocess”t”bŒwhatsnew-tls-11-12”j )�”(jT(jU(Œ>https://docs.python.org/3/whatsnew/3.4.html#whatsnew-tls-11-12”j" t”bŒwhatsnew-traceback”j )�”(jT(jU(Œ>https://docs.python.org/3/whatsnew/3.5.html#whatsnew-traceback”Œ traceback”t”bŒwhatsnew-tracemalloc”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.4.html#whatsnew-tracemalloc”Œ tracemalloc”t”bŒwhatsnew-typing-py312”j )�”(jT(jU(ŒBhttps://docs.python.org/3/whatsnew/3.12.html#whatsnew-typing-py312”Œtyping”t”bŒwhatsnew-zipapp”j )�”(jT(jU(Œ;https://docs.python.org/3/whatsnew/3.5.html#whatsnew-zipapp”Œzipapp”t”bŒwhatsnew27-capsules”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/2.7.html#whatsnew27-capsules”ŒCapsules”t”bŒwhatsnew27-python31”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/2.7.html#whatsnew27-python31”ŒThe Future for Python 2.x”t”bŒwhatsnew310-deprecated”j )�”(jT(jU(ŒChttps://docs.python.org/3/whatsnew/3.10.html#whatsnew310-deprecated”Œ Deprecated”t”bŒwhatsnew310-pep563”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.10.html#whatsnew310-pep563”ŒParenthesized context managers”t”bŒwhatsnew310-pep597”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.10.html#whatsnew310-pep597”Œ5Optional EncodingWarning and encoding="locale" option”t”bŒwhatsnew310-removed”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.10.html#whatsnew310-removed”ŒRemoved”t”bŒwhatsnew311-added-opcodes”j )�”(jT(jU(ŒFhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-added-opcodes”Œ New opcodes”t”bŒwhatsnew311-asyncio”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-asyncio”Œasyncio”t”bŒwhatsnew311-build-changes”j )�”(jT(jU(ŒFhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-build-changes”Œ Build Changes”t”bŒwhatsnew311-bytecode-changes”j )�”(jT(jU(ŒIhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-bytecode-changes”ŒCPython bytecode changes”t”bŒwhatsnew311-c-api”j )�”(jT(jU(Œ>https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-c-api”Œ C API Changes”t”bŒwhatsnew311-c-api-deprecated”j )�”(jT(jU(ŒIhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-c-api-deprecated”Œ Deprecated”t”bŒwhatsnew311-c-api-new-features”j )�”(jT(jU(ŒKhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-c-api-new-features”Œ New Features”t”bŒ!whatsnew311-c-api-pending-removal”j )�”(jT(jU(ŒNhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-c-api-pending-removal”ŒPending Removal in Python 3.12”t”bŒwhatsnew311-c-api-porting”j )�”(jT(jU(ŒFhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-c-api-porting”ŒPorting to Python 3.11”t”bŒwhatsnew311-c-api-removed”j )�”(jT(jU(ŒFhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-c-api-removed”ŒRemoved”t”bŒwhatsnew311-changed-opcodes”j )�”(jT(jU(ŒHhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-changed-opcodes”ŒChanged/removed opcodes”t”bŒ#whatsnew311-changed-removed-opcodes”j )�”(jT(jU(ŒPhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-changed-removed-opcodes”ŒChanged/removed opcodes”t”bŒwhatsnew311-contextlib”j )�”(jT(jU(ŒChttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-contextlib”Œ contextlib”t”bŒwhatsnew311-dataclasses”j )�”(jT(jU(ŒDhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-dataclasses”Œ dataclasses”t”bŒwhatsnew311-datetime”j )�”(jT(jU(ŒAhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-datetime”Œdatetime”t”bŒwhatsnew311-deprecated”j )�”(jT(jU(ŒChttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-deprecated”Œ Deprecated”t”bŒwhatsnew311-deprecated-builtins”j )�”(jT(jU(ŒLhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-deprecated-builtins”ŒLanguage/Builtins”t”bŒwhatsnew311-deprecated-language”j )�”(jT(jU(ŒLhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-deprecated-language”ŒLanguage/Builtins”t”bŒwhatsnew311-deprecated-modules”j )�”(jT(jU(ŒKhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-deprecated-modules”ŒModules”t”bŒwhatsnew311-deprecated-stdlib”j )�”(jT(jU(ŒJhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-deprecated-stdlib”ŒStandard Library”t”bŒwhatsnew311-enum”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-enum”Œenum”t”bŒwhatsnew311-faster-cpython”j )�”(jT(jU(ŒGhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-cpython”ŒFaster CPython”t”bŒ whatsnew311-faster-cpython-about”j )�”(jT(jU(ŒMhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-cpython-about”ŒAbout”t”bŒwhatsnew311-faster-cpython-faq”j )�”(jT(jU(ŒKhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-cpython-faq”ŒFAQ”t”bŒwhatsnew311-faster-cpython-misc”j )�”(jT(jU(ŒLhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-cpython-misc”ŒMisc”t”bŒwhatsnew311-faster-imports”j )�”(jT(jU(ŒGhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-imports”Œ$Frozen imports / Static code objects”t”bŒwhatsnew311-faster-runtime”j )�”(jT(jU(ŒGhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-runtime”ŒFaster Runtime”t”bŒwhatsnew311-faster-startup”j )�”(jT(jU(ŒGhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-faster-startup”ŒFaster Startup”t”bŒwhatsnew311-fcntl”j )�”(jT(jU(Œ>https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-fcntl”Œfcntl”t”bŒwhatsnew311-features”j )�”(jT(jU(ŒAhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-features”Œ New Features”t”bŒwhatsnew311-fractions”j )�”(jT(jU(ŒBhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-fractions”Œ fractions”t”bŒwhatsnew311-functools”j )�”(jT(jU(ŒBhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-functools”Œ functools”t”bŒwhatsnew311-gzip”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-gzip”Œgzip”t”bŒwhatsnew311-hashlib”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-hashlib”Œhashlib”t”bŒwhatsnew311-idle”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-idle”ŒIDLE and idlelib”t”bŒwhatsnew311-improved-modules”j )�”(jT(jU(ŒIhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-improved-modules”ŒImproved Modules”t”bŒwhatsnew311-inline-calls”j )�”(jT(jU(ŒEhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-inline-calls”ŒInlined Python function calls”t”bŒwhatsnew311-inspect”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-inspect”Œinspect”t”bŒwhatsnew311-lazy-python-frames”j )�”(jT(jU(ŒKhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-lazy-python-frames”ŒCheaper, lazy Python frames”t”bŒwhatsnew311-locale”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-locale”Œlocale”t”bŒwhatsnew311-logging”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-logging”Œlogging”t”bŒwhatsnew311-math”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-math”Œmath”t”bŒwhatsnew311-new-modules”j )�”(jT(jU(ŒDhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-new-modules”Œ New Modules”t”bŒwhatsnew311-operator”j )�”(jT(jU(ŒAhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-operator”Œoperator”t”bŒwhatsnew311-optimizations”j )�”(jT(jU(ŒFhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-optimizations”Œ Optimizations”t”bŒwhatsnew311-os”j )�”(jT(jU(Œ;https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-os”Œos”t”bŒ(whatsnew311-other-implementation-changes”j )�”(jT(jU(ŒUhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-other-implementation-changes”Œ$Other CPython Implementation Changes”t”bŒwhatsnew311-other-lang-changes”j )�”(jT(jU(ŒKhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-other-lang-changes”ŒOther Language Changes”t”bŒwhatsnew311-pathlib”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pathlib”Œpathlib”t”bŒwhatsnew311-pending-removal”j )�”(jT(jU(ŒHhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pending-removal”ŒPending Removal in Python 3.12”t”bŒwhatsnew311-pep563-deferred”j )�”(jT(jU(ŒHhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep563-deferred”ŒPEP 563 may not be the future”t”bŒwhatsnew311-pep594”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep594”j" t”bŒwhatsnew311-pep624”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep624”j" t”bŒwhatsnew311-pep646”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep646”ŒPEP 646: Variadic generics”t”bŒwhatsnew311-pep654”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep654”Œ%PEP 654: Exception Groups and except*”t”bŒwhatsnew311-pep655”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep655”ŒGPEP 655: Marking individual TypedDict items as required or not-required”t”bŒwhatsnew311-pep657”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep657”Œ3PEP 657: Fine-grained error locations in tracebacks”t”bŒwhatsnew311-pep659”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep659”Œ*PEP 659: Specializing Adaptive Interpreter”t”bŒwhatsnew311-pep670”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep670”j" t”bŒwhatsnew311-pep673”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep673”ŒPEP 673: Self type”t”bŒwhatsnew311-pep675”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep675”Œ&PEP 675: Arbitrary literal string type”t”bŒwhatsnew311-pep678”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep678”Œ.PEP 678: Exceptions can be enriched with notes”t”bŒwhatsnew311-pep681”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pep681”ŒPEP 681: Data class transforms”t”bŒwhatsnew311-porting”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-porting”ŒPorting to Python 3.11”t”bŒ!whatsnew311-python-api-deprecated”j )�”(jT(jU(ŒNhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-python-api-deprecated”Œ Deprecated”t”bŒ&whatsnew311-python-api-pending-removal”j )�”(jT(jU(ŒShttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-python-api-pending-removal”ŒPending Removal in Python 3.12”t”bŒwhatsnew311-python-api-porting”j )�”(jT(jU(ŒKhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-python-api-porting”ŒPorting to Python 3.11”t”bŒwhatsnew311-python-api-removed”j )�”(jT(jU(ŒKhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-python-api-removed”ŒRemoved”t”bŒwhatsnew311-pythonsafepath”j )�”(jT(jU(ŒGhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-pythonsafepath”j" t”bŒwhatsnew311-re”j )�”(jT(jU(Œ;https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-re”Œre”t”bŒwhatsnew311-removed”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-removed”ŒRemoved”t”bŒwhatsnew311-removed-opcodes”j )�”(jT(jU(ŒHhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-removed-opcodes”ŒChanged/removed opcodes”t”bŒwhatsnew311-replaced-opcodes”j )�”(jT(jU(ŒIhttps://docs.python.org/3/whatsnew/3.11.html#whatsnew311-replaced-opcodes”ŒReplaced opcodes”t”bŒwhatsnew311-shutil”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-shutil”Œshutil”t”bŒwhatsnew311-socket”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-socket”Œsocket”t”bŒwhatsnew311-sqlite3”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-sqlite3”Œsqlite3”t”bŒwhatsnew311-string”j )�”(jT(jU(Œ?https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-string”Œstring”t”bŒwhatsnew311-summary”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.11.html#whatsnew311-summary”ŒSummary – Release highlights”t”bŒwhatsnew311-sys”j )�”(jT(jU(ŒPEP 594: Remove “dead batteriesâ€� from the standard library”t”bŒwhatsnew313-platform-support”j )�”(jT(jU(ŒIhttps://docs.python.org/3/whatsnew/3.13.html#whatsnew313-platform-support”ŒSupport for mobile platforms”t”bŒwhatsnew313-subprocess”j )�”(jT(jU(ŒChttps://docs.python.org/3/whatsnew/3.13.html#whatsnew313-subprocess”Œ subprocess”t”bŒ!whatsnew314-asyncio-introspection”j )�”(jT(jU(ŒNhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-asyncio-introspection”Œ"Asyncio introspection capabilities”t”bŒwhatsnew314-bracketless-except”j )�”(jT(jU(ŒKhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-bracketless-except”Œ>PEP 758: Allow except and except* expressions without brackets”t”bŒwhatsnew314-build-changes”j )�”(jT(jU(ŒFhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-build-changes”Œ Build changes”t”bŒwhatsnew314-build_details”j )�”(jT(jU(ŒFhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-build-details”Œbuild-details.json”t”bŒwhatsnew314-c-api-deprecated”j )�”(jT(jU(ŒIhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-c-api-deprecated”ŒDeprecated C APIs”t”bŒwhatsnew314-c-api-removed”j )�”(jT(jU(ŒFhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-c-api-removed”ŒRemoved C APIs”t”bŒwhatsnew314-capi-config”j )�”(jT(jU(ŒDhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-capi-config”ŒPython configuration C API”t”bŒwhatsnew314-color-calendar”j )�”(jT(jU(ŒGhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-color-calendar”j" t”bŒwhatsnew314-color-unittest”j )�”(jT(jU(ŒGhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-color-unittest”j" t”bŒ*whatsnew314-concurrent-futures-interp-pool”j )�”(jT(jU(ŒWhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-concurrent-futures-interp-pool”j" t”bŒ+whatsnew314-concurrent-futures-start-method”j )�”(jT(jU(ŒXhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-concurrent-futures-start-method”j" t”bŒ'whatsnew314-concurrent-warnings-control”j )�”(jT(jU(ŒThttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-concurrent-warnings-control”Œ Concurrent safe warnings control”t”bŒ whatsnew314-deferred-annotations”j )�”(jT(jU(ŒMhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-deferred-annotations”Œ5PEP 649 & PEP 749: Deferred evaluation of annotations”t”bŒ!whatsnew314-finally-syntaxwarning”j )�”(jT(jU(ŒNhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-finally-syntaxwarning”Œ'PEP 765: Control flow in finally blocks”t”bŒ!whatsnew314-free-threaded-cpython”j )�”(jT(jU(ŒNhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-free-threaded-cpython”ŒFree-threaded mode improvements”t”bŒ'whatsnew314-free-threaded-now-supported”j )�”(jT(jU(ŒThttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-free-threaded-now-supported”Œ,Free-threaded Python is officially supported”t”bŒ#whatsnew314-improved-error-messages”j )�”(jT(jU(ŒPhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-improved-error-messages”ŒImproved error messages”t”bŒwhatsnew314-incremental-gc”j )�”(jT(jU(ŒGhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-incremental-gc”ŒGarbage collection”t”bŒwhatsnew314-jit-compiler”j )�”(jT(jU(ŒEhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-jit-compiler”Œ:Binary releases for the experimental just-in-time compiler”t”bŒ!whatsnew314-multiple-interpreters”j )�”(jT(jU(ŒNhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-multiple-interpreters”Œ6PEP 734: Multiple interpreters in the standard library”t”bŒ(whatsnew314-multiprocessing-start-method”j )�”(jT(jU(ŒUhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-multiprocessing-start-method”j" t”bŒwhatsnew314-no-more-pgp”j )�”(jT(jU(ŒDhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-no-more-pgp”Œ!Discontinuation of PGP signatures”t”bŒwhatsnew314-porting-annotations”j )�”(jT(jU(ŒLhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-porting-annotations”Œ,Changes in annotations (PEP 649 and PEP 749)”t”bŒwhatsnew314-pyrepl-highlighting”j )�”(jT(jU(ŒLhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-pyrepl-highlighting”j" t”bŒwhatsnew314-refcount”j )�”(jT(jU(ŒAhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-refcount”j" t”bŒwhatsnew314-remote-debugging”j )�”(jT(jU(ŒIhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-remote-debugging”Œ)PEP 768: Safe external debugger interface”t”bŒ!whatsnew314-tail-call-interpreter”j )�”(jT(jU(ŒNhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-tail-call-interpreter”ŒA new type of interpreter”t”bŒ$whatsnew314-template-string-literals”j )�”(jT(jU(ŒQhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-template-string-literals”Œ!PEP 750: Template string literals”t”bŒwhatsnew314-typing-union”j )�”(jT(jU(ŒEhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-typing-union”j" t”bŒwhatsnew314-zstandard”j )�”(jT(jU(ŒBhttps://docs.python.org/3/whatsnew/3.14.html#whatsnew314-zstandard”Œ2PEP 784: Zstandard support in the standard library”t”bŒwhatsnew34-sni”j )�”(jT(jU(Œ:https://docs.python.org/3/whatsnew/3.4.html#whatsnew34-sni”j" t”bŒwhatsnew34-sslcontext”j )�”(jT(jU(ŒAhttps://docs.python.org/3/whatsnew/3.4.html#whatsnew34-sslcontext”j" t”bŒwhatsnew34-win-cert-store”j )�”(jT(jU(ŒEhttps://docs.python.org/3/whatsnew/3.4.html#whatsnew34-win-cert-store”j" t”bŒwhatsnew36-compactdict”j )�”(jT(jU(ŒBhttps://docs.python.org/3/whatsnew/3.6.html#whatsnew36-compactdict”ŒNew dict implementation”t”bŒwhatsnew36-pep468”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep468”Œ*PEP 468: Preserving Keyword Argument Order”t”bŒwhatsnew36-pep487”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep487”Œ0PEP 487: Simpler customization of class creation”t”bŒwhatsnew36-pep487-descriptors”j )�”(jT(jU(ŒIhttps://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep487-descriptors”Œ)PEP 487: Descriptor Protocol Enhancements”t”bŒwhatsnew36-pep495”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep495”Œ"PEP 495: Local Time Disambiguation”t”bŒwhatsnew36-pep498”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep498”Œ"PEP 498: Formatted string literals”t”bŒwhatsnew36-pep506”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep506”Œsecrets”t”bŒwhatsnew36-pep515”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep515”Œ(PEP 515: Underscores in Numeric Literals”t”bŒwhatsnew36-pep519”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep519”Œ+PEP 519: Adding a file system path protocol”t”bŒwhatsnew36-pep520”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep520”Œ4PEP 520: Preserving Class Attribute Definition Order”t”bŒwhatsnew36-pep523”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep523”Œ1PEP 523: Adding a frame evaluation API to CPython”t”bŒwhatsnew36-pep525”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep525”Œ PEP 525: Asynchronous Generators”t”bŒwhatsnew36-pep526”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep526”Œ(PEP 526: Syntax for variable annotations”t”bŒwhatsnew36-pep528”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep528”Œ1PEP 528: Change Windows console encoding to UTF-8”t”bŒwhatsnew36-pep529”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep529”Œ4PEP 529: Change Windows filesystem encoding to UTF-8”t”bŒwhatsnew36-pep530”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep530”Œ$PEP 530: Asynchronous Comprehensions”t”bŒwhatsnew36-pythonmalloc”j )�”(jT(jU(ŒChttps://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pythonmalloc”Œ!PYTHONMALLOC environment variable”t”bŒwhatsnew36-traceback”j )�”(jT(jU(Œ@https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-traceback”Œ traceback”t”bŒwhatsnew36-tracing”j )�”(jT(jU(Œ>https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-tracing”•Œ$DTrace and SystemTap probing support”t”bŒwhatsnew36-typing”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-typing”Œtyping”t”bŒwhatsnew36-venv”j )�”(jT(jU(Œ;https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-venv”Œvenv”t”bŒwhatsnew37-asyncio-deprecated”j )�”(jT(jU(ŒIhttps://docs.python.org/3/whatsnew/3.7.html#whatsnew37-asyncio-deprecated”Œasyncio”t”bŒwhatsnew37-asyncio-perf”j )�”(jT(jU(ŒChttps://docs.python.org/3/whatsnew/3.7.html#whatsnew37-asyncio-perf”j" t”bŒwhatsnew37-devmode”j )�”(jT(jU(Œ>https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-devmode”Œ Python Development Mode (-X dev)”t”bŒwhatsnew37-pep538”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep538”Œ!PEP 538: Legacy C Locale Coercion”t”bŒwhatsnew37-pep539”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep539”Œ+PEP 539: New C API for Thread-Local Storage”t”bŒwhatsnew37-pep540”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep540”Œ"PEP 540: Forced UTF-8 Runtime Mode”t”bŒwhatsnew37-pep545”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep545”Œ*PEP 545: Python Documentation Translations”t”bu(Œwhatsnew37-pep552”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep552”ŒPEP 552: Hash-based .pyc Files”t”bŒwhatsnew37-pep553”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep553”ŒPEP 553: Built-in breakpoint()”t”bŒwhatsnew37-pep557”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep557”Œ dataclasses”t”bŒwhatsnew37-pep560”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep560”Œ9PEP 560: Core Support for typing module and Generic Types”t”bŒwhatsnew37-pep562”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep562”Œ5PEP 562: Customization of Access to Module Attributes”t”bŒwhatsnew37-pep563”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep563”Œ,PEP 563: Postponed Evaluation of Annotations”t”bŒwhatsnew37-pep564”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep564”Œ6PEP 564: New Time Functions With Nanosecond Resolution”t”bŒwhatsnew37-pep565”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep565”Œ,PEP 565: Show DeprecationWarning in __main__”t”bŒwhatsnew37-pep567”j )�”(jT(jU(Œ=https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-pep567”Œ contextvars”t”bŒwhatsnew37-perf”j )�”(jT(jU(Œ;https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-perf”Œ Optimizations”t”bŒwhatsnew37_asyncio”j )�”(jT(jU(Œ>https://docs.python.org/3/whatsnew/3.7.html#whatsnew37-asyncio”Œasyncio”t”bŒwhatsnew37_importlib_resources”j )�”(jT(jU(ŒJhttps://docs.python.org/3/whatsnew/3.7.html#whatsnew37-importlib-resources”Œimportlib.resources”t”bŒwhatsnew_email_contentmanager”j )�”(jT(jU(ŒIhttps://docs.python.org/3/whatsnew/3.4.html#whatsnew-email-contentmanager”j" t”bŒwhere-to-patch”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/unittest.mock.html#where-to-patch”ŒWhere to patch”t”bŒwhile”j )�”(jT(jU(Œ=https://docs.python.org/3/reference/compound_stmts.html#while”ŒThe while statement”t”bŒ whitespace”j )�”(jT(jU(ŒDhttps://docs.python.org/3/reference/lexical_analysis.html#whitespace”ŒWhitespace between tokens”t”bŒ.why-can-t-i-use-an-assignment-in-an-expression”j )�”(jT(jU(ŒXhttps://docs.python.org/3/faq/design.html#why-can-t-i-use-an-assignment-in-an-expression”Œ1Why can’t I use an assignment in an expression?”t”bŒwhy-self”j )�”(jT(jU(Œ2https://docs.python.org/3/faq/design.html#why-self”ŒGWhy must ‘self’ be used explicitly in method definitions and calls?”t”bŒwildcard-patterns”j )�”(jT(jU(ŒIhttps://docs.python.org/3/reference/compound_stmts.html#wildcard-patterns”ŒWildcard Patterns”t”bŒwin”j )�”(jT(jU(Œ3https://docs.python.org/3/c-api/exceptions.html#win”j" t”bŒ win-cookbook”j )�”(jT(jU(Œ=https://docs.python.org/3/extending/windows.html#win-cookbook”ŒA Cookbook Approach”t”bŒwin-dlls”j )�”(jT(jU(Œ9https://docs.python.org/3/extending/windows.html#win-dlls”ŒUsing DLLs in Practice”t”bŒ win-utf8-mode”j )�”(jT(jU(Œ:https://docs.python.org/3/using/windows.html#win-utf8-mode”Œ UTF-8 mode”t”bŒwindows-embeddable”j )�”(jT(jU(Œ?https://docs.python.org/3/using/windows.html#windows-embeddable”ŒThe embeddable package”t”bŒ windows-faq”j )�”(jT(jU(Œ6https://docs.python.org/3/faq/windows.html#windows-faq”ŒPython on Windows FAQ”t”bŒ windows-full”j )�”(jT(jU(Œ9https://docs.python.org/3/using/windows.html#windows-full”ŒThe full installer (deprecated)”t”bŒ windows-nuget”j )�”(jT(jU(Œ:https://docs.python.org/3/using/windows.html#windows-nuget”ŒThe nuget.org packages”t”bŒwindows-path-mod”j )�”(jT(jU(Œ=https://docs.python.org/3/using/windows.html#windows-path-mod”ŒPython install manager”t”bŒ windows-store”j )�”(jT(jU(Œ:https://docs.python.org/3/using/windows.html#windows-store”ŒPython install manager”t”bŒwindows_finding_modules”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/windows.html#windows-finding-modules”ŒFinding modules”t”bŒwith”j )�”(jT(jU(Œhttps://docs.python.org/3/library/xml.html#xml-vulnerabilities”Œ XML security”t”bŒxmlparser-non-root”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/pyexpat.html#xmlparser-non-root”j" t”bŒxmlparser-objects”j )�”(jT(jU(Œ@https://docs.python.org/3/library/pyexpat.html#xmlparser-objects”ŒXMLParser Objects”t”bŒxmlreader-objects”j )�”(jT(jU(ŒGhttps://docs.python.org/3/library/xml.sax.reader.html#xmlreader-objects”ŒXMLReader Objects”t”bŒxmlrpc-client-example”j )�”(jT(jU(ŒJhttps://docs.python.org/3/library/xmlrpc.client.html#xmlrpc-client-example”ŒExample of Client Usage”t”bŒyield”j )�”(jT(jU(Œ;https://docs.python.org/3/reference/simple_stmts.html#yield”ŒThe yield statement”t”bŒ yieldexpr”j )�”(jT(jU(Œ>https://docs.python.org/3/reference/expressions.html#yieldexpr”ŒYield expressions”t”bŒzeromq-handlers”j )�”(jT(jU(ŒEhttps://docs.python.org/3/howto/logging-cookbook.html#zeromq-handlers”Œhttps://docs.python.org/3/library/zipfile.html#zipfile-objects”ŒZipFile objects”t”bŒzipfile-resources-limitations”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/zipfile.html#zipfile-resources-limitations”ŒResources limitations”t”bŒzipimport-examples”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/zipimport.html#zipimport-examples”ŒExamples”t”bŒzipimporter-objects”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/zipimport.html#zipimporter-objects”Œzipimporter Objects”t”bŒzipinfo-objects”j )�”(jT(jU(Œ>https://docs.python.org/3/library/zipfile.html#zipinfo-objects”ŒZipInfo objects”t”bŒ!zoneinfo_data_compile_time_config”j )�”(jT(jU(ŒQhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo-data-compile-time-config”ŒCompile-time configuration”t”bŒzoneinfo_data_configuration”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo-data-configuration”ŒConfiguring the data sources”t”bŒzoneinfo_data_environment_var”j )�”(jT(jU(ŒMhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo-data-environment-var”ŒEnvironment configuration”t”bŒzoneinfo_data_runtime_config”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/zoneinfo.html#zoneinfo-data-runtime-config”ŒRuntime configuration”t”buŒ std:envvar”}”(Œ BASECFLAGS”j )�”(jT(jU(Œ@https://docs.python.org/3/using/configure.html#envvar-BASECFLAGS”j" t”bŒ BASECPPFLAGS”j )�”(jT(jU(ŒBhttps://docs.python.org/3/using/configure.html#envvar-BASECPPFLAGS”j" t”bŒ BLDSHARED”j )�”(jT(jU(Œ?https://docs.python.org/3/using/configure.html#envvar-BLDSHARED”j" t”bŒCC”j )�”(jT(jU(Œ8https://docs.python.org/3/using/configure.html#envvar-CC”j" t”bŒCCSHARED”j )�”(jT(jU(Œ>https://docs.python.org/3/using/configure.html#envvar-CCSHARED”j" t”bŒCFLAGS”j )�”(jT(jU(Œhttps://docs.python.org/3/using/configure.html#envvar-CPPFLAGS”j" t”bŒCXX”j )�”(jT(jU(Œ9https://docs.python.org/3/using/configure.html#envvar-CXX”j" t”bŒ EXTRA_CFLAGS”j )�”(jT(jU(ŒBhttps://docs.python.org/3/using/configure.html#envvar-EXTRA_CFLAGS”j" t”bŒLDFLAGS”j )�”(jT(jU(Œ=https://docs.python.org/3/using/configure.html#envvar-LDFLAGS”j" t”bŒLDFLAGS_NODIST”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/configure.html#envvar-LDFLAGS_NODIST”j" t”bŒLDSHARED”j )�”(jT(jU(Œ>https://docs.python.org/3/using/configure.html#envvar-LDSHARED”j" t”bŒLIBS”j )�”(jT(jU(Œ:https://docs.python.org/3/using/configure.html#envvar-LIBS”j" t”bŒLINKCC”j )�”(jT(jU(Œhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONHOME”j" t”bŒ PYTHONINSPECT”j )�”(jT(jU(ŒAhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONINSPECT”j" t”bŒPYTHONINTMAXSTRDIGITS”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONINTMAXSTRDIGITS”j" t”bŒPYTHONIOENCODING”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONIOENCODING”j" t”bŒPYTHONLEGACYWINDOWSFSENCODING”j )�”(jT(jU(ŒQhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONLEGACYWINDOWSFSENCODING”j" t”bŒPYTHONLEGACYWINDOWSSTDIO”j )�”(jT(jU(ŒLhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONLEGACYWINDOWSSTDIO”j" t”bŒ PYTHONMALLOC”j )�”(jT(jU(Œ@https://docs.python.org/3/using/cmdline.html#envvar-PYTHONMALLOC”j" t”bŒPYTHONMALLOCSTATS”j )�”(jT(jU(ŒEhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONMALLOCSTATS”j" t”bŒPYTHONNODEBUGRANGES”j )�”(jT(jU(ŒGhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONNODEBUGRANGES”j" t”bŒPYTHONNOUSERSITE”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONNOUSERSITE”j" t”bŒPYTHONOPTIMIZE”j )�”(jT(jU(ŒBhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONOPTIMIZE”j" t”bŒ PYTHONPATH”j )�”(jT(jU(Œ>https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH”j" t”bŒPYTHONPERFSUPPORT”j )�”(jT(jU(ŒEhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONPERFSUPPORT”j" t”bŒPYTHONPLATLIBDIR”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONPLATLIBDIR”j" t”bŒPYTHONPROFILEIMPORTTIME”j )�”(jT(jU(ŒKhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONPROFILEIMPORTTIME”j" t”bŒPYTHONPYCACHEPREFIX”j )�”(jT(jU(ŒGhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONPYCACHEPREFIX”j" t”bŒPYTHONSAFEPATH”j )�”(jT(jU(ŒBhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONSAFEPATH”j" t”bŒ PYTHONSTARTUP”j )�”(jT(jU(ŒAhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONSTARTUP”j" t”bŒPYTHONTRACEMALLOC”j )�”(jT(jU(ŒEhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONTRACEMALLOC”j" t”bŒ PYTHONTZPATH”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/zoneinfo.html#envvar-PYTHONTZPATH”j" t”bŒPYTHONUNBUFFERED”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONUNBUFFERED”j" t”bŒPYTHONUSERBASE”j )�”(jT(jU(ŒBhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONUSERBASE”j" t”bŒ PYTHONUTF8”j )�”(jT(jU(Œ>https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUTF8”j" t”bŒ PYTHONVERBOSE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONVERBOSE”j" t”bŒPYTHONWARNDEFAULTENCODING”j )�”(jT(jU(ŒMhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONWARNDEFAULTENCODING”j" t”bŒPYTHONWARNINGS”j )�”(jT(jU(ŒBhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHONWARNINGS”j" t”bŒPYTHON_BASIC_REPL”j )�”(jT(jU(ŒEhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHON_BASIC_REPL”j" t”bŒ PYTHON_COLORS”j )�”(jT(jU(ŒAhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHON_COLORS”j" t”bŒPYTHON_CONTEXT_AWARE_WARNINGS”j )�”(jT(jU(ŒQhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHON_CONTEXT_AWARE_WARNINGS”j" t”bŒPYTHON_CPU_COUNT”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHON_CPU_COUNT”j" t”bŒPYTHON_DISABLE_REMOTE_DEBUG”j )�”(jT(jU(ŒOhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHON_DISABLE_REMOTE_DEBUG”j" t”bŒPYTHON_FROZEN_MODULES”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHON_FROZEN_MODULES”j" t”bŒ PYTHON_GIL”j )�”(jT(jU(Œ>https://docs.python.org/3/using/cmdline.html#envvar-PYTHON_GIL”j" t”bŒPYTHON_HISTORY”j )�”(jT(jU(ŒBhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHON_HISTORY”j" t”bŒ PYTHON_JIT”j )�”(jT(jU(Œ>https://docs.python.org/3/using/cmdline.html#envvar-PYTHON_JIT”j" t”bŒ PYTHON_MANAGER_AUTOMATIC_INSTALL”j )�”(jT(jU(ŒThttps://docs.python.org/3/using/windows.html#envvar-PYTHON_MANAGER_AUTOMATIC_INSTALL”j" t”bŒPYTHON_MANAGER_DEFAULT”j )�”(jT(jU(ŒJhttps://docs.python.org/3/using/windows.html#envvar-PYTHON_MANAGER_DEFAULT”j" t”bŒPYTHON_PERF_JIT_SUPPORT”j )�”(jT(jU(ŒKhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHON_PERF_JIT_SUPPORT”j" t”bŒPYTHON_PRESITE”j )�”(jT(jU(ŒBhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHON_PRESITE”j" t”bŒPYTHON_THREAD_INHERIT_CONTEXT”j )�”(jT(jU(ŒQhttps://docs.python.org/3/using/cmdline.html#envvar-PYTHON_THREAD_INHERIT_CONTEXT”j" t”bŒ PYTHON_TLBC”j )�”(jT(jU(Œ?https://docs.python.org/3/using/cmdline.html#envvar-PYTHON_TLBC”j" t”bŒPY_BUILTIN_MODULE_CFLAGS”j )�”(jT(jU(ŒNhttps://docs.python.org/3/using/configure.html#envvar-PY_BUILTIN_MODULE_CFLAGS”j" t”bŒ PY_CFLAGS”j )�”(jT(jU(Œ?https://docs.python.org/3/using/configure.html#envvar-PY_CFLAGS”j" t”bŒPY_CFLAGS_NODIST”j )�”(jT(jU(ŒFhttps://docs.python.org/3/using/configure.html#envvar-PY_CFLAGS_NODIST”j" t”bŒPY_CORE_CFLAGS”j )�”(jT(jU(ŒDhttps://docs.python.org/3/using/configure.html#envvar-PY_CORE_CFLAGS”j" t”bŒPY_CORE_LDFLAGS”j )�”(jT(jU(ŒEhttps://docs.python.org/3/using/configure.html#envvar-PY_CORE_LDFLAGS”j" t”bŒ PY_CPPFLAGS”j )�”(jT(jU(ŒAhttps://docs.python.org/3/using/configure.html#envvar-PY_CPPFLAGS”j" t”bŒ PY_LDFLAGS”j )�”(jT(jU(Œ@https://docs.python.org/3/using/configure.html#envvar-PY_LDFLAGS”j" t”bŒPY_LDFLAGS_NODIST”j )�”(jT(jU(ŒGhttps://docs.python.org/3/using/configure.html#envvar-PY_LDFLAGS_NODIST”j" t”bŒPY_STDMODULE_CFLAGS”j )�”(jT(jU(ŒIhttps://docs.python.org/3/using/configure.html#envvar-PY_STDMODULE_CFLAGS”j" t”buŒ std:opcode”}”(Œ BINARY_OP”j )�”(jT(jU(Œ;https://docs.python.org/3/library/dis.html#opcode-BINARY_OP”j" t”bŒ BINARY_SLICE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/dis.html#opcode-BINARY_SLICE”j" t”bŒBUILD_INTERPOLATION”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/dis.html#opcode-BUILD_INTERPOLATION”j" t”bŒ BUILD_LIST”j )�”(jT(jU(Œhttps://docs.python.org/3/library/dis.html#opcode-BUILD_STRING”j" t”bŒBUILD_TEMPLATE”j )�”(jT(jU(Œ@https://docs.python.org/3/library/dis.html#opcode-BUILD_TEMPLATE”j" t”bŒ BUILD_TUPLE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/dis.html#opcode-BUILD_TUPLE”j" t”bŒCACHE”j )�”(jT(jU(Œ7https://docs.python.org/3/library/dis.html#opcode-CACHE”j" t”bŒCALL”j )�”(jT(jU(Œ6https://docs.python.org/3/library/dis.html#opcode-CALL”j" t”bŒCALL_FUNCTION_EX”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/dis.html#opcode-CALL_FUNCTION_EX”j" t”bŒCALL_INTRINSIC_1”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/dis.html#opcode-CALL_INTRINSIC_1”j" t”bŒCALL_INTRINSIC_2”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/dis.html#opcode-CALL_INTRINSIC_2”j" t”bŒCALL_KW”j )�”(jT(jU(Œ9https://docs.python.org/3/library/dis.html#opcode-CALL_KW”j" t”bŒCHECK_EG_MATCH”j )�”(jT(jU(Œ@https://docs.python.org/3/library/dis.html#opcode-CHECK_EG_MATCH”j" t”bŒCHECK_EXC_MATCH”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/dis.html#opcode-CHECK_EXC_MATCH”j" t”bŒ CLEANUP_THROW”j )�”(jT(jU(Œ?https://docs.python.org/3/library/dis.html#opcode-CLEANUP_THROW”j" t”bŒ COMPARE_OP”j )�”(jT(jU(Œhttps://docs.python.org/3/library/dis.html#opcode-DELETE_DEREF”j" t”bŒ DELETE_FAST”j )�”(jT(jU(Œ=https://docs.python.org/3/library/dis.html#opcode-DELETE_FAST”j" t”bŒ DELETE_GLOBAL”j )�”(jT(jU(Œ?https://docs.python.org/3/library/dis.html#opcode-DELETE_GLOBAL”j" t”bŒ DELETE_NAME”j )�”(jT(jU(Œ=https://docs.python.org/3/library/dis.html#opcode-DELETE_NAME”j" t”bŒ DELETE_SUBSCR”j )�”(jT(jU(Œ?https://docs.python.org/3/library/dis.html#opcode-DELETE_SUBSCR”j" t”bŒ DICT_MERGE”j )�”(jT(jU(Œhttps://docs.python.org/3/library/dis.html#opcode-EXTENDED_ARG”j" t”bŒ FORMAT_SIMPLE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/dis.html#opcode-FORMAT_SIMPLE”j" t”bŒFORMAT_WITH_SPEC”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/dis.html#opcode-FORMAT_WITH_SPEC”j" t”bŒFOR_ITER”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#opcode-FOR_ITER”j" t”bŒ GET_AITER”j )�”(jT(jU(Œ;https://docs.python.org/3/library/dis.html#opcode-GET_AITER”j" t”bŒ GET_ANEXT”j )�”(jT(jU(Œ;https://docs.python.org/3/library/dis.html#opcode-GET_ANEXT”j" t”bŒ GET_AWAITABLE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/dis.html#opcode-GET_AWAITABLE”j" t”bŒGET_ITER”j )�”(jT(jU(Œ:https://docs.python.org/3/library/dis.html#opcode-GET_ITER”j" t”bŒGET_LEN”j )�”(jT(jU(Œ9https://docs.python.org/3/library/dis.html#opcode-GET_LEN”j" t”bŒGET_YIELD_FROM_ITER”j )�”(jT(jU(ŒEhttps://docs.python.org/3/library/dis.html#opcode-GET_YIELD_FROM_ITER”j" t”bŒ HAVE_ARGUMENT”j )�”(jT(jU(Œ?https://docs.python.org/3/library/dis.html#opcode-HAVE_ARGUMENT”j" t”bŒ IMPORT_FROM”j )�”(jT(jU(Œ=https://docs.python.org/3/library/dis.html#opcode-IMPORT_FROM”j" t”bŒ IMPORT_NAME”j )�”(jT(jU(Œ=https://docs.python.org/3/library/dis.html#opcode-IMPORT_NAME”j" t”bŒIS_OP”j )�”(jT(jU(Œ7https://docs.python.org/3/library/dis.html#opcode-IS_OP”j" t”bŒJUMP”j )�”(jT(jU(Œ6https://docs.python.org/3/library/dis.html#opcode-JUMP”j" t”bŒ JUMP_BACKWARD”j )�”(jT(jU(Œ?https://docs.python.org/3/library/dis.html#opcode-JUMP_BACKWARD”j" t”bŒJUMP_BACKWARD_NO_INTERRUPT”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/dis.html#opcode-JUMP_BACKWARD_NO_INTERRUPT”j" t”bŒ JUMP_FORWARD”j )�”(jT(jU(Œ>https://docs.python.org/3/library/dis.html#opcode-JUMP_FORWARD”j" t”bŒ JUMP_IF_FALSE”j )�”(jT(jU(Œ?https://docs.python.org/3/library/dis.html#opcode-JUMP_IF_FALSE”j" t”bŒ JUMP_IF_TRUE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/dis.html#opcode-JUMP_IF_TRUE”j" t”bŒJUMP_NO_INTERRUPT”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/dis.html#opcode-JUMP_NO_INTERRUPT”j" t”bŒ LIST_APPEND”j )�”(jT(jU(Œ=https://docs.python.org/3/library/dis.html#opcode-LIST_APPEND”j" t”bŒ LIST_EXTEND”j )�”(jT(jU(Œ=https://docs.python.org/3/library/dis.html#opcode-LIST_EXTEND”j" t”bŒ LOAD_ATTR”j )�”(jT(jU(Œ;https://docs.python.org/3/library/dis.html#opcode-LOAD_ATTR”j" t”bŒLOAD_BUILD_CLASS”j )�”(jT(jU(ŒBhttps://docs.python.org/3/library/dis.html#opcode-LOAD_BUILD_CLASS”j" t”bŒ LOAD_CLOSURE”j )�”(jT(jU(Œ>https://docs.python.org/3/library/dis.html#opcode-LOAD_CLOSURE”j" t”bŒLOAD_COMMON_CONSTANT”j )�”(jT(jU(ŒFhttps://docs.python.org/3/library/dis.html#opcode-LOAD_COMMON_CONSTANT”j" t”bŒ LOAD_CONST”j )�”(jT(jU(Œhttps://docs.python.org/3/library/dis.html#opcode-LOAD_SPECIAL”j" t”bŒLOAD_SUPER_ATTR”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/dis.html#opcode-LOAD_SUPER_ATTR”j" t”bŒ MAKE_CELL”j )�”(jT(jU(Œ;https://docs.python.org/3/library/dis.html#opcode-MAKE_CELL”j" t”bŒ MAKE_FUNCTION”j )�”(jT(jU(Œ?https://docs.python.org/3/library/dis.html#opcode-MAKE_FUNCTION”j" t”bŒMAP_ADD”j )�”(jT(jU(Œ9https://docs.python.org/3/library/dis.html#opcode-MAP_ADD”j" t”bŒ MATCH_CLASS”j )�”(jT(jU(Œ=https://docs.python.org/3/library/dis.html#opcode-MATCH_CLASS”j" t”bŒ MATCH_KEYS”j )�”(jT(jU(Œhttps://docs.python.org/3/library/dis.html#opcode-RETURN_VALUE”j" t”bŒSEND”j )�”(jT(jU(Œ6https://docs.python.org/3/library/dis.html#opcode-SEND”j" t”bŒSETUP_ANNOTATIONS”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/dis.html#opcode-SETUP_ANNOTATIONS”j" t”bŒ SETUP_CLEANUP”j )�”(jT(jU(Œ?https://docs.python.org/3/library/dis.html#opcode-SETUP_CLEANUP”j" t”bŒ SETUP_FINALLY”j )�”(jT(jU(Œ?https://docs.python.org/3/library/dis.html#opcode-SETUP_FINALLY”j" t”bŒ SETUP_WITH”j )�”(jT(jU(Œhttps://docs.python.org/3/library/dis.html#opcode-STORE_GLOBAL”j" t”bŒ STORE_NAME”j )�”(jT(jU(Œhttps://docs.python.org/3/library/dis.html#opcode-STORE_SUBSCR”j" t”bŒSWAP”j )�”(jT(jU(Œ6https://docs.python.org/3/library/dis.html#opcode-SWAP”j" t”bŒTO_BOOL”j )�”(jT(jU(Œ9https://docs.python.org/3/library/dis.html#opcode-TO_BOOL”j" t”bŒ UNARY_INVERT”j )�”(jT(jU(Œ>https://docs.python.org/3/library/dis.html#opcode-UNARY_INVERT”j" t”bŒUNARY_NEGATIVE”j )�”(jT(jU(Œ@https://docs.python.org/3/library/dis.html#opcode-UNARY_NEGATIVE”j" t”bŒ UNARY_NOT”j )�”(jT(jU(Œ;https://docs.python.org/3/library/dis.html#opcode-UNARY_NOT”j" t”bŒ UNPACK_EX”j )�”(jT(jU(Œ;https://docs.python.org/3/library/dis.html#opcode-UNPACK_EX”j" t”bŒUNPACK_SEQUENCE”j )�”(jT(jU(ŒAhttps://docs.python.org/3/library/dis.html#opcode-UNPACK_SEQUENCE”j" t”bŒWITH_EXCEPT_START”j )�”(jT(jU(ŒChttps://docs.python.org/3/library/dis.html#opcode-WITH_EXCEPT_START”j" t”bŒ YIELD_VALUE”j )�”(jT(jU(Œ=https://docs.python.org/3/library/dis.html#opcode-YIELD_VALUE”j" t”buŒstd:monitoring-event”}”(Œ BRANCH_LEFT”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-BRANCH_LEFT”j" t”bŒ BRANCH_RIGHT”j )�”(jT(jU(ŒShttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-BRANCH_RIGHT”j" t”bŒCALL”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-CALL”j" t”bŒC_RAISE”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-C_RAISE”j" t”bŒC_RETURN”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-C_RETURN”j" t”bŒEXCEPTION_HANDLED”j )�”(jT(jU(ŒXhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-EXCEPTION_HANDLED”j" t”bŒ INSTRUCTION”j )�”(jT(jU(ŒRhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-INSTRUCTION”j" t”bŒJUMP”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-JUMP”j" t”bŒLINE”j )�”(jT(jU(ŒKhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-LINE”j" t”bŒ NO_EVENTS”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-NO_EVENTS”j" t”bŒ PY_RESUME”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-PY_RESUME”j" t”bŒ PY_RETURN”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-PY_RETURN”j" t”bŒPY_START”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-PY_START”j" t”bŒPY_THROW”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-PY_THROW”j" t”bŒ PY_UNWIND”j )�”(jT(jU(ŒPhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-PY_UNWIND”j" t”bŒPY_YIELD”j )�”(jT(jU(ŒOhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-PY_YIELD”j" t”bŒRAISE”j )�”(jT(jU(ŒLhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-RAISE”j" t”bŒRERAISE”j )�”(jT(jU(ŒNhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-RERAISE”j" t”bŒSTOP_ITERATION”j )�”(jT(jU(ŒUhttps://docs.python.org/3/library/sys.monitoring.html#monitoring-event-STOP_ITERATION”j" t”buŒstd:doc”}”(Œabout”j )�”(jT(jU(Œ$https://docs.python.org/3/about.html”ŒAbout this documentation”t”bŒbugs”j )�”(jT(jU(Œ#https://docs.python.org/3/bugs.html”ŒDealing with Bugs”t”bŒc-api/abstract”j )�”(jT(jU(Œ-https://docs.python.org/3/c-api/abstract.html”ŒAbstract Objects Layer”t”bŒc-api/allocation”j )�”(jT(jU(Œ/https://docs.python.org/3/c-api/allocation.html”ŒAllocating objects on the heap”t”bŒc-api/apiabiversion”j )�”(jT(jU(Œ2https://docs.python.org/3/c-api/apiabiversion.html”ŒAPI and ABI Versioning”t”bŒ c-api/arg”j )�”(jT(jU(Œ(https://docs.python.org/3/c-api/arg.html”Œ%Parsing arguments and building values”t”bŒ c-api/bool”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/bool.html”ŒBoolean Objects”t”bŒ c-api/buffer”j )�”(jT(jU(Œ+https://docs.python.org/3/c-api/buffer.html”ŒBuffer Protocol”t”bŒc-api/bytearray”j )�”(jT(jU(Œ.https://docs.python.org/3/c-api/bytearray.html”ŒByte Array Objects”t”bŒ c-api/bytes”j )�”(jT(jU(Œ*https://docs.python.org/3/c-api/bytes.html”Œ Bytes Objects”t”bŒ c-api/call”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/call.html”Œ Call Protocol”t”bŒ c-api/capsule”j )�”(jT(jU(Œ,https://docs.python.org/3/c-api/capsule.html”ŒCapsules”t”bŒ c-api/cell”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/cell.html”Œ Cell Objects”t”bŒ c-api/code”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/code.html”Œ Code Objects”t”bŒ c-api/codec”j )�”(jT(jU(Œ*https://docs.python.org/3/c-api/codec.html”Œ$Codec registry and support functions”t”bŒ c-api/complex”j )�”(jT(jU(Œ,https://docs.python.org/3/c-api/complex.html”ŒComplex Number Objects”t”bŒc-api/concrete”j )�”(jT(jU(Œ-https://docs.python.org/3/c-api/concrete.html”ŒConcrete Objects Layer”t”bŒc-api/contextvars”j )�”(jT(jU(Œ0https://docs.python.org/3/c-api/contextvars.html”ŒContext Variables Objects”t”bŒc-api/conversion”j )�”(jT(jU(Œ/https://docs.python.org/3/c-api/conversion.html”Œ String conversion and formatting”t”bŒ c-api/coro”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/coro.html”ŒCoroutine Objects”t”bŒ c-api/curses”j )�”(jT(jU(Œ+https://docs.python.org/3/c-api/curses.html”Œ Curses C API”t”bŒc-api/datetime”j )�”(jT(jU(Œ-https://docs.python.org/3/c-api/datetime.html”ŒDateTime Objects”t”bŒc-api/descriptor”j )�”(jT(jU(Œ/https://docs.python.org/3/c-api/descriptor.html”ŒDescriptor Objects”t”bŒ c-api/dict”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/dict.html”ŒDictionary Objects”t”bŒc-api/exceptions”j )�”(jT(jU(Œ/https://docs.python.org/3/c-api/exceptions.html”ŒException Handling”t”bŒc-api/extension-modules”j )�”(jT(jU(Œ6https://docs.python.org/3/c-api/extension-modules.html”ŒDefining extension modules”t”bŒ c-api/file”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/file.html”Œ File objects”t”bŒ c-api/float”j )�”(jT(jU(Œ*https://docs.python.org/3/c-api/float.html”ŒFloating-Point Objects”t”bŒ c-api/frame”j )�”(jT(jU(Œ*https://docs.python.org/3/c-api/frame.html”Œ Frame objects”t”bŒc-api/function”j )�”(jT(jU(Œ-https://docs.python.org/3/c-api/function.html”ŒFunction Objects”t”bŒc-api/gcsupport”j )�”(jT(jU(Œ.https://docs.python.org/3/c-api/gcsupport.html”Œ$Supporting Cyclic Garbage Collection”t”bŒ c-api/gen”j )�”(jT(jU(Œ(https://docs.python.org/3/c-api/gen.html”ŒGenerator Objects”t”bŒ c-api/hash”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/hash.html”Œ PyHash API”t”bŒ c-api/import”j )�”(jT(jU(Œ+https://docs.python.org/3/c-api/import.html”ŒImporting Modules”t”bŒ c-api/index”j )�”(jT(jU(Œ*https://docs.python.org/3/c-api/index.html”ŒPython/C API reference manual”t”bŒ c-api/init”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/init.html”Œ)Initialization, finalization, and threads”t”bŒc-api/init_config”j )�”(jT(jU(Œ0https://docs.python.org/3/c-api/init_config.html”Œ#Python Initialization Configuration”t”bŒc-api/interp-lifecycle”j )�”(jT(jU(Œ5https://docs.python.org/3/c-api/interp-lifecycle.html”Œ+Interpreter initialization and finalization”t”bŒ c-api/intro”j )�”(jT(jU(Œ*https://docs.python.org/3/c-api/intro.html”Œ Introduction”t”bŒ c-api/iter”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/iter.html”ŒIterator Protocol”t”bŒc-api/iterator”j )�”(jT(jU(Œ-https://docs.python.org/3/c-api/iterator.html”ŒIterator Objects”t”bŒc-api/lifecycle”j )�”(jT(jU(Œ.https://docs.python.org/3/c-api/lifecycle.html”ŒObject Life Cycle”t”bŒ c-api/list”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/list.html”Œ List Objects”t”bŒ c-api/long”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/long.html”ŒInteger Objects”t”bŒ c-api/mapping”j )�”(jT(jU(Œ,https://docs.python.org/3/c-api/mapping.html”ŒMapping Protocol”t”bŒ c-api/marshal”j )�”(jT(jU(Œ,https://docs.python.org/3/c-api/marshal.html”ŒData marshalling support”t”bŒ c-api/memory”j )�”(jT(jU(Œ+https://docs.python.org/3/c-api/memory.html”ŒMemory Management”t”bŒc-api/memoryview”j )�”(jT(jU(Œ/https://docs.python.org/3/c-api/memoryview.html”ŒMemoryView objects”t”bŒ c-api/method”j )�”(jT(jU(Œ+https://docs.python.org/3/c-api/method.html”ŒInstance Method Objects”t”bŒ c-api/module”j )�”(jT(jU(Œ+https://docs.python.org/3/c-api/module.html”ŒModule Objects”t”bŒc-api/monitoring”j )�”(jT(jU(Œ/https://docs.python.org/3/c-api/monitoring.html”ŒMonitoring C API”t”bŒ c-api/none”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/none.html”ŒThe None Object”t”bŒ c-api/number”j )�”(jT(jU(Œ+https://docs.python.org/3/c-api/number.html”ŒNumber Protocol”t”bŒ c-api/object”j )�”(jT(jU(Œ+https://docs.python.org/3/c-api/object.html”ŒObject Protocol”t”bŒ c-api/objimpl”j )�”(jT(jU(Œ,https://docs.python.org/3/c-api/objimpl.html”ŒObject Implementation Support”t”bŒc-api/perfmaps”j )�”(jT(jU(Œ-https://docs.python.org/3/c-api/perfmaps.html”ŒSupport for Perf Maps”t”bŒc-api/picklebuffer”j )�”(jT(jU(Œ1https://docs.python.org/3/c-api/picklebuffer.html”ŒPickle buffer objects”t”bŒc-api/profiling”j )�”(jT(jU(Œ.https://docs.python.org/3/c-api/profiling.html”ŒProfiling and tracing”t”bŒc-api/refcounting”j )�”(jT(jU(Œ0https://docs.python.org/3/c-api/refcounting.html”ŒReference Counting”t”bŒc-api/reflection”j )�”(jT(jU(Œ/https://docs.python.org/3/c-api/reflection.html”Œ Reflection”t”bŒc-api/sequence”j )�”(jT(jU(Œ-https://docs.python.org/3/c-api/sequence.html”ŒSequence Protocol”t”bŒ c-api/set”j )�”(jT(jU(Œ(https://docs.python.org/3/c-api/set.html”Œ Set Objects”t”bŒ c-api/slice”j )�”(jT(jU(Œ*https://docs.python.org/3/c-api/slice.html”Œ Slice Objects”t”bŒ c-api/stable”j )�”(jT(jU(Œ+https://docs.python.org/3/c-api/stable.html”ŒC API Stability”t”bŒc-api/structures”j )�”(jT(jU(Œ/https://docs.python.org/3/c-api/structures.html”ŒCommon Object Structures”t”bŒc-api/subinterpreters”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/subinterpreters.html”Œ)Multiple interpreters in a Python process”t”bŒc-api/synchronization”j )�”(jT(jU(Œ4https://docs.python.org/3/c-api/synchronization.html”ŒSynchronization primitives”t”bŒ c-api/sys”j )�”(jT(jU(Œ(https://docs.python.org/3/c-api/sys.html”ŒOperating System Utilities”t”bŒ c-api/threads”j )�”(jT(jU(Œ,https://docs.python.org/3/c-api/threads.html”Œ-Thread states and the global interpreter lock”t”bŒ c-api/time”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/time.html”Œ PyTime C API”t”bŒ c-api/tls”j )�”(jT(jU(Œ(https://docs.python.org/3/c-api/tls.html”ŒThread-local storage support”t”bŒ c-api/tuple”j )�”(jT(jU(Œ*https://docs.python.org/3/c-api/tuple.html”Œ Tuple Objects”t”bŒ c-api/type”j )�”(jT(jU(Œ)https://docs.python.org/3/c-api/type.html”Œ Type Objects”t”bŒc-api/typehints”j )�”(jT(jU(Œ.https://docs.python.org/3/c-api/typehints.html”ŒObjects for Type Hinting”t”bŒ c-api/typeobj”j )�”(jT(jU(Œ,https://docs.python.org/3/c-api/typeobj.html”ŒType Object Structures”t”bŒ c-api/unicode”j )�”(jT(jU(Œ,https://docs.python.org/3/c-api/unicode.html”ŒUnicode Objects and Codecs”t”bŒc-api/utilities”j )�”(jT(jU(Œ.https://docs.python.org/3/c-api/utilities.html”Œ Utilities”t”bŒc-api/veryhigh”j )�”(jT(jU(Œ-https://docs.python.org/3/c-api/veryhigh.html”ŒThe Very High Level Layer”t”bŒ c-api/weakref”j )�”(jT(jU(Œ,https://docs.python.org/3/c-api/weakref.html”ŒWeak Reference Objects”t”bŒcontents”j )�”(jT(jU(Œ'https://docs.python.org/3/contents.html”ŒPython Documentation contents”t”bŒ copyright”j )�”(jT(jU(Œ(https://docs.python.org/3/copyright.html”Œ Copyright”t”bŒ*deprecations/c-api-pending-removal-in-3.14”j )�”(jT(jU(ŒIhttps://docs.python.org/3/deprecations/c-api-pending-removal-in-3.14.html”ŒPending removal in Python 3.14”t”bŒ*deprecations/c-api-pending-removal-in-3.15”j )�”(jT(jU(ŒIhttps://docs.python.org/3/deprecations/c-api-pending-removal-in-3.15.html”ŒPending removal in Python 3.15”t”bŒ*deprecations/c-api-pending-removal-in-3.16”j )�”(jT(jU(ŒIhttps://docs.python.org/3/deprecations/c-api-pending-removal-in-3.16.html”ŒPending removal in Python 3.16”t”bŒ*deprecations/c-api-pending-removal-in-3.18”j )�”(jT(jU(ŒIhttps://docs.python.org/3/deprecations/c-api-pending-removal-in-3.18.html”ŒPending removal in Python 3.18”t”bŒ,deprecations/c-api-pending-removal-in-future”j )�”(jT(jU(ŒKhttps://docs.python.org/3/deprecations/c-api-pending-removal-in-future.html”Œ"Pending removal in future versions”t”bŒdeprecations/index”j )�”(jT(jU(Œ1https://docs.python.org/3/deprecations/index.html”Œ Deprecations”t”bŒ$deprecations/pending-removal-in-3.13”j )�”(jT(jU(ŒChttps://docs.python.org/3/deprecations/pending-removal-in-3.13.html”ŒPending removal in Python 3.13”t”bŒ$deprecations/pending-removal-in-3.14”j )�”(jT(jU(ŒChttps://docs.python.org/3/deprecations/pending-removal-in-3.14.html”ŒPending removal in Python 3.14”t”bŒ$deprecations/pending-removal-in-3.15”j )�”(jT(jU(ŒChttps://docs.python.org/3/deprecations/pending-removal-in-3.15.html”ŒPending removal in Python 3.15”t”bŒ$deprecations/pending-removal-in-3.16”j )�”(jT(jU(ŒChttps://docs.python.org/3/deprecations/pending-removal-in-3.16.html”ŒPending removal in Python 3.16”t”bŒ$deprecations/pending-removal-in-3.17”j )�”(jT(jU(ŒChttps://docs.python.org/3/deprecations/pending-removal-in-3.17.html”ŒPending removal in Python 3.17”t”bŒ$deprecations/pending-removal-in-3.18”j )�”(jT(jU(ŒChttps://docs.python.org/3/deprecations/pending-removal-in-3.18.html”ŒPending removal in Python 3.18”t”bŒ$deprecations/pending-removal-in-3.19”j )�”(jT(jU(ŒChttps://docs.python.org/3/deprecations/pending-removal-in-3.19.html”ŒPending removal in Python 3.19”t”bŒ&deprecations/pending-removal-in-future”j )�”(jT(jU(ŒEhttps://docs.python.org/3/deprecations/pending-removal-in-future.html”Œ"Pending removal in future versions”t”bŒdistributing/index”j )�”(jT(jU(Œ1https://docs.python.org/3/distributing/index.html”ŒDistributing Python Modules”t”bŒextending/building”j )�”(jT(jU(Œ1https://docs.python.org/3/extending/building.html”ŒBuilding C and C++ Extensions”t”bŒextending/embedding”j )�”(jT(jU(Œ2https://docs.python.org/3/extending/embedding.html”Œ'Embedding Python in Another Application”t”bŒextending/extending”j )�”(jT(jU(Œ2https://docs.python.org/3/extending/extending.html”ŒExtending Python with C or C++”t”bŒextending/index”j )�”(jT(jU(Œ.https://docs.python.org/3/extending/index.html”Œ.Extending and Embedding the Python Interpreter”t”bŒextending/newtypes”j )�”(jT(jU(Œ1https://docs.python.org/3/extending/newtypes.html”Œ)Defining Extension Types: Assorted Topics”t”bŒextending/newtypes_tutorial”j )�”(jT(jU(Œ:https://docs.python.org/3/extending/newtypes_tutorial.html”Œ"Defining Extension Types: Tutorial”t”bŒextending/windows”j )�”(jT(jU(Œ0https://docs.python.org/3/extending/windows.html”Œ(Building C and C++ Extensions on Windows”t”bŒ faq/design”j )�”(jT(jU(Œ)https://docs.python.org/3/faq/design.html”ŒDesign and History FAQ”t”bŒ faq/extending”j )�”(jT(jU(Œ,https://docs.python.org/3/faq/extending.html”ŒExtending/Embedding FAQ”t”bŒ faq/general”j )�”(jT(jU(Œ*https://docs.python.org/3/faq/general.html”ŒGeneral Python FAQ”t”bŒfaq/gui”j )�”(jT(jU(Œ&https://docs.python.org/3/faq/gui.html”ŒGraphic User Interface FAQ”t”bŒ faq/index”j )�”(jT(jU(Œ(https://docs.python.org/3/faq/index.html”Œ!Python Frequently Asked Questions”t”bŒ faq/installed”j )�”(jT(jU(Œ,https://docs.python.org/3/faq/installed.html”Œ1“Why is Python Installed on my Computer?â€� FAQ”t”bŒ faq/library”j )�”(jT(jU(Œ*https://docs.python.org/3/faq/library.html”ŒLibrary and Extension FAQ”t”bŒfaq/programming”j )�”(jT(jU(Œ.https://docs.python.org/3/faq/programming.html”ŒProgramming FAQ”t”bŒ faq/windows”j )�”(jT(jU(Œ*https://docs.python.org/3/faq/windows.html”ŒPython on Windows FAQ”t”bŒglossary”j )�”(jT(jU(Œ'https://docs.python.org/3/glossary.html”ŒGlossary”t”bŒ&howto/a-conceptual-overview-of-asyncio”j )�”(jT(jU(ŒEhttps://docs.python.org/3/howto/a-conceptual-overview-of-asyncio.html”Œ A Conceptual Overview of asyncio”t”bŒhowto/annotations”j )�”(jT(jU(Œ0https://docs.python.org/3/howto/annotations.html”ŒAnnotations Best Practices”t”bŒhowto/argparse”j )�”(jT(jU(Œ-https://docs.python.org/3/howto/argparse.html”ŒArgparse Tutorial”t”bŒhowto/argparse-optparse”j )�”(jT(jU(Œ6https://docs.python.org/3/howto/argparse-optparse.html”Œ#Migrating optparse code to argparse”t”bŒ howto/clinic”j )�”(jT(jU(Œ+https://docs.python.org/3/howto/clinic.html”ŒArgument Clinic How-To”t”bŒhowto/cporting”j )�”(jT(jU(Œ-https://docs.python.org/3/howto/cporting.html”Œ%Porting Extension Modules to Python 3”t”bŒ howto/curses”j )�”(jT(jU(Œ+https://docs.python.org/3/howto/curses.html”ŒCurses Programming with Python”t”bŒhowto/descriptor”j )�”(jT(jU(Œ/https://docs.python.org/3/howto/descriptor.html”ŒDescriptor Guide”t”bŒ howto/enum”j )�”(jT(jU(Œ)https://docs.python.org/3/howto/enum.html”Œ Enum HOWTO”t”bŒhowto/free-threading-extensions”j )�”(jT(jU(Œ>https://docs.python.org/3/howto/free-threading-extensions.html”Œ*C API Extension Support for Free Threading”t”bŒhowto/free-threading-python”j )�”(jT(jU(Œ:https://docs.python.org/3/howto/free-threading-python.html”Œ!Python support for free threading”t”bŒhowto/functional”j )�”(jT(jU(Œ/https://docs.python.org/3/howto/functional.html”ŒFunctional Programming HOWTO”t”bŒhowto/gdb_helpers”j )�”(jT(jU(Œ0https://docs.python.org/3/howto/gdb_helpers.html”Œ9Debugging C API extensions and CPython Internals with GDB”t”bŒ howto/index”j )�”(jT(jU(Œ*https://docs.python.org/3/howto/index.html”Œ Python HOWTOs”t”bŒhowto/instrumentation”j )�”(jT(jU(Œ4https://docs.python.org/3/howto/instrumentation.html”Œ/Instrumenting CPython with DTrace and SystemTap”t”bŒhowto/ipaddress”j )�”(jT(jU(Œ.https://docs.python.org/3/howto/ipaddress.html”Œ'An introduction to the ipaddress module”t”bŒhowto/isolating-extensions”j )�”(jT(jU(Œ9https://docs.python.org/3/howto/isolating-extensions.html”ŒIsolating Extension Modules”t”bŒ howto/logging”j )�”(jT(jU(Œ,https://docs.python.org/3/howto/logging.html”Œ Logging HOWTO”t”bŒhowto/logging-cookbook”j )�”(jT(jU(Œ5https://docs.python.org/3/howto/logging-cookbook.html”ŒLogging Cookbook”t”bŒ howto/mro”j )�”(jT(jU(Œ(https://docs.python.org/3/howto/mro.html”Œ&The Python 2.3 Method Resolution Order”t”bŒhowto/perf_profiling”j )�”(jT(jU(Œ3https://docs.python.org/3/howto/perf_profiling.html”Œ*Python support for the Linux perf profiler”t”bŒhowto/pyporting”j )�”(jT(jU(Œ.https://docs.python.org/3/howto/pyporting.html”Œ%How to port Python 2 Code to Python 3”t”bŒ howto/regex”j )�”(jT(jU(Œ*https://docs.python.org/3/howto/regex.html”ŒRegular expression HOWTO”t”bŒhowto/remote_debugging”j )�”(jT(jU(Œ5https://docs.python.org/3/howto/remote_debugging.html”Œ$Remote debugging attachment protocol”t”bŒ howto/sockets”j )�”(jT(jU(Œ,https://docs.python.org/3/howto/sockets.html”ŒSocket Programming HOWTO”t”bŒ howto/sorting”j )�”(jT(jU(Œ,https://docs.python.org/3/howto/sorting.html”ŒSorting Techniques”t”bŒ howto/timerfd”j )�”(jT(jU(Œ,https://docs.python.org/3/howto/timerfd.html”Œtimer file descriptor HOWTO”t”bŒ howto/unicode”j )�”(jT(jU(Œ,https://docs.python.org/3/howto/unicode.html”Œ Unicode HOWTO”t”bŒ howto/urllib2”j )�”(jT(jU(Œ,https://docs.python.org/3/howto/urllib2.html”Œ7HOWTO Fetch Internet Resources Using The urllib Package”t”bŒ improve-page”j )�”(jT(jU(Œ+https://docs.python.org/3/improve-page.html”ŒImprove a documentation page”t”bŒimprove-page-nojs”j )�”(jT(jU(Œ0https://docs.python.org/3/improve-page-nojs.html”ŒImprove a documentation page”t”bŒinstalling/index”j )�”(jT(jU(Œ/https://docs.python.org/3/installing/index.html”ŒInstalling Python modules”t”bŒlibrary/__future__”j )�”(jT(jU(Œ1https://docs.python.org/3/library/__future__.html”Œ+__future__ — Future statement definitions”t”bŒlibrary/__main__”j )�”(jT(jU(Œ/https://docs.python.org/3/library/__main__.html”Œ'__main__ — Top-level code environment”t”bŒlibrary/_thread”j )�”(jT(jU(Œ.https://docs.python.org/3/library/_thread.html”Œ#_thread — Low-level threading API”t”bŒ library/abc”j )�”(jT(jU(Œ*https://docs.python.org/3/library/abc.html”Œabc — Abstract Base Classes”t”bŒ library/aifc”j )�”(jT(jU(Œ+https://docs.python.org/3/library/aifc.html”Œ+aifc — Read and write AIFF and AIFC files”t”bŒ library/allos”j )�”(jT(jU(Œ,https://docs.python.org/3/library/allos.html”Œ!Generic Operating System Services”t”bŒlibrary/annotationlib”j )�”(jT(jU(Œ4https://docs.python.org/3/library/annotationlib.html”Œ=annotationlib — Functionality for introspecting annotations”t”bŒlibrary/archiving”j )�”(jT(jU(Œ0https://docs.python.org/3/library/archiving.html”ŒData Compression and Archiving”t”bŒlibrary/argparse”j )�”(jT(jU(Œ/https://docs.python.org/3/library/argparse.html”ŒGargparse — Parser for command-line options, arguments and subcommands”t”bŒ library/array”j )�”(jT(jU(Œ,https://docs.python.org/3/library/array.html”Œ,array — Efficient arrays of numeric values”t”bŒ library/ast”j )�”(jT(jU(Œ*https://docs.python.org/3/library/ast.html”Œast — Abstract syntax trees”t”bŒlibrary/asynchat”j )�”(jT(jU(Œ/https://docs.python.org/3/library/asynchat.html”Œ9asynchat — Asynchronous socket command/response handler”t”bŒlibrary/asyncio”j )�”(jT(jU(Œ.https://docs.python.org/3/library/asyncio.html”Œasyncio — Asynchronous I/O”t”bŒlibrary/asyncio-api-index”j )�”(jT(jU(Œ8https://docs.python.org/3/library/asyncio-api-index.html”ŒHigh-level API Index”t”bŒlibrary/asyncio-dev”j )�”(jT(jU(Œ2https://docs.python.org/3/library/asyncio-dev.html”ŒDeveloping with asyncio”t”bŒlibrary/asyncio-eventloop”j )�”(jT(jU(Œ8https://docs.python.org/3/library/asyncio-eventloop.html”Œ Event loop”t”bŒlibrary/asyncio-exceptions”j )�”(jT(jU(Œ9https://docs.python.org/3/library/asyncio-exceptions.html”Œ Exceptions”t”bŒlibrary/asyncio-extending”j )�”(jT(jU(Œ8https://docs.python.org/3/library/asyncio-extending.html”Œ Extending”t”bŒlibrary/asyncio-future”j )�”(jT(jU(Œ5https://docs.python.org/3/library/asyncio-future.html”ŒFutures”t”bŒlibrary/asyncio-graph”j )�”(jT(jU(Œ4https://docs.python.org/3/library/asyncio-graph.html”ŒCall Graph Introspection”t”bŒlibrary/asyncio-llapi-index”j )�”(jT(jU(Œ:https://docs.python.org/3/library/asyncio-llapi-index.html”ŒLow-level API Index”t”bŒlibrary/asyncio-platforms”j )�”(jT(jU(Œ8https://docs.python.org/3/library/asyncio-platforms.html”ŒPlatform Support”t”bŒlibrary/asyncio-policy”j )�”(jT(jU(Œ5https://docs.python.org/3/library/asyncio-policy.html”ŒPolicies”t”bŒlibrary/asyncio-protocol”j )�”(jT(jU(Œ7https://docs.python.org/3/library/asyncio-protocol.html”ŒTransports and Protocols”t”bŒlibrary/asyncio-queue”j )�”(jT(jU(Œ4https://docs.python.org/3/library/asyncio-queue.html”ŒQueues”t”bŒlibrary/asyncio-runner”j )�”(jT(jU(Œ5https://docs.python.org/3/library/asyncio-runner.html”ŒRunners”t”bŒlibrary/asyncio-stream”j )�”(jT(jU(Œ5https://docs.python.org/3/library/asyncio-stream.html”ŒStreams”t”bŒlibrary/asyncio-subprocess”j )�”(jT(jU(Œ9https://docs.python.org/3/library/asyncio-subprocess.html”Œ Subprocesses”t”bŒlibrary/asyncio-sync”j )�”(jT(jU(Œ3https://docs.python.org/3/library/asyncio-sync.html”ŒSynchronization Primitives”t”bŒlibrary/asyncio-task”j )�”(jT(jU(Œ3https://docs.python.org/3/library/asyncio-task.html”ŒCoroutines and tasks”t”bŒlibrary/asyncore”j )�”(jT(jU(Œ/https://docs.python.org/3/library/asyncore.html”Œ(asyncore — Asynchronous socket handler”t”bŒlibrary/atexit”j )�”(jT(jU(Œ-https://docs.python.org/3/library/atexit.html”Œatexit — Exit handlers”t”bŒlibrary/audioop”j )�”(jT(jU(Œ.https://docs.python.org/3/library/audioop.html”Œ%audioop — Manipulate raw audio data”t”bŒlibrary/audit_events”j )�”(jT(jU(Œ3https://docs.python.org/3/library/audit_events.html”ŒAudit events table”t”bŒlibrary/base64”j )�”(jT(jU(Œ-https://docs.python.org/3/library/base64.html”Œ8base64 — Base16, Base32, Base64, Base85 Data Encodings”t”bŒ library/bdb”j )�”(jT(jU(Œ*https://docs.python.org/3/library/bdb.html”Œbdb — Debugger framework”t”bŒlibrary/binary”j )�”(jT(jU(Œ-https://docs.python.org/3/library/binary.html”ŒBinary Data Services”t”bŒlibrary/binascii”j )�”(jT(jU(Œ/https://docs.python.org/3/library/binascii.html”Œ-binascii — Convert between binary and ASCII”t”bŒlibrary/bisect”j )�”(jT(jU(Œ-https://docs.python.org/3/library/bisect.html”Œ$bisect — Array bisection algorithm”t”bŒlibrary/builtins”j )�”(jT(jU(Œ/https://docs.python.org/3/library/builtins.html”Œbuiltins — Built-in objects”t”bŒ library/bz2”j )�”(jT(jU(Œ*https://docs.python.org/3/library/bz2.html”Œ%bz2 — Support for bzip2 compression”t”bŒlibrary/calendar”j )�”(jT(jU(Œ/https://docs.python.org/3/library/calendar.html”Œ/calendar — General calendar-related functions”t”bŒ library/cgi”j )�”(jT(jU(Œ*https://docs.python.org/3/library/cgi.html”Œ(cgi — Common Gateway Interface support”t”bŒ library/cgitb”j )�”(jT(jU(Œ,https://docs.python.org/3/library/cgitb.html”Œ+cgitb — Traceback manager for CGI scripts”t”bŒ library/chunk”j )�”(jT(jU(Œ,https://docs.python.org/3/library/chunk.html”Œchunk — Read IFF chunked data”t”bŒ library/cmath”j )�”(jT(jU(Œ,https://docs.python.org/3/library/cmath.html”Œ4cmath — Mathematical functions for complex numbers”t”bŒ library/cmd”j )�”(jT(jU(Œ*https://docs.python.org/3/library/cmd.html”Œ6cmd — Support for line-oriented command interpreters”t”bŒlibrary/cmdline”j )�”(jT(jU(Œ.https://docs.python.org/3/library/cmdline.html”Œ$Modules command-line interface (CLI)”t”bŒlibrary/cmdlinelibs”j )�”(jT(jU(Œ2https://docs.python.org/3/library/cmdlinelibs.html”Œ Command-line interface libraries”t”bŒ library/code”j )�”(jT(jU(Œ+https://docs.python.org/3/library/code.html”Œ!code — Interpreter base classes”t”bŒlibrary/codecs”j )�”(jT(jU(Œ-https://docs.python.org/3/library/codecs.html”Œ*codecs — Codec registry and base classes”t”bŒlibrary/codeop”j )�”(jT(jU(Œ-https://docs.python.org/3/library/codeop.html”Œcodeop — Compile Python code”t”bŒlibrary/collections”j )�”(jT(jU(Œ2https://docs.python.org/3/library/collections.html”Œ#collections — Container datatypes”t”bŒlibrary/collections.abc”j )�”(jT(jU(Œ6https://docs.python.org/3/library/collections.abc.html”Œ8collections.abc — Abstract Base Classes for Containers”t”bŒlibrary/colorsys”j )�”(jT(jU(Œ/https://docs.python.org/3/library/colorsys.html”Œ.colorsys — Conversions between color systems”t”bŒlibrary/compileall”j )�”(jT(jU(Œ1https://docs.python.org/3/library/compileall.html”Œ,compileall — Byte-compile Python libraries”t”bŒlibrary/compression”j )�”(jT(jU(Œ2https://docs.python.org/3/library/compression.html”ŒThe compression package”t”bŒlibrary/compression.zstd”j )�”(jT(jU(Œ7https://docs.python.org/3/library/compression.zstd.html”ŒEcompression.zstd — Compression compatible with the Zstandard format”t”bŒlibrary/concurrency”j )�”(jT(jU(Œ2https://docs.python.org/3/library/concurrency.html”ŒConcurrent Execution”t”bŒlibrary/concurrent”j )�”(jT(jU(Œ1https://docs.python.org/3/library/concurrent.html”ŒThe concurrent package”t”bŒlibrary/concurrent.futures”j )�”(jT(jU(Œ9https://docs.python.org/3/library/concurrent.futures.html”Œ/concurrent.futures — Launching parallel tasks”t”bŒlibrary/concurrent.interpreters”j )�”(jT(jU(Œ>https://docs.python.org/3/library/concurrent.interpreters.html”ŒEconcurrent.interpreters — Multiple interpreters in the same process”t”bŒlibrary/configparser”j )�”(jT(jU(Œ3https://docs.python.org/3/library/configparser.html”Œ*configparser — Configuration file parser”t”bŒlibrary/constants”j )�”(jT(jU(Œ0https://docs.python.org/3/library/constants.html”ŒBuilt-in Constants”t”bŒlibrary/contextlib”j )�”(jT(jU(Œ1https://docs.python.org/3/library/contextlib.html”Œ4contextlib — Utilities for with-statement contexts”t”bŒlibrary/contextvars”j )�”(jT(jU(Œ2https://docs.python.org/3/library/contextvars.html”Œ!contextvars — Context Variables”t”bŒ library/copy”j )�”(jT(jU(Œ+https://docs.python.org/3/library/copy.html”Œ)copy — Shallow and deep copy operations”t”bŒlibrary/copyreg”j )�”(jT(jU(Œ.https://docs.python.org/3/library/copyreg.html”Œ-copyreg — Register pickle support functions”t”bŒ library/crypt”j )�”(jT(jU(Œ,https://docs.python.org/3/library/crypt.html”Œ*crypt — Function to check Unix passwords”t”bŒlibrary/crypto”j )�”(jT(jU(Œ-https://docs.python.org/3/library/crypto.html”ŒCryptographic Services”t”bŒ library/csv”j )�”(jT(jU(Œ*https://docs.python.org/3/library/csv.html”Œ$csv — CSV File Reading and Writing”t”bŒlibrary/ctypes”j )�”(jT(jU(Œ-https://docs.python.org/3/library/ctypes.html”Œ0ctypes — A foreign function library for Python”t”bŒlibrary/curses”j )�”(jT(jU(Œ-https://docs.python.org/3/library/curses.html”Œ8curses — Terminal handling for character-cell displays”t”bŒlibrary/curses.ascii”j )�”(jT(jU(Œ3https://docs.python.org/3/library/curses.ascii.html”Œ/curses.ascii — Utilities for ASCII characters”t”bŒlibrary/curses.panel”j )�”(jT(jU(Œ3https://docs.python.org/3/library/curses.panel.html”Œ3curses.panel — A panel stack extension for curses”t”bŒlibrary/custominterp”j )�”(jT(jU(Œ3https://docs.python.org/3/library/custominterp.html”ŒCustom Python Interpreters”t”bŒlibrary/dataclasses”j )�”(jT(jU(Œ2https://docs.python.org/3/library/dataclasses.html”Œdataclasses — Data Classes”t”bŒlibrary/datatypes”j )�”(jT(jU(Œ0https://docs.python.org/3/library/datatypes.html”Œ Data Types”t”bŒlibrary/datetime”j )�”(jT(jU(Œ/https://docs.python.org/3/library/datetime.html”Œ&datetime — Basic date and time types”t”bŒ library/dbm”j )�”(jT(jU(Œ*https://docs.python.org/3/library/dbm.html”Œ*dbm — Interfaces to Unix “databasesâ€�”t”bŒ library/debug”j )�”(jT(jU(Œ,https://docs.python.org/3/library/debug.html”ŒDebugging and Profiling”t”bŒlibrary/decimal”j )�”(jT(jU(Œ.https://docs.python.org/3/library/decimal.html”Œ=decimal — Decimal fixed-point and floating-point arithmetic”t”bŒlibrary/development”j )�”(jT(jU(Œ2https://docs.python.org/3/library/development.html”ŒDevelopment Tools”t”bŒlibrary/devmode”j )�”(jT(jU(Œ.https://docs.python.org/3/library/devmode.html”ŒPython Development Mode”t”bŒlibrary/dialog”j )�”(jT(jU(Œ-https://docs.python.org/3/library/dialog.html”ŒTkinter Dialogs”t”bŒlibrary/difflib”j )�”(jT(jU(Œ.https://docs.python.org/3/library/difflib.html”Œ(difflib — Helpers for computing deltas”t”bŒ library/dis”j )�”(jT(jU(Œ*https://docs.python.org/3/library/dis.html”Œ(dis — Disassembler for Python bytecode”t”bŒlibrary/distribution”j )�”(jT(jU(Œ3https://docs.python.org/3/library/distribution.html”Œ#Software Packaging and Distribution”t”bŒlibrary/distutils”j )�”(jT(jU(Œ0https://docs.python.org/3/library/distutils.html”Œ4distutils — Building and installing Python modules”t”bŒlibrary/doctest”j )�”(jT(jU(Œ.https://docs.python.org/3/library/doctest.html”Œ,doctest — Test interactive Python examples”t”bŒ library/email”j )�”(jT(jU(Œ,https://docs.python.org/3/library/email.html”Œ,email — An email and MIME handling package”t”bŒlibrary/email.charset”j )�”(jT(jU(Œ4https://docs.python.org/3/library/email.charset.html”Œ*email.charset: Representing character sets”t”bŒlibrary/email.compat32-message”j )�”(jT(jU(Œ=https://docs.python.org/3/library/email.compat32-message.html”ŒKemail.message.Message: Representing an email message using the compat32 API”t”bŒlibrary/email.contentmanager”j )�”(jT(jU(Œ;https://docs.python.org/3/library/email.contentmanager.html”Œ+email.contentmanager: Managing MIME Content”t”bŒlibrary/email.encoders”j )�”(jT(jU(Œ5https://docs.python.org/3/library/email.encoders.html”Œemail.encoders: Encoders”t”bŒlibrary/email.errors”j )�”(jT(jU(Œ3https://docs.python.org/3/library/email.errors.html”Œ*email.errors: Exception and Defect classes”t”bŒlibrary/email.examples”j )�”(jT(jU(Œ5https://docs.python.org/3/library/email.examples.html”•SŒemail: Examples”t”bŒlibrary/email.generator”j )�”(jT(jU(Œ6https://docs.python.org/3/library/email.generator.html”Œ*email.generator: Generating MIME documents”t”bŒlibrary/email.header”j )�”(jT(jU(Œ3https://docs.python.org/3/library/email.header.html”Œ'email.header: Internationalized headers”t”bŒlibrary/email.headerregistry”j )�”(jT(jU(Œ;https://docs.python.org/3/library/email.headerregistry.html”Œ+email.headerregistry: Custom Header Objects”t”bŒlibrary/email.iterators”j )�”(jT(jU(Œ6https://docs.python.org/3/library/email.iterators.html”Œemail.iterators: Iterators”t”bŒlibrary/email.message”j )�”(jT(jU(Œ4https://docs.python.org/3/library/email.message.html”Œ,email.message: Representing an email message”t”bŒlibrary/email.mime”j )�”(jT(jU(Œ1https://docs.python.org/3/library/email.mime.html”Œ8email.mime: Creating email and MIME objects from scratch”t”bŒlibrary/email.parser”j )�”(jT(jU(Œ3https://docs.python.org/3/library/email.parser.html”Œ$email.parser: Parsing email messages”t”bŒlibrary/email.policy”j )�”(jT(jU(Œ3https://docs.python.org/3/library/email.policy.html”Œemail.policy: Policy Objects”t”bŒlibrary/email.utils”j )�”(jT(jU(Œ2https://docs.python.org/3/library/email.utils.html”Œ$email.utils: Miscellaneous utilities”t”bŒlibrary/ensurepip”j )�”(jT(jU(Œ0https://docs.python.org/3/library/ensurepip.html”Œ-ensurepip — Bootstrapping the pip installer”t”bŒ library/enum”j )�”(jT(jU(Œ+https://docs.python.org/3/library/enum.html”Œ!enum — Support for enumerations”t”bŒ library/errno”j )�”(jT(jU(Œ,https://docs.python.org/3/library/errno.html”Œ'errno — Standard errno system symbols”t”bŒlibrary/exceptions”j )�”(jT(jU(Œ1https://docs.python.org/3/library/exceptions.html”ŒBuilt-in Exceptions”t”bŒlibrary/faulthandler”j )�”(jT(jU(Œ3https://docs.python.org/3/library/faulthandler.html”Œ*faulthandler — Dump the Python traceback”t”bŒ library/fcntl”j )�”(jT(jU(Œ,https://docs.python.org/3/library/fcntl.html”Œ*fcntl — The fcntl and ioctl system calls”t”bŒlibrary/filecmp”j )�”(jT(jU(Œ.https://docs.python.org/3/library/filecmp.html”Œ*filecmp — File and Directory Comparisons”t”bŒlibrary/fileformats”j )�”(jT(jU(Œ2https://docs.python.org/3/library/fileformats.html”Œ File Formats”t”bŒlibrary/fileinput”j )�”(jT(jU(Œ0https://docs.python.org/3/library/fileinput.html”Œhttps://docs.python.org/3/library/importlib.resources.abc.html”Œ?importlib.resources.abc – Abstract base classes for resources”t”bŒ library/index”j )�”(jT(jU(Œ,https://docs.python.org/3/library/index.html”ŒThe Python Standard Library”t”bŒlibrary/inspect”j )�”(jT(jU(Œ.https://docs.python.org/3/library/inspect.html”Œ inspect — Inspect live objects”t”bŒlibrary/internet”j )�”(jT(jU(Œ/https://docs.python.org/3/library/internet.html”ŒInternet Protocols and Support”t”bŒ library/intro”j )�”(jT(jU(Œ,https://docs.python.org/3/library/intro.html”Œ Introduction”t”bŒ library/io”j )�”(jT(jU(Œ)https://docs.python.org/3/library/io.html”Œ*io — Core tools for working with streams”t”bŒlibrary/ipaddress”j )�”(jT(jU(Œ0https://docs.python.org/3/library/ipaddress.html”Œ,ipaddress — IPv4/IPv6 manipulation library”t”bŒ library/ipc”j )�”(jT(jU(Œ*https://docs.python.org/3/library/ipc.html”Œ)Networking and Interprocess Communication”t”bŒlibrary/itertools”j )�”(jT(jU(Œ0https://docs.python.org/3/library/itertools.html”Œ@itertools — Functions creating iterators for efficient looping”t”bŒ library/json”j )�”(jT(jU(Œ+https://docs.python.org/3/library/json.html”Œ!json — JSON encoder and decoder”t”bŒlibrary/keyword”j )�”(jT(jU(Œ.https://docs.python.org/3/library/keyword.html”Œ'keyword — Testing for Python keywords”t”bŒlibrary/language”j )�”(jT(jU(Œ/https://docs.python.org/3/library/language.html”ŒPython Language Services”t”bŒlibrary/linecache”j )�”(jT(jU(Œ0https://docs.python.org/3/library/linecache.html”Œ)linecache — Random access to text lines”t”bŒlibrary/locale”j )�”(jT(jU(Œ-https://docs.python.org/3/library/locale.html”Œ(locale — Internationalization services”t”bŒlibrary/logging”j )�”(jT(jU(Œ.https://docs.python.org/3/library/logging.html”Œ'logging — Logging facility for Python”t”bŒlibrary/logging.config”j )�”(jT(jU(Œ5https://docs.python.org/3/library/logging.config.html”Œ(logging.config — Logging configuration”t”bŒlibrary/logging.handlers”j )�”(jT(jU(Œ7https://docs.python.org/3/library/logging.handlers.html”Œ%logging.handlers — Logging handlers”t”bŒ library/lzma”j )�”(jT(jU(Œ+https://docs.python.org/3/library/lzma.html”Œ-lzma — Compression using the LZMA algorithm”t”bŒlibrary/mailbox”j )�”(jT(jU(Œ.https://docs.python.org/3/library/mailbox.html”Œ3mailbox — Manipulate mailboxes in various formats”t”bŒlibrary/mailcap”j )�”(jT(jU(Œ.https://docs.python.org/3/library/mailcap.html”Œ!mailcap — Mailcap file handling”t”bŒlibrary/markup”j )�”(jT(jU(Œ-https://docs.python.org/3/library/markup.html”Œ"Structured Markup Processing Tools”t”bŒlibrary/marshal”j )�”(jT(jU(Œ.https://docs.python.org/3/library/marshal.html”Œ0marshal — Internal Python object serialization”t”bŒ library/math”j )�”(jT(jU(Œ+https://docs.python.org/3/library/math.html”Œmath — Mathematical functions”t”bŒlibrary/mimetypes”j )�”(jT(jU(Œ0https://docs.python.org/3/library/mimetypes.html”Œ)mimetypes — Map filenames to MIME types”t”bŒ library/mm”j )�”(jT(jU(Œ)https://docs.python.org/3/library/mm.html”ŒMultimedia Services”t”bŒ library/mmap”j )�”(jT(jU(Œ+https://docs.python.org/3/library/mmap.html”Œ#mmap — Memory-mapped file support”t”bŒlibrary/modulefinder”j )�”(jT(jU(Œ3https://docs.python.org/3/library/modulefinder.html”Œ.modulefinder — Find modules used by a script”t”bŒlibrary/modules”j )�”(jT(jU(Œ.https://docs.python.org/3/library/modules.html”ŒImporting Modules”t”bŒlibrary/msilib”j )�”(jT(jU(Œ-https://docs.python.org/3/library/msilib.html”Œ3msilib — Read and write Microsoft Installer files”t”bŒlibrary/msvcrt”j )�”(jT(jU(Œ-https://docs.python.org/3/library/msvcrt.html”Œ3msvcrt — Useful routines from the MS VC++ runtime”t”bŒlibrary/multiprocessing”j )�”(jT(jU(Œ6https://docs.python.org/3/library/multiprocessing.html”Œ-multiprocessing — Process-based parallelism”t”bŒ%library/multiprocessing.shared_memory”j )�”(jT(jU(ŒDhttps://docs.python.org/3/library/multiprocessing.shared_memory.html”ŒRmultiprocessing.shared_memory — Shared memory for direct access across processes”t”bŒlibrary/netdata”j )�”(jT(jU(Œ.https://docs.python.org/3/library/netdata.html”ŒInternet Data Handling”t”bŒ library/netrc”j )�”(jT(jU(Œ,https://docs.python.org/3/library/netrc.html”Œnetrc — netrc file processing”t”bŒ library/nis”j )�”(jT(jU(Œ*https://docs.python.org/3/library/nis.html”Œ/nis — Interface to Sun’s NIS (Yellow Pages)”t”bŒlibrary/nntplib”j )�”(jT(jU(Œ.https://docs.python.org/3/library/nntplib.html”Œ nntplib — NNTP protocol client”t”bŒlibrary/numbers”j )�”(jT(jU(Œ.https://docs.python.org/3/library/numbers.html”Œ)numbers — Numeric abstract base classes”t”bŒlibrary/numeric”j )�”(jT(jU(Œ.https://docs.python.org/3/library/numeric.html”Œ Numeric and Mathematical Modules”t”bŒlibrary/operator”j )�”(jT(jU(Œ/https://docs.python.org/3/library/operator.html”Œ,operator — Standard operators as functions”t”bŒlibrary/optparse”j )�”(jT(jU(Œ/https://docs.python.org/3/library/optparse.html”Œ,optparse — Parser for command line options”t”bŒ library/os”j )�”(jT(jU(Œ)https://docs.python.org/3/library/os.html”Œ0os — Miscellaneous operating system interfaces”t”bŒlibrary/os.path”j )�”(jT(jU(Œ.https://docs.python.org/3/library/os.path.html”Œ)os.path — Common pathname manipulations”t”bŒlibrary/ossaudiodev”j )�”(jT(jU(Œ2https://docs.python.org/3/library/ossaudiodev.html”Œ6ossaudiodev — Access to OSS-compatible audio devices”t”bŒlibrary/pathlib”j )�”(jT(jU(Œ.https://docs.python.org/3/library/pathlib.html”Œ,pathlib — Object-oriented filesystem paths”t”bŒ library/pdb”j )�”(jT(jU(Œ*https://docs.python.org/3/library/pdb.html”Œpdb — The Python Debugger”t”bŒlibrary/persistence”j )�”(jT(jU(Œ2https://docs.python.org/3/library/persistence.html”ŒData Persistence”t”bŒlibrary/pickle”j )�”(jT(jU(Œ-https://docs.python.org/3/library/pickle.html”Œ&pickle — Python object serialization”t”bŒlibrary/pickletools”j )�”(jT(jU(Œ2https://docs.python.org/3/library/pickletools.html”Œ+pickletools — Tools for pickle developers”t”bŒ library/pipes”j )�”(jT(jU(Œ,https://docs.python.org/3/library/pipes.html”Œ&pipes — Interface to shell pipelines”t”bŒlibrary/pkgutil”j )�”(jT(jU(Œ.https://docs.python.org/3/library/pkgutil.html”Œ%pkgutil — Package extension utility”t”bŒlibrary/platform”j )�”(jT(jU(Œ/https://docs.python.org/3/library/platform.html”Œ@platform — Access to underlying platform’s identifying data”t”bŒlibrary/plistlib”j )�”(jT(jU(Œ/https://docs.python.org/3/library/plistlib.html”Œ2plistlib — Generate and parse Apple .plist files”t”bŒlibrary/poplib”j )�”(jT(jU(Œ-https://docs.python.org/3/library/poplib.html”Œpoplib — POP3 protocol client”t”bŒ library/posix”j )�”(jT(jU(Œ,https://docs.python.org/3/library/posix.html”Œ,posix — The most common POSIX system calls”t”bŒlibrary/pprint”j )�”(jT(jU(Œ-https://docs.python.org/3/library/pprint.html”Œpprint — Data pretty printer”t”bŒlibrary/profile”j )�”(jT(jU(Œ.https://docs.python.org/3/library/profile.html”ŒThe Python Profilers”t”bŒ library/pty”j )�”(jT(jU(Œ*https://docs.python.org/3/library/pty.html”Œ!pty — Pseudo-terminal utilities”t”bŒ library/pwd”j )�”(jT(jU(Œ*https://docs.python.org/3/library/pwd.html”Œpwd — The password database”t”bŒlibrary/py_compile”j )�”(jT(jU(Œ1https://docs.python.org/3/library/py_compile.html”Œ*py_compile — Compile Python source files”t”bŒlibrary/pyclbr”j )�”(jT(jU(Œ-https://docs.python.org/3/library/pyclbr.html”Œ(pyclbr — Python module browser support”t”bŒ library/pydoc”j )�”(jT(jU(Œ,https://docs.python.org/3/library/pydoc.html”Œ8pydoc — Documentation generator and online help system”t”bŒlibrary/pyexpat”j )�”(jT(jU(Œ.https://docs.python.org/3/library/pyexpat.html”Œ2xml.parsers.expat — Fast XML parsing using Expat”t”bŒlibrary/python”j )�”(jT(jU(Œ-https://docs.python.org/3/library/python.html”ŒPython Runtime Services”t”bŒ library/queue”j )�”(jT(jU(Œ,https://docs.python.org/3/library/queue.html”Œ$queue — A synchronized queue class”t”bŒlibrary/quopri”j )�”(jT(jU(Œ-https://docs.python.org/3/library/quopri.html”Œ7quopri — Encode and decode MIME quoted-printable data”t”bŒlibrary/random”j )�”(jT(jU(Œ-https://docs.python.org/3/library/random.html”Œ)random — Generate pseudo-random numbers”t”bŒ library/re”j )�”(jT(jU(Œ)https://docs.python.org/3/library/re.html”Œ$re — Regular expression operations”t”bŒlibrary/readline”j )�”(jT(jU(Œ/https://docs.python.org/3/library/readline.html”Œ#readline — GNU readline interface”t”bŒlibrary/removed”j )�”(jT(jU(Œ.https://docs.python.org/3/library/removed.html”ŒRemoved Modules”t”bŒlibrary/reprlib”j )�”(jT(jU(Œ.https://docs.python.org/3/library/reprlib.html”Œ+reprlib — Alternate repr() implementation”t”bŒlibrary/resource”j )�”(jT(jU(Œ/https://docs.python.org/3/library/resource.html”Œ'resource — Resource usage information”t”bŒlibrary/rlcompleter”j )�”(jT(jU(Œ2https://docs.python.org/3/library/rlcompleter.html”Œ4rlcompleter — Completion function for GNU readline”t”bŒ library/runpy”j )�”(jT(jU(Œ,https://docs.python.org/3/library/runpy.html”Œ/runpy — Locating and executing Python modules”t”bŒ library/sched”j )�”(jT(jU(Œ,https://docs.python.org/3/library/sched.html”Œsched — Event scheduler”t”bŒlibrary/secrets”j )�”(jT(jU(Œ.https://docs.python.org/3/library/secrets.html”Œ?secrets — Generate secure random numbers for managing secrets”t”bŒlibrary/security_warnings”j )�”(jT(jU(Œ8https://docs.python.org/3/library/security_warnings.html”ŒSecurity Considerations”t”bŒlibrary/select”j )�”(jT(jU(Œ-https://docs.python.org/3/library/select.html”Œ%select — Waiting for I/O completion”t”bŒlibrary/selectors”j )�”(jT(jU(Œ0https://docs.python.org/3/library/selectors.html”Œ)selectors — High-level I/O multiplexing”t”bŒlibrary/shelve”j )�”(jT(jU(Œ-https://docs.python.org/3/library/shelve.html”Œ$shelve — Python object persistence”t”bŒ library/shlex”j )�”(jT(jU(Œ,https://docs.python.org/3/library/shlex.html”Œ!shlex — Simple lexical analysis”t”bŒlibrary/shutil”j )�”(jT(jU(Œ-https://docs.python.org/3/library/shutil.html”Œ%shutil — High-level file operations”t”bŒlibrary/signal”j )�”(jT(jU(Œ-https://docs.python.org/3/library/signal.html”Œ/signal — Set handlers for asynchronous events”t”bŒ library/site”j )�”(jT(jU(Œ+https://docs.python.org/3/library/site.html”Œ)site — Site-specific configuration hook”t”bŒ library/smtpd”j )�”(jT(jU(Œ,https://docs.python.org/3/library/smtpd.html”Œsmtpd — SMTP Server”t”bŒlibrary/smtplib”j )�”(jT(jU(Œ.https://docs.python.org/3/library/smtplib.html”Œ smtplib — SMTP protocol client”t”bŒlibrary/sndhdr”j )�”(jT(jU(Œ-https://docs.python.org/3/library/sndhdr.html”Œ'sndhdr — Determine type of sound file”t”bŒlibrary/socket”j )�”(jT(jU(Œ-https://docs.python.org/3/library/socket.html”Œ)socket — Low-level networking interface”t”bŒlibrary/socketserver”j )�”(jT(jU(Œ3https://docs.python.org/3/library/socketserver.html”Œ0socketserver — A framework for network servers”t”bŒ library/spwd”j )�”(jT(jU(Œ+https://docs.python.org/3/library/spwd.html”Œ%spwd — The shadow password database”t”bŒlibrary/sqlite3”j )�”(jT(jU(Œ.https://docs.python.org/3/library/sqlite3.html”Œ5sqlite3 — DB-API 2.0 interface for SQLite databases”t”bŒ library/ssl”j )�”(jT(jU(Œ*https://docs.python.org/3/library/ssl.html”Œ*ssl — TLS/SSL wrapper for socket objects”t”bŒ library/stat”j )�”(jT(jU(Œ+https://docs.python.org/3/library/stat.html”Œ$stat — Interpreting stat() results”t”bŒlibrary/statistics”j )�”(jT(jU(Œ1https://docs.python.org/3/library/statistics.html”Œ0statistics — Mathematical statistics functions”t”bŒlibrary/stdtypes”j )�”(jT(jU(Œ/https://docs.python.org/3/library/stdtypes.html”ŒBuilt-in Types”t”bŒlibrary/string”j )�”(jT(jU(Œ-https://docs.python.org/3/library/string.html”Œ#string — Common string operations”t”bŒlibrary/string.templatelib”j )�”(jT(jU(Œ9https://docs.python.org/3/library/string.templatelib.html”Œ;string.templatelib — Support for template string literals”t”bŒlibrary/stringprep”j )�”(jT(jU(Œ1https://docs.python.org/3/library/stringprep.html”Œ*stringprep — Internet String Preparation”t”bŒlibrary/struct”j )�”(jT(jU(Œ-https://docs.python.org/3/library/struct.html”Œ0struct — Interpret bytes as packed binary data”t”bŒlibrary/subprocess”j )�”(jT(jU(Œ1https://docs.python.org/3/library/subprocess.html”Œ$subprocess — Subprocess management”t”bŒ library/sunau”j )�”(jT(jU(Œ,https://docs.python.org/3/library/sunau.html”Œ%sunau — Read and write Sun AU files”t”bŒlibrary/superseded”j )�”(jT(jU(Œ1https://docs.python.org/3/library/superseded.html”ŒSuperseded Modules”t”bŒlibrary/symtable”j )�”(jT(jU(Œ/https://docs.python.org/3/library/symtable.html”Œ5symtable — Access to the compiler’s symbol tables”t”bŒ library/sys”j )�”(jT(jU(Œ*https://docs.python.org/3/library/sys.html”Œ0sys — System-specific parameters and functions”t”bŒlibrary/sys.monitoring”j )�”(jT(jU(Œ5https://docs.python.org/3/library/sys.monitoring.html”Œ-sys.monitoring — Execution event monitoring”t”bŒlibrary/sys_path_init”j )�”(jT(jU(Œ4https://docs.python.org/3/library/sys_path_init.html”Œ5The initialization of the sys.path module search path”t”bŒlibrary/sysconfig”j )�”(jT(jU(Œ0https://docs.python.org/3/library/sysconfig.html”ŒDsysconfig — Provide access to Python’s configuration information”t”bŒlibrary/syslog”j )�”(jT(jU(Œ-https://docs.python.org/3/library/syslog.html”Œ'syslog — Unix syslog library routines”t”bŒlibrary/tabnanny”j )�”(jT(jU(Œ/https://docs.python.org/3/library/tabnanny.html”Œ/tabnanny — Detection of ambiguous indentation”t”bŒlibrary/tarfile”j )�”(jT(jU(Œ.https://docs.python.org/3/library/tarfile.html”Œ,tarfile — Read and write tar archive files”t”bŒlibrary/telnetlib”j )�”(jT(jU(Œ0https://docs.python.org/3/library/telnetlib.html”Œtelnetlib — Telnet client”t”bŒlibrary/tempfile”j )�”(jT(jU(Œ/https://docs.python.org/3/library/tempfile.html”Œ5tempfile — Generate temporary files and directories”t”bŒlibrary/termios”j )�”(jT(jU(Œ.https://docs.python.org/3/library/termios.html”Œ#termios — POSIX style tty control”t”bŒ library/test”j )�”(jT(jU(Œ+https://docs.python.org/3/library/test.html”Œ,test — Regression tests package for Python”t”bŒ library/text”j )�”(jT(jU(Œ+https://docs.python.org/3/library/text.html”ŒText Processing Services”t”bŒlibrary/textwrap”j )�”(jT(jU(Œ/https://docs.python.org/3/library/textwrap.html”Œ&textwrap — Text wrapping and filling”t”bŒlibrary/threading”j )�”(jT(jU(Œ0https://docs.python.org/3/library/threading.html”Œ&threading — Thread-based parallelism”t”bŒlibrary/threadsafety”j )�”(jT(jU(Œ3https://docs.python.org/3/library/threadsafety.html”ŒThread Safety Guarantees”t”bŒ library/time”j )�”(jT(jU(Œ+https://docs.python.org/3/library/time.html”Œ$time — Time access and conversions”t”bŒlibrary/timeit”j )�”(jT(jU(Œ-https://docs.python.org/3/library/timeit.html”Œ8timeit — Measure execution time of small code snippets”t”bŒ library/tk”j )�”(jT(jU(Œ)https://docs.python.org/3/library/tk.html”Œ!Graphical user interfaces with Tk”t”bŒlibrary/tkinter”j )�”(jT(jU(Œ.https://docs.python.org/3/library/tkinter.html”Œ&tkinter — Python interface to Tcl/Tk”t”bŒlibrary/tkinter.colorchooser”j )�”(jT(jU(Œ;https://docs.python.org/3/library/tkinter.colorchooser.html”Œ.tkinter.colorchooser — Color choosing dialog”t”bŒlibrary/tkinter.dnd”j )�”(jT(jU(Œ2https://docs.python.org/3/library/tkinter.dnd.html”Œ%tkinter.dnd — Drag and drop support”t”bŒlibrary/tkinter.font”j )�”(jT(jU(Œ3https://docs.python.org/3/library/tkinter.font.html”Œ%tkinter.font — Tkinter font wrapper”t”bŒlibrary/tkinter.messagebox”j )�”(jT(jU(Œ9https://docs.python.org/3/library/tkinter.messagebox.html”Œ.tkinter.messagebox — Tkinter message prompts”t”bŒlibrary/tkinter.scrolledtext”j )�”(jT(jU(Œ;https://docs.python.org/3/library/tkinter.scrolledtext.html”Œ-tkinter.scrolledtext — Scrolled Text Widget”t”bŒlibrary/tkinter.ttk”j )�”(jT(jU(Œ2https://docs.python.org/3/library/tkinter.ttk.html”Œ!tkinter.ttk — Tk themed widgets”t”bŒ library/token”j )�”(jT(jU(Œ,https://docs.python.org/3/library/token.html”Œ0token — Constants used with Python parse trees”t”bŒlibrary/tokenize”j )�”(jT(jU(Œ/https://docs.python.org/3/library/tokenize.html”Œ(tokenize — Tokenizer for Python source”t”bŒlibrary/tomllib”j )�”(jT(jU(Œ.https://docs.python.org/3/library/tomllib.html”Œtomllib — Parse TOML files”t”bŒ library/trace”j )�”(jT(jU(Œ,https://docs.python.org/3/library/trace.html”Œ3trace — Trace or track Python statement execution”t”bŒlibrary/traceback”j )�”(jT(jU(Œ0https://docs.python.org/3/library/traceback.html”Œ1traceback — Print or retrieve a stack traceback”t”bŒlibrary/tracemalloc”j )�”(jT(jU(Œ2https://docs.python.org/3/library/tracemalloc.html”Œ(tracemalloc — Trace memory allocations”t”bŒ library/tty”j )�”(jT(jU(Œ*https://docs.python.org/3/library/tty.html”Œ"tty — Terminal control functions”t”bŒlibrary/turtle”j )�”(jT(jU(Œ-https://docs.python.org/3/library/turtle.html”Œturtle — Turtle graphics”t”bŒ library/types”j )�”(jT(jU(Œ,https://docs.python.org/3/library/types.html”Œj>j>j>j>j >j >j >j>j>j>j>j>j>j>j>j >j!>j$>j%>j(>j)>j,>j->j0>j1>j4>j5>j8>j9>j<>j=>j@>jA>jD>jE>jH>jI>jL>jM>jP>jQ>jT>jU>jX>jY>j\>j]>j`>ja>jd>je>jh>ji>jl>jm>jp>jq>jt>ju>jx>jy>j|>j}>j€>j�>j„>j…>u(jˆ>j‰>jŒ>j�>j�>j‘>j”>j•>j˜>j™>jœ>j�>j >j¡>j¤>j¥>j¨>j©>j¬>j­>j°>j±>j´>jµ>j¸>j¹>j¼>j½>jÀ>jÁ>jÄ>jÅ>jÈ>jÉ>jÌ>jÍ>jÐ>jÑ>jÔ>jÕ>jØ>jÙ>jÜ>jÝ>jà>já>jä>jå>jè>jé>jì>jí>jð>jñ>jô>jõ>jø>jù>jü>jý>j?j?j?j?j?j ?j ?j ?j?j?j?j?j?j?j?j?j ?j!?j$?j%?j(?j)?j,?j-?j0?j1?j4?j5?j8?j9?jDj?DjBDjCDjFDjGDjJDjKDjNDjODjRDjSDjVDjWDjZDj[Dj^Dj_DjbDjcDjfDjgDjjDjkDjnDjoDjrDjsDjvDjwDjzDj{Dj~DjDj‚DjƒDj†Dj‡DjŠDj‹DjŽDj�Dj’Dj“Dj–Dj—DjšDj›DjžDjŸDj¢Dj£Dj¦Dj§DjªDj«Dj®Dj¯Dj²Dj³Dj¶Dj·DjºDj»Dj¾Dj¿DjÂDjÃDjÆDjÇDjÊDjËDjÎDjÏDjÒDjÓDjÖDj×DjÚDjÛDjÞDjßDjâDjãDjæDjçDjêDjëDjîDjïDjòDjóDjöDj÷DjúDjûDjþDjÿDjEjEjEjEj Ej EjEjEjEjEjEjEjEjEjEjEj"Ej#Ej&Ej'Ej*Ej+Ej.Ej/Ej2Ej3Ej6Ej7Ej:Ej;Ej>Ej?EjBEjCEjFEjGEjJEjKEjNEjOEjREjSEjVEjWEjZEj[Ej^Ej_EjbEjcEjfEjgEjjEjkEjnEjoEjrEjsEjvEjwEjzEj{Ej~EjEj‚EjƒEj†Ej‡EjŠEj‹EjŽEj�Ej’Ej“Ej–Ej—EjšEj›EjžEjŸEj¢Ej£Ej¦Ej§EjªEj«Ej®Ej¯Ej²Ej³Ej¶Ej·EjºEj»Ej¾Ej¿EjÂEjÃEjÆEjÇEjÊEjËEjÎEjÏEjÒEjÓEjÖEj×EjÚEjÛEjÞEjßEjâEjãEjæEjçEjêEjëEjîEjïEjòEjóEjöEj÷EjúEjûEjþEjÿEjFjFjFjFj Fj FjFjFjFjFjFjFjFjFjFjFj"Fj#Fj&Fj'Fj*Fj+Fj.Fj/Fj2Fj3Fj6Fj7Fj:Fj;Fj>Fj?FjBFjCFjFFjGFjJFjKFjNFjOFjRFjSFjVFjWFjZFj[Fj^Fj_FjbFjcFjfFjgFjjFjkFjnFjoFjrFjsFjvFjwFjzFj{Fj~FjFj‚FjƒFj†Fj‡FjŠFj‹FjŽFj�Fj’Fj“Fj–Fj—FjšFj›FjžFjŸFj¢Fj£Fj¦Fj§FjªFj«Fj®Fj¯Fj²Fj³Fj¶Fj·FjºFj»Fj¾Fj¿FjÂFjÃFjÆFjÇFjÊFjËFjÎFjÏFjÒFjÓFjÖFj×FjÚFjÛFjÞFjßFjâFjãFjæFjçFjêFjëFjîFjïFjòFjóFjöFj÷FjúFjûFjþFjÿFjGjGjGjGj Gj GjGjGjGjGjGjGjGjGjGjGj"Gj#Gj&Gj'Gj*Gj+Gj.Gj/Gj2Gj3Gj6Gj7Gj:Gj;Gj>Gj?GjBGjCGjFGjGGjJGjKGjNGjOGjRGjSGjVGjWGjZGj[Gj^Gj_GjbGjcGjfGjgGjjGjkGjnGjoGjrGjsGjvGjwGjzGj{Gj~GjGj‚GjƒGj†Gj‡GjŠGj‹GjŽGj�Gj’Gj“Gj–Gj—GjšGj›GjžGjŸGj¢Gj£Gj¦Gj§GjªGj«Gj®Gj¯Gj²Gj³Gj¶Gj·GjºGj»Gj¾Gj¿GjÂGjÃGjÆGjÇGjÊGjËGjÎGjÏGjÒGjÓGjÖGj×GjÚGjÛGjÞGjßGjâGjãGjæGjçGjêGjëGjîGjïGjòGjóGjöGj÷GjúGjûGjþGjÿGjHjHjHjHj Hj HjHjHjHjHjHjHjHjHjHjHj"Hj#Hj&Hj'Hj*Hj+Hj.Hj/Hj2Hj3Hj6Hj7Hj:Hj;Hj>Hj?HjBHjCHjFHjGHjJHjKHjNHjOHjRHjSHjVHjWHjZHj[Hj^Hj_HjbHjcHjfHjgHjjHjkHjnHjoHjrHjsHjvHjwHjzHj{Hj~HjHj‚HjƒHj†Hj‡HjŠHj‹HjŽHj�Hj’Hj“Hj–Hj—HjšHj›HjžHjŸHj¢Hj£Hj¦Hj§HjªHj«Hj®Hj¯Hj²Hj³Hj¶Hj·HjºHj»Hj¾Hj¿HjÂHjÃHjÆHjÇHjÊHjËHjÎHjÏHjÒHjÓHjÖHj×HjÚHjÛHjÞHjßHjâHjãHjæHjçHjêHjëHjîHjïHjòHjóHjöHj÷HjúHjûHjþHjÿHjIjIjIjIj Ij IjIjIjIjIjIjIjIjIjIjIj"Ij#Ij&Ij'Ij*Ij+Ij.Ij/Ij2Ij3Ij6Ij7Ij:Ij;Ij>Ij?IjBIjCIjFIjGIjJIjKIjNIjOIjRIjSIjVIjWIjZIj[Ij^Ij_IjbIjcIjfIjgIjjIjkIjnIjoIjrIjsIjvIjwIjzIj{Ij~IjIj‚IjƒIj†Ij‡IjŠIj‹IjŽIj�Ij’Ij“Ij–Ij—IjšIj›IjžIjŸIj¢Ij£Ij¦Ij§IjªIj«Ij®Ij¯Ij²Ij³Ij¶Ij·IjºIj»Ij¾Ij¿IjÂIjÃIjÆIjÇIjÊIjËIjÎIjÏIjÒIjÓIjÖIj×IjÚIjÛIjÞIjßIjâIjãIjæIjçIjêIjëIjîIjïIjòIjóIjöIj÷IjúIjûIjþIjÿIjJjJjJjJj Jj JjJjJjJjJjJjJjJjJjJjJj"Jj#Jj&Jj'Jj*Jj+Jj.Jj/Jj2Jj3Jj6Jj7Jj:Jj;Jj>Jj?JjBJjCJjFJjGJjJJjKJjNJjOJjRJjSJjVJjWJjZJj[Jj^Jj_JjbJjcJjfJjgJjjJjkJjnJjoJjrJjsJjvJjwJjzJj{Jj~JjJj‚JjƒJj†Jj‡JjŠJj‹JjŽJj�Jj’Jj“Jj–Jj—JjšJj›JjžJjŸJj¢Jj£Jj¦Jj§JjªJj«Jj®Jj¯Jj²Jj³Jj¶Jj·JjºJj»Jj¾Jj¿JjÂJjÃJjÆJjÇJjÊJjËJjÎJjÏJjÒJjÓJjÖJj×JjÚJjÛJjÞJjßJjâJjãJjæJjçJjêJjëJjîJjïJjòJjóJjöJj÷JjúJjûJjþJjÿJjKjKjKjKj Kj KjKjKjKjKjKjKjKjKjKjKj"Kj#Kj&Kj'Kj*Kj+Kj.Kj/Kj2Kj3Kj6Kj7Kj:Kj;Kj>Kj?KjBKjCKjFKjGKjJKjKKjNKjOKjRKjSKjVKjWKjZKj[Kj^Kj_KjbKjcKjfKjgKjjKjkKjnKjoKjrKjsKjvKjwKjzKj{Kj~KjKj‚KjƒKj†Kj‡KjŠKj‹KjŽKj�Kj’Kj“Kj–Kj—KjšKj›KjžKjŸKj¢Kj£Kj¦Kj§KjªKj«Kj®Kj¯Kj²Kj³Kj¶Kj·KjºKj»Kj¾Kj¿KjÂKjÃKjÆKjÇKjÊKjËKjÎKjÏKjÒKjÓKjÖKj×KjÚKjÛKjÞKjßKjâKjãKjæKjçKjêKjëKjîKjïKjòKjóKjöKj÷KjúKjûKjþKjÿKjLjLjLjLj Lj LjLjLjLjLjLjLjLjLjLjLj"Lj#Lj&Lj'Lj*Lj+Lj.Lj/Lj2Lj3Lj6Lj7Lj:Lj;Lj>Lj?LjBLjCLjFLjGLjJLjKLjNLjOLjRLjSLjVLjWLjZLj[Lj^Lj_LjbLjcLjfLjgLjjLjkLjnLjoLjrLjsLjvLjwLjzLj{Lj~LjLj‚LjƒLj†Lj‡LjŠLj‹LjŽLj�Lj’Lj“Lj–Lj—LjšLj›LjžLjŸLj¢Lj£Lj¦Lj§LjªLj«Lj®Lj¯Lj²Lj³Lj¶Lj·LjºLj»Lj¾Lj¿LjÂLjÃLjÆLjÇLjÊLjËLjÎLjÏLjÒLjÓLjÖLj×LjÚLjÛLjÞLjßLjâLjãLjæLjçLjêLjëLjîLjïLjòLjóLjöLj÷LjúLjûLjþLjÿLjMjMjMjMj Mj MjMjMjMjMjMjMjMjMjMjMj"Mj#Mj&Mj'Mj*Mj+Mj.Mj/Mj2Mj3Mj6Mj7Mj:Mj;Mj>Mj?MjBMjCMjFMjGMjJMjKMjNMjOMjRMjSMjVMjWMjZMj[Mj^Mj_MjbMjcMjfMjgMjjMjkMjnMjoMjrMjsMjvMjwMjzMj{Mj~MjMj‚MjƒMj†Mj‡MjŠMj‹MjŽMj�Mj’Mj“Mj–Mj—MjšMj›MjžMjŸMj¢Mj£Mj¦Mj§MjªMj«Mj®Mj¯Mj²Mj³Mj¶Mj·MjºMj»Mj¾Mj¿MjÂMjÃMjÆMjÇMjÊMjËMjÎMjÏMjÒMjÓMjÖMj×MjÚMjÛMjÞMjßMjâMjãMjæMjçMjêMjëMjîMjïMjòMjóMjöMj÷MjúMjûMjþMjÿMjNjNjNjNj Nj NjNjNjNjNjNjNjNjNjNjNj"Nj#Nj&Nj'Nj*Nj+Nj.Nj/Nj2Nj3Nj6Nj7Nj:Nj;Nj>Nj?NjBNjCNjFNjGNjJNjKNjNNjONjRNjSNjVNjWNjZNj[Nj^Nj_NjbNjcNjfNjgNjjNjkNjnNjoNjrNjsNjvNjwNjzNj{Nj~NjNj‚NjƒNj†Nj‡NjŠNj‹NjŽNj�Nj’Nj“Nj–Nj—NjšNj›NjžNjŸNj¢Nj£Nj¦Nj§NjªNj«Nj®Nj¯Nj²Nj³Nj¶Nj·NjºNj»Nj¾Nj¿NjÂNjÃNjÆNjÇNjÊNjËNjÎNjÏNjÒNjÓNjÖNj×NjÚNjÛNjÞNjßNjâNjãNjæNjçNjêNjëNjîNjïNjòNjóNjöNj÷NjúNjûNjþNjÿNjOjOjOjOj Oj OjOjOjOjOjOjOjOjOjOjOj"Oj#Oj&Oj'Oj*Oj+Oj.Oj/Oj2Oj3Oj6Oj7Oj:Oj;Oj>Oj?OjBOjCOjFOjGOjJOjKOjNOjOOjROjSOjVOjWOjZOj[Oj^Oj_OjbOjcOjfOjgOjjOjkOjnOjoOjrOjsOjvOjwOjzOj{Oj~OjOj‚OjƒOj†Oj‡OjŠOj‹OjŽOj�Oj’Oj“Oj–Oj—OjšOj›OjžOjŸOj¢Oj£Oj¦Oj§OjªOj«Oj®Oj¯Oj²Oj³Oj¶Oj·OjºOj»Oj¾Oj¿OjÂOjÃOjÆOjÇOjÊOjËOjÎOjÏOjÒOjÓOjÖOj×OjÚOjÛOjÞOjßOjâOjãOjæOjçOjêOjëOjîOjïOjòOjóOjöOj÷OjúOjûOjþOjÿOjPjPjPjPj Pj PjPjPjPjPjPjPjPjPjPjPj"Pj#Pj&Pj'Pj*Pj+Pj.Pj/Pj2Pj3Pj6Pj7Pj:Pj;Pj>Pj?PjBPjCPjFPjGPjJPjKPjNPjOPjRPjSPjVPjWPjZPj[Pj^Pj_PjbPjcPjfPjgPjjPjkPjnPjoPjrPjsPjvPjwPjzPj{Pj~PjPj‚PjƒPj†Pj‡PjŠPj‹PjŽPj�Pj’Pj“Pj–Pj—PjšPj›PjžPjŸPj¢Pj£Pj¦Pj§PjªPj«Pj®Pj¯Pj²Pj³Pj¶Pj·PjºPj»Pj¾Pj¿PjÂPjÃPjÆPjÇPjÊPjËPjÎPjÏPjÒPjÓPjÖPj×PjÚPjÛPjÞPjßPjâPjãPjæPjçPjêPjëPjîPjïPjòPjóPjöPj÷PjúPjûPjþPjÿPjQjQjQjQj Qj QjQjQjQjQjQjQjQjQjQjQj"Qj#Qj&Qj'Qj*Qj+Qj.Qj/Qj2Qj3Qj6Qj7Qj:Qj;Qj>Qj?QjBQjCQjFQjGQjJQjKQjNQjOQjRQjSQjVQjWQjZQj[Qj^Qj_QjbQjcQjfQjgQjjQjkQjnQjoQjrQjsQjvQjwQjzQj{Qj~QjQj‚QjƒQj†Qj‡QjŠQj‹QjŽQj�Qj’Qj“Qj–Qj—QjšQj›QjžQjŸQj¢Qj£Qj¦Qj§QjªQj«Qj®Qj¯Qj²Qj³Qj¶Qj·QjºQj»Qj¾Qj¿QjÂQjÃQjÆQjÇQjÊQjËQjÎQjÏQjÒQjÓQjÖQj×QjÚQjÛQjÞQjßQjâQjãQjæQjçQjêQjëQjîQjïQjòQjóQjöQj÷QjúQjûQjþQjÿQjRjRjRjRj Rj RjRjRjRjRjRjRjRjRjRjRj"Rj#Rj&Rj'Rj*Rj+Rj.Rj/Rj2Rj3Rj6Rj7Rj:Rj;Rj>Rj?RjBRjCRjFRjGRjJRjKRjNRjORjRRjSRjVRjWRjZRj[Rj^Rj_RjbRjcRjfRjgRjjRjkRjnRjoRjrRjsRjvRjwRjzRj{Rj~RjRj‚RjƒRj†Rj‡RjŠRj‹RjŽRj�Rj’Rj“Rj–Rj—RjšRj›RjžRjŸRj¢Rj£Rj¦Rj§RjªRj«Rj®Rj¯Rj²Rj³Rj¶Rj·RjºRj»Rj¾Rj¿RjÂRjÃRjÆRjÇRjÊRjËRjÎRjÏRjÒRjÓRjÖRj×RjÚRjÛRjÞRjßRjâRjãRjæRjçRjêRjëRjîRjïRu(jòRjóRjöRj÷RjúRjûRjþRjÿRjSjSjSjSj Sj SjSjSjSjSjSjSjSjSjSjSj"Sj#Sj&Sj'Sj*Sj+Sj.Sj/Sj2Sj3Sj6Sj7Sj:Sj;Sj>Sj?SjBSjCSjFSjGSjJSjKSjNSjOSjRSjSSjVSjWSjZSj[Sj^Sj_SjbSjcSjfSjgSjjSjkSjnSjoSjrSjsSjvSjwSjzSj{Sj~SjSj‚SjƒSj†Sj‡SjŠSj‹SjŽSj�Sj’Sj“Sj–Sj—SjšSj›SjžSjŸSj¢Sj£Sj¦Sj§SjªSj«Sj®Sj¯Sj²Sj³Sj¶Sj·SjºSj»Sj¾Sj¿SjÂSjÃSjÆSjÇSjÊSjËSjÎSjÏSjÒSjÓSjÖSj×SjÚSjÛSjÞSjßSjâSjãSjæSjçSjêSjëSjîSjïSjòSjóSjöSj÷SjúSjûSjþSjÿSjTjTjTjTj Tj TjTjTjTjTjTjTjTjTjTjTj"Tj#Tj&Tj'Tj*Tj+Tj.Tj/Tj2Tj3Tj6Tj7Tj:Tj;Tj>Tj?TjBTjCTjFTjGTjJTjKTjNTjOTjRTjSTjVTjWTjZTj[Tj^Tj_TjbTjcTjfTjgTjjTjkTjnTjoTjrTjsTjvTjwTjzTj{Tj~TjTj‚TjƒTj†Tj‡TjŠTj‹TjŽTj�Tj’Tj“Tj–Tj—TjšTj›TjžTjŸTj¢Tj£Tj¦Tj§TjªTj«Tj®Tj¯Tj²Tj³Tj¶Tj·TjºTj»Tj¾Tj¿TjÂTjÃTjÆTjÇTjÊTjËTjÎTjÏTjÒTjÓTjÖTj×TjÚTjÛTjÞTjßTjâTjãTjæTjçTjêTjëTjîTjïTjòTjóTjöTj÷TjúTjûTjþTjÿTjUjUjUjUj Uj UjUjUjUjUjUjUjUjUjUjUj"Uj#Uj&Uj'Uj*Uj+Uj.Uj/Uj2Uj3Uj6Uj7Uj:Uj;Uj>Uj?UjBUjCUjFUjGUjJUjKUjNUjOUjRUjSUjVUjWUjZUj[Uj^Uj_UjbUjcUjfUjgUjjUjkUjnUjoUjrUjsUjvUjwUjzUj{Uj~UjUj‚UjƒUj†Uj‡UjŠUj‹UjŽUj�Uj’Uj“Uj–Uj—UjšUj›UjžUjŸUj¢Uj£Uj¦Uj§UjªUj«Uj®Uj¯Uj²Uj³Uj¶Uj·UjºUj»Uj¾Uj¿UjÂUjÃUjÆUjÇUjÊUjËUjÎUjÏUjÒUjÓUjÖUj×UjÚUjÛUjÞUjßUjâUjãUjæUjçUjêUjëUjîUjïUjòUjóUjöUj÷UjúUjûUjþUjÿUjVjVjVjVj Vj VjVjVjVjVjVjVjVjVjVjVj"Vj#Vj&Vj'Vj*Vj+Vj.Vj/Vj2Vj3Vj6Vj7Vj:Vj;Vj>Vj?VjBVjCVjFVjGVjJVjKVjNVjOVjRVjSVjVVjWVjZVj[Vj^Vj_VjbVjcVjfVjgVjjVjkVjnVjoVjrVjsVjvVjwVjzVj{Vj~VjVj‚VjƒVj†Vj‡VjŠVj‹VjŽVj�Vj’Vj“Vj–Vj—VjšVj›VjžVjŸVj¢Vj£Vj¦Vj§VjªVj«Vj®Vj¯Vj²Vj³Vj¶Vj·VjºVj»Vj¾Vj¿VjÂVjÃVjÆVjÇVjÊVjËVjÎVjÏVjÒVjÓVjÖVj×VjÚVjÛVjÞVjßVjâVjãVjæVjçVjêVjëVjîVjïVjòVjóVjöVj÷VjúVjûVjþVjÿVjWjWjWjWj Wj WjWjWjWjWjWjWjWjWjWjWj"Wj#Wj&Wj'Wj*Wj+Wj.Wj/Wj2Wj3Wj6Wj7Wj:Wj;Wj>Wj?WjBWjCWjFWjGWjJWjKWjNWjOWjRWjSWjVWjWWjZWj[Wj^Wj_WjbWjcWjfWjgWjjWjkWjnWjoWjrWjsWjvWjwWjzWj{Wj~WjWj‚WjƒWj†Wj‡WjŠWj‹WjŽWj�Wj’Wj“Wj–Wj—WjšWj›WjžWjŸWj¢Wj£Wj¦Wj§WjªWj«Wj®Wj¯Wj²Wj³Wj¶Wj·WjºWj»Wj¾Wj¿WjÂWjÃWjÆWjÇWjÊWjËWjÎWjÏWjÒWjÓWjÖWj×WjÚWjÛWjÞWjßWjâWjãWjæWjçWjêWjëWjîWjïWjòWjóWjöWj÷WjúWjûWjþWjÿWjXjXjXjXj Xj XjXjXjXjXjXjXjXjXjXjXj"Xj#Xj&Xj'Xj*Xj+Xj.Xj/Xj2Xj3Xj6Xj7Xj:Xj;Xj>Xj?XjBXjCXjFXjGXjJXjKXjNXjOXjRXjSXjVXjWXjZXj[Xj^Xj_XjbXjcXjfXjgXjjXjkXjnXjoXjrXjsXjvXjwXjzXj{Xj~XjXj‚XjƒXj†Xj‡XjŠXj‹XjŽXj�Xj’Xj“Xj–Xj—XjšXj›XjžXjŸXj¢Xj£Xj¦Xj§XjªXj«Xj®Xj¯Xj²Xj³Xj¶Xj·XjºXj»Xj¾Xj¿XjÂXjÃXjÆXjÇXjÊXjËXjÎXjÏXjÒXjÓXjÖXj×XjÚXjÛXjÞXjßXjâXjãXjæXjçXjêXjëXjîXjïXjòXjóXjöXj÷XjúXjûXjþXjÿXjYjYjYjYj Yj YjYjYjYjYjYjYjYjYjYjYj"Yj#Yj&Yj'Yj*Yj+Yj.Yj/Yj2Yj3Yj6Yj7Yj:Yj;Yj>Yj?YjBYjCYjFYjGYjJYjKYjNYjOYjRYjSYjVYjWYjZYj[Yj^Yj_YjbYjcYjfYjgYjjYjkYjnYjoYjrYjsYjvYjwYjzYj{Yj~YjYj‚YjƒYj†Yj‡YjŠYj‹YjŽYj�Yj’Yj“Yj–Yj—YjšYj›YjžYjŸYj¢Yj£Yj¦Yj§YjªYj«Yj®Yj¯Yj²Yj³Yj¶Yj·YjºYj»Yj¾Yj¿YjÂYjÃYjÆYjÇYjÊYjËYjÎYjÏYjÒYjÓYjÖYj×YjÚYjÛYjÞYjßYjâYjãYjæYjçYjêYjëYjîYjïYjòYjóYjöYj÷YjúYjûYjþYjÿYjZjZjZjZj Zj ZjZjZjZjZjZjZjZjZjZjZj"Zj#Zj&Zj'Zj*Zj+Zj.Zj/Zj2Zj3Zj6Zj7Zj:Zj;Zj>Zj?ZjBZjCZjFZjGZjJZjKZjNZjOZjRZjSZjVZjWZjZZj[Zj^Zj_ZjbZjcZjfZjgZjjZjkZjnZjoZjrZjsZjvZjwZjzZj{Zj~ZjZj‚ZjƒZj†Zj‡ZjŠZj‹ZjŽZj�Zj’Zj“Zj–Zj—ZjšZj›ZjžZjŸZj¢Zj£Zj¦Zj§ZjªZj«Zj®Zj¯Zj²Zj³Zj¶Zj·ZjºZj»Zj¾Zj¿ZjÂZjÃZjÆZjÇZjÊZjËZjÎZjÏZjÒZjÓZjÖZj×ZjÚZjÛZjÞZjßZjâZjãZjæZjçZjêZjëZjîZjïZjòZjóZjöZj÷ZjúZjûZjþZjÿZj[j[j[j[j [j [j[j[j[j[j[j[j[j[j[j"[j#[j&[j'[j*[j+[j.[j/[j2[j3[j6[j7[j:[j;[j>[j?[jB[jC[jF[jG[jJ[jK[jN[jO[jR[jS[jV[jW[jZ[j[[j^[j_[jb[jc[jf[jg[jj[jk[jn[jo[jr[js[jv[jw[jz[j{[j~[j[j‚[jƒ[j†[j‡[jŠ[j‹[jŽ[j�[j’[j“[j–[j—[jš[j›[jž[jŸ[j¢[j£[j¦[j§[jª[j«[j®[j¯[j²[j³[j¶[j·[jº[j»[j¾[j¿[jÂ[jÃ[jÆ[jÇ[jÊ[jË[jÎ[jÏ[jÒ[jÓ[jÖ[j×[jÚ[jÛ[jÞ[jß[jâ[jã[jæ[jç[jê[jë[jî[jï[jò[jó[jö[j÷[jú[jû[jþ[jÿ[j\j\j\j\j \j \j\j\j\j\j\j\j\j\j\j\j"\j#\j&\j'\j*\j+\j.\j/\j2\j3\j6\j7\j:\j;\j>\j?\jB\jC\jF\jG\jJ\jK\jN\jO\jR\jS\jV\jW\jZ\j[\j^\j_\jb\jc\jf\jg\jj\jk\jn\jo\jr\js\jv\jw\jz\j{\j~\j\j‚\jƒ\j†\j‡\jŠ\j‹\jŽ\j�\j’\j“\j–\j—\jš\j›\jž\jŸ\j¢\j£\j¦\j§\jª\j«\j®\j¯\j²\j³\j¶\j·\jº\j»\j¾\j¿\jÂ\jÃ\jÆ\jÇ\jÊ\jË\jÎ\jÏ\jÒ\jÓ\jÖ\j×\jÚ\jÛ\jÞ\jß\jâ\jã\jæ\jç\jê\jë\jî\jï\jò\jó\jö\j÷\jú\jû\jþ\jÿ\j]j]j]j]j ]j ]j]j]j]j]j]j]j]j]j]j]j"]j#]j&]j']j*]j+]j.]j/]j2]j3]j6]j7]j:]j;]j>]j?]jB]jC]jF]jG]jJ]jK]jN]jO]jR]jS]jV]jW]jZ]j[]j^]j_]jb]jc]jf]jg]jj]jk]jn]jo]jr]js]jv]jw]jz]j{]j~]j]j‚]jƒ]j†]j‡]jŠ]j‹]jŽ]j�]j’]j“]j–]j—]jš]j›]jž]jŸ]j¢]j£]j¦]j§]jª]j«]j®]j¯]j²]j³]j¶]j·]jº]j»]j¾]j¿]jÂ]jÃ]jÆ]jÇ]jÊ]jË]jÎ]jÏ]jÒ]jÓ]jÖ]j×]jÚ]jÛ]jÞ]jß]jâ]jã]jæ]jç]jê]jë]jî]jï]jò]jó]jö]j÷]jú]jû]jþ]jÿ]j^j^j^j^j ^j ^j^j^j^j^j^j^j^j^j^j^j"^j#^j&^j'^j*^j+^j.^j/^j2^j3^j6^j7^j:^j;^j>^j?^jB^jC^jF^jG^jJ^jK^jN^jO^jR^jS^jV^jW^jZ^j[^j^^j_^jb^jc^jf^jg^jj^jk^jn^jo^jr^js^jv^jw^jz^j{^j~^j^j‚^jƒ^j†^j‡^jŠ^j‹^jŽ^j�^j’^j“^j–^j—^jš^j›^jž^jŸ^j¢^j£^j¦^j§^jª^j«^j®^j¯^j²^j³^j¶^j·^jº^j»^j¾^j¿^jÂ^jÃ^jÆ^jÇ^jÊ^jË^jÎ^jÏ^jÒ^jÓ^jÖ^j×^jÚ^jÛ^jÞ^jß^jâ^jã^jæ^jç^jê^jë^jî^jï^jò^jó^jö^j÷^jú^jû^jþ^jÿ^j_j_j_j_j _j _j_j_j_j_j_j_j_j_j_j_j"_j#_j&_j'_j*_j+_j._j/_j2_j3_j6_j7_j:_j;_j>_j?_jB_jC_jF_jG_jJ_jK_jN_jO_jR_jS_jV_jW_jZ_j[_j^_j__jb_jc_jf_jg_jj_jk_jn_jo_jr_js_jv_jw_jz_j{_j~_j_j‚_jƒ_j†_j‡_jŠ_j‹_jŽ_j�_j’_j“_j–_j—_jš_j›_jž_jŸ_j¢_j£_j¦_j§_jª_j«_j®_j¯_j²_j³_j¶_j·_jº_j»_j¾_j¿_jÂ_jÃ_jÆ_jÇ_jÊ_jË_jÎ_jÏ_jÒ_jÓ_jÖ_j×_jÚ_jÛ_jÞ_jß_jâ_jã_jæ_jç_jê_jë_jî_jï_jò_jó_jö_j÷_jú_jû_jþ_jÿ_j`j`j`j`j `j `j`j`j`j`j`j`j`j`j`j`j"`j#`j&`j'`j*`j+`j.`j/`j2`j3`j6`j7`j:`j;`j>`j?`jB`jC`jF`jG`jJ`jK`jN`jO`jR`jS`jV`jW`jZ`j[`j^`j_`jb`jc`jf`jg`jj`jk`jn`jo`jr`js`jv`jw`jz`j{`j~`j`j‚`jƒ`j†`j‡`jŠ`j‹`jŽ`j�`j’`j“`j–`j—`jš`j›`jž`jŸ`j¢`j£`j¦`j§`jª`j«`j®`j¯`j²`j³`j¶`j·`jº`j»`j¾`j¿`jÂ`jÃ`jÆ`jÇ`jÊ`jË`jÎ`jÏ`jÒ`jÓ`jÖ`j×`jÚ`jÛ`jÞ`jß`jâ`jã`jæ`jç`jê`jë`jî`jï`jò`jó`jö`j÷`jú`jû`jþ`jÿ`jajajajaj aj ajajajajajajajajajajaj"aj#aj&aj'aj*aj+aj.aj/aj2aj3aj6aj7aj:aj;aj>aj?ajBajCajFajGajJajKajNajOajRajSajVajWajZaj[aj^aj_ajbajcajfajgajjajkajnajoajrajsajvajwajzaj{aj~ajaj‚ajƒaj†aj‡ajŠaj‹ajŽaj�aj’aj“aj–aj—ajšaj›ajžajŸaj¢aj£aj¦aj§ajªaj«aj®aj¯aj²aj³aj¶aj·ajºaj»aj¾aj¿ajÂajÃajÆajÇajÊajËajÎajÏajÒajÓajÖaj×ajÚajÛajÞajßajâajãajæajçajêajëajîajïajòajóajöaj÷ajúajûajþajÿajbjbjbjbj bj bjbjbjbjbjbjbjbjbjbjbj"bj#bj&bj'bj*bj+bj.bj/bj2bj3bj6bj7bj:bj;bj>bj?bjBbjCbjFbjGbjJbjKbjNbjObjRbjSbjVbjWbjZbj[bj^bj_bjbbjcbjfbjgbjjbjkbjnbjobjrbjsbjvbjwbjzbj{bj~bjbj‚bjƒbj†bj‡bjŠbj‹bjŽbj�bu(j’bj“bj–bj—bjšbj›bjžbjŸbj¢bj£bj¦bj§bjªbj«bj®bj¯bj²bj³bj¶bj·bjºbj»bj¾bj¿bjÂbjÃbjÆbjÇbjÊbjËbjÎbjÏbjÒbjÓbjÖbj×bjÚbjÛbjÞbjßbjâbjãbjæbjçbjêbjëbjîbjïbjòbjóbjöbj÷bjúbjûbjþbjÿbjcjcjcjcj cj cjcjcjcjcjcjcjcjcjcjcj"cj#cj&cj'cj*cj+cj.cj/cj2cj3cj6cj7cj:cj;cj>cj?cjBcjCcjFcjGcjJcjKcjNcjOcjRcjScjVcjWcjZcj[cj^cj_cjbcjccjfcjgcjjcjkcjncjocjrcjscjvcjwcjzcj{cj~cjcj‚cjƒcj†cj‡cjŠcj‹cjŽcj�cj’cj“cj–cj—cjšcj›cjžcjŸcj¢cj£cj¦cj§cjªcj«cj®cj¯cj²cj³cj¶cj·cjºcj»cj¾cj¿cjÂcjÃcjÆcjÇcjÊcjËcjÎcjÏcjÒcjÓcjÖcj×cjÚcjÛcjÞcjßcjâcjãcjæcjçcjêcjëcjîcjïcjòcjócjöcj÷cjúcjûcjþcjÿcjdjdjdjdj dj djdjdjdjdjdjdjdjdjdjdj"dj#dj&dj'dj*dj+dj.dj/dj2dj3dj6dj7dj:dj;dj>dj?djBdjCdjFdjGdjJdjKdjNdjOdjRdjSdjVdjWdjZdj[dj^dj_djbdjcdjfdjgdjjdjkdjndjodjrdjsdjvdjwdjzdj{dj~djdj‚djƒdj†dj‡djŠdj‹djŽdj�dj’dj“dj–dj—djšdj›djždjŸdj¢dj£dj¦dj§djªdj«dj®dj¯dj²dj³dj¶dj·djºdj»dj¾dj¿djÂdjÃdjÆdjÇdjÊdjËdjÎdjÏdjÒdjÓdjÖdj×djÚdjÛdjÞdjßdjâdjãdjædjçdjêdjëdjîdjïdjòdjódjödj÷djúdjûdjþdjÿdjejejejej ej ejejejejejejejejejejej"ej#ej&ej'ej*ej+ej.ej/ej2ej3ej6ej7ej:ej;ej>ej?ejBejCejFejGejJejKejNejOejRejSejVejWejZej[ej^ej_ejbejcejfejgejjejkejnejoejrejsejvejwejzej{ej~ejej‚ejƒej†ej‡ejŠej‹ejŽej�ej’ej“ej–ej—ejšej›ejžejŸej¢ej£ej¦ej§ejªej«ej®ej¯ej²ej³ej¶ej·ejºej»ej¾ej¿ejÂejÃejÆejÇejÊejËejÎejÏejÒejÓejÖej×ejÚejÛejÞejßejâejãejæejçejêejëejîejïejòejóejöej÷ejúejûejþejÿejfjfjfjfj fj fjfjfjfjfjfjfjfjfjfjfj"fj#fj&fj'fj*fj+fj.fj/fj2fj3fj6fj7fj:fj;fj>fj?fjBfjCfjFfjGfjJfjKfjNfjOfjRfjSfjVfjWfujZf}”(j\fj]fj`fjafjdfjefjhfjifjlfjmfjpfjqfjtfjufjxfjyfj|fj}fj€fj�fj„fj…fjˆfj‰fjŒfj�fj�fj‘fj”fj•fj˜fj™fjœfj�fj fj¡fj¤fj¥fj¨fj©fj¬fj­fj°fj±fj´fjµfj¸fj¹fj¼fj½fjÀfjÁfjÄfjÅfjÈfjÉfjÌfjÍfjÐfjÑfjÔfjÕfjØfjÙfjÜfjÝfjàfjáfjäfjåfjèfjéfjìfjífjðfjñfjôfjõfjøfjùfjüfjýfjgjgjgjgjgj gj gj gjgjgjgjgjgjgjgjgj gj!gj$gj%gj(gj)gj,gj-gj0gj1gj4gj5gj8gj9gjij?ijBijCijFijGijJijKijNijOijRijSijVijWijZij[ij^ij_ijbijcijfijgijjijkijnijoijrijsijvijwijzij{ij~ijij‚ijƒij†ij‡ijŠij‹ijŽij�ij’ij“ij–ij—ijšij›ijžijŸij¢ij£ij¦ij§ijªij«ij®ij¯ij²ij³ij¶ij·ijºij»ij¾ij¿ijÂijÃijÆijÇijÊijËijÎijÏijÒijÓijÖij×ijÚijÛijÞijßijâijãijæijçijêijëijîijïijòijóijöij÷ijúijûijþijÿijjjjjjjjj jj jjjjjjjjjjjjjjjjjjjjjj"jj#jj&jj'jj*jj+jj.jj/jj2jj3jj6jj7jj:jj;jj>jj?jjBjjCjjFjjGjjJjjKjjNjjOjjRjjSjjVjjWjjZjj[jj^jj_jjbjjcjjfjjgjjjjjkjjnjjojjrjjsjjvjjwjjzjj{jj~jjjj‚jjƒjj†jj‡jjŠjj‹jjŽjj�jj’jj“jj–jj—jjšjj›jjžjjŸjj¢jj£jj¦jj§jjªjj«jj®jj¯jj²jj³jj¶jj·jjºjj»jj¾jj¿jjÂjjÃjjÆjjÇjjÊjjËjjÎjjÏjjÒjjÓjjÖjj×jjÚjjÛjjÞjjßjjâjjãjjæjjçjjêjjëjjîjjïjjòjjójjöjj÷jjújjûjjþjjÿjjkjkjkjkj kj kjkjkjkjkjkjkjkjkjkjkj"kj#kj&kj'kj*kj+kj.kj/kj2kj3kj6kj7kj:kj;kj>kj?kjBkjCkjFkjGkjJkjKkjNkjOkjRkjSkjVkjWkjZkj[kj^kj_kjbkjckjfkjgkjjkjkkjnkjokjrkjskjvkjwkjzkj{kj~kjkj‚kjƒkj†kj‡kjŠkj‹kjŽkj�kj’kj“kj–kj—kjškj›kjžkjŸkj¢kj£kj¦kj§kjªkj«kj®kj¯kj²kj³kj¶kj·kjºkj»kj¾kj¿kjÂkjÃkjÆkjÇkjÊkjËkjÎkjÏkjÒkjÓkjÖkj×kjÚkjÛkjÞkjßkjâkjãkjækjçkjêkjëkjîkjïkjòkjókjökj÷kjúkjûkjþkjÿkjljljljlj lj ljljljljljljljljljljlj"lj#lj&lj'lj*lj+lj.lj/lj2lj3lj6lj7lj:lj;lj>lj?ljBljCljFljGljJljKljNljOljRljSljVljWljZlj[lj^lj_ljbljcljfljgljjljkljnljoljrljsljvljwljzlj{lj~ljlj‚ljƒlj†lj‡ljŠlj‹ljŽlj�lj’lj“lj–lj—ljšlj›ljžljŸlj¢lj£lj¦lj§ljªlj«lj®lj¯lj²lj³lj¶lj·ljºlj»lj¾lj¿ljÂljÃljÆljÇljÊljËljÎljÏljÒljÓljÖlj×ljÚljÛljÞljßljâljãljæljçljêljëljîljïljòljóljölj÷ljúljûljþljÿljmjmjmjmj mj mjmjmjmjmjmjmjmjmjmjmj"mj#mj&mj'mj*mj+mj.mj/mj2mj3mj6mj7mj:mj;mj>mj?mjBmjCmjFmjGmjJmjKmjNmjOmjRmjSmjVmjWmjZmj[mj^mj_mjbmjcmjfmjgmjjmjkmjnmjomjrmjsmjvmjwmjzmj{mj~mjmj‚mjƒmj†mj‡mjŠmj‹mjŽmj�mj’mj“mj–mj—mjšmj›mjžmjŸmj¢mj£mj¦mj§mjªmj«mj®mj¯mj²mj³mj¶mj·mjºmj»mj¾mj¿mjÂmjÃmjÆmjÇmjÊmjËmjÎmjÏmjÒmjÓmjÖmj×mjÚmjÛmjÞmjßmjâmjãmjæmjçmjêmjëmjîmjïmjòmjómjömj÷mjúmjûmjþmjÿmjnjnjnjnj nj njnjnjnjnjnjnjnjnjnjnj"nj#nj&nj'nj*nj+nj.nj/nj2nj3nj6nj7nj:nj;nj>nj?njBnjCnjFnjGnjJnjKnjNnjOnjRnjSnjVnjWnjZnj[nj^nj_njbnjcnjfnjgnjjnjknjnnjonjrnjsnjvnjwnjznj{nj~njnj‚njƒnj†nj‡njŠnj‹njŽnj�nj’nj“nj–nj—njšnj›njžnjŸnj¢nj£nj¦nj§njªnj«nj®nj¯nj²nj³nj¶nj·njºnj»nj¾nj¿njÂnjÃnjÆnjÇnjÊnjËnjÎnjÏnjÒnjÓnjÖnj×njÚnjÛnjÞnjßnjânjãnjænjçnjênjënjînjïnjònjónjönj÷njúnjûnjþnjÿnjojojojoj oj ojojojojojojojojojojoj"oj#oj&oj'oj*oj+oj.oj/oj2oj3oj6oj7oj:oj;oj>oj?ojBojCojFojGojJojKojNojOojRojSojVojWojZoj[oj^oj_ojbojcojfojgojjojkojnojoojrojsojvojwojzoj{oj~ojoj‚ojƒoj†oj‡ojŠoj‹ojŽoj�oj’oj“oj–oj—ojšoj›ojžojŸoj¢oj£oj¦oj§oujªo}”(j¬oj­oj°oj±oj´ojµoj¸oj¹oj¼oj½ojÀojÁojÄojÅojÈojÉoujÌo}”(jÎojÏojÒojÓojÖoj×ojÚojÛojÞojßojâojãojæojçojêojëojîojïojòojóojöoj÷ojúojûojþojÿojpjpjpjpj pj pjpjpjpjpjpjpjpjpjpjpj"pj#pj&pj'pj*pj+pj.pj/pj2pj3pj6pj7pj:pj;pj>pj?pjBpjCpjFpjGpjJpjKpjNpjOpjRpjSpjVpjWpjZpj[pj^pj_pjbpjcpjfpjgpjjpjkpjnpjopjrpjspjvpjwpjzpj{pj~pjpj‚pjƒpj†pj‡pjŠpj‹pjŽpj�pj’pj“pj–pj—pjšpj›pjžpjŸpj¢pj£pj¦pj§pjªpj«pj®pj¯pj²pj³pj¶pj·pjºpj»pj¾pj¿pjÂpjÃpjÆpjÇpjÊpjËpjÎpjÏpjÒpjÓpjÖpj×pjÚpjÛpjÞpjßpjâpjãpjæpjçpjêpjëpjîpjïpjòpjópjöpj÷pjúpjûpjþpjÿpjqjqjqjqj qj qjqjqjqjqjqjqjqjqjqjqj"qj#qj&qj'qj*qj+qj.qj/qj2qj3qj6qj7qj:qj;qj>qj?qjBqjCqjFqjGqjJqjKqjNqjOqjRqjSqjVqjWqjZqj[qj^qj_qjbqjcqjfqjgqjjqjkqjnqjoqjrqjsqjvqjwqjzqj{qj~qjqj‚qjƒqj†qj‡qjŠqj‹qjŽqj�qj’qj“qj–qj—qjšqj›qjžqjŸqj¢qj£qj¦qj§qjªqj«qj®qj¯qj²qj³qj¶qj·qjºqj»qj¾qj¿qjÂqjÃqjÆqjÇqjÊqjËqjÎqjÏqjÒqjÓqjÖqj×qjÚqjÛqjÞqjßqjâqjãqjæqjçqjêqjëqjîqjïqjòqjóqjöqj÷qjúqjûqjþqjÿqjrjrjrjrj rj rjrjrjrjrjrjrjrjrjrjrj"rj#rj&rj'rj*rj+rj.rj/rj2rj3rj6rj7rj:rj;rj>rj?rjBrjCrjFrjGrjJrjKrjNrjOrjRrjSrjVrjWrjZrj[rj^rj_rjbrjcrjfrjgrjjrjkrjnrjorjrrjsrjvrjwrjzrj{rj~rjrj‚rjƒrj†rj‡rjŠrj‹rjŽrj�rj’rj“rj–rj—rjšrj›rjžrjŸrj¢rj£rj¦rj§rjªrj«rj®rj¯rj²rj³rj¶rj·rjºrj»rj¾rj¿rjÂrjÃrjÆrjÇrjÊrjËrjÎrjÏrjÒrjÓrjÖrj×rjÚrjÛrjÞrjßrjârjãrjærjçrjêrjërjîrjïrjòrjórjörj÷rjúrjûrjþrjÿrjsjsjsjsj sj sjsjsjsjsjsjsjsjsjsjsj"sj#sj&sj'sj*sj+sj.sj/sj2sj3sj6sj7sj:sj;sj>sj?sjBsjCsjFsjGsjJsjKsjNsjOsjRsjSsjVsjWsjZsj[sj^sj_sjbsjcsjfsjgsjjsjksjnsjosjrsjssjvsjwsjzsj{sj~sjsj‚sjƒsj†sj‡sjŠsj‹sjŽsj�sj’sj“sj–sj—sjšsj›sjžsjŸsj¢sj£sj¦sj§sjªsj«sj®sj¯sj²sj³sj¶sj·sjºsj»sj¾sj¿sjÂsjÃsjÆsjÇsjÊsjËsjÎsjÏsjÒsjÓsjÖsj×sjÚsjÛsjÞsjßsjâsjãsjæsjçsjêsjësjîsjïsjòsjósjösj÷sjúsjûsjþsjÿsjtjtjtjtj tj tjtjtjtjtjtjtjtjtjtjtj"tj#tj&tj'tj*tj+tj.tj/tj2tj3tj6tj7tj:tj;tj>tj?tjBtjCtjFtjGtjJtjKtjNtjOtjRtjStjVtjWtjZtj[tj^tj_tjbtjctjftjgtjjtjktjntjotjrtjstjvtjwtjztj{tj~tjtj‚tjƒtj†tj‡tjŠtj‹tjŽtj�tj’tj“tj–tj—tjštj›tjžtjŸtj¢tj£tjò jó jö j÷ jú jû jþ jÿ j!j!j!j!j !j !j!j!j!j!j!j!j!j!uj¦t}”(j¨tj©tj¬tj­tj°tj±tj´tjµtj¸tj¹tj¼tj½tjÀtjÁtjÄtjÅtjÈtjÉtjÌtjÍtjÐtjÑtjÔtjÕtjØtjÙtjÜtjÝtjàtjátjätjåtjètjétjìtjítjðtjñtjôtjõtjøtjùtjütjýtjujujujujuj uj uj ujujujujujujujujuj uj!uj$uj%uj(uj)uj,uj-uj0uj1uj4uj5uj8uj9uj‹j?‹jB‹jC‹jF‹jG‹jJ‹jK‹jN‹jO‹jR‹jS‹jV‹jW‹jZ‹j[‹j^‹j_‹jb‹jc‹jf‹jg‹jj‹jk‹jn‹jo‹jr‹js‹jv‹jw‹jz‹j{‹j~‹j‹j‚‹jƒ‹j†‹j‡‹jŠ‹j‹‹jŽ‹j�‹j’‹j“‹j–‹j—‹jš‹j›‹jž‹jŸ‹j¢‹j£‹j¦‹j§‹jª‹j«‹j®‹j¯‹j²‹j³‹j¶‹j·‹jº‹j»‹j¾‹j¿‹j‹jËjÆ‹jÇ‹jÊ‹jË‹j΋jÏ‹jÒ‹jÓ‹jÖ‹j׋jÚ‹jÛ‹jÞ‹jß‹jâ‹jã‹jæ‹jç‹jê‹jë‹jî‹jï‹jò‹jó‹jö‹j÷‹jú‹jû‹jþ‹jÿ‹jŒjŒjŒjŒj Œj ŒjŒjŒjŒjŒjŒjŒjŒjŒjŒjŒj"Œj#Œj&Œj'Œj*Œj+Œj.Œj/Œj2Œj3Œj6Œj7Œj:Œj;Œj>Œj?ŒjBŒjCŒjFŒjGŒjJŒjKŒjNŒjOŒjRŒjSŒjVŒjWŒjZŒj[Œj^Œj_ŒjbŒjcŒjfŒjgŒjjŒjkŒjnŒjoŒjrŒjsŒjvŒjwŒjzŒj{Œj~ŒjŒj‚ŒjƒŒj†Œj‡ŒjŠŒj‹ŒjŽŒj�Œj’Œj“Œj–Œj—ŒjšŒj›ŒjžŒjŸŒj¢Œj£Œj¦Œj§ŒjªŒj«Œj®Œj¯Œj²Œj³Œj¶Œj·ŒjºŒj»Œj¾Œj¿ŒjÂŒjÃŒjÆŒjÇŒjÊŒjËŒjÎŒjÏŒjÒŒjÓŒjÖŒj׌jÚŒjÛŒjÞŒjߌjâŒjãŒjæŒjçŒjêŒjëŒjîŒjïŒjòŒjóŒjöŒj÷ŒjúŒjûŒjþŒjÿŒj�j�j�j�j �j �j�j�j�j�j�j�j�j�j�j�j"�j#�j&�j'�j*�j+�j.�j/�j2�j3�j6�j7�j:�j;�j>�j?�jB�jC�jF�jG�jJ�jK�jN�jO�jR�jS�jV�jW�jZ�j[�j^�j_�jb�jc�jf�jg�jj�jk�jn�jo�jr�js�jv�jw�jz�j{�j~�j�j‚�jƒ�j†�j‡�jŠ�j‹�jŽ�j��j’�j“�j–�j—�jš�j›�jž�jŸ�j¢�j£�j¦�j§�jª�j«�j®�j¯�j²�j³�j¶�j·�jº�j»�j¾�j¿�jÂ�jÃ�jÆ�jÇ�jÊ�jË�jÎ�jÏ�jÒ�jÓ�jÖ�j×�jÚ�jÛ�jÞ�jß�jâ�jã�jæ�jç�jê�jë�jî�jï�jò�jó�jö�j÷�jú�jû�jþ�jÿ�jŽjŽjŽjŽj Žj ŽjŽjŽjŽjŽjŽjŽjŽjŽjŽjŽj"Žj#Žj&Žj'Žj*Žj+Žj.Žj/Žj2Žj3Žj6Žj7Žj:Žj;Žj>Žj?ŽjBŽjCŽjFŽjGŽjJŽjKŽjNŽjOŽjRŽjSŽjVŽjWŽjZŽj[Žj^Žj_ŽjbŽjcŽjfŽjgŽjjŽjkŽjnŽjoŽjrŽjsŽjvŽjwŽjzŽj{Žj~ŽjŽj‚ŽjƒŽj†Žj‡ŽjŠŽj‹ŽjŽŽj�Žj’Žj“Žj–Žj—ŽjšŽj›ŽjžŽjŸŽj¢Žj£Žj¦Žj§ŽjªŽj«Žj®Žj¯Žj²Žj³Žj¶Žj·ŽjºŽj»Žj¾Žj¿ŽjÂŽjÃŽjÆŽjÇŽjÊŽjËŽjÎŽjÏŽjÒŽjÓŽjÖŽj׎jÚŽjÛŽjÞŽjߎjâŽjãŽjæŽjçŽjêŽjëŽjîŽjïŽjòŽjóŽjöŽj÷ŽjúŽjûŽjþŽjÿŽj�j�j�j�j �j �j�j�j�j�j�j�j�j�j�j�j"�j#�j&�j'�j*�j+�j.�j/�j2�j3�j6�j7�j:�j;�j>�j?�jB�jC�jF�jG�jJ�jK�jN�jO�jR�jS�jV�jW�jZ�j[�j^�j_�jb�jc�jf�jg�jj�jk�jn�jo�jr�js�jv�jw�jz�j{�j~�j�j‚�jƒ�j†�j‡�jŠ�j‹�jŽ�j��j’�j“�j–�j—�jš�j›�jž�jŸ�j¢�j£�j¦�j§�jª�j«�j®�j¯�j²�j³�j¶�j·�jº�j»�j¾�j¿�jÂ�jÃ�jÆ�jÇ�jÊ�jË�jÎ�jÏ�jÒ�jÓ�jÖ�j×�jÚ�jÛ�jÞ�jß�jâ�jã�jæ�jç�jê�jë�jî�jï�jò�jó�jö�j÷�jú�jû�jþ�jÿ�j�j�j�j�j �j �j�j�j�j�j�j�j�j�j�j�j"�j#�j&�j'�j*�j+�j.�j/�j2�j3�j6�j7�j:�j;�j>�j?�jB�jC�jF�jG�jJ�jK�jN�jO�jR�jS�jV�jW�jZ�j[�j^�j_�jb�jc�jf�jg�jj�jk�jn�jo�jr�js�jv�jw�jz�j{�j~�j�j‚�jƒ�j†�j‡�jŠ�j‹�jŽ�j��j’�j“�j–�j—�jš�j›�jž�jŸ�j¢�j£�j¦�j§�jª�j«�j®�j¯�j²�j³�j¶�j·�jº�j»�j¾�j¿�jÂ�jÃ�jÆ�jÇ�jÊ�jË�jÎ�jÏ�jÒ�jÓ�jÖ�j×�jÚ�jÛ�jÞ�jß�jâ�jã�jæ�jç�jê�jë�jî�jï�jò�jó�jö�j÷�jú�jû�jþ�jÿ�j‘j‘j‘j‘j ‘j ‘j‘j‘j‘j‘j‘j‘j‘j‘j‘j‘j"‘j#‘j&‘j'‘j*‘j+‘j.‘j/‘j2‘j3‘j6‘j7‘j:‘j;‘j>‘j?‘jB‘jC‘jF‘jG‘jJ‘jK‘jN‘jO‘jR‘jS‘jV‘jW‘jZ‘j[‘j^‘j_‘jb‘jc‘jf‘jg‘jj‘jk‘jn‘jo‘jr‘js‘jv‘jw‘jz‘j{‘j~‘j‘j‚‘jƒ‘j†‘j‡‘jŠ‘j‹‘jŽ‘j�‘j’‘j“‘j–‘j—‘jš‘j›‘jž‘jŸ‘j¢‘j£‘j¦‘j§‘jª‘j«‘j®‘j¯‘j²‘j³‘j¶‘j·‘jº‘j»‘j¾‘j¿‘j‘jÑjÆ‘jÇ‘jÊ‘jË‘jΑjÏ‘jÒ‘jÓ‘jÖ‘jבjÚ‘jÛ‘jÞ‘jß‘jâ‘jã‘jæ‘jç‘jê‘jë‘jî‘jï‘jò‘jó‘jö‘j÷‘jú‘jû‘jþ‘jÿ‘j’j’j’j’j ’j ’j’j’j’j’j’j’j’j’j’j’j"’j#’j&’j'’j*’j+’j.’j/’j2’j3’j6’j7’j:’j;’j>’j?’jB’jC’jF’jG’jJ’jK’jN’jO’jR’jS’jV’jW’jZ’j[’j^’j_’jb’jc’jf’jg’jj’jk’jn’jo’jr’js’jv’jw’jz’j{’j~’j’j‚’jƒ’j†’j‡’jŠ’j‹’jŽ’j�’j’’j“’j–’j—’jš’j›’jž’jŸ’j¢’j£’j¦’j§’jª’j«’j®’j¯’j²’j³’j¶’j·’jº’j»’j¾’j¿’jÂ’jÃ’jÆ’jÇ’jÊ’jË’jÎ’jÏ’jÒ’jÓ’jÖ’j×’jÚ’jÛ’jÞ’jß’jâ’jã’jæ’jç’jê’jë’jî’jï’jò’jó’jö’j÷’jú’jû’jþ’jÿ’j“j“j“j“j “j “j“j“j“j“j“j“j“j“j“j“j"“j#“j&“j'“j*“j+“j.“j/“j2“j3“j6“j7“j:“j;“j>“j?“jB“jC“jF“jG“jJ“jK“jN“jO“jR“jS“jV“jW“jZ“j[“j^“j_“jb“jc“jf“jg“jj“jk“jn“jo“jr“js“jv“jw“jz“j{“j~“j“j‚“jƒ“j†“j‡“jŠ“j‹“jŽ“j�“j’“j““j–“j—“jš“j›“jž“jŸ“j¢“j£“j¦“j§“jª“j«“j®“j¯“j²“j³“j¶“j·“jº“j»“j¾“j¿“j“jÓjÆ“jÇ“jÊ“jË“jΓjÏ“jÒ“jÓ“jÖ“jדjÚ“jÛ“jÞ“jß“jâ“jã“jæ“jç“jê“jë“jî“jï“jò“jó“jö“j÷“jú“jû“jþ“jÿ“j”j”j”j”j ”j ”j”j”j”j”j”j”j”j”j”j”j"”j#”j&”j'”j*”j+”j.”j/”j2”j3”j6”j7”j:”j;”j>”j?”jB”jC”jF”jG”jJ”jK”jN”jO”jR”jS”jV”jW”jZ”j[”j^”j_”jb”jc”jf”jg”jj”jk”jn”jo”jr”js”jv”jw”jz”j{”j~”j”j‚”jƒ”j†”j‡”jŠ”j‹”jŽ”j�”j’”j“”j–”j—”jš”j›”jž”jŸ”j¢”j£”j¦”j§”jª”j«”j®”j¯”j²”j³”j¶”j·”jº”j»”j¾”j¿”j”jÔjÆ”jÇ”jÊ”jË”jΔjÏ”jÒ”jÓ”jÖ”j×”jÚ”jÛ”jÞ”jß”jâ”jã”jæ”jç”jê”jë”jî”jï”jò”jó”jö”j÷”jú”jû”jþ”jÿ”j•j•j•j•j •j •j•j•j•j•j•j•j•j•j•j•j"•j#•j&•j'•j*•j+•j.•j/•j2•j3•j6•j7•j:•j;•j>•j?•jB•jC•jF•jG•jJ•jK•jN•jO•jR•jS•jV•jW•jZ•j[•j^•j_•jb•jc•jf•jg•jj•jk•jn•jo•jr•js•jv•jw•jz•j{•j~•j•j‚•jƒ•j†•j‡•jŠ•j‹•jŽ•j�•j’•j“•j–•j—•jš•j›•jž•jŸ•j¢•j£•j¦•j§•jª•j«•j®•j¯•j²•j³•j¶•j·•jº•j»•j¾•j¿•j•jÕjÆ•jÇ•jÊ•jË•jΕjÏ•jÒ•jÓ•jÖ•jוjÚ•jÛ•jÞ•jß•jâ•jã•jæ•jç•jê•jë•jî•jï•jò•jó•jö•j÷•jú•jû•jþ•jÿ•j–j–j–j–j –j –j–j–j–j–j–j–j–j–j–j–j"–j#–j&–j'–j*–j+–j.–j/–j2–j3–j6–j7–j:–j;–j>–j?–jB–jC–jF–jG–jJ–jK–jN–jO–jR–jS–jV–jW–jZ–j[–j^–j_–jb–jc–jf–jg–jj–jk–jn–jo–jr–js–jv–jw–jz–j{–j~–j–j‚–jƒ–j†–j‡–jŠ–j‹–jŽ–j�–j’–j“–j––j—–jš–j›–jž–jŸ–j¢–j£–j¦–j§–jª–j«–j®–j¯–j²–j³–j¶–j·–jº–j»–j¾–j¿–j–jÖjÆ–jÇ–jÊ–jË–jΖjÏ–jÒ–jÓ–jÖ–j×–jÚ–jÛ–jÞ–jß–jâ–jã–jæ–jç–jê–jë–jî–jï–jò–jó–jö–j÷–jú–jû–jþ–jÿ–j—j—j—j—j —j —j—j—j—j—j—j—j—j—j—j—j"—j#—j&—j'—j*—j+—j.—j/—j2—j3—j6—j7—j:—j;—j>—j?—jB—jC—jF—jG—jJ—jK—jN—jO—jR—jS—jV—jW—jZ—j[—j^—j_—jb—jc—jf—jg—jj—jk—jn—jo—jr—js—jv—jw—jz—j{—j~—j—j‚—jƒ—j†—j‡—jŠ—j‹—jŽ—j�—j’—j“—j–—j——jš—j›—jž—jŸ—j¢—j£—j¦—j§—jª—j«—j®—j¯—j²—j³—j¶—j·—jº—j»—j¾—j¿—j—j×jÆ—jÇ—jÊ—jË—jΗjÏ—jÒ—jÓ—jÖ—j×—jÚ—jÛ—jÞ—jß—jâ—jã—jæ—jç—jê—jë—jî—jï—jò—jó—jö—j÷—jú—jû—jþ—jÿ—j˜j˜j˜j˜j ˜j ˜j˜j˜j˜j˜j˜j˜j˜j˜j˜j˜j"˜j#˜j&˜j'˜j*˜j+˜j.˜j/˜j2˜j3˜j6˜j7˜j:˜j;˜j>˜j?˜jB˜jC˜jF˜jG˜jJ˜jK˜jN˜jO˜jR˜jS˜jV˜jW˜jZ˜j[˜j^˜j_˜jb˜jc˜jf˜jg˜jj˜jk˜jn˜jo˜jr˜js˜jv˜jw˜jz˜j{˜j~˜j˜j‚˜jƒ˜j†˜j‡˜jŠ˜j‹˜jŽ˜j�˜j’˜j“˜j–˜j—˜jš˜j›˜jž˜jŸ˜j¢˜j£˜j¦˜j§˜jª˜j«˜j®˜j¯˜j²˜j³˜j¶˜j·˜jº˜j»˜j¾˜j¿˜j˜jØjƘjǘjʘj˘jΘjϘjÒ˜jÓ˜jÖ˜jטjÚ˜jÛ˜jÞ˜jߘjâ˜jã˜jæ˜jç˜jê˜jë˜jî˜jï˜jò˜jó˜jö˜j÷˜jú˜jû˜jþ˜jÿ˜j™j™j™j™j ™j ™j™j™j™j™j™j™j™j™j™j™j"™j#™j&™j'™j*™j+™j.™j/™j2™j3™j6™j7™j:™j;™j>™j?™jB™jC™jF™jG™jJ™jK™jN™jO™jR™jS™jV™jW™jZ™j[™j^™j_™jb™jc™jf™jg™jj™jk™jn™jo™jr™js™jv™jw™jz™j{™j~™j™j‚™jƒ™j†™j‡™jŠ™j‹™jŽ™j�™j’™j“™j–™j—™jš™j›™jž™jŸ™j¢™j£™j¦™j§™jª™j«™j®™j¯™j²™j³™j¶™j·™jº™j»™j¾™j¿™j™jÙjÆ™jÇ™jÊ™jË™jΙjÏ™jÒ™jÓ™jÖ™j×™jÚ™jÛ™jÞ™jß™jâ™jã™jæ™jç™jê™jë™jî™jï™jò™jó™jö™j÷™jú™jû™jþ™jÿ™jšjšjšjšj šj šjšjšjšjšjšjšjšjšu(jšjšj"šj#šj&šj'šj*šj+šj.šj/šj2šj3šj6šj7šj:šj;šj>šj?šjBšjCšjFšjGšjJšjKšjNšjOšjRšjSšjVšjWšjZšj[šj^šj_šjbšjcšjfšjgšjjšjkšjnšjošjršjsšjvšjwšjzšj{šj~šjšj‚šjƒšj†šj‡šjŠšj‹šjŽšj�šj’šj“šj–šj—šjššj›šjžšjŸšj¢šj£šj¦šj§šjªšj«šj®šj¯šj²šj³šj¶šj·šjºšj»šj¾šj¿šjšjÚjÆšjÇšjÊšjËšjΚjÏšjÒšjÓšjÖšjךjÚšjÛšjÞšjßšjâšjãšjæšjçšjêšjëšjîšjïšjòšjóšjöšj÷šjúšjûšjþšjÿšj›j›j›j›j ›j ›j›j›j›j›j›j›j›j›j›j›j"›j#›j&›j'›j*›j+›j.›j/›j2›j3›j6›j7›j:›j;›j>›j?›jB›jC›jF›jG›jJ›jK›jN›jO›jR›jS›jV›jW›jZ›j[›j^›j_›jb›jc›jf›jg›jj›jk›jn›jo›jr›js›jv›jw›jz›j{›j~›j›j‚›jƒ›j†›j‡›jŠ›j‹›jŽ›j�›j’›j“›j–›j—›jš›j››jž›jŸ›j¢›j£›j¦›j§›jª›j«›j®›j¯›j²›j³›j¶›j·›jº›j»›j¾›j¿›j›jÛjÆ›jÇ›jÊ›jË›jΛjÏ›jÒ›jÓ›jÖ›j×›jÚ›jÛ›jÞ›jß›jâ›jã›jæ›jç›jê›jë›jî›jï›jò›jó›jö›j÷›jú›jû›jþ›jÿ›jœjœjœjœj œj œjœjœjœjœjœjœjœjœjœjœj"œj#œj&œj'œj*œj+œj.œj/œj2œj3œj6œj7œj:œj;œj>œj?œjBœjCœjFœjGœjJœjKœjNœjOœjRœjSœjVœjWœjZœj[œj^œj_œjbœjcœjfœjgœjjœjkœjnœjoœjrœjsœjvœjwœjzœj{œj~œjœj‚œjƒœj†œj‡œjŠœj‹œjŽœj�œj’œj“œj–œj—œjšœj›œjžœjŸœj¢œj£œj¦œj§œjªœj«œj®œj¯œj²œj³œj¶œj·œjºœj»œj¾œj¿œjœjÜjÆœjÇœjÊœjËœjΜjÏœjÒœjÓœjÖœjלjÚœjÛœjÞœjßœjâœjãœjæœjçœjêœjëœjîœjïœjòœjóœjöœj÷œjúœjûœjþœjÿœj�j�j�j�j �j �j�j�j�j�j�j�j�j�j�j�j"�j#�j&�j'�j*�j+�j.�j/�j2�j3�j6�j7�j:�j;�j>�j?�jB�jC�jF�jG�jJ�jK�jN�jO�jR�jS�jV�jW�jZ�j[�j^�j_�jb�jc�jf�jg�jj�jk�jn�jo�jr�js�jv�jw�jz�j{�j~�j�j‚�jƒ�j†�j‡�jŠ�j‹�jŽ�j��j’�j“�j–�j—�jš�j›�jž�jŸ�j¢�j£�j¦�j§�jª�j«�j®�j¯�j²�j³�j¶�j·�jº�j»�j¾�j¿�jÂ�jÃ�jÆ�jÇ�jÊ�jË�jÎ�jÏ�jÒ�jÓ�jÖ�j×�jÚ�jÛ�jÞ�jß�jâ�jã�jæ�jç�jê�jë�jî�jï�jò�jó�jö�j÷�jú�jû�jþ�jÿ�jžjžjžjžj žj žjžjžjžjžjžjžjžjžjžjžj"žj#žj&žj'žj*žj+žj.žj/žj2žj3žj6žj7žj:žj;žj>žj?žjBžjCžjFžjGžjJžjKžjNžjOžjRžjSžjVžjWžjZžj[žj^žj_žjbžjcžjfžjgžjjžjkžjnžjožjržjsžjvžjwžjzžj{žj~žjžj‚žjƒžj†žj‡žjŠžj‹žjŽžj�žj’žj“žj–žj—žjšžj›žjžžjŸžj¢žj£žj¦žj§žjªžj«žj®žj¯žj²žj³žj¶žj·žjºžj»žj¾žj¿žjžjÞjÆžjÇžjÊžjËžjΞjÏžjÒžjÓžjÖžjמjÚžjÛžjÞžjßžjâžjãžjæžjçžjêžjëžjîžjïžjòžjóžjöžj÷žjúžjûžjþžjÿžjŸjŸjŸjŸj Ÿj ŸjŸjŸjŸjŸjŸjŸjŸjŸjŸjŸj"Ÿj#Ÿj&Ÿj'Ÿj*Ÿj+Ÿj.Ÿj/Ÿj2Ÿj3Ÿj6Ÿj7Ÿj:Ÿj;Ÿj>Ÿj?ŸjBŸjCŸjFŸjGŸjJŸjKŸjNŸjOŸjRŸjSŸjVŸjWŸjZŸj[Ÿj^Ÿj_ŸjbŸjcŸjfŸjgŸjjŸjkŸjnŸjoŸjrŸjsŸjvŸjwŸjzŸj{Ÿj~ŸjŸj‚ŸjƒŸj†Ÿj‡ŸjŠŸj‹ŸjŽŸj�Ÿj’Ÿj“Ÿj–Ÿj—ŸjšŸj›ŸjžŸjŸŸj¢Ÿj£Ÿj¦Ÿj§ŸjªŸj«Ÿj®Ÿj¯Ÿj²Ÿj³Ÿj¶Ÿj·ŸjºŸj»Ÿj¾Ÿj¿ŸjŸjßjÆŸjÇŸjÊŸjËŸjΟjÏŸjÒŸjÓŸjÖŸjןjÚŸjÛŸjÞŸjߟjâŸjãŸjæŸjçŸjêŸjëŸjîŸjïŸjòŸjóŸjöŸj÷ŸjúŸjûŸjþŸjÿŸj j j j j  j  j j j j j j j j j j j" j# j& j' j* j+ j. j/ j2 j3 j6 j7 j: j; j> j? jB jC jF jG jJ jK jN jO jR jS jV jW jZ j[ j^ j_ jb jc jf jg jj jk jn jo jr js jv jw jz j{ j~ j j‚ jƒ j† j‡ jŠ j‹ jŽ j� j’ j“ j– j— jš j› jž jŸ j¢ j£ j¦ j§ jª j« j® j¯ j² j³ j¶ j· jº j» j¾ j¿ j jàjÆ jÇ jÊ jË jΠjÏ jÒ jÓ jÖ j× jÚ jÛ jÞ jß jâ jã jæ jç jê jë jî jï jò jó jö j÷ jú jû jþ jÿ j¡j¡j¡j¡j ¡j ¡j¡j¡j¡j¡j¡j¡j¡j¡j¡j¡j"¡j#¡j&¡j'¡j*¡j+¡j.¡j/¡j2¡j3¡j6¡j7¡j:¡j;¡j>¡j?¡jB¡jC¡jF¡jG¡jJ¡jK¡jN¡jO¡jR¡jS¡jV¡jW¡jZ¡j[¡j^¡j_¡jb¡jc¡jf¡jg¡jj¡jk¡jn¡jo¡jr¡js¡jv¡jw¡jz¡j{¡j~¡j¡j‚¡jƒ¡j†¡j‡¡jŠ¡j‹¡jŽ¡j�¡j’¡j“¡j–¡j—¡jš¡j›¡jž¡jŸ¡j¢¡j£¡j¦¡j§¡jª¡j«¡j®¡j¯¡j²¡j³¡j¶¡j·¡jº¡j»¡j¾¡j¿¡j¡jájÆ¡jÇ¡jÊ¡jË¡jΡjÏ¡jÒ¡jÓ¡jÖ¡jסjÚ¡jÛ¡jÞ¡jß¡jâ¡jã¡jæ¡jç¡jê¡jë¡jî¡jï¡jò¡jó¡jö¡j÷¡jú¡jû¡jþ¡jÿ¡j¢j¢j¢j¢j ¢j ¢j¢j¢j¢j¢j¢j¢j¢j¢j¢j¢j"¢j#¢j&¢j'¢j*¢j+¢j.¢j/¢j2¢j3¢j6¢j7¢j:¢j;¢j>¢j?¢jB¢jC¢jF¢jG¢jJ¢jK¢jN¢jO¢jR¢jS¢jV¢jW¢jZ¢j[¢j^¢j_¢jb¢jc¢jf¢jg¢jj¢jk¢jn¢jo¢jr¢js¢jv¢jw¢jz¢j{¢j~¢j¢j‚¢jƒ¢j†¢j‡¢jŠ¢j‹¢jŽ¢j�¢j’¢j“¢j–¢j—¢jš¢j›¢jž¢jŸ¢j¢¢j£¢j¦¢j§¢jª¢j«¢j®¢j¯¢j²¢j³¢j¶¢j·¢jº¢j»¢j¾¢j¿¢j¢jâjÆ¢jÇ¢jÊ¢jË¢j΢jÏ¢jÒ¢jÓ¢jÖ¢j×¢jÚ¢jÛ¢jÞ¢jߢjâ¢jã¢jæ¢jç¢jê¢jë¢jî¢jï¢jò¢jó¢jö¢j÷¢jú¢jû¢jþ¢jÿ¢j£j£j£j£j £j £j£j£j£j£j£j£j£j£j£j£j"£j#£j&£j'£j*£j+£j.£j/£j2£j3£j6£j7£j:£j;£j>£j?£jB£jC£jF£jG£jJ£jK£jN£jO£jR£jS£jV£jW£jZ£j[£j^£j_£jb£jc£jf£jg£jj£jk£jn£jo£jr£js£jv£jw£jz£j{£j~£j£j‚£jƒ£j†£j‡£jŠ£j‹£jŽ£j�£j’£j“£j–£j—£jš£j›£jž£jŸ£j¢£j££j¦£j§£jª£j«£j®£j¯£j²£j³£j¶£j·£jº£j»£j¾£j¿£j£jãjÆ£jÇ£jÊ£jË£jΣjÏ£jÒ£jÓ£jÖ£j×£jÚ£jÛ£jÞ£jߣjâ£jã£jæ£jç£jê£jë£jî£jï£jò£jó£jö£j÷£jú£jû£jþ£jÿ£j¤j¤j¤j¤j ¤j ¤j¤j¤j¤j¤j¤j¤j¤j¤j¤j¤j"¤j#¤j&¤j'¤j*¤j+¤j.¤j/¤j2¤j3¤j6¤j7¤j:¤j;¤j>¤j?¤jB¤jC¤jF¤jG¤jJ¤jK¤jN¤jO¤jR¤jS¤jV¤jW¤jZ¤j[¤j^¤j_¤jb¤jc¤jf¤jg¤jj¤jk¤jn¤jo¤jr¤js¤jv¤jw¤jz¤j{¤j~¤j¤j‚¤jƒ¤j†¤j‡¤jФj‹¤jޤj�¤j’¤j“¤j–¤j—¤jš¤j›¤jž¤jŸ¤j¢¤j£¤j¦¤j§¤jª¤j«¤j®¤j¯¤j²¤j³¤j¶¤j·¤jº¤j»¤j¾¤j¿¤j¤jäjƤjǤjʤjˤjΤjϤjÒ¤jÓ¤jÖ¤jפjÚ¤jÛ¤jÞ¤jߤjâ¤jã¤jæ¤jç¤jê¤jë¤jî¤jï¤jò¤jó¤jö¤j÷¤jú¤jû¤jþ¤jÿ¤j¥j¥j¥j¥j ¥j ¥j¥j¥j¥j¥j¥j¥j¥j¥j¥j¥j"¥j#¥j&¥j'¥j*¥j+¥j.¥j/¥j2¥j3¥j6¥j7¥j:¥j;¥j>¥j?¥jB¥jC¥jF¥jG¥jJ¥jK¥jN¥jO¥jR¥jS¥jV¥jW¥jZ¥j[¥j^¥j_¥jb¥jc¥jf¥jg¥jj¥jk¥jn¥jo¥jr¥js¥jv¥jw¥jz¥j{¥j~¥j¥j‚¥jƒ¥j†¥j‡¥jŠ¥j‹¥jŽ¥j�¥j’¥j“¥j–¥j—¥jš¥j›¥jž¥jŸ¥j¢¥j£¥j¦¥j§¥jª¥j«¥j®¥j¯¥j²¥j³¥j¶¥j·¥jº¥j»¥j¾¥j¿¥jÂ¥jÃ¥jÆ¥jÇ¥jÊ¥jË¥jÎ¥jÏ¥jÒ¥jÓ¥jÖ¥j×¥jÚ¥jÛ¥jÞ¥jߥjâ¥jã¥jæ¥jç¥jê¥jë¥jî¥jï¥jò¥jó¥jö¥j÷¥jú¥jû¥jþ¥jÿ¥j¦j¦j¦j¦j ¦j ¦j¦j¦j¦j¦j¦j¦j¦j¦j¦j¦j"¦j#¦j&¦j'¦j*¦j+¦j.¦j/¦j2¦j3¦j6¦j7¦j:¦j;¦j>¦j?¦jB¦jC¦jF¦jG¦jJ¦jK¦jN¦jO¦jR¦jS¦jV¦jW¦jZ¦j[¦j^¦j_¦jb¦jc¦jf¦jg¦jj¦jk¦jn¦jo¦jr¦js¦jv¦jw¦jz¦j{¦j~¦j¦j‚¦jƒ¦j†¦j‡¦jЦj‹¦jަj�¦j’¦j“¦j–¦j—¦jš¦j›¦jž¦jŸ¦j¢¦j£¦j¦¦j§¦jª¦j«¦j®¦j¯¦j²¦j³¦j¶¦j·¦jº¦j»¦j¾¦j¿¦j¦jæjƦjǦjʦj˦jΦjϦjÒ¦jÓ¦jÖ¦jצjÚ¦jÛ¦jÞ¦jߦjâ¦jã¦jæ¦jç¦jê¦jë¦jî¦jï¦jò¦jó¦jö¦j÷¦jú¦jû¦jþ¦jÿ¦j§j§j§j§j §j §j§j§j§j§j§j§j§j§j§j§j"§j#§j&§j'§j*§j+§j.§j/§j2§j3§j6§j7§j:§j;§j>§j?§jB§jC§jF§jG§jJ§jK§jN§jO§jR§jS§jV§jW§jZ§j[§j^§j_§jb§jc§jf§jg§jj§jk§jn§jo§jr§js§jv§jw§jz§j{§j~§j§j‚§jƒ§j†§j‡§jЧj‹§jާj�§j’§j“§j–§j—§jš§j›§jž§jŸ§j¢§j£§j¦§j§§jª§j«§j®§j¯§j²§j³§j¶§j·§jº§j»§j¾§j¿§j§jçjƧjǧjʧj˧jΧjϧjÒ§jÓ§jÖ§j×§jÚ§jÛ§jÞ§jß§jâ§jã§jæ§jç§jê§jë§jî§jï§jò§jó§jö§j÷§jú§jû§jþ§jÿ§j¨j¨j¨j¨j ¨j ¨j¨j¨j¨j¨j¨j¨j¨j¨j¨j¨j"¨j#¨j&¨j'¨j*¨j+¨j.¨j/¨j2¨j3¨j6¨j7¨j:¨j;¨j>¨j?¨jB¨jC¨jF¨jG¨jJ¨jK¨jN¨jO¨jR¨jS¨jV¨jW¨jZ¨j[¨j^¨j_¨jb¨jc¨jf¨jg¨jj¨jk¨jn¨jo¨jr¨js¨jv¨jw¨jz¨j{¨j~¨j¨j‚¨jƒ¨j†¨j‡¨jЍj‹¨jލj�¨j’¨j“¨j–¨j—¨jš¨j›¨jž¨jŸ¨j¢¨j£¨j¦¨j§¨jª¨j«¨j®¨j¯¨j²¨j³¨j¶¨j·¨jº¨j»¨j¾¨j¿¨j¨jèjƨjǨjʨj˨jΨjϨjÒ¨jÓ¨jÖ¨jרjÚ¨jÛ¨jÞ¨jߨjâ¨jã¨jæ¨jç¨jê¨jë¨jî¨jï¨jò¨jó¨jö¨j÷¨jú¨jû¨jþ¨jÿ¨j©j©j©j©j ©j ©j©j©j©j©j©j©j©j©j©j©j"©j#©j&©j'©j*©j+©j.©j/©j2©j3©j6©j7©j:©j;©j>©j?©jB©jC©jF©jG©jJ©jK©jN©jO©jR©jS©jV©jW©jZ©j[©j^©j_©jb©jc©jf©jg©jj©jk©jn©jo©jr©js©jv©jw©jz©j{©j~©j©j‚©jƒ©j†©j‡©jŠ©j‹©jŽ©j�©j’©j“©j–©j—©jš©j›©jž©jŸ©j¢©j£©j¦©j§©jª©j«©j®©j¯©j²©j³©j¶©j·©jº©j»©u(j¾©j¿©j©jéjÆ©jÇ©jÊ©jË©jΩjÏ©jÒ©jÓ©jÖ©jשjÚ©jÛ©jÞ©jß©jâ©jã©jæ©jç©jê©jë©jî©jï©jò©jó©jö©j÷©jú©jû©jþ©jÿ©jªjªjªjªj ªj ªjªjªjªjªjªjªjªjªjªjªj"ªj#ªj&ªj'ªj*ªj+ªj.ªj/ªj2ªj3ªj6ªj7ªj:ªj;ªj>ªj?ªjBªjCªjFªjGªjJªjKªjNªjOªjRªjSªjVªjWªjZªj[ªj^ªj_ªjbªjcªjfªjgªjjªjkªjnªjoªjrªjsªjvªjwªjzªj{ªj~ªjªj‚ªjƒªj†ªj‡ªjŠªj‹ªjŽªj�ªj’ªj“ªj–ªj—ªjšªj›ªjžªjŸªj¢ªj£ªj¦ªj§ªjªªj«ªj®ªj¯ªj²ªj³ªj¶ªj·ªjºªj»ªj¾ªj¿ªjªjêjƪjǪjʪj˪jΪjϪjÒªjÓªjÖªjתjÚªjÛªjÞªjߪjâªjãªjæªjçªjêªjëªjîªjïªjòªjóªjöªj÷ªjúªjûªjþªjÿªj«j«j«j«j «j «j«j«j«j«j«j«j«j«j«j«j"«j#«j&«j'«j*«j+«j.«j/«j2«j3«j6«j7«j:«j;«j>«j?«jB«jC«jF«jG«jJ«jK«jN«jO«jR«jS«jV«jW«jZ«j[«j^«j_«jb«jc«jf«jg«jj«jk«jn«jo«jr«js«jv«jw«jz«j{«j~«j«j‚«jƒ«j†«j‡«jŠ«j‹«jŽ«j�«j’«j“«j–«j—«jš«j›«jž«jŸ«j¢«j£«j¦«j§«jª«j««j®«j¯«j²«j³«j¶«j·«jº«j»«j¾«j¿«j«jëjÆ«jÇ«jÊ«jË«jΫjÏ«jÒ«jÓ«jÖ«j׫jÚ«jÛ«jÞ«jß«jâ«jã«jæ«jç«jê«jë«jî«jï«jò«jó«jö«j÷«jú«jû«jþ«jÿ«j¬j¬j¬j¬j ¬j ¬j¬j¬j¬j¬j¬j¬j¬j¬j¬j¬j"¬j#¬j&¬j'¬j*¬j+¬j.¬j/¬j2¬j3¬j6¬j7¬j:¬j;¬j>¬j?¬jB¬jC¬jF¬jG¬jJ¬jK¬jN¬jO¬jR¬jS¬jV¬jW¬jZ¬j[¬j^¬j_¬jb¬jc¬jf¬jg¬jj¬jk¬jn¬jo¬jr¬js¬jv¬jw¬jz¬j{¬j~¬j¬j‚¬jƒ¬j†¬j‡¬jЬj‹¬jެj�¬j’¬j“¬j–¬j—¬jš¬j›¬jž¬jŸ¬j¢¬j£¬j¦¬j§¬jª¬j«¬j®¬j¯¬j²¬j³¬j¶¬j·¬jº¬j»¬j¾¬j¿¬j¬jìjƬjǬjʬjˬjάjϬjÒ¬jÓ¬jÖ¬j׬jÚ¬jÛ¬jÞ¬j߬jâ¬jã¬jæ¬jç¬jê¬jë¬jî¬jï¬jò¬jó¬jö¬j÷¬jú¬jû¬jþ¬jÿ¬j­j­j­j­j ­j ­j­j­j­j­j­j­j­j­j­j­j"­j#­j&­j'­j*­j+­j.­j/­j2­j3­j6­j7­j:­j;­j>­j?­jB­jC­jF­jG­jJ­jK­jN­jO­jR­jS­jV­jW­jZ­j[­j^­j_­jb­jc­jf­jg­jj­jk­jn­jo­jr­js­jv­jw­jz­j{­j~­j­j‚­jƒ­j†­j‡­jŠ­j‹­jŽ­j�­j’­j“­j–­j—­jš­j›­jž­jŸ­j¢­j£­j¦­j§­jª­j«­j®­j¯­j²­j³­j¶­j·­jº­j»­j¾­j¿­j­jíjÆ­jÇ­jÊ­jË­jέjÏ­jÒ­jÓ­jÖ­j×­jÚ­jÛ­jÞ­jß­jâ­jã­jæ­jç­jê­jë­jî­jï­jò­jó­jö­j÷­jú­jû­jþ­jÿ­j®j®j®j®j ®j ®j®j®j®j®j®j®j®j®j®j®j"®j#®j&®j'®j*®j+®j.®j/®j2®j3®j6®j7®j:®j;®j>®j?®jB®jC®jF®jG®jJ®jK®jN®jO®jR®jS®jV®jW®jZ®j[®j^®j_®jb®jc®jf®jg®jj®jk®jn®jo®jr®js®jv®jw®jz®j{®j~®j®j‚®jƒ®j†®j‡®jŠ®j‹®jŽ®j�®j’®j“®j–®j—®jš®j›®jž®jŸ®j¢®j£®j¦®j§®jª®j«®j®®j¯®j²®j³®j¶®j·®jº®j»®j¾®j¿®j®jîjÆ®jÇ®jÊ®jË®jήjÏ®jÒ®jÓ®jÖ®j×®jÚ®jÛ®jÞ®jß®jâ®jã®jæ®jç®jê®jë®jî®jï®jò®jó®jö®j÷®jú®jû®jþ®jÿ®j¯j¯j¯j¯j ¯j ¯j¯j¯j¯j¯j¯j¯j¯j¯j¯j¯j"¯j#¯j&¯j'¯j*¯j+¯j.¯j/¯j2¯j3¯j6¯j7¯j:¯j;¯j>¯j?¯jB¯jC¯jF¯jG¯jJ¯jK¯jN¯jO¯jR¯jS¯jV¯jW¯jZ¯j[¯j^¯j_¯jb¯jc¯jf¯jg¯jj¯jk¯jn¯jo¯jr¯js¯jv¯jw¯jz¯j{¯j~¯j¯j‚¯jƒ¯j†¯j‡¯jНj‹¯jޝj�¯j’¯j“¯j–¯j—¯jš¯j›¯jž¯jŸ¯j¢¯j£¯j¦¯j§¯jª¯j«¯j®¯j¯¯j²¯j³¯j¶¯j·¯jº¯j»¯j¾¯j¿¯j¯jïjƯjǯjʯj˯jίjϯjÒ¯jÓ¯jÖ¯jׯjÚ¯jÛ¯jÞ¯j߯jâ¯jã¯jæ¯jç¯jê¯jë¯jî¯jï¯jò¯jó¯jö¯j÷¯jú¯jû¯jþ¯jÿ¯j°j°j°j°j °j °j°j°j°j°j°j°j°j°j°j°j"°j#°j&°j'°j*°j+°j.°j/°j2°j3°j6°j7°j:°j;°j>°j?°jB°jC°jF°jG°jJ°jK°jN°jO°jR°jS°jV°jW°jZ°j[°j^°j_°jb°jc°jf°jg°jj°jk°jn°jo°jr°js°jv°jw°jz°j{°j~°j°j‚°jƒ°j†°j‡°jаj‹°jްj�°j’°j“°j–°j—°jš°j›°jž°jŸ°j¢°j£°j¦°j§°jª°j«°j®°j¯°j²°j³°j¶°j·°jº°j»°j¾°j¿°j°jðjưjǰjʰj˰jΰjϰjÒ°jÓ°jÖ°j×°jÚ°jÛ°jÞ°jß°jâ°jã°jæ°jç°jê°jë°jî°jï°jò°jó°jö°j÷°jú°jû°jþ°jÿ°j±j±j±j±j ±j ±j±j±j±j±j±j±j±j±j±j±j"±j#±j&±j'±j*±j+±j.±j/±j2±j3±j6±j7±j:±j;±j>±j?±jB±jC±jF±jG±jJ±jK±jN±jO±jR±jS±jV±jW±jZ±j[±j^±j_±jb±jc±jf±jg±jj±jk±jn±jo±jr±js±jv±jw±jz±j{±j~±j±j‚±jƒ±j†±j‡±jбj‹±jޱj�±j’±j“±j–±j—±jš±j›±jž±jŸ±j¢±j£±j¦±j§±jª±j«±j®±j¯±j²±j³±j¶±j·±jº±j»±j¾±j¿±j±jñjƱjDZjʱj˱jαjϱjÒ±jÓ±jÖ±j×±jÚ±jÛ±jÞ±jß±jâ±jã±jæ±jç±jê±jë±jî±jï±jò±jó±jö±j÷±jú±jû±jþ±jÿ±j²j²j²j²j ²j ²j²j²j²j²j²j²j²j²j²j²j"²j#²j&²j'²j*²j+²j.²j/²j2²j3²j6²j7²j:²j;²j>²j?²jB²jC²jF²jG²jJ²jK²jN²jO²jR²jS²jV²jW²jZ²j[²j^²j_²jb²jc²jf²jg²jj²jk²jn²jo²jr²js²jv²jw²jz²j{²j~²j²j‚²jƒ²j†²j‡²jвj‹²j޲j�²j’²j“²j–²j—²jš²j›²jž²jŸ²j¢²j£²j¦²j§²jª²j«²j®²j¯²j²²j³²j¶²j·²jº²j»²j¾²j¿²j²jòjƲjDzjʲj˲jβjϲjÒ²jÓ²jÖ²jײjÚ²jÛ²jÞ²jß²jâ²jã²jæ²jç²jê²jë²jî²jï²jò²jó²jö²j÷²jú²jû²jþ²jÿ²j³j³j³j³j ³j ³j³j³j³j³j³j³j³j³j³j³j"³j#³j&³j'³j*³j+³j.³j/³j2³j3³j6³j7³j:³j;³j>³j?³jB³jC³jF³jG³jJ³jK³jN³jO³jR³jS³jV³jW³jZ³j[³j^³j_³jb³jc³jf³jg³jj³jk³jn³jo³jr³js³jv³jw³jz³j{³j~³j³j‚³jƒ³j†³j‡³jгj‹³j޳j�³j’³j“³j–³j—³jš³j›³jž³jŸ³j¢³j£³j¦³j§³jª³j«³j®³j¯³j²³j³³j¶³j·³jº³j»³j¾³j¿³j³jójƳjdzjʳj˳jγjϳjÒ³jÓ³jÖ³j׳jÚ³jÛ³jÞ³jß³jâ³jã³jæ³jç³jê³jë³jî³jï³jò³jó³jö³j÷³jú³jû³jþ³jÿ³j´j´j´j´j ´j ´j´j´j´j´j´j´j´j´j´j´j"´j#´j&´j'´j*´j+´j.´j/´j2´j3´j6´j7´j:´j;´j>´j?´jB´jC´jF´jG´jJ´jK´jN´jO´jR´jS´jV´jW´jZ´j[´j^´j_´jb´jc´jf´jg´jj´jk´jn´jo´jr´js´jv´jw´jz´j{´j~´j´j‚´jƒ´j†´j‡´jŠ´j‹´jŽ´j�´j’´j“´j–´j—´jš´j›´jž´jŸ´j¢´j£´j¦´j§´jª´j«´j®´j¯´j²´j³´j¶´j·´jº´j»´j¾´j¿´j´jôjÆ´jÇ´jÊ´jË´jδjÏ´jÒ´jÓ´jÖ´j×´jÚ´jÛ´jÞ´jß´jâ´jã´jæ´jç´jê´jë´jî´jï´jò´jó´jö´j÷´jú´jû´jþ´jÿ´jµjµjµjµj µj µjµjµjµjµjµjµjµjµjµjµj"µj#µj&µj'µj*µj+µj.µj/µj2µj3µj6µj7µj:µj;µj>µj?µjBµjCµjFµjGµjJµjKµjNµjOµjRµjSµjVµjWµjZµj[µj^µj_µjbµjcµjfµjgµjjµjkµjnµjoµjrµjsµjvµjwµjzµj{µj~µjµj‚µjƒµj†µj‡µjеj‹µj޵j�µj’µj“µj–µj—µjšµj›µjžµjŸµj¢µj£µj¦µj§µjªµj«µj®µj¯µj²µj³µj¶µj·µjºµj»µj¾µj¿µjµjõjƵjǵjʵj˵jεjϵjÒµjÓµjÖµj×µjÚµjÛµjÞµjßµjâµjãµjæµjçµjêµjëµjîµjïµjòµjóµjöµj÷µjúµjûµjþµjÿµj¶j¶j¶j¶j ¶j ¶j¶j¶j¶j¶j¶j¶j¶j¶j¶j¶j"¶j#¶j&¶j'¶j*¶j+¶j.¶j/¶j2¶j3¶j6¶j7¶j:¶j;¶j>¶j?¶jB¶jC¶jF¶jG¶jJ¶jK¶jN¶jO¶jR¶jS¶jV¶jW¶jZ¶j[¶j^¶j_¶jb¶jc¶jf¶jg¶jj¶jk¶jn¶jo¶jr¶js¶jv¶jw¶jz¶j{¶j~¶j¶j‚¶jƒ¶j†¶j‡¶jжj‹¶j޶j�¶j’¶j“¶j–¶j—¶jš¶j›¶jž¶jŸ¶j¢¶j£¶j¦¶j§¶jª¶j«¶j®¶j¯¶j²¶j³¶j¶¶j·¶jº¶j»¶j¾¶j¿¶j¶jöjƶjǶjʶj˶jζj϶jÒ¶jÓ¶jÖ¶j×¶jÚ¶jÛ¶jÞ¶jß¶jâ¶jã¶jæ¶jç¶jê¶jë¶jî¶jï¶jò¶jó¶jö¶j÷¶jú¶jû¶jþ¶jÿ¶j·j·j·j·j ·j ·j·j·j·j·j·j·j·j·j·j·j"·j#·j&·j'·j*·j+·j.·j/·j2·j3·j6·j7·j:·j;·j>·j?·jB·jC·jF·jG·jJ·jK·jN·jO·jR·jS·jV·jW·jZ·j[·j^·j_·jb·jc·jf·jg·jj·jk·jn·jo·jr·js·jv·jw·jz·j{·j~·j·j‚·jƒ·j†·j‡·jŠ·j‹·jŽ·j�·j’·j“·j–·j—·jš·j›·jž·jŸ·j¢·j£·j¦·j§·jª·j«·j®·j¯·j²·j³·j¶·j··jº·j»·j¾·j¿·j·j÷jÆ·jÇ·jÊ·jË·jηjÏ·jÒ·jÓ·jÖ·j×·jÚ·jÛ·jÞ·jß·jâ·jã·jæ·jç·jê·jë·jî·jï·jò·jó·jö·j÷·jú·jû·jþ·jÿ·j¸j¸j¸j¸j ¸j ¸j¸j¸j¸j¸j¸j¸j¸j¸j¸j¸j"¸j#¸j&¸j'¸j*¸j+¸j.¸j/¸j2¸j3¸j6¸j7¸j:¸j;¸j>¸j?¸jB¸jC¸jF¸jG¸jJ¸jK¸jN¸jO¸jR¸jS¸jV¸jW¸jZ¸j[¸j^¸j_¸jb¸jc¸jf¸jg¸jj¸jk¸jn¸jo¸jr¸js¸jv¸jw¸jz¸j{¸j~¸j¸j‚¸jƒ¸j†¸j‡¸jЏj‹¸jޏj�¸j’¸j“¸j–¸j—¸jš¸j›¸jž¸jŸ¸j¢¸j£¸j¦¸j§¸jª¸j«¸j®¸j¯¸j²¸j³¸j¶¸j·¸jº¸j»¸j¾¸j¿¸j¸jøjƸjǸjʸj˸jθjϸjÒ¸jÓ¸jÖ¸j׸jÚ¸jÛ¸jÞ¸j߸jâ¸jã¸jæ¸jç¸jê¸jë¸jî¸jï¸jò¸jó¸jö¸j÷¸jú¸jû¸jþ¸jÿ¸j¹j¹j¹j¹j ¹j ¹j¹j¹j¹j¹j¹j¹j¹j¹j¹j¹j"¹j#¹j&¹j'¹j*¹j+¹j.¹j/¹j2¹j3¹j6¹j7¹j:¹j;¹j>¹j?¹jB¹jC¹jF¹jG¹jJ¹jK¹jN¹jO¹jR¹jS¹jV¹jW¹jZ¹j[¹u(j^¹j_¹jb¹jc¹jf¹jg¹jj¹jk¹jn¹jo¹jr¹js¹jv¹jw¹jz¹j{¹j~¹j¹j‚¹jƒ¹j†¹j‡¹jйj‹¹j޹j�¹j’¹j“¹j–¹j—¹jš¹j›¹jž¹jŸ¹j¢¹j£¹j¦¹j§¹jª¹j«¹j®¹j¯¹j²¹j³¹j¶¹j·¹jº¹j»¹j¾¹j¿¹j¹jùjƹjǹjʹj˹jιjϹjÒ¹jÓ¹jÖ¹j×¹jÚ¹jÛ¹jÞ¹jß¹jâ¹jã¹jæ¹jç¹jê¹jë¹jî¹jï¹jò¹jó¹jö¹j÷¹jú¹jû¹jþ¹jÿ¹jºjºjºjºj ºj ºjºjºjºjºjºjºjºjºjºjºj"ºj#ºj&ºj'ºj*ºj+ºj.ºj/ºj2ºj3ºj6ºj7ºj:ºj;ºj>ºj?ºjBºjCºjFºjGºjJºjKºjNºjOºjRºjSºjVºjWºjZºj[ºj^ºj_ºjbºjcºjfºjgºjjºjkºjnºjoºjrºjsºjvºjwºjzºj{ºj~ºjºj‚ºjƒºj†ºj‡ºjŠºj‹ºjŽºj�ºj’ºj“ºj–ºj—ºjšºj›ºjžºjŸºj¢ºj£ºj¦ºj§ºjªºj«ºj®ºj¯ºj²ºj³ºj¶ºj·ºjººj»ºj¾ºj¿ºjºjújƺjǺjʺj˺jκjϺjÒºjÓºjÖºj׺jÚºjÛºjÞºjߺjâºjãºjæºjçºjêºjëºjîºjïºjòºjóºjöºj÷ºjúºjûºjþºjÿºj»j»j»j»j »j »j»j»j»j»j»j»j»j»j»j»j"»j#»j&»j'»j*»j+»j.»j/»j2»j3»j6»j7»j:»j;»j>»j?»jB»jC»jF»jG»jJ»jK»jN»jO»jR»jS»jV»jW»jZ»j[»j^»j_»jb»jc»jf»jg»jj»jk»jn»jo»jr»js»jv»jw»jz»j{»j~»j»j‚»jƒ»j†»j‡»jŠ»j‹»jŽ»j�»j’»j“»j–»j—»jš»j›»jž»jŸ»j¢»j£»j¦»j§»jª»j«»j "j "j"j"j"j"j"j"j"j"j"j"j""j#"j&"j'"j*"j+"j."j/"j2"j3"j6"j7"j:"j;"j>"j?"jB"jC"jF"jG"jJ"jK"jN"jO"jR"jS"jV"jW"jZ"j["j^"j_"jb"jc"jf"jg"jj"jk"jn"jo"jr"js"jv"jw"jz"j{"j~"j"j‚"jƒ"j†"j‡"jŠ"j‹"jŽ"j�"j’"j“"j–"j—"jš"j›"jž"jŸ"j¢"j£"j¦"j§"jª"j«"j®"j¯"j²"j³"j¶"j·"jº"j»"j¾"j¿"jÂ"jÃ"jÆ"jÇ"jÊ"jË"jÎ"jÏ"jÒ"jÓ"jÖ"j×"jÚ"jÛ"jÞ"jß"jâ"jã"jæ"jç"jê"jë"jî"jï"jò"jó"jö"j÷"jú"jû"jþ"jÿ"j#j#j#j#j #j #j#j#j#j#j#j#j#j#j#j#j"#j##j&#j'#j*#j+#j.#j/#j2#j3#j6#j7#j:#j;#j>#j?#jB#jC#jF#jG#jJ#jK#jN#jO#jR#jS#jV#jW#jZ#j[#j^#j_#jb#jc#jf#jg#jj#jk#jn#jo#jr#js#jv#jw#jz#j{#j~#j#j‚#jƒ#j†#j‡#jŠ#j‹#jŽ#j�#j’#j“#j–#j—#jš#j›#jž#jŸ#j¢#j£#j¦#j§#jª#j«#j®#j¯#j²#j³#j¶#j·#jº#j»#j¾#j¿#jÂ#jÃ#jÆ#jÇ#jÊ#jË#jÎ#jÏ#jÒ#jÓ#jÖ#j×#jÚ#jÛ#jÞ#jß#jâ#jã#jæ#jç#jê#jë#jî#jï#jò#jó#jö#j÷#jú#jû#jþ#jÿ#j$j$j$j$j $j $j$j$j$j$j$j$j$j$j$j$j"$j#$j&$j'$j*$j+$j.$j/$j2$j3$j6$j7$j:$j;$j>$j?$jB$jC$jF$jG$jJ$jK$jN$jO$jR$jS$jV$jW$jZ$j[$j^$j_$jb$jc$jf$jg$jj$jk$jn$jo$jr$js$jv$jw$jz$j{$j~$j$j‚$jƒ$j†$j‡$jŠ$j‹$jŽ$j�$j’$j“$j–$j—$jš$j›$jž$jŸ$j¢$j£$j¦$j§$jª$j«$j®$j¯$j²$j³$j¶$j·$jº$j»$j¾$j¿$jÂ$jÃ$jÆ$jÇ$jÊ$jË$jÎ$jÏ$jÒ$jÓ$jÖ$j×$jÚ$jÛ$jÞ$jß$jâ$jã$jæ$jç$uj®»}”(j°»j±»j´»jµ»j¸»j¹»j¼»j½»jÀ»jÁ»jÄ»jÅ»jÈ»jÉ»jÌ»jÍ»jлjÑ»jÔ»jÕ»jØ»jÙ»jÜ»jÝ»jà»já»jä»jå»jè»jé»jì»jí»jð»jñ»jô»jõ»jø»jù»jü»jý»j¼j¼j¼j¼j¼j ¼j ¼j ¼j¼j¼j¼j¼j¼j¼j¼j¼j ¼j!¼j$¼j%¼j(¼j)¼j,¼j-¼j0¼j1¼j4¼j5¼j8¼j9¼j<¼j=¼j@¼jA¼jD¼jE¼jH¼jI¼jL¼jM¼jP¼jQ¼jT¼jU¼jX¼jY¼j\¼j]¼j`¼ja¼jd¼je¼jh¼ji¼jl¼jm¼jp¼jq¼jt¼ju¼jx¼jy¼j|¼j}¼j€¼j�¼j„¼j…¼jˆ¼j‰¼jŒ¼j�¼j�¼j‘¼j”¼j•¼j˜¼j™¼jœ¼j�¼j ¼j¡¼j¤¼j¥¼j¨¼j©¼j¬¼j­¼j°¼j±¼j´¼jµ¼j¸¼j¹¼j¼¼j½¼jÀ¼jÁ¼jļjżjȼjɼj̼jͼjмjѼjÔ¼jÕ¼jؼjÙ¼jܼjݼjà¼já¼jä¼jå¼jè¼jé¼jì¼jí¼jð¼jñ¼jô¼jõ¼jø¼jù¼jü¼jý¼j½j½j½j½j½j ½j ½j ½j½j½j½j½j½j½j½j½j ½j!½j$½j%½j(½j)½j,½j-½j0½j1½j4½j5½j8½j9½j<½j=½j@½jA½jD½jE½jH½jI½jL½jM½jP½jQ½jT½jU½jX½jY½j\½j]½j`½ja½jd½je½jh½ji½jl½jm½jp½jq½jt½ju½jx½jy½j|½j}½j€½j�½j„½j…½jˆ½j‰½jŒ½j�½j�½j‘½j”½j•½j˜½j™½jœ½j�½j ½j¡½j¤½j¥½j¨½j©½j¬½j­½j°½j±½j´½jµ½j¸½j¹½j¼½j½½jÀ½jÁ½jĽjŽjȽjɽj̽jͽjнjѽjÔ½jÕ½jؽjÙ½jܽjݽjà½já½jä½jå½jè½jé½jì½jí½jð½jñ½jô½jõ½jø½jù½jü½jý½j¾j¾j¾j¾j¾j ¾j ¾j ¾j¾j¾j¾j¾j¾j¾j¾j¾j ¾j!¾j$¾j%¾j(¾j)¾j,¾j-¾j0¾j1¾j4¾j5¾j8¾j9¾j<¾j=¾j@¾jA¾jD¾jE¾jH¾jI¾jL¾jM¾jP¾jQ¾jT¾jU¾jX¾jY¾j\¾j]¾j`¾ja¾jd¾je¾jh¾ji¾jl¾jm¾jp¾jq¾jt¾ju¾jx¾jy¾j|¾j}¾j€¾j�¾j„¾j…¾jˆ¾j‰¾jŒ¾j�¾j�¾j‘¾j”¾j•¾j˜¾j™¾jœ¾j�¾j ¾j¡¾j¤¾j¥¾j¨¾j©¾j¬¾j­¾j°¾j±¾j´¾jµ¾j¸¾j¹¾j¼¾j½¾jÀ¾jÁ¾jľjžjȾjɾj̾j;jоjѾjÔ¾jÕ¾jؾjÙ¾jܾjݾjà¾já¾jä¾jå¾jè¾jé¾jì¾jí¾jð¾jñ¾jô¾jõ¾jø¾jù¾jü¾jý¾j¿j¿j¿j¿j¿j ¿j ¿j ¿j¿j¿j¿j¿j¿j¿j¿j¿j ¿j!¿j$¿j%¿j(¿j)¿j,¿j-¿j0¿j1¿j4¿j5¿j8¿j9¿j<¿j=¿j@¿jA¿jD¿jE¿jH¿jI¿jL¿jM¿jP¿jQ¿jT¿jU¿jX¿jY¿j\¿j]¿j`¿ja¿jd¿je¿jh¿ji¿jl¿jm¿jp¿jq¿jt¿ju¿jx¿jy¿j|¿j}¿j€¿j�¿j„¿j…¿jˆ¿j‰¿jŒ¿j�¿j�¿j‘¿j”¿j•¿j˜¿j™¿jœ¿j�¿j ¿j¡¿j¤¿j¥¿j¨¿j©¿j¬¿j­¿j°¿j±¿j´¿jµ¿j¸¿j¹¿j¼¿j½¿jÀ¿jÁ¿jÄ¿jÅ¿jÈ¿jÉ¿jÌ¿jÍ¿jпjÑ¿jÔ¿jÕ¿jØ¿jÙ¿jÜ¿jÝ¿jà¿já¿jä¿jå¿jè¿jé¿jì¿jí¿jð¿jñ¿jô¿jõ¿jø¿jù¿jü¿jý¿jÀjÀjÀjÀjÀj Àj Àj ÀjÀjÀjÀjÀjÀjÀjÀjÀj Àj!Àj$Àj%Àj(Àj)Àj,Àj-Àj0Àj1Àj4Àj5Àj8Àj9Àj<Àj=Àj@ÀjAÀjDÀjEÀjHÀjIÀjLÀjMÀjPÀjQÀjTÀjUÀjXÀjYÀj\Àj]Àj`ÀjaÀjdÀjeÀjhÀjiÀjlÀjmÀjpÀjqÀjtÀjuÀjxÀjyÀj|Àj}Àj€Àj�Àj„Àj…ÀjˆÀj‰ÀjŒÀj�Àj�Àj‘Àj”Àj•Àj˜Àj™ÀjœÀj�Àj Àj¡Àj¤Àj¥Àj¨Àj©Àj¬Àj­Àj°Àj±Àj´ÀjµÀj¸Àj¹Àj¼Àj½ÀjÀÀjÁÀjÄÀjÅÀjÈÀjÉÀjÌÀjÍÀjÐÀjÑÀjÔÀjÕÀjØÀjÙÀjÜÀjÝÀjàÀjáÀjäÀjåÀjèÀjéÀjìÀjíÀjðÀjñÀjôÀjõÀjøÀjùÀjüÀjýÀjÁjÁjÁjÁjÁj Áj Áj ÁjÁjÁjÁjÁjÁjÁjÁjÁj Áj!Áj$Áj%Áj(Áj)Áj,Áj-Áj0Áj1Áj4Áj5Áj8Áj9Áj<Áj=Áj@ÁjAÁjDÁjEÁjHÁjIÁjLÁjMÁjPÁjQÁjTÁjUÁjXÁjYÁj\Áj]Áj`ÁjaÁjdÁjeÁjhÁjiÁjlÁjmÁjpÁjqÁjtÁjuÁjxÁjyÁj|Áj}Áj€Áj�Áj„Áj…ÁjˆÁj‰ÁjŒÁj�Áj�Áj‘Áj”Áj•Áj˜Áj™ÁjœÁj�Áj Áj¡Áj¤Áj¥Áj¨Áj©Áj¬Áj­Áj°Áj±Áj´ÁjµÁj¸Áj¹Áj¼Áj½ÁjÀÁjÁÁjÄÁjÅÁjÈÁjÉÁjÌÁjÍÁjÐÁjÑÁjÔÁjÕÁjØÁjÙÁjÜÁjÝÁjàÁjáÁjäÁjåÁjèÁjéÁjìÁjíÁjðÁjñÁjôÁjõÁjøÁjùÁjüÁjýÁjÂjÂjÂjÂjÂj Âj Âj ÂjÂjÂjÂjÂjÂjÂjÂjÂj Âj!Âj$Âj%Âj(Âj)Âj,Âj-Âj0Âj1Âj4Âj5Âj8Âj9Âj<Âj=Âj@ÂjAÂjDÂjEÂjHÂjIÂjLÂjMÂjPÂjQÂjTÂjUÂjXÂjYÂj\Âj]Âj`ÂjaÂjdÂjeÂjhÂjiÂjlÂjmÂjpÂjqÂjtÂjuÂjxÂjyÂj|Âj}Âj€Âj�Âj„Âj…ÂjˆÂj‰ÂjŒÂj�Âj�Âj‘Âj”Âj•Âj˜Âj™ÂjœÂj�Âj Âj¡Âj¤Âj¥Âj¨Âj©Âj¬Âj­Âj°Âj±Âj´ÂjµÂj¸Âj¹Âj¼Âj½ÂjÀÂjÁÂjÄÂjÅÂjÈÂjÉÂjÌÂjÍÂjÐÂjÑÂjÔÂjÕÂjØÂjÙÂjÜÂjÝÂjàÂjáÂjäÂjåÂjèÂjéÂjìÂjíÂjðÂjñÂjôÂjõÂjøÂjùÂjüÂjýÂjÃjÃjÃjÃjÃj Ãj Ãj ÃjÃjÃjÃjÃjÃjÃjÃjÃj Ãj!Ãj$Ãj%Ãj(Ãj)Ãj,Ãj-Ãj0Ãj1Ãj4Ãj5Ãj8Ãj9Ãj<Ãj=Ãj@ÃjAÃjDÃjEÃjHÃjIÃjLÃjMÃjPÃjQÃjTÃjUÃjXÃjYÃj\Ãj]Ãj`ÃjaÃjdÃjeÃjhÃjiÃjlÃjmÃjpÃjqÃjtÃjuÃjxÃjyÃj|Ãj}Ãj€Ãj�Ãj„Ãj…ÃjˆÃj‰ÃjŒÃj�Ãj�Ãj‘Ãj”Ãj•Ãj˜Ãj™ÃjœÃj�Ãj Ãj¡Ãj¤Ãj¥Ãj¨Ãj©Ãj¬Ãj­Ãj°Ãj±Ãj´ÃjµÃj¸Ãj¹Ãj¼Ãj½ÃjÀÃjÁÃjÄÃjÅÃjÈÃjÉÃjÌÃjÍÃjÐÃjÑÃjÔÃjÕÃjØÃjÙÃjÜÃjÝÃjàÃjáÃjäÃjåÃjèÃjéÃjìÃjíÃjðÃjñÃjôÃjõÃjøÃjùÃjüÃjýÃjÄjÄjÄjÄjÄj Äj Äj ÄjÄjÄjÄjÄjÄjÄjÄjÄj Äj!Äj$Äj%Äj(Äj)Äj,Äj-Äj0Äj1Äj4Äj5Äj8Äj9Äj<Äj=Äj@ÄjAÄjDÄjEÄjHÄjIÄjLÄjMÄjPÄjQÄjTÄjUÄjXÄjYÄj\Äj]Äj`ÄjaÄjdÄjeÄjhÄjiÄjlÄjmÄjpÄjqÄjtÄjuÄjxÄjyÄj|Äj}Äj€Äj�Äj„Äj…ÄjˆÄj‰ÄjŒÄj�Äj�Äj‘Äj”Äj•Äj˜Äj™ÄjœÄj�Äj Äj¡Äj¤Äj¥Äj¨Äj©Äj¬Äj­Äj°Äj±Äj´ÄjµÄj¸Äj¹Äj¼Äj½ÄjÀÄjÁÄjÄÄjÅÄjÈÄjÉÄjÌÄjÍÄjÐÄjÑÄjÔÄjÕÄjØÄjÙÄjÜÄjÝÄjàÄjáÄjäÄjåÄjèÄjéÄjìÄjíÄjðÄjñÄjôÄjõÄjøÄjùÄjüÄjýÄjÅjÅjÅjÅjÅj Åj Åj ÅjÅjÅjÅjÅjÅjÅjÅjÅj Åj!Åj$Åj%Åj(Åj)Åj,Åj-Åj0Åj1Åj4Åj5Åj8Åj9Åj<Åj=Åj@ÅjAÅjDÅjEÅjHÅjIÅjLÅjMÅjPÅjQÅjTÅjUÅjXÅjYÅj\Åj]Åj`ÅjaÅjdÅjeÅjhÅjiÅjlÅjmÅjpÅjqÅjtÅjuÅjxÅjyÅj|Åj}Åj€Åj�Åj„Åj…ÅjˆÅj‰ÅjŒÅj�Åj�Åj‘Åj”Åj•Åj˜Åj™ÅjœÅj�Åj Åj¡Åj¤Åj¥Åj¨Åj©Åj¬Åj­Åj°Åj±Åj´ÅjµÅj¸Åj¹Åj¼Åj½ÅjÀÅjÁÅjÄÅjÅÅjÈÅjÉÅjÌÅjÍÅjÐÅjÑÅjÔÅjÕÅjØÅjÙÅjÜÅjÝÅjàÅjáÅjäÅjåÅjèÅjéÅjìÅjíÅjðÅjñÅjôÅjõÅjøÅjùÅjüÅjýÅjÆjÆjÆjÆjÆj Æj Æj ÆjÆjÆjÆjÆjÆjÆjÆjÆj Æj!Æj$Æj%Æj(Æj)Æj,Æj-Æj0Æj1Æj4Æj5Æj8Æj9Æj<Æj=Æj@ÆjAÆjDÆjEÆjHÆjIÆjLÆjMÆjPÆjQÆjTÆjUÆjXÆjYÆj\Æj]Æj`ÆjaÆjdÆjeÆjhÆjiÆjlÆjmÆjpÆjqÆjtÆjuÆjxÆjyÆj|Æj}Æj€Æj�Æj„Æj…ÆjˆÆj‰ÆjŒÆj�Æj�Æj‘Æj”Æj•Æj˜Æj™ÆjœÆj�Æj Æj¡Æj¤Æj¥Æj¨Æj©Æj¬Æj­Æj°Æj±Æj´ÆjµÆj¸Æj¹Æj¼Æj½ÆjÀÆjÁÆjÄÆjÅÆjÈÆjÉÆjÌÆjÍÆjÐÆjÑÆjÔÆjÕÆjØÆjÙÆjÜÆjÝÆjàÆjáÆjäÆjåÆjèÆjéÆjìÆjíÆjðÆjñÆjôÆjõÆjøÆjùÆjüÆjýÆjÇjÇjÇjÇjÇj Çj Çj ÇjÇjÇjÇjÇjÇjÇjÇjÇj Çj!Çj$Çj%Çj(Çj)Çj,Çj-Çj0Çj1Çj4Çj5Çj8Çj9Çj<Çj=Çj@ÇjAÇjDÇjEÇjHÇjIÇjLÇjMÇjPÇjQÇjTÇjUÇjXÇjYÇj\Çj]Çj`ÇjaÇjdÇjeÇjhÇjiÇjlÇjmÇjpÇjqÇjtÇjuÇjxÇjyÇj|Çj}Çj€Çj�Çj„Çj…ÇjˆÇj‰ÇjŒÇj�Çj�Çj‘Çj”Çj•Çj˜Çj™ÇjœÇj�Çj Çj¡Çj¤Çj¥Çj¨Çj©Çj¬Çj­Çj°Çj±Çj´ÇjµÇj¸Çj¹Çj¼Çj½ÇjÀÇjÁÇjÄÇjÅÇjÈÇjÉÇjÌÇjÍÇjÐÇjÑÇjÔÇjÕÇjØÇjÙÇjÜÇjÝÇjàÇjáÇjäÇjåÇjèÇjéÇjìÇjíÇjðÇjñÇjôÇjõÇjøÇjùÇjüÇjýÇjÈjÈjÈjÈjÈj Èj Èj ÈjÈjÈjÈjÈjÈjÈjÈjÈj Èj!Èj$Èj%Èj(Èj)Èj,Èj-Èj0Èj1Èj4Èj5Èj8Èj9Èj<Èj=Èj@ÈjAÈjDÈjEÈjHÈjIÈjLÈjMÈjPÈjQÈjTÈjUÈjXÈjYÈj\Èj]Èj`ÈjaÈjdÈjeÈjhÈjiÈjlÈjmÈjpÈjqÈjtÈjuÈjxÈjyÈj|Èj}Èj€Èj�Èj„Èj…ÈjˆÈj‰ÈjŒÈj�Èj�Èj‘Èj”Èj•Èj˜Èj™ÈjœÈj�Èj Èj¡Èj¤Èj¥Èj¨Èj©Èj¬Èj­Èj°Èj±Èj´ÈjµÈj¸Èj¹Èj¼Èj½ÈjÀÈjÁÈjÄÈjÅÈjÈÈjÉÈjÌÈjÍÈjÐÈjÑÈjÔÈjÕÈjØÈjÙÈjÜÈjÝÈjàÈjáÈjäÈjåÈjèÈjéÈjìÈjíÈjðÈjñÈjôÈjõÈjøÈjùÈjüÈjýÈjÉjÉjÉjÉjÉj Éj Éj ÉjÉjÉjÉjÉjÉjÉjÉjÉj Éj!Éj$Éj%Éj(Éj)Éj,Éj-Éj0Éj1Éj4Éj5Éj8Éj9Éj<Éj=Éj@ÉjAÉjDÉjEÉjHÉjIÉjLÉjMÉjPÉjQÉjTÉjUÉjXÉjYÉj\Éj]Éj`ÉjaÉjdÉjeÉjhÉjiÉjlÉjmÉjpÉjqÉjtÉjuÉjxÉjyÉj|Éj}Éj€Éj�Éj„Éj…ÉjˆÉj‰ÉjŒÉj�Éj�Éj‘Éj”Éj•Éj˜Éj™ÉjœÉj�Éj Éj¡Éj¤Éj¥Éj¨Éj©Éj¬Éj­Éj°Éj±Éj´ÉjµÉj¸Éj¹Éj¼Éj½ÉjÀÉjÁÉjÄÉjÅÉjÈÉjÉÉjÌÉjÍÉjÐÉjÑÉjÔÉjÕÉjØÉjÙÉjÜÉjÝÉjàÉjáÉjäÉjåÉjèÉjéÉjìÉjíÉjðÉjñÉjôÉjõÉjøÉjùÉjüÉjýÉjÊjÊjÊjÊjÊj Êj Êj ÊjÊjÊjÊjÊjÊjÊjÊjÊj Êj!Êj$Êj%Êj(Êj)Êj,Êj-Êj0Êj1Êj4Êj5Êj8Êj9Êj<Êj=Êj@ÊjAÊjDÊjEÊjHÊjIÊjLÊjMÊjPÊjQÊjTÊjUÊjXÊjYÊj\Êj]Êj`ÊjaÊjdÊjeÊjhÊjiÊjlÊjmÊjpÊjqÊjtÊjuÊjxÊjyÊj|Êj}Êj€Êj�Êj„Êj…ÊjˆÊj‰ÊjŒÊj�Êj�Êj‘Êj”Êj•Êj˜Êj™ÊjœÊj�Êj Êj¡Êj¤Êj¥Êj¨Êj©Êj¬Êj­Êj°Êj±Êj´ÊjµÊj¸Êj¹Êj¼Êj½ÊjÀÊjÁÊjÄÊjÅÊjÈÊjÉÊjÌÊjÍÊjÐÊjÑÊjÔÊjÕÊjØÊjÙÊjÜÊjÝÊjàÊjáÊjäÊjåÊjèÊjéÊjìÊjíÊjðÊjñÊjôÊjõÊjøÊjùÊjüÊjýÊjËjËjËjËjËj Ëj Ëj ËjËjËjËjËjËjËjËjËj Ëj!Ëj$Ëj%Ëj(Ëj)Ëj,Ëj-Ëj0Ëj1Ëj4Ëj5Ëj8Ëj9Ëj<Ëj=Ëj@ËjAËjDËjEËjHËjIËjLËjMËu(jPËjQËjTËjUËjXËjYËj\Ëj]Ëj`ËjaËjdËjeËjhËjiËjlËjmËjpËjqËjtËjuËjxËjyËj|Ëj}Ëj€Ëj�Ëj„Ëj…ËjˆËj‰ËjŒËj�Ëj�Ëj‘Ëj”Ëj•Ëj˜Ëj™ËjœËj�Ëj Ëj¡Ëj¤Ëj¥Ëj¨Ëj©Ëj¬Ëj­Ëj°Ëj±Ëj´ËjµËj¸Ëj¹Ëj¼Ëj½ËjÀËjÁËjÄËjÅËjÈËjÉËjÌËjÍËjÐËjÑËjÔËjÕËjØËjÙËjÜËjÝËjàËjáËjäËjåËjèËjéËjìËjíËjðËjñËjôËjõËjøËjùËjüËjýËjÌjÌjÌjÌjÌj Ìj Ìj ÌjÌjÌjÌjÌjÌjÌjÌjÌj Ìj!Ìj$Ìj%Ìj(Ìj)Ìj,Ìj-Ìj0Ìj1Ìj4Ìj5Ìj8Ìj9Ìj<Ìj=Ìj@ÌjAÌjDÌjEÌjHÌjIÌjLÌjMÌjPÌjQÌjTÌjUÌjXÌjYÌj\Ìj]Ìj`ÌjaÌjdÌjeÌjhÌjiÌjlÌjmÌjpÌjqÌjtÌjuÌjxÌjyÌj|Ìj}Ìj€Ìj�Ìj„Ìj…ÌjˆÌj‰ÌjŒÌj�Ìj�Ìj‘Ìj”Ìj•Ìj˜Ìj™ÌjœÌj�Ìj Ìj¡Ìj¤Ìj¥Ìj¨Ìj©Ìj¬Ìj­Ìj°Ìj±Ìj´ÌjµÌj¸Ìj¹Ìj¼Ìj½ÌjÀÌjÁÌjÄÌjÅÌjÈÌjÉÌjÌÌjÍÌjÐÌjÑÌjÔÌjÕÌjØÌjÙÌjÜÌjÝÌjàÌjáÌjäÌjåÌjèÌjéÌjìÌjíÌjðÌjñÌjôÌjõÌjøÌjùÌjüÌjýÌjÍjÍjÍjÍjÍj Íj Íj ÍjÍjÍjÍjÍjÍjÍjÍjÍj Íj!Íj$Íj%Íj(Íj)Íj,Íj-Íj0Íj1Íj4Íj5Íj8Íj9Íj<Íj=Íj@ÍjAÍjDÍjEÍjHÍjIÍjLÍjMÍjPÍjQÍjTÍjUÍjXÍjYÍj\Íj]Íj`ÍjaÍjdÍjeÍjhÍjiÍjlÍjmÍjpÍjqÍjtÍjuÍjxÍjyÍj|Íj}Íj€Íj�Íj„Íj…ÍjˆÍj‰ÍjŒÍj�Íj�Íj‘Íj”Íj•Íj˜Íj™ÍjœÍj�Íj Íj¡Íj¤Íj¥Íj¨Íj©Íj¬Íj­Íj°Íj±Íj´ÍjµÍj¸Íj¹Íj¼Íj½ÍjÀÍjÁÍjÄÍjÅÍjÈÍjÉÍjÌÍjÍÍjÐÍjÑÍjÔÍjÕÍjØÍjÙÍjÜÍjÝÍjàÍjáÍjäÍjåÍjèÍjéÍjìÍjíÍjðÍjñÍjôÍjõÍjøÍjùÍjüÍjýÍjÎjÎjÎjÎjÎj Îj Îj ÎjÎjÎjÎjÎjÎjÎjÎjÎj Îj!Îj$Îj%Îj(Îj)Îj,Îj-Îj0Îj1Îj4Îj5Îj8Îj9Îj<Îj=Îj@ÎjAÎjDÎjEÎjHÎjIÎjLÎjMÎjPÎjQÎjTÎjUÎjXÎjYÎj\Îj]Îj`ÎjaÎjdÎjeÎjhÎjiÎjlÎjmÎjpÎjqÎjtÎjuÎjxÎjyÎj|Îj}Îj€Îj�Îj„Îj…ÎjˆÎj‰ÎjŒÎj�Îj�Îj‘Îj”Îj•Îj˜Îj™ÎjœÎj�Îj Îj¡Îj¤Îj¥Îj¨Îj©Îj¬Îj­Îj°Îj±Îj´ÎjµÎj¸Îj¹Îj¼Îj½ÎjÀÎjÁÎjÄÎjÅÎjÈÎjÉÎjÌÎjÍÎjÐÎjÑÎjÔÎjÕÎjØÎjÙÎjÜÎjÝÎjàÎjáÎjäÎjåÎjèÎjéÎjìÎjíÎjðÎjñÎjôÎjõÎjøÎjùÎjüÎjýÎjÏjÏjÏjÏjÏj Ïj Ïj ÏjÏjÏjÏjÏjÏjÏjÏjÏj Ïj!Ïj$Ïj%Ïj(Ïj)Ïj,Ïj-Ïj0Ïj1Ïj4Ïj5Ïj8Ïj9Ïj<Ïj=Ïj@ÏjAÏjDÏjEÏjHÏjIÏjLÏjMÏjPÏjQÏjTÏjUÏjXÏjYÏj\Ïj]Ïj`ÏjaÏjdÏjeÏjhÏjiÏjlÏjmÏjpÏjqÏjtÏjuÏjxÏjyÏj|Ïj}Ïj€Ïj�Ïj„Ïj…ÏjˆÏj‰ÏjŒÏj�Ïj�Ïj‘Ïj”Ïj•Ïj˜Ïj™ÏjœÏj�Ïj Ïj¡Ïj¤Ïj¥Ïj¨Ïj©Ïj¬Ïj­Ïj°Ïj±Ïj´ÏjµÏj¸Ïj¹Ïj¼Ïj½ÏjÀÏjÁÏjÄÏjÅÏjÈÏjÉÏjÌÏjÍÏjÐÏjÑÏjÔÏjÕÏjØÏjÙÏjÜÏjÝÏjàÏjáÏjäÏjåÏjèÏjéÏjìÏjíÏjðÏjñÏjôÏjõÏjøÏjùÏjüÏjýÏjÐjÐjÐjÐjÐj Ðj Ðj ÐjÐjÐjÐjÐjÐjÐjÐjÐj Ðj!Ðj$Ðj%Ðj(Ðj)Ðj,Ðj-Ðj0Ðj1Ðj4Ðj5Ðj8Ðj9Ðj<Ðj=Ðj@ÐjAÐjDÐjEÐjHÐjIÐjLÐjMÐjPÐjQÐjTÐjUÐjXÐjYÐj\Ðj]Ðj`ÐjaÐjdÐjeÐjhÐjiÐjlÐjmÐjpÐjqÐjtÐjuÐjxÐjyÐj|Ðj}Ðj€Ðj�Ðj„Ðj…ÐjˆÐj‰ÐjŒÐj�Ðj�Ðj‘Ðj”Ðj•Ðj˜Ðj™ÐjœÐj�Ðj Ðj¡Ðj¤Ðj¥Ðj¨Ðj©Ðj¬Ðj­Ðj°Ðj±Ðj´ÐjµÐj¸Ðj¹Ðj¼Ðj½ÐjÀÐjÁÐjÄÐjÅÐjÈÐjÉÐjÌÐjÍÐjÐÐjÑÐjÔÐjÕÐjØÐjÙÐjÜÐjÝÐjàÐjáÐjäÐjåÐjèÐjéÐjìÐjíÐjðÐjñÐjôÐjõÐjøÐjùÐjüÐjýÐjÑjÑjÑjÑjÑj Ñj Ñj ÑjÑjÑjÑjÑjÑjÑjÑjÑj Ñj!Ñj$Ñj%Ñj(Ñj)Ñj,Ñj-Ñj0Ñj1Ñj4Ñj5Ñj8Ñj9Ñj<Ñj=Ñj@ÑjAÑjDÑjEÑjHÑjIÑjLÑjMÑjPÑjQÑjTÑjUÑjXÑjYÑj\Ñj]Ñj`ÑjaÑjdÑjeÑjhÑjiÑjlÑjmÑjpÑjqÑjtÑjuÑjxÑjyÑj|Ñj}Ñj€Ñj�Ñj„Ñj…ÑjˆÑj‰ÑjŒÑj�Ñj�Ñj‘Ñj”Ñj•Ñj˜Ñj™ÑjœÑj�Ñj Ñj¡Ñj¤Ñj¥Ñj¨Ñj©Ñj¬Ñj­Ñj°Ñj±Ñj´ÑjµÑj¸Ñj¹Ñj¼Ñj½ÑjÀÑjÁÑjÄÑjÅÑjÈÑjÉÑjÌÑjÍÑjÐÑjÑÑjÔÑjÕÑjØÑjÙÑjÜÑjÝÑjàÑjáÑjäÑjåÑjèÑjéÑjìÑjíÑjðÑjñÑjôÑjõÑjøÑjùÑjüÑjýÑjÒjÒjÒjÒjÒj Òj Òj ÒjÒjÒjÒjÒjÒjÒjÒjÒj Òj!Òj$Òj%Òj(Òj)Òj,Òj-Òj0Òj1Òj4Òj5Òj8Òj9Òj<Òj=Òj@ÒjAÒjDÒjEÒjHÒjIÒjLÒjMÒjPÒjQÒjTÒjUÒjXÒjYÒj\Òj]Òj`ÒjaÒjdÒjeÒjhÒjiÒjlÒjmÒjpÒjqÒjtÒjuÒjxÒjyÒj|Òj}Òj€Òj�Òj„Òj…ÒjˆÒj‰ÒjŒÒj�Òj�Òj‘Òj”Òj•Òj˜Òj™ÒjœÒj�Òj Òj¡Òj¤Òj¥Òj¨Òj©Òj¬Òj­Òj°Òj±Òj´ÒjµÒj¸Òj¹Òj¼Òj½ÒjÀÒjÁÒjÄÒjÅÒjÈÒjÉÒjÌÒjÍÒjÐÒjÑÒjÔÒjÕÒjØÒjÙÒjÜÒjÝÒjàÒjáÒjäÒjåÒjèÒjéÒjìÒjíÒjðÒjñÒjôÒjõÒjøÒjùÒjüÒjýÒjÓjÓjÓjÓjÓj Ój Ój ÓjÓjÓjÓjÓjÓjÓjÓjÓj Ój!Ój$Ój%Ój(Ój)Ój,Ój-Ój0Ój1Ój4Ój5Ój8Ój9Ój<Ój=Ój@ÓjAÓjDÓjEÓjHÓjIÓjLÓjMÓjPÓjQÓjTÓjUÓjXÓjYÓj\Ój]Ój`ÓjaÓjdÓjeÓjhÓjiÓjlÓjmÓjpÓjqÓjtÓjuÓjxÓjyÓj|Ój}Ój€Ój�Ój„Ój…ÓjˆÓj‰ÓjŒÓj�Ój�Ój‘Ój”Ój•Ój˜Ój™ÓjœÓj�Ój Ój¡Ój¤Ój¥Ój¨Ój©Ój¬Ój­Ój°Ój±Ój´ÓjµÓj¸Ój¹Ój¼Ój½ÓjÀÓjÁÓjÄÓjÅÓjÈÓjÉÓjÌÓjÍÓjÐÓjÑÓjÔÓjÕÓjØÓjÙÓjÜÓjÝÓjàÓjáÓjäÓjåÓjèÓjéÓjìÓjíÓjðÓjñÓjôÓjõÓjøÓjùÓjüÓjýÓjÔjÔjÔjÔjÔj Ôj Ôj ÔjÔjÔjÔjÔjÔjÔjÔjÔj Ôj!Ôj$Ôj%Ôj(Ôj)Ôj,Ôj-Ôj0Ôj1Ôj4Ôj5Ôj8Ôj9Ôj<Ôj=Ôj@ÔjAÔjDÔjEÔjHÔjIÔjLÔjMÔjPÔjQÔjTÔjUÔjXÔjYÔj\Ôj]Ôj`ÔjaÔjdÔjeÔjhÔjiÔjlÔjmÔjpÔjqÔjtÔjuÔjxÔjyÔj|Ôj}Ôj€Ôj�Ôj„Ôj…ÔjˆÔj‰ÔjŒÔj�Ôj�Ôj‘Ôj”Ôj•Ôj˜Ôj™ÔjœÔj�Ôj Ôj¡Ôj¤Ôj¥Ôj¨Ôj©Ôj¬Ôj­Ôj°Ôj±Ôj´ÔjµÔj¸Ôj¹Ôj¼Ôj½ÔjÀÔjÁÔjÄÔjÅÔjÈÔjÉÔjÌÔjÍÔjÐÔjÑÔjÔÔjÕÔjØÔjÙÔjÜÔjÝÔjàÔjáÔjäÔjåÔjèÔjéÔjìÔjíÔjðÔjñÔjôÔjõÔjøÔjùÔjüÔjýÔjÕjÕjÕjÕjÕj Õj Õj ÕjÕjÕjÕjÕjÕjÕjÕjÕj Õj!Õj$Õj%Õj(Õj)Õj,Õj-Õj0Õj1Õj4Õj5Õj8Õj9Õj<Õj=Õj@ÕjAÕjDÕjEÕjHÕjIÕjLÕjMÕjPÕjQÕjTÕjUÕjXÕjYÕj\Õj]Õj`ÕjaÕjdÕjeÕjhÕjiÕjlÕjmÕjpÕjqÕjtÕjuÕjxÕjyÕj|Õj}Õj€Õj�Õj„Õj…ÕjˆÕj‰ÕjŒÕj�Õj�Õj‘Õj”Õj•Õj˜Õj™ÕjœÕj�Õj Õj¡Õj¤Õj¥Õj¨Õj©Õj¬Õj­Õj°Õj±Õj´ÕjµÕj¸Õj¹Õj¼Õj½ÕjÀÕjÁÕjÄÕjÅÕjÈÕjÉÕjÌÕjÍÕjÐÕjÑÕjÔÕjÕÕjØÕjÙÕjÜÕjÝÕjàÕjáÕjäÕjåÕjèÕjéÕjìÕjíÕjðÕjñÕjôÕjõÕjøÕjùÕjüÕjýÕjÖjÖjÖjÖjÖj Öj Öj ÖjÖjÖjÖjÖjÖjÖjÖjÖj Öj!Öj$Öj%Öj(Öj)Öj,Öj-Öj0Öj1Öj4Öj5Öj8Öj9Öj<Öj=Öj@ÖjAÖjDÖjEÖjHÖjIÖjLÖjMÖjPÖjQÖjTÖjUÖjXÖjYÖj\Öj]Öj`ÖjaÖjdÖjeÖjhÖjiÖjlÖjmÖjpÖjqÖjtÖjuÖjxÖjyÖj|Öj}Öj€Öj�Öj„Öj…ÖjˆÖj‰ÖjŒÖj�Öj�Öj‘Öj”Öj•Öj˜Öj™ÖjœÖj�Öj Öj¡Öj¤Öj¥Öj¨Öj©Öj¬Öj­Öj°Öj±Öj´ÖjµÖj¸Öj¹Öj¼Öj½ÖjÀÖjÁÖjÄÖjÅÖjÈÖjÉÖjÌÖjÍÖjÐÖjÑÖjÔÖjÕÖjØÖjÙÖjÜÖjÝÖjàÖjáÖjäÖjåÖjèÖjéÖjìÖjíÖjðÖjñÖjôÖjõÖjøÖjùÖjüÖjýÖj×j×j×j×j×j ×j ×j ×j×j×j×j×j×j×j×j×j ×j!×j$×j%×j(×j)×j,×j-×j0×j1×j4×j5×j8×j9×j<×j=×j@×jA×jD×jE×jH×jI×jL×jM×jP×jQ×jT×jU×jX×jY×j\×j]×j`×ja×jd×je×jh×ji×jl×jm×jp×jq×jt×ju×jx×jy×j|×j}×j€×j�×j„×j…×jˆ×j‰×jŒ×j�×j�×j‘×j”×j•×j˜×j™×jœ×j�×j ×j¡×j¤×j¥×j¨×j©×j¬×j­×j°×j±×j´×jµ×j¸×j¹×j¼×j½×jÀ×jÁ×jÄ×jÅ×jÈ×jÉ×jÌ×jÍ×jÐ×jÑ×jÔ×jÕ×jØ×jÙ×jÜ×jÝ×jà×já×jä×jå×jè×jé×jì×jí×jð×jñ×jô×jõ×jø×jù×j¸&j¹&j¼&j½&ujü×}”(jþ×jÿ×jØjØjØjØj Øj ØjØjØjØjØjØjØjØjØjØjØj"Øj#Øj&Øj'Øj*Øj+Øj.Øj/Øj2Øj3Øj6Øj7Øj:Øj;Øj>Øj?ØjBØjCØjFØjGØjJØjKØjNØjOØjRØjSØjVØjWØjZØj[Øj^Øj_ØjbØjcØjfØjgØjjØjkØjnØjoØjrØjsØjvØjwØjzØj{Øj~ØjØj‚ØjƒØj†Øj‡ØjŠØj‹ØjŽØj�Øj’Øj“Øj–Øj—ØjšØj›ØjžØjŸØj¢Øj£Øj¦Øj§ØjªØj«Øj®Øj¯Øj²Øj³Øj¶Øj·ØjºØj»Øj¾Øj¿ØjÂØjÃØjÆØjÇØjÊØjËØjÎØjÏØjÒØjÓØjÖØjרjÚØjÛØjÞØjߨjâØjãØjæØjçØjêØjëØjîØjïØjòØjóØjöØj÷ØjúØjûØjþØjÿØjÙjÙjÙjÙj Ùj ÙjÙjÙjÙjÙjÙjÙjÙjÙjÙjÙj"Ùj#Ùj&Ùj'Ùj*Ùj+Ùj.Ùj/Ùj2Ùj3Ùj6Ùj7Ùj:Ùj;Ùj>Ùj?ÙjBÙjCÙjFÙjGÙjJÙjKÙjNÙjOÙjRÙjSÙjVÙjWÙjZÙj[Ùj^Ùj_ÙjbÙjcÙjfÙjgÙjjÙjkÙjnÙjoÙjrÙjsÙjvÙjwÙjzÙj{Ùj~ÙjÙj‚ÙjƒÙj†Ùj‡ÙjŠÙj‹ÙjŽÙj�Ùj’Ùj“Ùj–Ùj—ÙjšÙj›ÙjžÙjŸÙj¢Ùj£Ùj¦Ùj§ÙjªÙj«Ùj®Ùj¯Ùj²Ùj³Ùj¶Ùj·ÙjºÙj»Ùj¾Ùj¿ÙjÂÙjÃÙjÆÙjÇÙjÊÙjËÙjÎÙjÏÙjÒÙjÓÙjÖÙj×ÙjÚÙjÛÙjÞÙjßÙjâÙjãÙjæÙjçÙjêÙjëÙjîÙjïÙjòÙjóÙjöÙj÷ÙjúÙjûÙjþÙjÿÙjÚjÚjÚjÚj Új ÚjÚjÚjÚjÚjÚjÚjÚjÚjÚjÚj"Új#Új&Új'Új*Új+Új.Új/Új2Új3Új6Új7Új:Új;Új>Új?ÚjBÚjCÚjFÚjGÚjJÚjKÚjNÚjOÚjRÚjSÚjVÚjWÚjZÚj[Új^Új_ÚjbÚjcÚjfÚjgÚjjÚjkÚjnÚjoÚjrÚjsÚjvÚjwÚjzÚj{Új~ÚjÚj‚ÚjƒÚj†Új‡ÚjŠÚj‹ÚjŽÚj�Új’Új“Új–Új—ÚjšÚj›ÚjžÚjŸÚj¢Új£Új¦Új§ÚjªÚj«Új®Új¯Új²Új³Új¶Új·ÚjºÚj»Új¾Új¿ÚjÂÚjÃÚjÆÚjÇÚjÊÚjËÚjÎÚjÏÚjÒÚjÓÚjÖÚj×ÚjÚÚjÛÚjÞÚjßÚjâÚjãÚjæÚjçÚjêÚjëÚjîÚjïÚjòÚjóÚjöÚj÷ÚjúÚjûÚjþÚjÿÚjÛjÛjÛjÛj Ûj ÛjÛjÛjÛjÛjÛjÛjÛjÛjÛjÛj"Ûj#Ûj&Ûj'Ûj*Ûj+Ûj.Ûj/Ûj2Ûj3Ûj6Ûj7Ûj:Ûj;Ûj>Ûj?ÛjBÛjCÛjFÛjGÛjJÛjKÛjNÛjOÛjRÛjSÛjVÛjWÛjZÛj[Ûj^Ûj_ÛjbÛjcÛjfÛjgÛjjÛjkÛjnÛjoÛjrÛjsÛjvÛjwÛjzÛj{Ûj~ÛjÛj‚ÛjƒÛj†Ûj‡ÛjŠÛj‹ÛjŽÛj�Ûj’Ûj“Ûj–Ûj—ÛjšÛj›ÛjžÛjŸÛj¢Ûj£Ûj¦Ûj§ÛjªÛj«Ûj®Ûj¯Ûj²Ûj³Ûj¶Ûj·ÛjºÛj»Ûj¾Ûj¿ÛjÂÛjÃÛjÆÛjÇÛjÊÛjËÛjÎÛjÏÛjÒÛjÓÛjÖÛj×ÛjÚÛjÛÛjÞÛjßÛjâÛjãÛjæÛjçÛjêÛjëÛjîÛjïÛjòÛjóÛjöÛj÷ÛjúÛjûÛjþÛjÿÛjÜjÜjÜjÜj Üj ÜjÜjÜjÜjÜjÜjÜjÜjÜjÜjÜj"Üj#Üj&Üj'Üj*Üj+Üj.Üj/Üj2Üj3Üj6Üj7Üj:Üj;Üj>Üj?ÜjBÜjCÜjFÜjGÜjJÜjKÜjNÜjOÜjRÜjSÜjVÜjWÜjZÜj[Üj^Üj_ÜjbÜjcÜjfÜjgÜjjÜjkÜjnÜjoÜjrÜjsÜjvÜjwÜjzÜj{Üj~ÜjÜj‚ÜjƒÜj†Üj‡ÜjŠÜj‹ÜjŽÜj�Üj’Üj“Üj–Üj—ÜjšÜj›ÜjžÜjŸÜj¢Üj£Üj¦Üj§ÜjªÜj«Üj®Üj¯Üj²Üj³Üj¶Üj·ÜjºÜj»Üj¾Üj¿ÜjÂÜjÃÜjÆÜjÇÜjÊÜjËÜjÎÜjÏÜjÒÜjÓÜjÖÜj×ÜjÚÜjÛÜjÞÜjßÜjâÜjãÜjæÜjçÜj j j$ j% j( j) j, j- j0 j1 j4 j5 ujêÜ}”(jìÜjíÜjðÜjñÜjôÜjõÜjøÜjùÜjüÜjýÜjÝjÝjÝjÝjÝj Ýj Ýj ÝjÝjÝjÝjÝjÝjÝjÝjÝj Ýj!Ýj$Ýj%Ýj(Ýj)Ýj,Ýj-Ýj0Ýj1Ýj4Ýj5Ýj8Ýj9Ýj<Ýj=Ýj@ÝjAÝjDÝjEÝjHÝjIÝjLÝjMÝjPÝjQÝjTÝjUÝjXÝjYÝj\Ýj]Ýj`ÝjaÝjdÝjeÝjhÝjiÝjlÝjmÝjpÝjqÝjtÝjuÝjxÝjyÝj|Ýj}Ýj€Ýj�Ýj„Ýj…ÝjˆÝj‰ÝjŒÝj�Ýj�Ýj‘Ýj”Ýj•Ýj˜Ýj™ÝjœÝj�Ýj Ýj¡Ýj¤Ýj¥Ýj¨Ýj©Ýj¬Ýj­Ýj°Ýj±Ýj´ÝjµÝj¸Ýj¹Ýj¼Ýj½ÝjÀÝjÁÝjÄÝjÅÝjÈÝjÉÝjÌÝjÍÝjÐÝjÑÝjÔÝjÕÝjØÝjÙÝjÜÝjÝÝjàÝjáÝjäÝjåÝjèÝjéÝjìÝjíÝjðÝjñÝjôÝjõÝjøÝjùÝjüÝjýÝjÞjÞjÞjÞjÞj Þj Þj ÞjÞjÞjÞjÞjÞjÞjÞjÞj Þj!Þj$Þj%Þj(Þj)Þj,Þj-Þj0Þj1Þj4Þj5Þj8Þj9Þj<Þj=Þj@ÞjAÞjDÞjEÞjHÞjIÞjLÞjMÞjPÞjQÞjTÞjUÞjXÞjYÞj\Þj]Þj`ÞjaÞjdÞjeÞjhÞjiÞjlÞjmÞjpÞjqÞjtÞjuÞjxÞjyÞj|Þj}Þj€Þj�Þj„Þj…ÞjˆÞj‰ÞjŒÞj�Þj�Þj‘Þj”Þj•Þj˜Þj™ÞjœÞj�Þj Þj¡Þj¤Þj¥Þj¨Þj©Þj¬Þj­Þj°Þj±Þj´ÞjµÞj¸Þj¹Þj¼Þj½ÞjÀÞjÁÞjÄÞjÅÞjÈÞjÉÞjÌÞjÍÞjÐÞjÑÞjÔÞjÕÞjØÞjÙÞjÜÞjÝÞjàÞjáÞjäÞjåÞjèÞjéÞjìÞjíÞjðÞjñÞjôÞjõÞjøÞjùÞjüÞjýÞjßjßjßjßjßj ßj ßj ßjßjßjßjßjßjßjßjßj ßj!ßj$ßj%ßj(ßj)ßj,ßj-ßj0ßj1ßj4ßj5ßj8ßj9ßj<ßj=ßj@ßjAßjDßjEßjHßjIßjLßjMßjPßjQßjTßjUßjXßjYßj\ßj]ßj`ßjaßjdßjeßjhßjißjlßjmßjpßjqßjtßjußjxßjyßj|ßj}ßj€ßj�ßj„ßj…ßjˆßj‰ßjŒßj�ßj�ßj‘ßj”ßj•ßj˜ßj™ßjœßj�ßj ßj¡ßj¤ßj¥ßj¨ßj©ßj¬ßj­ßj°ßj±ßj´ßjµßj¸ßj¹ßj¼ßj½ßjÀßjÁßjÄßjÅßjÈßjÉßjÌßjÍßjÐßjÑßjÔßjÕßjØßjÙßjÜßjÝßjàßjáßjäßjåßjèßjéßjìßjíßjðßjñßjôßjõßjøßjùßjüßjýßjàjàjàjàjàj àj àj àjàjàjàjàjàjàjàjàj àj!àj$àj%àj(àj)àj,àj-àj0àj1àj4àj5àj8àj9àj<àj=àj@àjAàjDàjEàjHàjIàjLàjMàjPàjQàjTàjUàjXàjYàj\àj]àj`àjaàjdàjeàjhàjiàjlàjmàjpàjqàjtàjuàjxàjyàj|àj}àj€àj�àj„àj…àjˆàj‰àjŒàj�àj�àj‘àj”àj•àj˜àj™àjœàj�àj àj¡àj¤àj¥àj¨àj©àj¬àj­àj°àj±àj´àjµàj¸àj¹àj¼àj½àjÀàjÁàjÄàjÅàjÈàjÉàjÌàjÍàjÐàjÑàjÔàjÕàjØàjÙàjÜàjÝàjààjáàjäàjåàjèàjéàjìàjíàjðàjñàjôàjõàjøàjùàjüàjýàjájájájájáj áj áj ájájájájájájájájáj áj!áj$áj%áj(áj)áj,áj-áj0áj1áj4áj5áj8áj9áj<áj=áj@ájAájDájEájHájIájLájMájPájQájTájUájXájYáj\áj]áj`ájaájdájeájhájiájlájmájpájqájtájuájxájyáj|áj}áj€áj�áj„áj…ájˆáj‰ájŒáj�áj�áj‘áj”á•j•áj˜áj™ájœáj�áj áj¡áj¤áj¥áj¨áj©áj¬áj­áj°áj±áj´ájµáj¸áj¹áj¼áj½ájÀájÁájÄájÅájÈájÉájÌájÍájÐájÑájÔájÕájØájÙájÜájÝájàájáájäájåájèájéájìájíájðájñájôájõájøájùájüájýájâjâjâjâjâj âj âj âjâjâjâjâjâjâjâjâj âj!âj$âj%âj(âj)âj,âj-âj0âj1âj4âj5âj8âj9âj<âj=âj@âjAâjDâjEâjHâjIâjLâjMâjPâjQâjTâjUâjXâjYâj\âj]âj`âjaâjdâjeâjhâjiâjlâjmâjpâjqâjtâjuâjxâjyâj|âj}âj€âj�âj„âj…âjˆâj‰âjŒâj�âj�âj‘âj”âj•âj˜âj™âjœâj�âj âj¡âj¤âj¥âj¨âj©âj¬âj­âj°âj±âj´âjµâj¸âj¹âj¼âj½âjÀâjÁâjÄâjÅâjÈâjÉâjÌâjÍâjÐâjÑâjÔâjÕâjØâjÙâjÜâjÝâjàâjáâjäâjåâjèâjéâjìâjíâjðâjñâjôâjõâjøâjùâjüâjýâjãjãjãjãjãj ãj ãj ãjãjãjãjãjãjãjãjãj ãj!ãj$ãj%ãj(ãj)ãj,ãj-ãj0ãj1ãj4ãj5ãj8ãj9ãj<ãj=ãj@ãjAãjDãjEãjHãjIãjLãjMãjPãjQãjTãjUãjXãjYãj\ãj]ãj`ãjaãjdãjeãjhãjiãjlãjmãjpãjqãjtãjuãjxãjyãj|ãj}ãj€ãj�ãj„ãj…ãjˆãj‰ãjŒãj�ãj�ãj‘ãj”ãj•ãj˜ãj™ãjœãj�ãj ãj¡ãj¤ãj¥ãj¨ãj©ãj¬ãj­ãj°ãj±ãj´ãjµãj¸ãj¹ãj¼ãj½ãjÀãjÁãjÄãjÅãjÈãjÉãjÌãjÍãjÐãjÑãjÔãjÕãjØãjÙãjÜãjÝãjàãjáãjäãjåãjèãjéãjìãjíãjðãjñãjôãjõãjøãjùãjüãjýãjäjäjäjäjäj äj äj äjäjäjäjäjäjäjäjäj äj!äj$äj%äj(äj)äj,äj-äj0äj1äj4äj5äj8äj9äj<äj=äj@äjAäjDäjEäjHäjIäjLäjMäjPäjQäjTäjUäjXäjYäj\äj]äj`äjaäjdäjeäjhäjiäjläjmäjpäjqäjtäjuäjxäjyäj|äj}äj€äj�äj„äj…äjˆäj‰äjŒäj�äj�äj‘äj”äj•äj˜äj™äjœäj�äj äj¡äj¤äj¥äj¨äj©äj¬äj­äj°äj±äj´äjµäj¸äj¹äj¼äj½äjÀäjÁäjÄäjÅäjÈäjÉäjÌäjÍäjÐäjÑäjÔäjÕäjØäjÙäjÜäjÝäjàäjáäjääjåäjèäjéäjìäjíäjðäjñäjôäjõäjøäjùäjüäjýäjåjåjåjåjåj åj åj åjåjåjåjåjåjåjåjåj åj!åj$åj%åj(åj)åj,åj-åj0åj1åj4åj5åj8åj9åj<åj=åj@åjAåjDåjEåjHåjIåjLåjMåjPåjQåjTåjUåjXåjYåj\åj]åj`åjaåjdåjeåjhåjiåjlåjmåjpåjqåjtåjuåjxåjyåj|åj}åj€åj�åj„åj…åjˆåj‰åjŒåj�åj�åj‘åj”åj•åj˜åj™åjœåj�åj åj¡åj¤åj¥åj¨åj©åj¬åj­åj°åj±åj´åjµåj¸åj¹åj¼åj½åjÀåjÁåjÄåjÅåjÈåjÉåjÌåjÍåjÐåjÑåjÔåjÕåjØåjÙåjÜåjÝåjàåjáåjäåjååjèåjéåjìåjíåjðåjñåjôåjõåjøåjùåjüåjýåjæjæjæjæjæj æj æj æjæjæjæjæjæjæjæjæj æj!æj$æj%æj(æj)æj,æj-æj0æj1æj4æj5æj8æj9æj<æj=æj@æjAæjDæjEæjHæjIæjLæjMæjPæjQæjTæjUæjXæjYæj\æj]æj`æjaæjdæjeæjhæjiæjlæjmæjpæjqæjtæjuæjxæjyæj|æj}æj€æj�æj„æj…æjˆæj‰æjŒæj�æj�æj‘æj”æj•æj˜æj™æjœæj�æj æj¡æj¤æj¥æj¨æj©æj¬æj­æj°æj±æj´æjµæj¸æj¹æj¼æj½æjÀæjÁæjÄæjÅæjÈæjÉæjÌæjÍæjÐæjÑæjÔæjÕæjØæjÙæjÜæjÝæjàæjáæjäæjåæjèæjéæjìæjíæjðæjñæjôæjõæjøæjùæjüæjýæjçjçjçjçjçj çj çj çjçjçjçjçjçjçjçjçj çj!çj$çj%çj(çj)çj,çj-çj0çj1çj4çj5çj8çj9çj<çj=çj@çjAçjDçjEçjHçjIçjLçjMçjPçjQçjTçjUçjXçjYçj\çj]çj`çjaçjdçjeçjhçjiçjlçjmçjpçjqçjtçjuçjxçjyçj|çj}çj€çj�çj„çj…çjˆçj‰çjŒçj�çj�çj‘çj”çj•çj˜çj™çjœçj�çj çj¡çj¤çj¥çj¨çj©çj¬çj­çj°çj±çj´çjµçj¸çj¹çj¼çj½çjÀçjÁçjÄçjÅçjÈçjÉçjÌçjÍçjÐçjÑçjÔçjÕçjØçjÙçjÜçjÝçjàçjáçjäçjåçjèçjéçjìçjíçjðçjñçjôçjõçjøçjùçjüçjýçjèjèjèjèjèj èj èj èjèjèjèjèjèjèjèjèj èj!èj$èj%èj(èj)èj,èj-èj0èj1èj4èj5èj8èj9èj<èj=èj@èjAèjDèjEèjHèjIèjLèjMèjPèjQèjTèjUèjXèjYèj\èj]èj`èjaèjdèjeèjhèjièjlèjmèjpèjqèjtèjuèjxèjyèj|èj}èj€èj�èj„èj…èjˆèj‰èjŒèj�èj�èj‘èj”èj•èj˜èj™èjœèj�èj èj¡èj¤èj¥èj¨èj©èj¬èj­èj°èj±èj´èjµèj¸èj¹èj¼èj½èjÀèjÁèjÄèjÅèjÈèjÉèjÌèjÍèjÐèjÑèjÔèjÕèjØèjÙèjÜèjÝèjàèjáèjäèjåèjèèjéèjìèjíèjðèjñèjôèjõèjøèjùèjüèjýèjéjéjéjéjéj éj éj éjéjéjéjéjéjéjéjéj éj!éj$éj%éj(éj)éj,éj-éj0éj1éj4éj5éj8éj9éj<éj=éj@éjAéjDéjEéjHéjIéjLéjMéjPéjQéjTéjUéjXéjYéj\éj]éj`éjaéjdéjeéjhéjiéjléjméjpéjqéjtéjuéjxéjyéj|éj}éj€éj�éj„éj…éjˆéj‰éjŒéj�éj�éj‘éj”éj•éj˜éj™éjœéj�éj éj¡éj¤éj¥éj¨éj©éj¬éj­éj°éj±éj´éjµéj¸éj¹éj¼éj½éjÀéjÁéjÄéjÅéjÈéjÉéjÌéjÍéjÐéjÑéjÔéjÕéjØéjÙéjÜéjÝéjàéjáéjäéjåéjèéjééjìéjíéjðéjñéjôéjõéjøéjùéjüéjýéjêjêjêjêjêj êj êj êjêjêjêjêjêjêjêjêj êj!êj$êj%êj(êj)êj,êj-êj0êj1êj4êj5êj8êj9êj<êj=êj@êjAêjDêjEêjHêjIêjLêjMêjPêjQêjTêjUêjXêjYêj\êj]êj`êjaêjdêjeêjhêjiêjlêjmêjpêjqêjtêjuêjxêjyêj|êj}êj€êj�êj„êj…êjˆêj‰êjŒêj�êj�êj‘êj”êj•êj˜êj™êjœêj�êj êj¡êj¤êj¥êj¨êj©êj¬êj­êj°êj±êj´êjµêj¸êj¹êj¼êj½êjÀêjÁêjÄêjÅêjÈêjÉêjÌêjÍêjÐêjÑêjÔêjÕêjØêjÙêjÜêjÝêjàêjáêjäêjåêjèêjéêjìêjíêjðêjñêjôêjõêjøêjùêjüêjýêjëjëjëjëjëj ëj ëj ëjëjëjëjëjëjëjëjëj ëj!ëj$ëj%ëj(ëj)ëj,ëj-ëj0ëj1ëj4ëj5ëj8ëj9ëj<ëj=ëj@ëjAëjDëjEëjHëjIëjLëjMëjPëjQëjTëjUëjXëjYëj\ëj]ëj`ëjaëjdëjeëjhëjiëjlëjmëjpëjqëjtëjuëjxëjyëj|ëj}ëj€ëj�ëj„ëj…ëjˆëj‰ëjŒëj�ëj�ëj‘ëj”ëj•ëj˜ëj™ëjœëj�ëj ëj¡ëj¤ëj¥ëj¨ëj©ëj¬ëj­ëj°ëj±ëj´ëjµëj¸ëj¹ëj¼ëj½ëj !j!!j$!j%!j(!j)!j,!j-!j0!j1!j4!j5!j8!j9!jìj?ìjBìjCìjFìjGìjJìjKìjNìjOìjRìjSìjVìjWìjZìj[ìj^ìj_ìjbìjcìjfìjgìjjìjkìjnìjoìjrìjsìjvìjwìjzìj{ìj~ìjìj‚ìjƒìj†ìj‡ìjŠìj‹ìjŽìj�ìj’ìj“ìj–ìj—ìjšìj›ìjžìjŸìj¢ìj£ìj¦ìj§ìjªìj«ìj®ìj¯ìj²ìj³ìj¶ìj·ìjºìj»ìj¾ìj¿ìjÂìjÃìjÆìjÇìjÊìjËìjÎìjÏìjÒìjÓìjÖìj×ìjÚìjÛìjÞìjßìjâìjãìjæìjçìjêìjëìjîìjïìjòìjóìjöìj÷ìjúìjûìjþìjÿìjíjíjíjíj íj íjíjíjíjíjíjíjíjíjíjíj"íj#íj&íj'íj*íj+íj.íj/íj2íj3íj6íj7íj:íj;íj>íj?íjBíjCíjFíjGíjJíjKíjNíjOíjRíjSíjVíjWíjZíj[íj^íj_íjbíjcíjfíjgíjjíjkíjníjoíjríjsíjvíjwíjzíj{íj~íjíj‚íjƒíj†íj‡íjŠíj‹íjŽíj�íj’íj“íj–íj—íjšíj›íjžíjŸíj¢íj£íj¦íj§íjªíj«íj®íj¯íj²íj³íj¶íj·íjºíj»íj¾íj¿íjÂíjÃíjÆíjÇíjÊíjËíjÎíjÏíjÒíjÓíjÖíj×íjÚíjÛíjÞíjßíjâíjãíjæíjçíjêíjëíjîíjïíjòíjóíjöíj÷íjúíjûíjþíjÿíjîjîjîjîj îj îjîjîjîjîjîjîjîjîjîjîj"îj#îj&îj'îj*îj+îj.îj/îj2îj3îj6îj7îj:îj;îj>îj?îjBîjCîjFîjGîjJîjKîjNîjOîjRîjSîjVîjWîjZîj[îj^îj_îjbîjcîjfîjgîjjîjkîjnîjoîjrîjsîjvîjwîjzîj{îj~îjîj‚îjƒîj†îj‡îjŠîj‹îjŽîj�îj’îj“îj–îj—îjšîj›îjžîjŸîj¢îj£îj¦îj§îjªîj«îj®îj¯îj²îj³îj¶îj·îjºîj»îj¾îj¿îjÂîjÃîjÆîjÇîjÊîjËîjÎîjÏîjÒîjÓîjÖîj×îjÚîjÛîjÞîjßîjâîjãîjæîjçîjêîjëîjîîjïîjòîjóîjöîj÷îjúîjûîjþîjÿîjïjïjïjïj ïj ïjïjïjïjïjïjïjïjïjïjïj"ïj#ïj&ïj'ïj*ïj+ïj.ïj/ïj2ïj3ïj6ïj7ïj:ïj;ïj>ïj?ïjBïjCïjFïjGïjJïjKïjNïjOïjRïjSïjVïjWïjZïj[ïj^ïj_ïjbïjcïjfïjgïjjïjkïjnïjoïjrïjsïjvïjwïjzïj{ïj~ïjïj‚ïjƒïj†ïj‡ïjŠïj‹ïjŽïj�ïj’ïj“ïj–ïj—ïjšïj›ïjžïjŸïj¢ïj£ïj¦ïj§ïjªïj«ïj®ïj¯ïj²ïj³ïj¶ïj·ïjºïj»ïj¾ïj¿ïjÂïjÃïjÆïjÇïjÊïjËïjÎïjÏïjÒïjÓïjÖïj×ïjÚïjÛïjÞïjßïjâïjãïjæïjçïjêïjëïjîïjïïjòïjóïjöïj÷ïjúïjûïjþïjÿïjðjðjðjðj ðj ðjðjðjðjðjðjðjðjðjðjðj"ðj#ðj&ðj'ðj*ðj+ðj.ðj/ðj2ðj3ðj6ðj7ðj:ðj;ðj>ðj?ðjBðjCðjFðjGðjJðjKðjNðjOðjRðjSðjVðjWðjZðj[ðj^ðj_ðjbðjcðjfðjgðjjðjkðjnðjoðjrðjsðjvðjwðjzðj{ðj~ðjðj‚ðjƒðj†ðj‡ðjŠðj‹ðjŽðj�ðj’ðj“ðj–ðj—ðjšðj›ðjžðjŸðj¢ðj£ðj¦ðj§ðjªðj«ðj®ðj¯ðj²ðj³ðj¶ðj·ðjºðj»ðj¾ðj¿ðjÂðjÃðjÆðjÇðjÊðjËðjÎðjÏðjÒðjÓðjÖðj×ðjÚðjÛðjÞðjßðjâðjãðjæðjçðjêðjëðjîðjïðjòðjóðjöðj÷ðjúðjûðjþðjÿðjñjñjñjñj ñj ñjñjñjñjñjñjñjñjñjñjñj"ñj#ñj&ñj'ñj*ñj+ñj.ñj/ñj2ñj3ñj6ñj7ñj:ñj;ñj>ñj?ñjBñjCñjFñjGñjJñjKñjNñjOñjRñjSñjVñjWñjZñj[ñj^ñj_ñjbñjcñjfñjgñjjñjkñjnñjoñjrñjsñjvñjwñjzñj{ñj~ñjñj‚ñjƒñj†ñj‡ñjŠñj‹ñjŽñj�ñj’ñj“ñj–ñj—ñjšñj›ñjžñjŸñj¢ñj£ñj¦ñj§ñjªñj«ñj®ñj¯ñj²ñj³ñj¶ñj·ñjºñj»ñj¾ñj¿ñjÂñjÃñjÆñjÇñjÊñjËñjÎñjÏñjÒñjÓñjÖñj×ñjÚñjÛñjÞñjßñjâñjãñjæñjçñjêñjëñjîñjïñjòñjóñjöñj÷ñjúñjûñjþñjÿñjòjòjòjòj òj òjòjòjòjòjòjòjòjòjòjòj"òj#òj&òj'òj*òj+òj.òj/òj2òj3òj6òj7òj:òj;òj>òj?òjBòjCòjFòjGòjJòjKòjNòjOòjRòjSòjVòjWòjZòj[òj^òj_òjbòjcòjfòjgòjjòjkòjnòjoòjròjsòjvòjwòjzòj{òj~òjòj‚òjƒòj†òj‡òjŠòj‹òjŽòj�òj’òj“òj–òj—òjšòj›òjžòjŸòj¢òj£òj¦òj§òjªòj«òj®òj¯òj²òj³òj¶òj·òjºòj»òj¾òj¿òjÂòjÃòjÆòjÇòjÊòjËòjÎòjÏòjÒòjÓòjÖòj×òjÚòjÛòjÞòjßòjâòjãòjæòjçòjêòjëòjîòjïòjòòjóòjöòj÷òjúòjûòjþòjÿòjójójójój ój ójójójójójójójójójójój"ój#ój&ój'ój*ój+ój.ój/ój2ój3ój6ój7ój:ój;ój>ój?ójBójCójFójGójJójKójNójOójRójSójVójWójZój[ój^ój_ójbójcójfójgójjójkójnójoójrójsójvójwójzój{ój~ójój‚ójƒój†ój‡ójŠój‹ójŽój�ój’ój“ój–ój—ójšój›ójžójŸój¢ój£ój¦ój§ójªój«ój®ój¯ój²ój³ój¶ój·ójºój»ój¾ój¿ójÂójÃójÆójÇójÊójËójÎójÏójÒójÓójÖój×ójÚójÛójÞójßójâójãójæójçójêójëójîójïójòójóójöój÷ójúójûójþójÿójôjôjôjôj ôj ôjôjôjôjôjôjôjôjôjôjôj"ôj#ôj&ôj'ôj*ôj+ôj.ôj/ôj2ôj3ôj6ôj7ôj:ôj;ôj>ôj?ôjBôjCôjFôjGôjJôjKôjNôjOôjRôjSôjVôjWôjZôj[ôj^ôj_ôjbôjcôjfôjgôjjôjkôjnôjoôjrôjsôjvôjwôjzôj{ôj~ôjôj‚ôjƒôj†ôj‡ôjŠôj‹ôjŽôj�ôj’ôj“ôj–ôj—ôjšôj›ôjžôjŸôj¢ôj£ôj¦ôj§ôjªôj«ôj®ôj¯ôj²ôj³ôj¶ôj·ôjºôj»ôj¾ôj¿ôjÂôjÃôjÆôjÇôjÊôjËôjÎôjÏôjÒôjÓôjÖôj×ôjÚôjÛôjÞôjßôjâôjãôjæôjçôjêôjëôjîôjïôjòôjóôjöôj÷ôjúôjûôjþôjÿôjõjõjõjõj õj õjõjõjõjõjõjõjõjõjõjõj"õj#õj&õj'õj*õj+õj.õj/õj2õj3õj6õj7õj:õj;õj>õj?õjBõjCõjFõjGõjJõjKõjNõjOõjRõjSõjVõjWõjZõj[õj^õj_õjbõjcõjfõjgõjjõjkõjnõjoõjrõjsõjvõjwõjzõj{õj~õjõj‚õjƒõj†õj‡õjŠõj‹õjŽõj�õj’õj“õj–õj—õjšõj›õjžõjŸõj¢õj£õj¦õj§õjªõj«õj®õj¯õj²õj³õj¶õj·õjºõj»õj¾õj¿õjÂõjÃõjÆõjÇõjÊõjËõjÎõjÏõjÒõjÓõjÖõj×õjÚõjÛõjÞõjßõjâõjãõjæõjçõjêõjëõjîõjïõjòõjóõjöõj÷õjúõjûõjþõjÿõjöjöjöjöj öj öjöjöjöjöjöjöjöjöjöjöj"öj#öj&öj'öj*öj+öj.öj/öj2öj3öj6öj7öj:öj;öj>öj?öjBöjCöjFöjGöjJöjKöjNöjOöjRöjSöjVöjWöjZöj[öj^öj_öjböjcöjföjgöjjöjköjnöjoöjröjsöjvöjwöjzöj{öj~öjöj‚öjƒöj†öj‡öjŠöj‹öjŽöj�öj’öj“öj–öj—öjšöj›öjžöjŸöj¢öj£öj¦öj§öjªöj«öj®öj¯öj²öj³öj¶öj·öjºöj»öj¾öj¿öjÂöjÃöjÆöjÇöjÊöjËöjÎöjÏöjÒöjÓöjÖöj×öjÚöjÛöjÞöjßöjâöjãöjæöjçöjêöjëöjîöjïöjòöjóöjööj÷öjúöjûöjþöjÿöj÷j÷j÷j÷j ÷j ÷j÷j÷j÷j÷j÷j÷j÷j÷j÷j÷j"÷j#÷j&÷j'÷j*÷j+÷j.÷j/÷j2÷j3÷j6÷j7÷j:÷j;÷j>÷j?÷jB÷jC÷jF÷jG÷jJ÷jK÷jN÷jO÷jR÷jS÷jV÷jW÷jZ÷j[÷j^÷j_÷jb÷jc÷jf÷jg÷jj÷jk÷jn÷jo÷jr÷js÷jv÷jw÷jz÷j{÷j~÷j÷j‚÷jƒ÷j†÷j‡÷jŠ÷j‹÷jŽ÷j�÷j’÷j“÷j–÷j—÷jš÷j›÷jž÷jŸ÷j¢÷j£÷j¦÷j§÷jª÷j«÷j®÷j¯÷j²÷j³÷j¶÷j·÷jº÷j»÷j¾÷j¿÷jÂ÷jÃ÷jÆ÷jÇ÷jÊ÷jË÷jÎ÷jÏ÷jÒ÷jÓ÷jÖ÷j×÷jÚ÷jÛ÷jÞ÷jß÷jâ÷jã÷jæ÷jç÷jê÷jë÷jî÷jï÷jò÷jó÷jö÷j÷÷jú÷jû÷jþ÷jÿ÷jøjøjøjøj øj øjøjøjøjøjøjøjøjøjøjøj"øj#øj&øj'øj*øj+øj.øj/øj2øj3øj6øj7øj:øj;øj>øj?øjBøjCøjFøjGøjJøjKøjNøjOøjRøjSøjVøjWøjZøj[øj^øj_øjbøjcøjføjgøjjøjkøjnøjoøjrøjsøjvøjwøjzøj{øj~øjøj‚øjƒøj†øj‡øjŠøj‹øjŽøj�øj’øj“øj–øj—øjšøj›øjžøjŸøj¢øj£øj¦øj§øjªøj«øj®øj¯øj²øj³øj¶øj·øjºøj»øj¾øj¿øjÂøjÃøjÆøjÇøjÊøjËøjÎøjÏøjÒøjÓøjÖøj×øjÚøjÛøjÞøjßøjâøjãøjæøjçøjêøjëøjîøjïøjòøjóøjöøj÷øjúøjûøjþøjÿøjùjùjùjùj ùj ùjùjùjùjùjùjùjùjùjùjùj"ùj#ùj&ùj'ùj*ùj+ùj.ùj/ùj2ùj3ùj6ùj7ùj:ùj;ùj>ùj?ùjBùjCùjFùjGùjJùjKùjNùjOùjRùjSùjVùjWùjZùj[ùj^ùj_ùjbùjcùjfùjgùjjùjkùjnùjoùjrùjsùjvùjwùjzùj{ùj~ùjùj‚ùjƒùj†ùj‡ùjŠùj‹ùjŽùj�ùj’ùj“ùj–ùj—ùjšùj›ùjžùjŸùj¢ùj£ùj¦ùj§ùjªùj«ùj®ùj¯ùj²ùj³ùj¶ùj·ùjºùj»ùj¾ùj¿ùjÂùjÃùjÆùjÇùjÊùjËùjÎùjÏùjÒùjÓùjÖùj×ùjÚùjÛùjÞùjßùjâùjãùjæùjçùjêùjëùjîùjïùjòùjóùjöùj÷ùjúùjûùjþùjÿùjújújújúj új újújújújújújújújújújúj"új#új&új'új*új+új.új/új2új3új6új7új:új;új>új?újBújCújFújGújJújKújNújOújRújSújVújWújZúj[új^új_újbújcújfújgújjújkújnújoújrújsújvújwújzúj{új~újúj‚újƒúj†új‡újŠúj‹újŽúj�új’új“új–új—újšúj›újžújŸúj¢új£új¦új§újªúj«új®új¯új²új³új¶új·újºúj»új¾új¿újÂújÃújÆújÇújÊújËújÎújÏújÒújÓújÖúj×újÚújÛújÞújßújâújãújæújçújêújëújîújïújòújóújöúj÷újúújûújþújÿújûjûjûjûj ûj ûjûjûjûjûjûjûjûjûjûjûj"ûj#ûj&ûj'ûj*ûj+ûj.ûj/ûj2ûj3ûj6ûj7ûj:ûj;ûj>ûj?ûjBûjCûjFûjGûjJûjKûjNûjOûjRûjSûjVûjWûjZûj[ûj^ûj_ûu(jbûjcûjfûjgûjjûjkûjnûjoûjrûjsûjvûjwûjzûj{ûj~ûjûj‚ûjƒûj†ûj‡ûjŠûj‹ûjŽûj�ûj’ûj“ûj–ûj—ûjšûj›ûjžûjŸûj¢ûj£ûj¦ûj§ûjªûj«ûj®ûj¯ûj²ûj³ûj¶ûj·ûjºûj»ûj¾ûj¿ûjÂûjÃûjÆûjÇûjÊûjËûjÎûjÏûjÒûjÓûjÖûj×ûjÚûjÛûjÞûjßûjâûjãûjæûjçûjêûjëûjîûjïûjòûjóûjöûj÷ûjúûjûûjþûjÿûjüjüjüjüj üj üjüjüjüjüjüjüjüjüjüjüj"üj#üj&üj'üj*üj+üj.üj/üj2üj3üj6üj7üj:üj;üj>üj?üjBüjCüjFüjGüjJüjKüjNüjOüjRüjSüjVüjWüjZüj[üj^üj_üjbüjcüjfüjgüjjüjküjnüjoüjrüjsüjvüjwüjzüj{üj~üjüj‚üjƒüj†üj‡üjŠüj‹üjŽüj�üj’üj“üj–üj—üjšüj›üjžüjŸüj¢üj£üj¦üj§üjªüj«üj®üj¯üj²üj³üj¶üj·üjºüj»üj¾üj¿üjÂüjÃüjÆüjÇüjÊüjËüjÎüjÏüjÒüjÓüjÖüj×üjÚüjÛüjÞüjßüjâüjãüjæüjçüjêüjëüjîüjïüjòüjóüjöüj÷üjúüjûüjþüjÿüjýjýjýjýj ýj ýjýjýjýjýjýjýjýjýjýjýj"ýj#ýj&ýj'ýj*ýj+ýj.ýj/ýj2ýj3ýj6ýj7ýj:ýj;ýj>ýj?ýjBýjCýjFýjGýjJýjKýjNýjOýjRýjSýjVýjWýjZýj[ýj^ýj_ýjbýjcýjfýjgýjjýjkýjnýjoýjrýjsýjvýjwýjzýj{ýj~ýjýj‚ýjƒýj†ýj‡ýjŠýj‹ýjŽýj�ýj’ýj“ýj–ýj—ýjšýj›ýjžýjŸýj¢ýj£ýj¦ýj§ýjªýj«ýj®ýj¯ýj²ýj³ýj¶ýj·ýjºýj»ýj¾ýj¿ýjÂýjÃýjÆýjÇýjÊýjËýjÎýjÏýjÒýjÓýjÖýj×ýjÚýjÛýjÞýjßýjâýjãýjæýjçýjêýjëýjîýjïýjòýjóýjöýj÷ýjúýjûýjþýjÿýjþjþjþjþj þj þjþjþjþjþjþjþjþjþjþjþj"þj#þj&þj'þj*þj+þj.þj/þj2þj3þj6þj7þj:þj;þj>þj?þjBþjCþjFþjGþjJþjKþjNþjOþjRþjSþjVþjWþjZþj[þj^þj_þjbþjcþjfþjgþjjþjkþjnþjoþjrþjsþjvþjwþjzþj{þj~þjþj‚þjƒþj†þj‡þjŠþj‹þjŽþj�þj’þj“þj–þj—þjšþj›þjžþjŸþj¢þj£þj¦þj§þjªþj«þj®þj¯þj²þj³þj¶þj·þjºþj»þj¾þj¿þjÂþjÃþjÆþjÇþjÊþjËþjÎþjÏþjÒþjÓþjÖþj×þjÚþjÛþjÞþjßþjâþjãþjæþjçþjêþjëþjîþjïþjòþjóþjöþj÷þjúþjûþjþþjÿþjÿjÿjÿjÿj ÿj ÿjÿjÿjÿjÿjÿjÿjÿjÿjÿjÿj"ÿj#ÿj&ÿj'ÿj*ÿj+ÿj.ÿj/ÿj2ÿj3ÿj6ÿj7ÿj:ÿj;ÿj>ÿj?ÿjBÿjCÿjFÿjGÿjJÿjKÿjNÿjOÿjRÿjSÿjVÿjWÿjZÿj[ÿj^ÿj_ÿjbÿjcÿjfÿjgÿjjÿjkÿjnÿjoÿjrÿjsÿjvÿjwÿjzÿj{ÿj~ÿjÿj‚ÿjƒÿj†ÿj‡ÿjŠÿj‹ÿjŽÿj�ÿj’ÿj“ÿj–ÿj—ÿjšÿj›ÿjžÿjŸÿj¢ÿj£ÿj¦ÿj§ÿjªÿj«ÿj®ÿj¯ÿj²ÿj³ÿj¶ÿj·ÿjºÿj»ÿj¾ÿj¿ÿjÂÿjÃÿjÆÿjÇÿjÊÿjËÿjÎÿjÏÿjÒÿjÓÿjÖÿj×ÿjÚÿjÛÿjÞÿjßÿjâÿjãÿjæÿjçÿjêÿjëÿjîÿjïÿjòÿjóÿjöÿj÷ÿjúÿjûÿjþÿjÿÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿj j j j j j j j j j j j j j j j j" j# j& j' j* j+ j. j/ j2 j3 j6 j7 j: j; j> j? jB jC jF jG jJ jK jN jO jR jS jV jW jZ j[ j^ j_ jb jc jf jg jj jk jn jo jr js jv jw jz j{ j~ j j‚ jƒ j† j‡ jŠ j‹ jŽ j� j’ j“ j– j— jš j› jž jŸ j¢ j£ j¦ j§ jª j« j® j¯ j² j³ j¶ j· jº j» j¾ j¿ j jà jÆ jÇ jÊ jË jÎ jÏ jÒ jÓ jÖ j× jÚ jÛ jÞ jß jâ jã jæ jç jê jë jî jï jò jó jö j÷ jú jû jþ jÿ j j j j j j j j j j j j j j j j j" j# j& j' j* j+ j. j/ j2 j3 j6 j7 j: j; j> j? jB jC jF jG jJ jK jN jO jR jS jV jW jZ j[ j^ j_ jb jc jf jg jj jk jn jo jr js jv jw jz j{ j~ j j‚ jƒ j† j‡ jŠ j‹ jŽ j� j’ j“ j– j— jš j› jž jŸ j¢ j£ j¦ j§ jª j« j® j¯ j² j³ j¶ j· jº j» j¾ j¿ j jà jÆ jÇ jÊ jË jÎ jÏ jÒ jÓ jÖ j× jÚ jÛ jÞ jß jâ jã jæ jç jê jë jî jï jò jó jö j÷ jú jû jþ jÿ u(j j j j j j j j j j j j j j j j j" j# j& j' j* j+ j. j/ j2 j3 j6 j7 j: j; j> j? jB jC jF jG jJ jK jN jO jR jS jV jW jZ j[ j^ j_ jb jc jf jg jj jk jn jo jr js jv jw jz j{ j~ j j‚ jƒ j† j‡ jŠ j‹ jŽ j� j’ j“ j– j— jš j› jž jŸ j¢ j£ j¦ j§ jª j« j® j¯ j² j³ j¶ j· jº j» j¾ j¿ j jà jÆ jÇ jÊ jË jÎ jÏ jÒ jÓ jÖ j× jÚ jÛ jÞ jß jâ jã jæ jç jê jë jî jï jò jó jö j÷ jú jû jþ jÿ j j j j j j j j j j j j j j j j j" j# j& j' j* j+ j. j/ j2 j3 j6 j7 j: j; j> j? jB jC jF jG jJ jK jN jO jR jS jV jW jZ j[ j^ j_ jb jc jf jg jj jk jn jo jr js jv jw jz j{ j~ j j‚ jƒ j† j‡ jŠ j‹ jŽ j� j’ j“ j– j— jš j› jž jŸ j¢ j£ j¦ j§ jª j« j® j¯ j² j³ j¶ j· jº j» j¾ j¿ j jà jÆ jÇ jÊ jË jÎ jÏ jÒ jÓ jÖ j× jÚ jÛ jÞ jß jâ jã jæ jç jê jë jî jï jò jó jö j÷ jú jû jþ jÿ j j j j j j j j j j j j j j j j j" j# j& j' j* j+ j. j/ j2 j3 j6 j7 j: j; j> j? jB jC jF jG jJ jK jN jO jR jS jV jW jZ j[ j^ j_ jb jc jf jg jj jk jn jo jr js jv jw jz j{ j~ j j‚ jƒ j† j‡ jŠ j‹ jŽ j� j’ j“ j– j— jš j› jž jŸ j¢ j£ j¦ j§ jª j« j® j¯ j² j³ j¶ j· jº j» j¾ j¿ j jà jÆ jÇ jÊ jË jÎ jÏ jÒ jÓ jÖ j× jÚ jÛ jÞ jß jâ jã jæ jç jê jë jî jï jò jó jö j÷ jú jû jþ jÿ jjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCj>%j?%jB%jC%jF%jG%jJ%jK%jN%jO%jR%jS%jV%jW%jZ%j[%j^%j_%jb%jc%jf%jg%jj%jk%jn%jo%jr%js%jv%jw%jz%j{%j~%j%j‚%jƒ%j†%j‡%jŠ%j‹%jŽ%j�%j’%j“%j–%j—%jš%j›%jž%jŸ%j¢%j£%j¦%j§%jª%j«%j®%j¯%j²%j³%j¶%j·%jº%j»%j¾%j¿%jÂ%jÃ%jÆ%jÇ%jÊ%jË%jÎ%jÏ%jÒ%jÓ%jÖ%j×%jÚ%jÛ%jÞ%jß%jâ%jã%jæ%jç%jê%jë%jî%jï%jò%jó%jö%j÷%jú%jû%jþ%jÿ%j&j&j&j&j &j &j&j&j&j&j&j&j&j&j&j&j"&j#&j&&j'&j*&j+&j.&j/&j2&j3&j6&j7&j:&j;&j>&j?&jB&jC&jF&jG&jJ&jK&jN&jO&jR&jS&jV&jW&jZ&j[&j^&j_&jb&jc&jf&jg&jj&jk&jn&jo&jr&js&jv&jw&jz&j{&j~&j&j‚&jƒ&j†&j‡&jŠ&j‹&jŽ&j�&j’&j“&j–&j—&jš&j›&jž&jŸ&j¢&j£&j¦&j§&jª&j«&j®&j¯&j²&j³&ujF}”(jHjIjLjMjPjQjTjUjXjYj\j]j`jajdjejhjijljmjpjqjtjujxjyj|j}j€j�j„j…jˆj‰jŒj�j�j‘j”j•j˜j™jœj�j j¡j¤j¥j¨j©j¬j­j°j±j´jµj¸j¹j¼j½jÀjÁjÄjÅjÈjÉjÌjÍjÐjÑjÔjÕjØjÙujÜ}”(jÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;j>j?jBjCjFjGjJjKjNjOjRjSjVjWjZj[j^j_jbjcjfjgjjjkjnjojrjsjvjwjzj{j~jj‚jƒj†j‡jŠj‹jŽj�j’j“j–j—jšj›jžjŸj¢j£j¦j§jªj«j®j¯j²j³j¶j·jºj»j¾j¿jÂjÃjÆjÇjÊjËjÎjÏjÒjÓjÖj×jÚjÛjÞjßjâjãjæjçjêjëjîjïjòjójöj÷jújûjþjÿjjjjj j jjjjjjjjjjj"j#j&j'j*j+j.j/j2j3j6j7j:j;uj>}”(j@jAjDjEjHjIjLjMjPjQjTjUjXjYj\j]j`jajdjejhjijljmjpjqjtjujxjyj|j}j€j�j„j…jˆj‰jŒj�j�j‘j”j•j˜j™jœj�j j¡j¤j¥j¨j©j¬j­j°j±j´jµj¸j¹j¼j½jÀjÁjÄjÅjÈjÉjÌjÍjÐjÑjÔjÕjØjÙjÜjÝjàjájäjåjèjéjìjíjðjñjôjõjøjùjüjýjjjjjj j j jjjjjjjjj j!j$j%j(j)j,j-j0j1j4j5j8j9j<j=j@jAjDjEjHjIjLjMjPjQjTjUjXjYj\j]j`jajdjejhjijljmjpjqjtjujxjyj|j}j€j�j„j…jˆj‰jŒj�j�j‘j”j•j˜j™jœj�j j¡j¤j¥j¨j©j¬j­j°j±j´jµj¸j¹j¼j½jÀjÁjÄjÅjÈjÉjÌjÍjÐjÑjÔjÕjØjÙjÜjÝjàjájäjåjèjéjìjíjðjñjôjõjøjùjüjýjjjjjj j j jjjjjjjjj j!j$j%j(j)j,j-j0j1j4j5j8j9j<j=j@jAjDjEjHjIjLjMjPjQjTjUjXjYj\j]j`jajdjejhjijljmjpjqjtjujxjyj|j}j€j�j„j…jˆj‰jŒj�j�j‘j”j•j˜j™jœj�j j¡j¤j¥j¨j©j¬j­j°j±j´jµj¸j¹j¼j½jÀjÁjÄjÅjÈjÉjÌjÍjÐjÑjÔjÕjØjÙjÜjÝjàjájäjåjèjéjìjíjðjñj(j(ujô}”(jöj÷jûjüjjjjj j jjjjjjjjj#j$j(j)j-j.j2j3j7j8j<j=jAjBjFjGjJjKjOjPjTjUjYjZj]j^jbjcjfjgjkjljpjqjujvjzj{jj€j„j…j‰jŠjŽj�j“j”j˜j™j�jžj¢j£j§j¨j¬j­j±j²j¶j·j»j¼jÀjÁjÅjÆjÊjËjÏjÐjÔjÕjÙjÚjÞjßjãjäjèjéjíjîjòjój÷jøjüjýjjjjj j jjjjjjjjj#j$j(j)j-j.j2j3j7j8j<j=jAjBjFjGjKjLjPjQjUjVjZj[j_j`jdjejijjjnjojsjtjxjyj}j~j‚jƒj‡jˆjŒj�j‘j’j–j—j›jœj j¡j¥j¦jªj«j¯j°j´jµj¹jºj¾j¿jÃjÄjÇjÈjÌjÍjÑjÒjÕjÖjÚjÛjßjàjäjåjéjêjîjïjójôjøjùjýjþjjjjj j jjjjjjj j!j%j&j*j+j/j0j3j4j8j9j=j>jBjCjFjGjJjKjNjOjSjTjWjXj[j\j_j`jdjejhjijljmjpjqjujvjzj{jj€jƒj„jˆj‰j�jŽj’j“j—j˜jœj�j¡j¢j¥j¦jªj«j¯j°j´jµj¹jºj¾j¿jÂjÃjÇjÈjÌjÍjÑjÒjÖj×jÛjÜjàjájåjæjêjëjïjðjôjõjùjújþjÿjjjj j jjjjjjjj j!j$j%j)j*j.j/j3j4j8j9j=j>jBjCjGjHjLjMjQjRjVjWj[j\j`jajejfjjjkjojpjsjtjwjxj|j}j�j‚j†j‡j‹jŒj�j‘j•j–jšj›jŸj j¤j¥j©jªj®j¯j³j´j¸j¹j½j¾jÂjÃjÇjÈjÌjÍjÑjÒjÖj×jÛjÜjàjájåjæjêjëjïjðjôjõjùjújþjÿjjjj j jjjjjjjj j!j%j&j*j+j/j0j3j4j8j9j=j>jBjCjGjHjLjMjQjRjVjWj[j\j`jajdjejijjjnjojsjtjxjyj}j~j‚jƒj‡jˆjŒj�j‘j’j–j—j›jœjŸj j¤j¥j©jªj®j¯j³j´j¸j¹j½j¾jÂjÃjÇjÈjÌjÍjÑjÒjÖj×jÚjÛjÞjßjãjäjèjéjíjîjòjój÷jøjüjýjjjjj j jjjjjjjjj#j$j(j)j-j.j2j3j7j8j;j<j@jAjEjFjJjKjOjPjTjUjXjYj]j^jbjcjgjhjljmjqjrjvjwj{j|j€j�j…j†j‰jŠjŽj�j“j”j˜j™j�jžj¢j£j§j¨j¬j­j±j²j¶j·jºj»j¿jÀjÄjÅjÉjÊjÎjÏjÓjÔjØjÙjÝjÞjâjãjçjèjìjíjñjòjöj÷jûjüjjjjj j jjjjjjjjj"j#j'j(j+j,j0j1j5j6j:j;j?j@jDjEjIjJjNjOjSjTjXjYj]j^jbjcjgjhjljmjqjrjvjwj{j|j€j�j…j†jŠj‹j�j�j”j•j™jšjžjŸj£j¤j¨j©j­j®j²j³j·j¸j¼j½jÁjÂjÆjÇjËjÌjÏjÐjÔjÕjÙjÚjÞjßjãjäjèjéjìjíjðjñjõjöjújûjÿj j j j j j j j j j j j j j" j# j' j( j, j- j1 j2 j6 j7 j; j< j@ jA jE jF jJ jK jO jP jT jU jY jZ j^ j_ jc jd jg jh jl jm jq jr jv jw j{ j| j€ j� j… j† jŠ j‹ j� j� j” j• j™ jš jž jŸ j£ j¤ j¨ j© j¬ j­ j± j² j¶ j· j» j¼ jÀ jÁ jÅ jÆ jÊ jË jÏ jÐ jÔ jÕ jÙ jÚ jÞ jß jâ jã jç jè jë jì jð jñ jõ jö jú jû jÿ j!j!j!j !j !j!j!j!j!j!j!j!j!j!!j"!j%!j&!j*!j+!j/!j0!j4!j5!j9!j:!j=!j>!jB!jC!jG!jH!jL!jM!jQ!jR!jV!jW!j[!j\!j`!ja!je!jf!jj!jk!jo!jp!jt!ju!jx!jy!j}!j~!j‚!jƒ!j‡!jˆ!jŒ!j�!j‘!j’!j–!j—!j›!jœ!j !j¡!j¥!j¦!j©!jª!j®!j¯!j³!j´!j¸!j¹!j½!j¾!jÂ!jÃ!jÇ!jÈ!jÌ!jÍ!jÑ!jÒ!jÖ!j×!jÛ!jÜ!jà!já!jå!jæ!jê!jë!jï!jð!jô!jõ!jù!jú!jþ!jÿ!j"j"j"j "j "j"j"j"j"j"j"j"j!"j""j&"j'"j+"j,"j0"j1"j5"j6"j:"j;"j?"j@"jD"jE"jI"jJ"jN"jO"jS"jT"jX"jY"j]"j^"jb"jc"jg"jh"jl"jm"jq"jr"jv"jw"j{"j|"j€"j�"j…"j†"jŠ"j‹"j�"j�"j”"j•"j™"jš"jž"jŸ"j£"j¤"j¨"j©"j­"j®"j²"j³"j·"j¸"j¼"j½"jÁ"jÂ"jÆ"jÇ"jË"jÌ"jÐ"jÑ"jÕ"jÖ"jÚ"jÛ"jß"jà"jä"jå"jé"jê"jî"jï"jó"jô"jø"jù"jý"jþ"j#j#j#j#j #j #j#j#j#j#j#j#j#j #j$#j%#j)#j*#j.#j/#j3#j4#j8#j9#j=#j>#jB#jC#jF#jG#jK#jL#jP#jQ#jU#jV#jZ#j[#j_#j`#jd#je#ji#jj#jn#jo#jr#js#jw#jx#j|#j}#j�#j‚#j†#j‡#j‹#jŒ#j�#j‘#j•#j–#jš#j›#jŸ#j #j¤#j¥#j©#jª#j®#j¯#j³#j´#j¸#j¹#j½#j¾#jÂ#jÃ#jÇ#jÈ#jÌ#jÍ#jÑ#jÒ#jÖ#j×#jÛ#jÜ#jß#jà#jä#jå#jé#jê#jî#jï#jó#jô#jø#jù#jý#jþ#j$j$j$j$j $j $j$j$j$j$j$j$j $j!$j%$j&$j*$j+$j/$j0$j4$j5$j9$j:$j>$j?$jC$jD$jH$jI$jM$jN$jR$jS$jW$jX$j\$j]$j`$ja$je$jf$jj$jk$jo$jp$jt$ju$jy$jz$j~$j$jƒ$j„$jˆ$j‰$j�$jŽ$j’$j“$j—$j˜$jœ$j�$j¡$j¢$j¥$j¦$jª$j«$j¯$j°$j´$jµ$j¹$jº$j¾$j¿$jÃ$jÄ$jÈ$jÉ$jÍ$jÎ$jÒ$jÓ$j×$jØ$jÛ$jÜ$jà$já$jå$jæ$jé$jê$jî$jï$jó$jô$jø$jù$jý$jþ$j%j%j%j%j %j %j%j%j%j%j%j%j%j%j#%j$%j(%j)%j-%j.%j1%j2%j5%j6%j9%j:%j=%j>%jA%jB%jE%jF%jI%jJ%jM%jN%jQ%jR%jU%jV%jY%jZ%j^%j_%jc%jd%jh%ji%jm%jn%jr%js%jw%jx%j|%j}%j�%j‚%j…%j†%jŠ%j‹%j�%j�%j”%j•%j™%jš%jž%jŸ%j£%j¤%j¨%j©%j­%j®%j²%j³%j·%j¸%j¼%j9'jÁ%jÂ%jÆ%jÇ%jË%jÌ%jÏ%jÐ%jÔ%jÕ%jÙ%jÚ%jÞ%jß%jã%j>'jè%jé%jí%jî%jò%jó%j÷%jø%jü%jý%j&j&j&j&j &j &j&j&j&j&j&j&j&j &j#&j$&j'&j(&j,&j-&j0&j1&j5&j6&j:&j;&j?&j@&jD&jE&jH&jI&jM&jN&jR&jS&jW&jX&j\&j]&ja&jb&jf&jg&jk&jl&jp&jq&ju&jv&jz&j{&j&j€&j„&j…&j‰&jŠ&jŽ&j�&j“&j”&j˜&j™&jœ&j�&j¡&j¢&j¦&j§&j«&j¬&j°&j±&jµ&j¶&jº&j»&j¿&jÀ&jÄ&jÅ&jÉ&jÊ&jÎ&jÏ&jÓ&jÔ&jØ&jÙ&jÝ&jÞ&jâ&jã&jç&jè&jì&jí&jñ&jò&jö&j÷&jû&jü&j'j'j'j'j 'j 'j'j'j'j'j'j'j'j'j#'j$'j('j)'j-'j.'j2'j3'j7'j8'j<'j='jA'jB'jF'jG'jK'jL'jP'jQ'jU'jV'jZ'j['j_'j`'jd'je'ji'jj'jn'jo'js'jt'jx'jy'j}'j~'j‚'jƒ'j‡'jˆ'jŒ'j�'j‘'j’'j–'j—'j›'jœ'j 'j¡'j¥'j¦'jª'j«'j¯'j°'j´'jµ'j¹'jº'j¾'j¿'jÃ'jÄ'jÈ'jW'jÍ'jÎ'jÒ'jÓ'j×'jØ'jÜ'jÝ'já'jâ'jå'jæ'jê'jë'jï'jð'jô'jõ'jù'jú'jþ'jÿ'j(j(j(j (j (j(j(j(j(j(j(j(j!(j"(j&(j'(j+(j,(j0(j1(j5(j6(j:(j;(j?(j@(jD(jE(jI(jJ(jN(jO(jS(jT(jX(jY(j\(j](ja(jb(je(jf(jj(jk(jo(jp(jt(ju(jy(jz(j~(j(jƒ(j„(jˆ(j‰(j�(jŽ(j’(j“(j–(j—(j›(jœ(j (j¡(j¥(j¦(jª(j«(j¯(j°(j³(j´(j¸(j¹(j¼(j½(jÁ(jÂ(jÆ(jÇ(jË(jÌ(jÐ(jÑ(jÕ(jÖ(jÚ(jÛ(jÞ(jß(jã(jä(jè(jé(jí(jî(jò(jó(j÷(jø(jü(jý(j)j)j)j)j )j )j)j)j)j)j)j)j)j )j$)j%)j))j*)j.)j/)j2)j3)j7)j8)j<)j=)jA)jB)jF)jG)jK)jL)jP)jQ)jU)jV)jY)jZ)j^)j_)jc)jd)jg)jh)jl)jm)jq)jr)jv)jw)j{)j|)j€)j�)j…)j†)jŠ)j‹)jŽ)j�)j’)j“)j–)j—)j›)jœ)j )j¡)j¥)j¦)jª)j«)j¯)j°)j´)jµ)j¹)jº)j¾)j¿)jÃ)jÄ)jÈ)jÉ)jÍ)jÎ)jÒ)jÓ)j×)jØ)jÜ)jÝ)já)jâ)jæ)jç)jë)jì)jð)jñ)jõ)jö)jú)jû)jÿ)j*j*j*j *j *j*j*j*j*j*j*j*j*j"*j#*j'*j(*j,*j-*j1*j2*j6*j7*j;*j<*j@*jA*jE*jF*jI*jJ*jM*jN*jQ*jR*jV*jW*j[*j\*j_*j`*jc*jd*jg*jh*jl*jm*jq*jr*jv*jw*jz*j{*j*j€*j„*j…*j‰*jŠ*jŽ*j�*j“*j”*j˜*j™*j�*jž*j¢*j£*j§*j¨*j«*j¬*j°*j±*jµ*j¶*jº*jk'j¿*jÀ*jÄ*jÅ*jÉ*jÊ*jÎ*jÏ*jÓ*jÔ*jØ*jÙ*jÝ*jÞ*jâ*jã*jç*jè*jì*jí*jñ*jò*jö*j÷*jû*jü*j+j+j+j+j +j +j+j+j+j+j+j+j+j+j#+j$+j(+j)+j-+j.+j2+j3+j7+j8+j<+j=+jA+jB+jF+jG+jK+jL+jP+jQ+jU+jV+jZ+j[+j_+j`+jc+jd+jg+jh+jl+jm+jq+jr+jv+jw+j{+j|+j+j€+j„+j…+j‰+jŠ+jŽ+j�+j’+j“+j—+j˜+jœ+j�+j¡+j¢+j¦+j§+j«+j¬+j°+j±+jµ+j¶+jº+j»+j¿+jÀ+jÄ+jÅ+jÉ+jÊ+jÎ+jÏ+jÓ+jÔ+jØ+jÙ+jÝ+jÞ+jâ+jã+jç+jè+jì+jí+jñ+jò+jö+j÷+jû+jü+jÿ+j,j,j,j ,j ,j,j,j,j,u(j,j,j,j,j",j#,j',j(,j,,j-,j1,j2,j6,j7,j;,j<,j@,jA,jE,jF,jJ,jK,jO,jP,jS,jT,jX,jY,j],j^,jb,jc,jg,jh,jl,jm,jq,jr,jv,jw,j{,j|,j€,j�,j…,j†,jŠ,j‹,j�,j�,j”,j•,j™,jš,jž,jŸ,j£,j¤,j¨,j©,j­,j®,j²,j³,j·,j¸,j¼,j½,jÁ,jÂ,jÆ,jÇ,jË,jÌ,jÐ,jÑ,jÕ,jÖ,jÚ,jÛ,jß,jà,jä,jå,jé,jê,jî,jï,jó,jô,jø,jù,jý,jþ,j-j-j-j-j -j -j-j-j-j-j-j-j -j!-j%-j&-j*-j+-j/-j0-j4-j5-j9-j:-j>-j?-jC-jD-jH-jI-jM-jN-jR-jS-jW-jX-j\-j]-ja-jb-jf-jg-jk-jl-jp-jq-jt-ju-jy-jz-j}-j~-j‚-jƒ-j‡-jˆ-jŒ-j�-j‘-j’-j•-j–-jš-j›-jŸ-j -j¤-j¥-j¨-j©-j­-j®-j²-j³-j·-j¸-j¼-j½-jÁ-jÂ-jÆ-jÇ-jË-jÌ-jÐ-jÑ-jÕ-jÖ-jÚ-jÛ-jß-jà-jã-jä-jè-jé-jí-jî-jò-jó-j÷-jø-jü-jý-j.j.j.j.j .j .j.j.j.j.j.j.j.j .j$.j%.j).j*.j..j/.j3.j4.j8.j9.j=.j>.jB.jC.jG.jH.jL.jM.jQ.jR.jV.jW.j[.j\.j`.ja.je.jf.jj.jk.jo.jp.jt.ju.jy.jz.j~.j.jƒ.j„.jˆ.j‰.j�.jŽ.j’.j“.j—.j˜.jœ.j�.j .j¡.j¤.j¥.j©.jª.j®.j¯.j³.j´.j¸.j¹.j½.j¾.jÂ.jÃ.jÇ.jÈ.jÌ.jÍ.jÑ.jÒ.jÖ.j×.jÛ.jÜ.jà.já.jå.jæ.jê.jë.jï.jð.jô.jõ.jù.jú.jþ.jÿ.j/j/j/j /j /j/j/j/j/j/j/j/j!/j"/j&/j'/j+/j,/j//j0/j4/j5/j9/j:/j>/j?/jC/jD/jH/jI/jM/jN/jR/jS/jW/jX/j\/j]/ja/jb/jf/jg/jk/jl/jp/jq/ju/jv/jz/j{/j/j€/j„/j…/jˆ/j‰/j�/jŽ/j’/j“/j—/j˜/jœ/j�/j¡/j¢/j¦/j§/jª/j«/j¯/j°/j´/jµ/j¹/jº/j½/j¾/jÁ/jÂ/jÅ/jÆ/jÊ/jË/jÏ/jÐ/jÔ/jÕ/jÙ/jÚ/jÞ/jß/jã/j“'jè/jé/jì/jí/jñ/jò/jö/j÷/jû/jü/j0j0j0j0j 0j 0j0j0j0j0j0j0j0j0j"0j#0j'0j(0j,0j-0j10j20j60j70j;0j<0j@0jA0jE0jF0jJ0jK0jO0jP0jT0jU0jX0jY0j]0j^0jb0jc0jg0jh0jl0jm0jq0jr0jv0jw0j{0j|0j€0j�0j…0j†0jŠ0j‹0j�0j�0j”0j•0j™0jš0jž0jŸ0j£0j¤0j¨0j©0j­0j®0j²0j³0j·0j¸0j¼0j½0jÁ0jÂ0jÆ0jÇ0jË0jÌ0jÐ0jÑ0jÕ0jÖ0jÙ0jÚ0jÞ0jß0jã0jä0jè0jé0jí0jî0jò0jó0j÷0jø0jü0jý0j1j1j1j1j 1j 1j1j1j1j1j1j1j1j 1j$1j%1j)1j*1j.1j/1j31j41j81j91j=1j>1jB1jC1jG1jH1jL1jM1jQ1jR1jV1jW1jZ1j[1j_1j`1jd1je1ji1jj1jn1jo1js1jt1jw1jx1j|1j}1j�1j‚1j†1j‡1j‹1jŒ1j�1j‘1j•1j–1jš1j›1jŸ1j 1j¤1j�'j©1jª1j®1j¯1j³1j´1j¸1j¹1j½1j¾1jÂ1jÃ1jÇ1jÈ1jÌ1jÍ1jÑ1jÒ1jÖ1j×1jÛ1jÜ1jà1já1jå1jæ1jê1jë1jï1jð1jô1jõ1jù1jú1jþ1jÿ1j2j2j2j 2j 2j2j2j2j2j2j2j2j!2j"2j&2j'2j+2j,2j02j12j42j52j92j:2j=2j>2jB2jC2jG2jH2jL2jM2jP2jQ2jU2jV2jZ2j[2j_2j`2jd2je2ji2jj2jn2jo2js2jt2jx2jy2j}2j~2j‚2jƒ2j†2j‡2j‹2jŒ2j�2j‘2j•2j–2jš2j›2jž2jŸ2j£2j¤2j¨2j©2j­2j®2j²2j³2j·2j¸2j¼2j½2jÁ2jÂ2jÆ2jÇ2jË2jÌ2jÏ2jÐ2jÔ2jÕ2jÙ2jÚ2jÞ2jß2jã2jä2jè2jé2jì2jí2jñ2jò2jö2j÷2jû2jü2j3j3j3j3j 3j 3j3j3j3j3j3j3j3j3j#3j$3j(3j)3j-3j.3j23j33j73j83j<3j=3jA3jB3jF3jG3jK3jL3jO3jP3jT3jU3jY3jZ3j^3j_3jc3jd3jh3ji3jm3jn3jq3jr3jv3jw3j{3j|3j€3j�3j…3j†3jŠ3j‹3j�3j�3j”3j•3j™3jš3jž3jŸ3j£3j¤3j¨3j©3j­3j®3j²3j³3j·3j¸3j¼3j½3jÁ3jÂ3jÆ3jÇ3jË3jÌ3jÐ3jÑ3jÕ3jÖ3jÚ3jÛ3jß3jà3jä3jå3jé3jê3jî3jï3jó3jô3jø3jù3jý3jþ3j4j4j4j4j 4j 4j4j4j4j4j4j4j4j 4j$4j%4j)4j*4j.4j/4j34j44j84j94j=4j>4jB4jC4jG4jH4jL4jM4jQ4jR4jV4jW4j[4j\4j`4ja4je4jf4jj4jk4jo4jp4jt4ju4jy4jz4j~4j4jƒ4j„4jˆ4j‰4j�4jŽ4j’4j“4j—4j˜4j›4jœ4j 4j¡4j¥4j¦4jª4j«4j¯4j°4j´4jµ4j¹4jº4j¾4j¿4jÃ4jÄ4jÈ4jÉ4jÍ4j¶'jÒ4jÓ4j×4jØ4jÜ4jÝ4já4jâ4jæ4jç4jë4jì4jð4jñ4jõ4jö4jú4jû4jþ4jÿ4j5j5j5j 5j 5j5j5j5j5j5j5j5j!5j"5j&5j'5j+5j,5j05j15j55j65j:5j;5j?5j@5jD5jE5jI5jJ5jN5jO5jS5jT5jX5jY5j]5j^5jb5jc5jg5jh5jl5jm5jq5jr5jv5jw5j{5j|5j€5j�5j…5j†5jŠ5j‹5j�5j�5j”5j•5j™5jš5jž5jŸ5j£5j¤5j¨5j©5j­5j®5j²5jÔ'j·5j¸5j¼5j½5jÁ5jÂ5jÆ5jÇ5jË5jÌ5jÐ5jÑ5jÕ5jÖ5jÚ5jÛ5jß5jà5jä5jå5jé5jê5jî5jï5jó5jô5jø5jù5jý5jþ5j6j6j6j6j 6j 6j6j6j6j6j6j6j6j6j#6j$6j(6j)6j-6j.6j26j36j76j86j<6j=6jA6jB6jF6jG6jK6jL6jP6jQ6jU6jV6jZ6j[6j_6j`6jd6je6ji6jj6jn6jo6js6jt6jx6jy6j}6j~6j‚6jƒ6j‡6jˆ6jŒ6j�6j‘6j’6j–6j—6j›6jœ6j 6j¡6j¥6j¦6jª6j«6j¯6j°6j´6jµ6j¹6jº6j¾6j¿6jÃ6jÄ6jÈ6jÉ6jÍ6jÎ6jÒ6jÓ6j×6jØ6jÜ6jÝ6já6jâ6jæ6jç6jë6jì6jð6jñ6jõ6jö6jú6jû6jÿ6j7j7j7j 7j 7j7j7j7j7j7j7j7j7j"7j#7j'7j(7j,7j-7j17j27j67j77j;7j<7j@7jA7jE7jF7jJ7jK7jO7jP7jT7jU7jY7jZ7j^7j_7jc7jd7jh7ji7jm7jn7jr7js7jw7jx7j|7j}7j�7j‚7j†7j‡7j‹7jŒ7j�7j‘7j•7j–7jš7j›7jŸ7j 7j¤7j¥7j©7jª7j®7j¯7j³7j´7j¸7j¹7j½7j¾7jÂ7jÃ7jÇ7jÈ7jÌ7jÍ7jÑ7jÒ7jÖ7j×7jÛ7jÜ7jà7já7jå7jæ7jê7jë7jï7jð7jô7jõ7jù7jú7jþ7jÿ7j8j8j8j 8j 8j8j8j8j8j8j8j8j!8j"8j&8j'8j+8j,8j08j18j58j68j:8j;8j?8j@8jD8jE8jI8jJ8jN8jO8jS8jT8jX8jY8j]8j^8jb8jc8jg8jh8jl8jm8jq8jr8jv8jw8j{8j|8j€8j�8j…8j†8jŠ8j‹8j�8j�8j”8j•8j™8jš8jž8jŸ8j£8j¤8j¨8j©8j­8j®8j²8j³8j·8j¸8j¼8j½8jÁ8jÂ8jÆ8jÇ8jË8jÌ8jÐ8jÑ8jÕ8jÖ8jÚ8jÛ8jß8jà8jä8jå8jè8jé8jí8jî8jò8jó8j÷8jø8jü8jý8j9j9j9j9j 9j 9j9j9j9j9j9j9j9j 9j$9j%9j)9j*9j.9j/9j39j49j89j99j=9j>9jB9jC9jG9jH9jL9jM9jQ9jR9jV9jW9j[9j\9j`9ja9je9jf9jj9jk9jo9jp9jt9ju9jy9jz9j}9j~9j�9j‚9j…9j†9jŠ9j‹9j�9j�9j”9j•9j™9jš9jž9jŸ9j£9j¤9j¨9j©9j­9j®9j²9j³9j·9j¸9j¼9j½9jÁ9jÂ9jÆ9jÇ9jÊ9jË9jÏ9jÐ9jÔ9jÕ9jÙ9jÚ9jÞ9jß9jã9jä9jè9jé9jí9jî9jñ9jò9jö9j÷9jû9jü9j:j:j:j:j :j :j:j:j:j:j:j:j:j:j#:j$:j(:j):j-:j.:j2:j3:j7:j8:j<:j=:jA:jB:jF:jG:jK:jL:jP:jQ:jU:jV:jY:jZ:j^:j_:jc:jd:jh:ji:jm:jn:jr:js:jw:jx:j|:j}:j�:j‚:j†:j‡:jŠ:j‹:j�:j�:j”:j•:j™:jš:jž:jŸ:j¢:j£:j¦:j§:j«:j¬:j¯:j°:j´:jµ:j¹:jº:j¾:j¿:jÃ:jÄ:jÈ:jÉ:jÍ:jÎ:jÒ:jÓ:j×:jØ:jÜ:jÝ:já:jâ:jæ:jç:jë:jì:jð:jñ:jõ:jö:jú:jû:jÿ:j;j;j;j ;j ;j;j;j;j;j;j;j;j;j";j#;j';j(;j,;j-;j0;j1;j4;j5;j9;j:;j=;j>;jA;jB;jF;jG;jK;jL;jP;jQ;jU;jV;jZ;j[;j_;j`;jd;je;ji;jj;jn;jo;js;jt;jx;jy;j};j~;j‚;jƒ;j‡;jˆ;jŒ;j�;j‘;j’;j–;j—;j›;jœ;j ;j¡;j¥;j¦;jª;j«;j¯;j°;j³;j´;j¸;j¹;j½;j¾;jÂ;jÃ;jÆ;jÇ;jË;jÌ;jÐ;jÑ;jÕ;jÖ;jÚ;jÛ;jß;jà;jä;jå;jé;jê;jî;jï;jó;jô;jø;jù;jý;jþ;j<j<j<j<j <j <j<j<j<j<j<j<j <j!<j%<j&<j*<j+<j/<j0<j4<j5<j9<j:<j><j?<jC<jD<jH<jI<jM<jN<jR<jS<jW<jX<j\<j]<ja<jb<jf<jg<jk<jl<jp<jq<ju<jv<jz<j{<j<j€<j„<j…<j‰<jŠ<jŽ<j�<j“<j”<j˜<j™<j�<jž<j¢<j£<j§<j¨<j¬<j­<j±<j²<j¶<j·<j»<j¼<jÀ<jÁ<jÅ<jÆ<jÊ<jË<jÏ<jÐ<jÔ<jÕ<jÙ<jÚ<jÞ<jß<jã<jä<jè<jé<jí<jî<jò<jó<j÷<jø<jû<jü<jÿ<j=j=j=j =j =j=j=j=j=j=j=j=j=j!=j"=j&=j'=j+=j,=j0=j1=j5=j6=j:=j;=j?=j@=jD=jE=jI=jJ=jM=jN=jR=jS=jW=jX=j\=j]=ja=jb=jf=jg=jk=jl=jp=jq=ju=jv=jz=j{=j=j€=j„=j…=j‰=jŠ=jŽ=j�=j“=j”=j˜=j™=j�=jž=j¢=j£=j§=j¨=j¬=j­=j±=j²=j¶=j·=j»=j¼=jÀ=jÁ=jÅ=jÆ=jÊ=jË=jÎ=jÏ=jÓ=jÔ=jØ=jÙ=jÝ=jÞ=jâ=jã=jæ=jç=jë=jì=jð=jñ=jõ=jö=jú=jû=jÿ=j>j>j>j >j >j>j>j>j>j>j>j>j>j">j#>j'>j(>j,>j->j1>j2>j6>j7>j;>j<>j@>jA>jE>jF>jJ>jK>jO>jP>jT>jU>jY>jZ>j]>j^>ja>jb>je>jf>ji>jj>jn>jo>js>jt>jx>jy>j}>j~>j‚>jƒ>j‡>jˆ>jŒ>j�>j‘>j’>j–>j—>jš>j›>jŸ>j >j¤>j¥>j¨>j©>j¬>j­>j±>j²>j¶>j·>j»>j¼>j¿>jÀ>jÄ>jÅ>jÈ>jÉ>jÌ>jÍ>jÐ>jÑ>jÕ>jÖ>jÚ>jÛ>jß>jà>jä>jå>jé>jê>jî>jï>jó>jô>jø>jù>jý>jþ>j?j?j?j?j ?j ?j?j?j?j?j?j?j ?j!?j%?j&?j*?j+?j/?j0?j4?j5?j9?j:?j>?j??jB?jC?jG?jH?jL?jM?jQ?jR?jV?jW?u(j[?j\?j`?ja?je?jf?jj?jk?jo?jp?jt?ju?jy?jz?j~?j?jƒ?j„?jˆ?j‰?j�?jŽ?j’?j“?j—?j˜?j›?jœ?j ?j¡?j¥?j¦?jª?j«?j¯?j°?j´?jµ?j¹?jº?j½?j¾?jÂ?jÃ?jÇ?jÈ?jÌ?jÍ?jÑ?jÒ?jÖ?j×?jÛ?jÜ?jà?já?jå?jæ?jê?jë?jï?jð?jô?jõ?jù?jú?jþ?jÿ?j@j@j@j @j @j@j@j@j@j@j@j@j @j!@j%@j&@j*@j+@j/@j0@j4@j5@j9@j:@j>@j?@jC@jD@jH@jI@jM@jN@jR@jS@jW@jX@j\@j]@ja@jb@jf@jg@jk@jl@jp@jq@jÈ&jÉ&jÍ&jÎ&jÒ&jÓ&j×&jØ&jÜ&jÝ&já&jâ&jå&jæ&jé&jê&jî&jï&jó&jô&jø&jù&jý&jþ&j'j'j'j'j 'j 'j'j'j'j'j'j'j'j 'j$'j%'j)'j*'j.'j/'j3'j4'jB'jC'jG'jH'jL'jM'jQ'jR'j['j\'j`'ja'je'jf'jo'jp'jt'ju'jy'jz'j~'j'jƒ'j„'jˆ'j‰'j�'jŽ'j—'j˜'j¡'j¢'j¦'j§'j«'j¬'j°'j±'jº'j»'j¿'jÀ'jÄ'jÅ'jÉ'jÊ'jÎ'jÏ'jØ'jÙ'jÝ'jÞ'jâ'jã'jæ'jç'jë'jì'jï'jð'jô'jõ'jù'jú'jþ'jÿ'uju@}”(jw@jx@j{@j|@j@j€@jƒ@j„@j‡@jˆ@j‹@jŒ@j�@j�@j“@j”@j—@j˜@j›@jœ@jŸ@j @j£@j¤@j§@j¨@j«@j¬@j¯@j°@j³@j´@j·@j¸@j»@j¼@j¿@jÀ@jÃ@jÄ@jÇ@jÈ@jË@jÌ@jÏ@jÐ@jÓ@jÔ@j×@jØ@jÛ@jÜ@jß@jà@jã@jä@jç@jè@jë@jì@jï@jð@jó@jô@j÷@jø@jû@jü@jÿ@jAjAjAjAjAj Aj AjAjAjAjAjAjAjAjAjAj Aj#Aj$Aj'Aj(Aj+Aj,Aj/Aj0Aj3Aj4Aj7Aj8Aj;AjBjABjBBjEBjFBjIBjJBjMBjNBjQBjRBjUBjVBjYBjZBj]Bj^BjaBjbBjeBjfBjiBjjBjmBjnBjqBjrBjuBjvBjyBjzBj}Bj~Bj�Bj‚Bj…Bj†Bj‰BjŠBj�BjŽBj‘Bj’Bj•Bj–Bj™BjšBj�BjžBj¡Bj¢Bj¥Bj¦Bj©BjªBj­Bj®Bj±Bj²BjµBj¶Bj¹BjºBj½Bj¾BjÁBjÂBjÅBjÆBjÉBjÊBjÍBjÎBjÑBjÒBjÕBjÖBjÙBjÚBjÝBjÞBjáBjâBjåBjæBjéBjêBjíBjîBjñBjòBjõBjöBjùBjúBjýBjþBjCjCjCjCj Cj Cj CjCjCjCjCjCjCjCjCjCj!Cj"Cj%Cj&Cj)Cj*Cj-Cj.Cj1Cj2Cj5Cj6Cj9Cj:Cj=Cj>CjACjBCjECjFCjICjJCjMCjNCjQCjRCjUCjVCjYCjZCj]Cj^CjaCjbCjeCjfCjiCjjCjmCjnCjqCjrCjuCjvCjyCjzCj}Cj~Cj�Cj‚Cj…Cj†Cj‰CjŠCj�CjŽCj‘Cj’Cj•Cj–Cj™CjšCj�CjžCj¡Cj¢Cj¥Cj¦Cj©CjªCj­Cj®Cj±Cj²CjµCj¶Cj¹CjºCj½Cj¾CjÁCjÂCjÅCjÆCjÉCjÊCjÍCjÎCjÑCjÒCjÕCjÖCjÙCjÚCjÝCjÞCujáC}”(jãCjäCjçCjèCjëCjìCjïCjðCjóCjôCj÷CjøCjûCjüCjÿCjDjDjDjDjDj Dj DjDjDjDjDjDjDjDjDjDj Dj#Dj$Dj'Dj(Dj+Dj,Duj/D}”(j1Dj2Dj6Dj7Dj;DjFj?FjCFjDFjHFjIFjMFjNFjRFjSFjWFjXFj\Fj]FjaFj (jfFjgFjkFjlFjpFjqFjuFjvFjzFj{FjFj€Fj„Fj…Fj‰FjŠFjŽFj�Fj“Fj”Fj˜Fj™Fj�FjžFj¢Fj£Fj§Fj¨Fj¬Fj­Fj±Fj²Fj¶Fj·Fj»Fj¼FjÀFjÁFjÅFjÆFjÊFjËFjÏFjÐFjÔFjÕFjÙFjÚFjÞFjßFjãFjäFjèFjéFjíFjîFjòFjóFj÷FjøFjüFjýFjGjGjGjGj Gj GjGjGjGjGjGjGjGj Gj$Gj%Gj)Gj*Gj.Gj/Gj3Gj4Gj8Gj9Gj=Gj>GjBGjCGjGGjHGjLGjMGjQGjRGjVGjWGj[Gj\Gj`GjaGjeGjfGjjGjkGjoGjpGjtGjuGjyGjzGj~GjGjƒGj„GjˆGj‰Gj�GjŽGj’Gj“Gj—Gj˜GjœGj�Gj¡Gj¢Gj¦Gj§Gj«Gj¬Gj°Gj±GjµGj¶GjºGj»Gj¿GjÀGjÄGjÅGjÉGjÊGjÎGjÏGjÓGjÔGjØGjÙGjÝGjÞGjâGjãGjçGjèGjìGjíGjñGjòGjöGj÷GjûGjüGjHjHjHjHj Hj HjHjHjHjHjHjHjHjHj#Hj$Hj(Hj)Hj-Hj.Hj2Hj3Hj7Hj8HjKj?KjCKjDKjHKjIKjMKjNKjRKjSKjWKjXKj\Kj]KjaKjbKjfKjgKjkKjlKjpKjqKjuKjvKjzKj{KjKj€Kj„Kj…Kj‰KjŠKjŽKj�Kj“Kj”Kj˜Kj™Kj�KjžKj¢Kj£Kj§Kj¨Kj¬Kj­Kj±Kj²Kj¶Kj·Kj»Kj¼KjÀKjÁKjÅKjÆKjÊKjËKjÏKjÐKjÔKjÕKjÙKjÚKjÞKjßKjãKjäKjèKjéKjíKjîKjòKjóKj÷KjøKjüKjýKjLjLjLjLj Lj LjLjLjLjLjLjLjLj Lj$Lj%Lj)Lj*Lj.Lj/Lj3Lj4Lj8Lj9Lj=Lj>LjBLjCLjGLjHLjLLjMLjQLjRLjVLjWLj[Lj\Lj`LjaLjeLjfLjjLjkLjoLjpLjtLjuLjyLjzLj~LjLjƒLj„LjˆLj‰Lj�LjŽLj’Lj“Lj—Lj˜LjœLj�Lj¡Lj¢Lj¦Lj§Lj«Lj¬Lj°Lj±LjµLj¶LjºLj»Lj¿LjÀLjÄLjÅLjÉLjÊLjÎLjÏLjÓLjÔLjØLjÙLjÝLjÞLjâLjãLjçLjèLjìLjíLjñLjòLjöLj÷LjûLjüLjMjMjMjMj Mj MjMjMjMjMjMjMjMjMj#Mj$Mj(Mj)Mj-Mj.Mj2Mj3Mj7Mj8Mj(jB(jC(jG(jH(ujŸN}”(j¡Nj¢Nj¥Nj¦Nj©NjªNj­Nj®Nj±Nj²NjµNj¶Nj¹NjºNj½Nj¾NjÁNjÂNjÅNjÆNjÉNjÊNjÍNjÎNjÑNjÒNjÕNjÖNjÙNjÚNjÝNjÞNjáNjâNjåNjæNjéNjêNjíNjîNjñNjòNjõNjöNjùNjúNjýNjþNjOjOjOjOj Oj Oj OjOjOjOjOjOjOjOjOjOj!Oj"Oj%Oj&Oj)Oj*Oj-Oj.Oj1Oj2Oj5Oj6Oj9Oj:Oj=Oj>OjAOjBOjEOjFOjIOjJOjMOjNOjQOjROjUOjVOjYOjZOj]Oj^OjaOjbOjeOjfOjiOjjOjmOjnOjqOjrOjuOjvOjyOjzOj}Oj~Oj�Oj‚Oj…Oj†Oj‰OjŠOj�OjŽOj‘Oj’Oj•Oj–Oj™OjšOj�OjžOj¡Oj¢Oj¥Oj¦Oj©OjªOj­Oj®Oj±Oj²OjµOj¶Oj¹OjºOj½Oj¾OjÁOjÂOjÅOjÆOjÉOjÊOjÍOjÎOjÑOjÒOjÕOjÖOjÙOjÚOjÝOjÞOjáOjâOjåOjæOjéOjêOjíOjîOjñOjòOjõOjöOjùOjúOjýOjþOjPjPjPjPj Pj Pj PjPjPjPjPjPjPjPjPjPj!Pj"Pj%Pj&Pj)Pj*Pj-Pj.Pj1Pj2Pj5Pj6Pj9Pj:Pj=Pj>PjAPjBPjEPjFPjIPjJPjMPjNPjQPjRPjUPjVPjYPjZPj]Pj^PjaPjbPjePjfPjiPjjPjmPjnPjqPjrPjuPjvPjyPjzPj}Pj~Pj�Pj‚Pj…Pj†Pj‰PjŠPj�PjŽPj‘Pj’Pj•Pj–Pj™PjšPj�PjžPj¡Pj¢Pj¥Pj¦Pj©PjªPj­Pj®Pj±Pj²PjµPj¶Pj¹PjºPj½Pj¾PjÁPjÂPjÅPjÆPjÉPjÊPjÍPjÎPjÑPjÒPjÕPjÖPjÙPjÚPjÝPjÞPjáPjâPjåPjæPjéPjêPjíPjîPjñPjòPjõPjöPjùPjúPjýPjþPjQjQjQjQj Qj Qj QjQjQjQjQjQjQjQjQjQj!Qj"Qj%Qj&Qj)Qj*Qj-Qj.Qj1Qj2Qj5Qj6Qj9Qj:Qj=Qj>QjAQjBQjEQjFQjIQjJQjMQjNQjQQjRQjUQjVQjYQjZQj]Qj^QjaQjbQjeQjfQjiQjjQjmQjnQjqQjrQjuQjvQjyQjzQj}Qj~Qj�Qj‚Qj…Qj†Qj‰QjŠQj�QjŽQj‘Qj’Qj•Qj–Qj™QjšQj�QjžQj¡Qj¢Qj¥Qj¦Qj©QjªQj­Qj®Qj±Qj²QjµQj¶Qj¹QjºQj½Qj¾QjÁQjÂQjÅQjÆQjÉQjÊQjÍQjÎQjÑQjÒQjÕQjÖQjÙQjÚQjÝQjÞQjáQjâQjåQjæQjéQjêQjíQjîQjñQjòQjõQjöQjùQjúQjýQjþQjRjRjRjRj Rj Rj RjRjRjRjRjRjRjRjRjRj!Rj"Rj%Rj&Rj)Rj*Rj-Rj.Rj1Rj2Rj5Rj6Rj9Rj:Rj=Rj>RjARjBRjERjFRjIRjJRjMRjNRjQRjRRjURjVRjYRjZRj]Rj^RjaRjbRjeRjfRjiRjjRjmRjnRjqRjrRjuRjvRuj8 }”j: j; sjê$}”(jì$jí$jð$jñ$jô$jõ$jø$jù$jü$jý$j%j%j%j%j%j %j %j %j%j%j%j%j%j%j%j%j %j!%j$%j%%j(%j)%j,%j-%j0%j1%j4%j5%j8%j9%ujÀ&}”jÂ&jÃ&suŒintersphinx_named_inventory”}”(jN(jO(j j uub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677271.0 pyfuse3-3.5.0/doc/html/.doctrees/example.doctree0000644000175000017500000027152715201073027022013 0ustar00nikrationikratio€•dŒdocutils.nodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(hŒtarget”“”)�”}”(hŒ.. _example file system:”h]”Œ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œrefid”Œexample-file-system”uŒtagname”h Œline”KŒparent”hŒ _document”hŒsource”Œ2/home/nikratio/in-progress/pyfuse3/rst/example.rst”ubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒExample File Systems”h]”hŒText”“”ŒExample File Systems”…”�”}”(hh(hhhNhNubah}”(h]”h]”h]”h]”uhh&hh#hhhh hKubhŒ paragraph”“”)�”}”(hŒ¢pyfuse3 comes with several example file systems in the :file:`examples` directory of the release tarball. For completeness, these examples are also included here.”h]”(h-Œ7pyfuse3 comes with several example file systems in the ”…”�”}”(hh9hhhNhNubhŒliteral”“”)�”}”(hŒ:file:`examples`”h]”h-Œexamples”…”�”}”(hhChhhNhNubah}”(h]”h]”Œfile”ah]”h]”Œrole”Œfile”uhhAhh9ubh-Œ[ directory of the release tarball. For completeness, these examples are also included here.”…”�”}”(hh9hhhNhNubeh}”(h]”h]”h]”h]”uhh7hh hKhh#hhubh")�”}”(hhh]”(h')�”}”(hŒ"Single-file, Read-only File System”h]”h-Œ"Single-file, Read-only File System”…”�”}”(hh_hhhNhNubah}”(h]”h]”h]”h]”uhh&hh\hhhh hK ubh8)�”}”(hŒ'(shipped as :file:`examples/lltest.py`)”h]”(h-Œ (shipped as ”…”�”}”(hhlhhhNhNubhB)�”}”(hŒ:file:`examples/lltest.py`”h]”h-Œexamples/lltest.py”…”�”}”(hhthhhNhNubah}”(h]”h]”Œfile”ah]”h]”Œrole”Œfile”uhhAhhlubh-Œ)”…”�”}”(hhlhhhNhNubeh}”(h]”h]”h]”h]”uhh7hh hKhh\hhubhŒ literal_block”“”)�”}”(hXÂ#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' hello.py - Example file system for pyfuse3. This program presents a static file system containing a single file. Copyright © 2015 Nikolaus Rath Copyright © 2015 Gerion Entrup. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import errno import logging import os import stat from argparse import ArgumentParser, Namespace from typing import cast import trio import pyfuse3 from pyfuse3 import EntryAttributes, FileHandleT, FileInfo, InodeT, ReaddirToken, RequestContext try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger(__name__) class TestFs(pyfuse3.Operations): def __init__(self) -> None: super(TestFs, self).__init__() self.hello_name = b"message" self.hello_inode = pyfuse3.ROOT_INODE + 1 self.hello_data = b"hello world\n" async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes: entry = EntryAttributes() if inode == pyfuse3.ROOT_INODE: entry.st_mode = stat.S_IFDIR | 0o755 entry.st_size = 0 elif inode == self.hello_inode: entry.st_mode = stat.S_IFREG | 0o644 entry.st_size = len(self.hello_data) else: raise pyfuse3.FUSEError(errno.ENOENT) stamp = int(1438467123.985654 * 1e9) entry.st_atime_ns = stamp entry.st_ctime_ns = stamp entry.st_mtime_ns = stamp entry.st_gid = os.getgid() entry.st_uid = os.getuid() entry.st_ino = inode return entry async def lookup( self, parent_inode: InodeT, name: bytes, ctx: RequestContext ) -> EntryAttributes: if parent_inode != pyfuse3.ROOT_INODE or name != self.hello_name: raise pyfuse3.FUSEError(errno.ENOENT) return await self.getattr(self.hello_inode, ctx) async def opendir(self, inode: InodeT, ctx: RequestContext) -> FileHandleT: if inode != pyfuse3.ROOT_INODE: raise pyfuse3.FUSEError(errno.ENOENT) # For simplicity, we use the inode as file handle return FileHandleT(inode) async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None: assert fh == pyfuse3.ROOT_INODE # only one entry if start_id == 0: pyfuse3.readdir_reply(token, self.hello_name, await self.getattr(self.hello_inode), 1) return async def open(self, inode: InodeT, flags: int, ctx: RequestContext) -> FileInfo: if inode != self.hello_inode: raise pyfuse3.FUSEError(errno.ENOENT) if flags & os.O_RDWR or flags & os.O_WRONLY: raise pyfuse3.FUSEError(errno.EACCES) # For simplicity, we use the inode as file handle return FileInfo(fh=FileHandleT(inode)) async def read(self, fh: FileHandleT, off: int, size: int) -> bytes: assert fh == self.hello_inode return self.hello_data[off : off + size] def init_logging(debug: bool = False) -> None: formatter = logging.Formatter( '%(asctime)s.%(msecs)03d %(threadName)s: [%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S", ) handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args() -> Namespace: '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument( '--debug', action='store_true', default=False, help='Enable debugging output' ) parser.add_argument( '--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output' ) return parser.parse_args() def main() -> None: options = parse_args() init_logging(options.debug) testfs = TestFs() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=hello') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(testfs, options.mountpoint, fuse_options) try: trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise pyfuse3.close() if __name__ == '__main__': main() ”h]”h-XÂ#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' hello.py - Example file system for pyfuse3. This program presents a static file system containing a single file. Copyright © 2015 Nikolaus Rath Copyright © 2015 Gerion Entrup. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import errno import logging import os import stat from argparse import ArgumentParser, Namespace from typing import cast import trio import pyfuse3 from pyfuse3 import EntryAttributes, FileHandleT, FileInfo, InodeT, ReaddirToken, RequestContext try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger(__name__) class TestFs(pyfuse3.Operations): def __init__(self) -> None: super(TestFs, self).__init__() self.hello_name = b"message" self.hello_inode = pyfuse3.ROOT_INODE + 1 self.hello_data = b"hello world\n" async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes: entry = EntryAttributes() if inode == pyfuse3.ROOT_INODE: entry.st_mode = stat.S_IFDIR | 0o755 entry.st_size = 0 elif inode == self.hello_inode: entry.st_mode = stat.S_IFREG | 0o644 entry.st_size = len(self.hello_data) else: raise pyfuse3.FUSEError(errno.ENOENT) stamp = int(1438467123.985654 * 1e9) entry.st_atime_ns = stamp entry.st_ctime_ns = stamp entry.st_mtime_ns = stamp entry.st_gid = os.getgid() entry.st_uid = os.getuid() entry.st_ino = inode return entry async def lookup( self, parent_inode: InodeT, name: bytes, ctx: RequestContext ) -> EntryAttributes: if parent_inode != pyfuse3.ROOT_INODE or name != self.hello_name: raise pyfuse3.FUSEError(errno.ENOENT) return await self.getattr(self.hello_inode, ctx) async def opendir(self, inode: InodeT, ctx: RequestContext) -> FileHandleT: if inode != pyfuse3.ROOT_INODE: raise pyfuse3.FUSEError(errno.ENOENT) # For simplicity, we use the inode as file handle return FileHandleT(inode) async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None: assert fh == pyfuse3.ROOT_INODE # only one entry if start_id == 0: pyfuse3.readdir_reply(token, self.hello_name, await self.getattr(self.hello_inode), 1) return async def open(self, inode: InodeT, flags: int, ctx: RequestContext) -> FileInfo: if inode != self.hello_inode: raise pyfuse3.FUSEError(errno.ENOENT) if flags & os.O_RDWR or flags & os.O_WRONLY: raise pyfuse3.FUSEError(errno.EACCES) # For simplicity, we use the inode as file handle return FileInfo(fh=FileHandleT(inode)) async def read(self, fh: FileHandleT, off: int, size: int) -> bytes: assert fh == self.hello_inode return self.hello_data[off : off + size] def init_logging(debug: bool = False) -> None: formatter = logging.Formatter( '%(asctime)s.%(msecs)03d %(threadName)s: [%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S", ) handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args() -> Namespace: '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument( '--debug', action='store_true', default=False, help='Enable debugging output' ) parser.add_argument( '--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output' ) return parser.parse_args() def main() -> None: options = parse_args() init_logging(options.debug) testfs = TestFs() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=hello') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(testfs, options.mountpoint, fuse_options) try: trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise pyfuse3.close() if __name__ == '__main__': main() ”…”�”}”hh�sbah}”(h]”h]”h]”h]”Œsource”Œ4/home/nikratio/in-progress/pyfuse3/examples/hello.py”Œ xml:space”Œpreserve”Œforce”‰Œlanguage”Œpython”Œlinenos”ˆŒhighlight_args”}”Œ linenostart”Ksuhh�hh hKhh\hhubeh}”(h]”Œ!single-file-read-only-file-system”ah]”h]”Œ"single-file, read-only file system”ah]”uhh!hh#hhhh hK ubh")�”}”(hhh]”(h')�”}”(hŒIn-memory File System”h]”h-ŒIn-memory File System”…”�”}”(hh±hhhNhNubah}”(h]”h]”h]”h]”uhh&hh®hhhh hKubh8)�”}”(hŒ&(shipped as :file:`examples/tmpfs.py`)”h]”(h-Œ (shipped as ”…”�”}”(hh¾hhhNhNubhB)�”}”(hŒ:file:`examples/tmpfs.py`”h]”h-Œexamples/tmpfs.py”…”�”}”(hhÆhhhNhNubah}”(h]”h]”Œfile”ah]”h]”Œrole”Œfile”uhhAhh¾ubh-Œ)”…”�”}”(hh¾hhhNhNubeh}”(h]”h]”h]”h]”uhh7hh hKhh®hhubhŽ)�”}”(hX0I#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' tmpfs.py - Example file system for pyfuse3. This file system stores all data in memory. Copyright © 2013 Nikolaus Rath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import errno import logging import os import sqlite3 import stat from argparse import ArgumentParser, Namespace from collections import defaultdict from time import time from typing import Any, cast import trio import pyfuse3 from pyfuse3 import ( EntryAttributes, FileHandleT, FileInfo, FUSEError, InodeT, ReaddirToken, RequestContext, SetattrFields, StatvfsData, ) try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger() class Operations(pyfuse3.Operations): '''An example filesystem that stores all data in memory This is a very simple implementation with terrible performance. Don't try to store significant amounts of data. Also, there are some other flaws that have not been fixed to keep the code easier to understand: * atime, mtime and ctime are not updated * generation numbers are not supported * lookup counts are not maintained ''' enable_writeback_cache = True def __init__(self) -> None: super(Operations, self).__init__() self.db: sqlite3.Connection = sqlite3.connect(':memory:') self.db.text_factory = str self.db.row_factory = sqlite3.Row self.cursor: sqlite3.Cursor = self.db.cursor() self.inode_open_count: defaultdict[InodeT, int] = defaultdict(int) self.init_tables() def init_tables(self) -> None: '''Initialize file system tables''' self.cursor.execute(""" CREATE TABLE inodes ( id INTEGER PRIMARY KEY, uid INT NOT NULL, gid INT NOT NULL, mode INT NOT NULL, mtime_ns INT NOT NULL, atime_ns INT NOT NULL, ctime_ns INT NOT NULL, target BLOB(256) , size INT NOT NULL DEFAULT 0, rdev INT NOT NULL DEFAULT 0, data BLOB ) """) self.cursor.execute(""" CREATE TABLE contents ( rowid INTEGER PRIMARY KEY AUTOINCREMENT, name BLOB(256) NOT NULL, inode INT NOT NULL REFERENCES inodes(id), parent_inode INT NOT NULL REFERENCES inodes(id), UNIQUE (name, parent_inode) )""") # Insert root directory now_ns = int(time() * 1e9) self.cursor.execute( "INSERT INTO inodes (id,mode,uid,gid,mtime_ns,atime_ns,ctime_ns) " "VALUES (?,?,?,?,?,?,?)", ( pyfuse3.ROOT_INODE, stat.S_IFDIR | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH, os.getuid(), os.getgid(), now_ns, now_ns, now_ns, ), ) self.cursor.execute( "INSERT INTO contents (name, parent_inode, inode) VALUES (?,?,?)", (b'..', pyfuse3.ROOT_INODE, pyfuse3.ROOT_INODE), ) def get_row(self, *a: Any, **kw: Any) -> sqlite3.Row: self.cursor.execute(*a, **kw) try: row = next(self.cursor) except StopIteration: raise NoSuchRowError() try: next(self.cursor) except StopIteration: pass else: raise NoUniqueValueError() return row async def lookup( self, parent_inode: InodeT, name: bytes, ctx: RequestContext ) -> EntryAttributes: if name == b'.': inode = parent_inode elif name == b'..': inode = self.get_row("SELECT * FROM contents WHERE inode=?", (parent_inode,))[ 'parent_inode' ] else: try: inode = self.get_row( "SELECT * FROM contents WHERE name=? AND parent_inode=?", (name, parent_inode) )['inode'] except NoSuchRowError: raise (pyfuse3.FUSEError(errno.ENOENT)) return await self.getattr(InodeT(inode), ctx) async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes: try: row = self.get_row("SELECT * FROM inodes WHERE id=?", (inode,)) except NoSuchRowError: raise (pyfuse3.FUSEError(errno.ENOENT)) entry = EntryAttributes() entry.st_ino = inode entry.generation = 0 entry.entry_timeout = 300 entry.attr_timeout = 300 entry.st_mode = row['mode'] entry.st_nlink = self.get_row("SELECT COUNT(inode) FROM contents WHERE inode=?", (inode,))[ 0 ] entry.st_uid = row['uid'] entry.st_gid = row['gid'] entry.st_rdev = row['rdev'] entry.st_size = row['size'] entry.st_blksize = 512 entry.st_blocks = 1 entry.st_atime_ns = row['atime_ns'] entry.st_mtime_ns = row['mtime_ns'] entry.st_ctime_ns = row['ctime_ns'] return entry async def readlink(self, inode: InodeT, ctx: RequestContext) -> bytes: return self.get_row('SELECT * FROM inodes WHERE id=?', (inode,))['target'] async def opendir(self, inode: InodeT, ctx: RequestContext) -> FileHandleT: # For simplicity, we use the inode as file handle return FileHandleT(inode) async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None: if start_id == 0: off = -1 else: off = start_id cursor2 = self.db.cursor() cursor2.execute( "SELECT * FROM contents WHERE parent_inode=? AND rowid > ? ORDER BY rowid", (fh, off) ) for row in cursor2: pyfuse3.readdir_reply( token, row['name'], await self.getattr(InodeT(row['inode'])), row['rowid'] ) async def unlink(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None: entry = await self.lookup(parent_inode, name, ctx) if stat.S_ISDIR(entry.st_mode): raise pyfuse3.FUSEError(errno.EISDIR) self._remove(parent_inode, name, entry) async def rmdir(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None: entry = await self.lookup(parent_inode, name, ctx) if not stat.S_ISDIR(entry.st_mode): raise pyfuse3.FUSEError(errno.ENOTDIR) self._remove(parent_inode, name, entry) def _remove(self, parent_inode: InodeT, name: bytes, entry: EntryAttributes) -> None: if ( self.get_row("SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry.st_ino,))[ 0 ] > 0 ): raise pyfuse3.FUSEError(errno.ENOTEMPTY) self.cursor.execute( "DELETE FROM contents WHERE name=? AND parent_inode=?", (name, parent_inode) ) if entry.st_nlink == 1 and entry.st_ino not in self.inode_open_count: self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry.st_ino,)) async def symlink( self, parent_inode: InodeT, name: bytes, target: bytes, ctx: RequestContext ) -> EntryAttributes: mode = ( stat.S_IFLNK | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IWOTH | stat.S_IXOTH ) return await self._create(parent_inode, name, mode, ctx, target=target) async def rename( self, parent_inode_old: InodeT, name_old: bytes, parent_inode_new: InodeT, name_new: bytes, flags: int, ctx: RequestContext, ) -> None: if flags != 0: raise FUSEError(errno.EINVAL) entry_old = await self.lookup(parent_inode_old, name_old, ctx) entry_new = None try: entry_new = await self.lookup( parent_inode_new, name_new if isinstance(name_new, bytes) else name_new.encode(), ctx, ) except pyfuse3.FUSEError as exc: if exc.errno != errno.ENOENT: raise if entry_new is not None: self._replace( parent_inode_old, name_old, parent_inode_new, name_new, entry_old, entry_new ) else: self.cursor.execute( "UPDATE contents SET name=?, parent_inode=? WHERE name=? AND parent_inode=?", (name_new, parent_inode_new, name_old, parent_inode_old), ) def _replace( self, parent_inode_old: InodeT, name_old: bytes, parent_inode_new: InodeT, name_new: bytes, entry_old: EntryAttributes, entry_new: EntryAttributes, ) -> None: if ( self.get_row( "SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry_new.st_ino,) )[0] > 0 ): raise pyfuse3.FUSEError(errno.ENOTEMPTY) self.cursor.execute( "UPDATE contents SET inode=? WHERE name=? AND parent_inode=?", (entry_old.st_ino, name_new, parent_inode_new), ) self.db.execute( 'DELETE FROM contents WHERE name=? AND parent_inode=?', (name_old, parent_inode_old) ) if entry_new.st_nlink == 1 and entry_new.st_ino not in self.inode_open_count: self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry_new.st_ino,)) async def link( self, inode: InodeT, new_parent_inode: InodeT, new_name: bytes, ctx: RequestContext ) -> EntryAttributes: entry_p = await self.getattr(new_parent_inode, ctx) if entry_p.st_nlink == 0: log.warning( 'Attempted to create entry %s with unlinked parent %d', new_name, new_parent_inode ) raise FUSEError(errno.EINVAL) self.cursor.execute( "INSERT INTO contents (name, inode, parent_inode) VALUES(?,?,?)", (new_name, inode, new_parent_inode), ) return await self.getattr(inode, ctx) async def setattr( self, inode: InodeT, attr: EntryAttributes, fields: SetattrFields, fh: FileHandleT | None, ctx: RequestContext, ) -> EntryAttributes: if fields.update_size: data = self.get_row('SELECT data FROM inodes WHERE id=?', (inode,))[0] if data is None: data = b'' if len(data) < attr.st_size: data = data + b'\0' * (attr.st_size - len(data)) else: data = data[: attr.st_size] self.cursor.execute( 'UPDATE inodes SET data=?, size=? WHERE id=?', (memoryview(data), attr.st_size, inode), ) if fields.update_mode: self.cursor.execute('UPDATE inodes SET mode=? WHERE id=?', (attr.st_mode, inode)) if fields.update_uid: self.cursor.execute('UPDATE inodes SET uid=? WHERE id=?', (attr.st_uid, inode)) if fields.update_gid: self.cursor.execute('UPDATE inodes SET gid=? WHERE id=?', (attr.st_gid, inode)) if fields.update_atime: self.cursor.execute( 'UPDATE inodes SET atime_ns=? WHERE id=?', (attr.st_atime_ns, inode) ) if fields.update_mtime: self.cursor.execute( 'UPDATE inodes SET mtime_ns=? WHERE id=?', (attr.st_mtime_ns, inode) ) if fields.update_ctime: self.cursor.execute( 'UPDATE inodes SET ctime_ns=? WHERE id=?', (attr.st_ctime_ns, inode) ) else: self.cursor.execute( 'UPDATE inodes SET ctime_ns=? WHERE id=?', (int(time() * 1e9), inode) ) return await self.getattr(inode, ctx) async def mknod( self, parent_inode: InodeT, name: bytes, mode: int, rdev: int, ctx: RequestContext ) -> EntryAttributes: return await self._create(parent_inode, name, mode, ctx, rdev=rdev) async def mkdir( self, parent_inode: InodeT, name: bytes, mode: int, ctx: RequestContext ) -> EntryAttributes: return await self._create(parent_inode, name, mode, ctx) async def statfs(self, ctx: RequestContext) -> StatvfsData: stat_ = StatvfsData() stat_.f_bsize = 512 stat_.f_frsize = 512 size = self.get_row('SELECT SUM(size) FROM inodes')[0] stat_.f_blocks = size // stat_.f_frsize stat_.f_bfree = max(size // stat_.f_frsize, 1024) stat_.f_bavail = stat_.f_bfree inodes = self.get_row('SELECT COUNT(id) FROM inodes')[0] stat_.f_files = inodes stat_.f_ffree = max(inodes, 100) stat_.f_favail = stat_.f_ffree return stat_ async def open(self, inode: InodeT, flags: int, ctx: RequestContext) -> FileInfo: self.inode_open_count[inode] += 1 # For simplicity, we use the inode as file handle return FileInfo(fh=FileHandleT(inode)) async def access(self, inode: InodeT, mode: int, ctx: RequestContext) -> bool: # Yeah, could be a function and has unused arguments # pylint: disable=R0201,W0613 return True async def create( self, parent_inode: InodeT, name: bytes, mode: int, flags: int, ctx: RequestContext ) -> tuple[FileInfo, EntryAttributes]: # pylint: disable=W0612 entry = await self._create(parent_inode, name, mode, ctx) self.inode_open_count[entry.st_ino] += 1 # For simplicity, we use the inode as file handle return (FileInfo(fh=FileHandleT(entry.st_ino)), entry) async def _create( self, parent_inode: InodeT, name: bytes, mode: int, ctx: RequestContext, rdev: int = 0, target: bytes | None = None, ) -> EntryAttributes: if (await self.getattr(parent_inode, ctx)).st_nlink == 0: log.warning('Attempted to create entry %s with unlinked parent %d', name, parent_inode) raise FUSEError(errno.EINVAL) now_ns = int(time() * 1e9) self.cursor.execute( 'INSERT INTO inodes (uid, gid, mode, mtime_ns, atime_ns, ' 'ctime_ns, target, rdev) VALUES(?, ?, ?, ?, ?, ?, ?, ?)', (ctx.uid, ctx.gid, mode, now_ns, now_ns, now_ns, target, rdev), ) inode = cast(InodeT, self.cursor.lastrowid) self.db.execute( "INSERT INTO contents(name, inode, parent_inode) VALUES(?,?,?)", (name, inode, parent_inode), ) return await self.getattr(inode, ctx) async def read(self, fh: FileHandleT, off: int, size: int) -> bytes: data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0] if data is None: data = b'' return data[off : off + size] async def write(self, fh: FileHandleT, off: int, buf: bytes) -> int: data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0] if data is None: data = b'' data = data[:off] + buf + data[off + len(buf) :] self.cursor.execute( 'UPDATE inodes SET data=?, size=? WHERE id=?', (memoryview(data), len(data), fh) ) return len(buf) async def release(self, fh: FileHandleT) -> None: inode = fh self.inode_open_count[inode] -= 1 if self.inode_open_count[inode] == 0: del self.inode_open_count[inode] if (await self.getattr(inode)).st_nlink == 0: self.cursor.execute("DELETE FROM inodes WHERE id=?", (inode,)) class NoUniqueValueError(Exception): def __str__(self) -> str: return 'Query generated more than 1 result row' class NoSuchRowError(Exception): def __str__(self) -> str: return 'Query produced 0 result rows' def init_logging(debug: bool = False) -> None: formatter = logging.Formatter( '%(asctime)s.%(msecs)03d %(threadName)s: [%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S", ) handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args() -> Namespace: '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument( '--debug', action='store_true', default=False, help='Enable debugging output' ) parser.add_argument( '--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output' ) return parser.parse_args() if __name__ == '__main__': options = parse_args() init_logging(options.debug) operations = Operations() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=tmpfs') fuse_options.discard('default_permissions') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(operations, options.mountpoint, fuse_options) try: trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise pyfuse3.close() ”h]”h-X0I#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' tmpfs.py - Example file system for pyfuse3. This file system stores all data in memory. Copyright © 2013 Nikolaus Rath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import errno import logging import os import sqlite3 import stat from argparse import ArgumentParser, Namespace from collections import defaultdict from time import time from typing import Any, cast import trio import pyfuse3 from pyfuse3 import ( EntryAttributes, FileHandleT, FileInfo, FUSEError, InodeT, ReaddirToken, RequestContext, SetattrFields, StatvfsData, ) try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger() class Operations(pyfuse3.Operations): '''An example filesystem that stores all data in memory This is a very simple implementation with terrible performance. Don't try to store significant amounts of data. Also, there are some other flaws that have not been fixed to keep the code easier to understand: * atime, mtime and ctime are not updated * generation numbers are not supported * lookup counts are not maintained ''' enable_writeback_cache = True def __init__(self) -> None: super(Operations, self).__init__() self.db: sqlite3.Connection = sqlite3.connect(':memory:') self.db.text_factory = str self.db.row_factory = sqlite3.Row self.cursor: sqlite3.Cursor = self.db.cursor() self.inode_open_count: defaultdict[InodeT, int] = defaultdict(int) self.init_tables() def init_tables(self) -> None: '''Initialize file system tables''' self.cursor.execute(""" CREATE TABLE inodes ( id INTEGER PRIMARY KEY, uid INT NOT NULL, gid INT NOT NULL, mode INT NOT NULL, mtime_ns INT NOT NULL, atime_ns INT NOT NULL, ctime_ns INT NOT NULL, target BLOB(256) , size INT NOT NULL DEFAULT 0, rdev INT NOT NULL DEFAULT 0, data BLOB ) """) self.cursor.execute(""" CREATE TABLE contents ( rowid INTEGER PRIMARY KEY AUTOINCREMENT, name BLOB(256) NOT NULL, inode INT NOT NULL REFERENCES inodes(id), parent_inode INT NOT NULL REFERENCES inodes(id), UNIQUE (name, parent_inode) )""") # Insert root directory now_ns = int(time() * 1e9) self.cursor.execute( "INSERT INTO inodes (id,mode,uid,gid,mtime_ns,atime_ns,ctime_ns) " "VALUES (?,?,?,?,?,?,?)", ( pyfuse3.ROOT_INODE, stat.S_IFDIR | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH, os.getuid(), os.getgid(), now_ns, now_ns, now_ns, ), ) self.cursor.execute( "INSERT INTO contents (name, parent_inode, inode) VALUES (?,?,?)", (b'..', pyfuse3.ROOT_INODE, pyfuse3.ROOT_INODE), ) def get_row(self, *a: Any, **kw: Any) -> sqlite3.Row: self.cursor.execute(*a, **kw) try: row = next(self.cursor) except StopIteration: raise NoSuchRowError() try: next(self.cursor) except StopIteration: pass else: raise NoUniqueValueError() return row async def lookup( self, parent_inode: InodeT, name: bytes, ctx: RequestContext ) -> EntryAttributes: if name == b'.': inode = parent_inode elif name == b'..': inode = self.get_row("SELECT * FROM contents WHERE inode=?", (parent_inode,))[ 'parent_inode' ] else: try: inode = self.get_row( "SELECT * FROM contents WHERE name=? AND parent_inode=?", (name, parent_inode) )['inode'] except NoSuchRowError: raise (pyfuse3.FUSEError(errno.ENOENT)) return await self.getattr(InodeT(inode), ctx) async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes: try: row = self.get_row("SELECT * FROM inodes WHERE id=?", (inode,)) except NoSuchRowError: raise (pyfuse3.FUSEError(errno.ENOENT)) entry = EntryAttributes() entry.st_ino = inode entry.generation = 0 entry.entry_timeout = 300 entry.attr_timeout = 300 entry.st_mode = row['mode'] entry.st_nlink = self.get_row("SELECT COUNT(inode) FROM contents WHERE inode=?", (inode,))[ 0 ] entry.st_uid = row['uid'] entry.st_gid = row['gid'] entry.st_rdev = row['rdev'] entry.st_size = row['size'] entry.st_blksize = 512 entry.st_blocks = 1 entry.st_atime_ns = row['atime_ns'] entry.st_mtime_ns = row['mtime_ns'] entry.st_ctime_ns = row['ctime_ns'] return entry async def readlink(self, inode: InodeT, ctx: RequestContext) -> bytes: return self.get_row('SELECT * FROM inodes WHERE id=?', (inode,))['target'] async def opendir(self, inode: InodeT, ctx: RequestContext) -> FileHandleT: # For simplicity, we use the inode as file handle return FileHandleT(inode) async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None: if start_id == 0: off = -1 else: off = start_id cursor2 = self.db.cursor() cursor2.execute( "SELECT * FROM contents WHERE parent_inode=? AND rowid > ? ORDER BY rowid", (fh, off) ) for row in cursor2: pyfuse3.readdir_reply( token, row['name'], await self.getattr(InodeT(row['inode'])), row['rowid'] ) async def unlink(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None: entry = await self.lookup(parent_inode, name, ctx) if stat.S_ISDIR(entry.st_mode): raise pyfuse3.FUSEError(errno.EISDIR) self._remove(parent_inode, name, entry) async def rmdir(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None: entry = await self.lookup(parent_inode, name, ctx) if not stat.S_ISDIR(entry.st_mode): raise pyfuse3.FUSEError(errno.ENOTDIR) self._remove(parent_inode, name, entry) def _remove(self, parent_inode: InodeT, name: bytes, entry: EntryAttributes) -> None: if ( self.get_row("SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry.st_ino,))[ 0 ] > 0 ): raise pyfuse3.FUSEError(errno.ENOTEMPTY) self.cursor.execute( "DELETE FROM contents WHERE name=? AND parent_inode=?", (name, parent_inode) ) if entry.st_nlink == 1 and entry.st_ino not in self.inode_open_count: self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry.st_ino,)) async def symlink( self, parent_inode: InodeT, name: bytes, target: bytes, ctx: RequestContext ) -> EntryAttributes: mode = ( stat.S_IFLNK | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IWOTH | stat.S_IXOTH ) return await self._create(parent_inode, name, mode, ctx, target=target) async def rename( self, parent_inode_old: InodeT, name_old: bytes, parent_inode_new: InodeT, name_new: bytes, flags: int, ctx: RequestContext, ) -> None: if flags != 0: raise FUSEError(errno.EINVAL) entry_old = await self.lookup(parent_inode_old, name_old, ctx) entry_new = None try: entry_new = await self.lookup( parent_inode_new, name_new if isinstance(name_new, bytes) else name_new.encode(), ctx, ) except pyfuse3.FUSEError as exc: if exc.errno != errno.ENOENT: raise if entry_new is not None: self._replace( parent_inode_old, name_old, parent_inode_new, name_new, entry_old, entry_new ) else: self.cursor.execute( "UPDATE contents SET name=?, parent_inode=? WHERE name=? AND parent_inode=?", (name_new, parent_inode_new, name_old, parent_inode_old), ) def _replace( self, parent_inode_old: InodeT, name_old: bytes, parent_inode_new: InodeT, name_new: bytes, entry_old: EntryAttributes, entry_new: EntryAttributes, ) -> None: if ( self.get_row( "SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry_new.st_ino,) )[0] > 0 ): raise pyfuse3.FUSEError(errno.ENOTEMPTY) self.cursor.execute( "UPDATE contents SET inode=? WHERE name=? AND parent_inode=?", (entry_old.st_ino, name_new, parent_inode_new), ) self.db.execute( 'DELETE FROM contents WHERE name=? AND parent_inode=?', (name_old, parent_inode_old) ) if entry_new.st_nlink == 1 and entry_new.st_ino not in self.inode_open_count: self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry_new.st_ino,)) async def link( self, inode: InodeT, new_parent_inode: InodeT, new_name: bytes, ctx: RequestContext ) -> EntryAttributes: entry_p = await self.getattr(new_parent_inode, ctx) if entry_p.st_nlink == 0: log.warning( 'Attempted to create entry %s with unlinked parent %d', new_name, new_parent_inode ) raise FUSEError(errno.EINVAL) self.cursor.execute( "INSERT INTO contents (name, inode, parent_inode) VALUES(?,?,?)", (new_name, inode, new_parent_inode), ) return await self.getattr(inode, ctx) async def setattr( self, inode: InodeT, attr: EntryAttributes, fields: SetattrFields, fh: FileHandleT | None, ctx: RequestContext, ) -> EntryAttributes: if fields.update_size: data = self.get_row('SELECT data FROM inodes WHERE id=?', (inode,))[0] if data is None: data = b'' if len(data) < attr.st_size: data = data + b'\0' * (attr.st_size - len(data)) else: data = data[: attr.st_size] self.cursor.execute( 'UPDATE inodes SET data=?, size=? WHERE id=?', (memoryview(data), attr.st_size, inode), ) if fields.update_mode: self.cursor.execute('UPDATE inodes SET mode=? WHERE id=?', (attr.st_mode, inode)) if fields.update_uid: self.cursor.execute('UPDATE inodes SET uid=? WHERE id=?', (attr.st_uid, inode)) if fields.update_gid: self.cursor.execute('UPDATE inodes SET gid=? WHERE id=?', (attr.st_gid, inode)) if fields.update_atime: self.cursor.execute( 'UPDATE inodes SET atime_ns=? WHERE id=?', (attr.st_atime_ns, inode) ) if fields.update_mtime: self.cursor.execute( 'UPDATE inodes SET mtime_ns=? WHERE id=?', (attr.st_mtime_ns, inode) ) if fields.update_ctime: self.cursor.execute( 'UPDATE inodes SET ctime_ns=? WHERE id=?', (attr.st_ctime_ns, inode) ) else: self.cursor.execute( 'UPDATE inodes SET ctime_ns=? WHERE id=?', (int(time() * 1e9), inode) ) return await self.getattr(inode, ctx) async def mknod( self, parent_inode: InodeT, name: bytes, mode: int, rdev: int, ctx: RequestContext ) -> EntryAttributes: return await self._create(parent_inode, name, mode, ctx, rdev=rdev) async def mkdir( self, parent_inode: InodeT, name: bytes, mode: int, ctx: RequestContext ) -> EntryAttributes: return await self._create(parent_inode, name, mode, ctx) async def statfs(self, ctx: RequestContext) -> StatvfsData: stat_ = StatvfsData() stat_.f_bsize = 512 stat_.f_frsize = 512 size = self.get_row('SELECT SUM(size) FROM inodes')[0] stat_.f_blocks = size // stat_.f_frsize stat_.f_bfree = max(size // stat_.f_frsize, 1024) stat_.f_bavail = stat_.f_bfree inodes = self.get_row('SELECT COUNT(id) FROM inodes')[0] stat_.f_files = inodes stat_.f_ffree = max(inodes, 100) stat_.f_favail = stat_.f_ffree return stat_ async def open(self, inode: InodeT, flags: int, ctx: RequestContext) -> FileInfo: self.inode_open_count[inode] += 1 # For simplicity, we use the inode as file handle return FileInfo(fh=FileHandleT(inode)) async def access(self, inode: InodeT, mode: int, ctx: RequestContext) -> bool: # Yeah, could be a function and has unused arguments # pylint: disable=R0201,W0613 return True async def create( self, parent_inode: InodeT, name: bytes, mode: int, flags: int, ctx: RequestContext ) -> tuple[FileInfo, EntryAttributes]: # pylint: disable=W0612 entry = await self._create(parent_inode, name, mode, ctx) self.inode_open_count[entry.st_ino] += 1 # For simplicity, we use the inode as file handle return (FileInfo(fh=FileHandleT(entry.st_ino)), entry) async def _create( self, parent_inode: InodeT, name: bytes, mode: int, ctx: RequestContext, rdev: int = 0, target: bytes | None = None, ) -> EntryAttributes: if (await self.getattr(parent_inode, ctx)).st_nlink == 0: log.warning('Attempted to create entry %s with unlinked parent %d', name, parent_inode) raise FUSEError(errno.EINVAL) now_ns = int(time() * 1e9) self.cursor.execute( 'INSERT INTO inodes (uid, gid, mode, mtime_ns, atime_ns, ' 'ctime_ns, target, rdev) VALUES(?, ?, ?, ?, ?, ?, ?, ?)', (ctx.uid, ctx.gid, mode, now_ns, now_ns, now_ns, target, rdev), ) inode = cast(InodeT, self.cursor.lastrowid) self.db.execute( "INSERT INTO contents(name, inode, parent_inode) VALUES(?,?,?)", (name, inode, parent_inode), ) return await self.getattr(inode, ctx) async def read(self, fh: FileHandleT, off: int, size: int) -> bytes: data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0] if data is None: data = b'' return data[off : off + size] async def write(self, fh: FileHandleT, off: int, buf: bytes) -> int: data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0] if data is None: data = b'' data = data[:off] + buf + data[off + len(buf) :] self.cursor.execute( 'UPDATE inodes SET data=?, size=? WHERE id=?', (memoryview(data), len(data), fh) ) return len(buf) async def release(self, fh: FileHandleT) -> None: inode = fh self.inode_open_count[inode] -= 1 if self.inode_open_count[inode] == 0: del self.inode_open_count[inode] if (await self.getattr(inode)).st_nlink == 0: self.cursor.execute("DELETE FROM inodes WHERE id=?", (inode,)) class NoUniqueValueError(Exception): def __str__(self) -> str: return 'Query generated more than 1 result row' class NoSuchRowError(Exception): def __str__(self) -> str: return 'Query produced 0 result rows' def init_logging(debug: bool = False) -> None: formatter = logging.Formatter( '%(asctime)s.%(msecs)03d %(threadName)s: [%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S", ) handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args() -> Namespace: '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument( '--debug', action='store_true', default=False, help='Enable debugging output' ) parser.add_argument( '--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output' ) return parser.parse_args() if __name__ == '__main__': options = parse_args() init_logging(options.debug) operations = Operations() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=tmpfs') fuse_options.discard('default_permissions') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(operations, options.mountpoint, fuse_options) try: trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise pyfuse3.close() ”…”�”}”hhßsbah}”(h]”h]”h]”h]”Œsource”Œ4/home/nikratio/in-progress/pyfuse3/examples/tmpfs.py”hžhŸh ‰h¡Œpython”h£ˆh¤}”h¦Ksuhh�hh hKhh®hhubeh}”(h]”Œin-memory-file-system”ah]”h]”Œin-memory file system”ah]”uhh!hh#hhhh hKubh")�”}”(hhh]”(h')�”}”(hŒ!Passthrough / Overlay File System”h]”h-Œ!Passthrough / Overlay File System”…”�”}”(hhúhhhNhNubah}”(h]”h]”h]”h]”uhh&hh÷hhhh hKubh8)�”}”(hŒ.(shipped as :file:`examples/passthroughfs.py`)”h]”(h-Œ (shipped as ”…”�”}”(hjhhhNhNubhB)�”}”(hŒ!:file:`examples/passthroughfs.py`”h]”h-Œexamples/passthroughfs.py”…”�”}”(hjhhhNhNubah}”(h]”h]”Œfile”ah]”h]”Œrole”Œfile”uhhAhjubh-Œ)”…”�”}”(hjhhhNhNubeh}”(h]”h]”h]”h]”uhh7hh hK!hh÷hhubhŽ)�”}”(hXìO#!/usr/bin/env python3 ''' passthroughfs.py - Example file system for pyfuse3 This file system mirrors the contents of a specified directory tree. Caveats: * Inode generation numbers are not passed through but set to zero. * Block size (st_blksize) and number of allocated blocks (st_blocks) are not passed through. * Performance for large directories is not good, because the directory is always read completely. * There may be a way to break-out of the directory tree. * The readdir implementation is not fully POSIX compliant. If a directory contains hardlinks and is modified during a readdir call, readdir() may return some of the hardlinked files twice or omit them completely. * If you delete or rename files in the underlying file system, the passthrough file system will get confused. Copyright © Nikolaus Rath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import errno import faulthandler import logging import os import stat as stat_m import sys from argparse import ArgumentParser, Namespace from collections import defaultdict from collections.abc import Sequence from os import fsdecode, fsencode import trio import pyfuse3 from pyfuse3 import ( EntryAttributes, FileHandleT, FileInfo, FUSEError, InodeT, ReaddirToken, RequestContext, SetattrFields, StatvfsData, ) faulthandler.enable() log = logging.getLogger(__name__) class Operations(pyfuse3.Operations): def __init__(self, source: str, enable_writeback_cache: bool = False) -> None: super().__init__() self.enable_writeback_cache = enable_writeback_cache self._inode_path_map: dict[InodeT, str | set[str]] = {pyfuse3.ROOT_INODE: source} self._lookup_cnt: defaultdict[InodeT, int] = defaultdict(lambda: 0) self._fd_inode_map: dict[int, InodeT] = dict() self._inode_fd_map: dict[InodeT, int] = dict() self._fd_open_count: dict[int, int] = dict() def _inode_to_path(self, inode: InodeT) -> str: try: val = self._inode_path_map[inode] except KeyError: raise FUSEError(errno.ENOENT) if isinstance(val, set): # In case of hardlinks, pick any path val = next(iter(val)) return val def _add_path(self, inode: InodeT, path: str) -> None: log.debug('_add_path for %d, %s', inode, path) self._lookup_cnt[inode] += 1 # With hardlinks, one inode may map to multiple paths. if inode not in self._inode_path_map: self._inode_path_map[inode] = path return val = self._inode_path_map[inode] if isinstance(val, set): val.add(path) elif val != path: self._inode_path_map[inode] = {path, val} async def forget(self, inode_list: Sequence[tuple[InodeT, int]]) -> None: for inode, nlookup in inode_list: if self._lookup_cnt[inode] > nlookup: self._lookup_cnt[inode] -= nlookup continue log.debug('forgetting about inode %d', inode) assert inode not in self._inode_fd_map del self._lookup_cnt[inode] try: del self._inode_path_map[inode] except KeyError: # may have been deleted pass async def lookup( self, parent_inode: InodeT, name: bytes, ctx: RequestContext ) -> EntryAttributes: name_str = fsdecode(name) log.debug('lookup for %s in %d', name_str, parent_inode) path = os.path.join(self._inode_to_path(parent_inode), name_str) attr = self._getattr(path=path) if name_str != '.' and name_str != '..': self._add_path(InodeT(attr.st_ino), path) return attr async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes: if inode in self._inode_fd_map: return self._getattr(fd=self._inode_fd_map[inode]) else: return self._getattr(path=self._inode_to_path(inode)) def _getattr(self, path: str | None = None, fd: int | None = None) -> EntryAttributes: assert fd is None or path is None assert not (fd is None and path is None) try: if fd is None: assert path is not None stat = os.lstat(path) else: stat = os.fstat(fd) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) entry = EntryAttributes() for attr in ( 'st_ino', 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', 'st_size', 'st_atime_ns', 'st_mtime_ns', 'st_ctime_ns', ): setattr(entry, attr, getattr(stat, attr)) entry.generation = 0 entry.entry_timeout = 0 entry.attr_timeout = 0 entry.st_blksize = 512 entry.st_blocks = (entry.st_size + entry.st_blksize - 1) // entry.st_blksize return entry async def readlink(self, inode: InodeT, ctx: RequestContext) -> bytes: path = self._inode_to_path(inode) try: target = os.readlink(path) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) return fsencode(target) async def opendir(self, inode: InodeT, ctx: RequestContext) -> FileHandleT: # For simplicity, we use the inode as file handle return FileHandleT(inode) async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None: path = self._inode_to_path(InodeT(fh)) log.debug('reading %s', path) entries: list[tuple[InodeT, str, EntryAttributes]] = [] for name in os.listdir(path): if name == '.' or name == '..': continue attr = self._getattr(path=os.path.join(path, name)) entries.append((InodeT(attr.st_ino), name, attr)) log.debug('read %d entries, starting at %d', len(entries), start_id) # This is not fully posix compatible. If there are hardlinks # (two names with the same inode), we don't have a unique # offset to start in between them. Note that we cannot simply # count entries, because then we would skip over entries # (or return them more than once) if the number of directory # entries changes between two calls to readdir(). for ino, name, attr in sorted(entries): if ino <= start_id: continue if not pyfuse3.readdir_reply(token, fsencode(name), attr, ino): break self._add_path(attr.st_ino, os.path.join(path, name)) async def unlink(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None: name_str = fsdecode(name) parent = self._inode_to_path(parent_inode) path = os.path.join(parent, name_str) try: inode = os.lstat(path).st_ino os.unlink(path) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) if inode in self._lookup_cnt: self._forget_path(InodeT(inode), path) async def rmdir(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None: name_str = fsdecode(name) parent = self._inode_to_path(parent_inode) path = os.path.join(parent, name_str) try: inode = os.lstat(path).st_ino os.rmdir(path) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) if inode in self._lookup_cnt: self._forget_path(InodeT(inode), path) def _forget_path(self, inode: InodeT, path: str) -> None: log.debug('forget %s for %d', path, inode) val = self._inode_path_map[inode] if isinstance(val, set): val.remove(path) if len(val) == 1: self._inode_path_map[inode] = next(iter(val)) else: del self._inode_path_map[inode] async def symlink( self, parent_inode: InodeT, name: bytes, target: bytes, ctx: RequestContext ) -> EntryAttributes: name_str = fsdecode(name) target_str = fsdecode(target) parent = self._inode_to_path(parent_inode) path = os.path.join(parent, name_str) try: os.symlink(target_str, path) os.lchown(path, ctx.uid, ctx.gid) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) inode = InodeT(os.lstat(path).st_ino) self._add_path(inode, path) return await self.getattr(inode, ctx) async def rename( self, parent_inode_old: InodeT, name_old: bytes, parent_inode_new: InodeT, name_new: bytes, flags: int, ctx: RequestContext, ) -> None: if flags != 0: raise FUSEError(errno.EINVAL) name_old_str = fsdecode(name_old) name_new_str = fsdecode(name_new) parent_old = self._inode_to_path(parent_inode_old) parent_new = self._inode_to_path(parent_inode_new) path_old = os.path.join(parent_old, name_old_str) path_new = os.path.join(parent_new, name_new_str) try: os.rename(path_old, path_new) inode = os.lstat(path_new).st_ino except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) if inode not in self._lookup_cnt: return val = self._inode_path_map[inode] if isinstance(val, set): assert len(val) > 1 val.add(path_new) val.remove(path_old) else: assert val == path_old self._inode_path_map[inode] = path_new async def link( self, inode: InodeT, new_parent_inode: InodeT, new_name: bytes, ctx: RequestContext ) -> EntryAttributes: new_name_str = fsdecode(new_name) parent = self._inode_to_path(new_parent_inode) path = os.path.join(parent, new_name_str) try: os.link(self._inode_to_path(inode), path, follow_symlinks=False) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) self._add_path(inode, path) return await self.getattr(inode, ctx) async def setattr( self, inode: InodeT, attr: EntryAttributes, fields: SetattrFields, fh: FileHandleT | None, ctx: RequestContext, ) -> EntryAttributes: try: if fields.update_size: if fh is None: os.truncate(self._inode_to_path(inode), attr.st_size) else: os.ftruncate(fh, attr.st_size) if fields.update_mode: # Under Linux, chmod always resolves symlinks so we should # actually never get a setattr() request for a symbolic # link. assert not stat_m.S_ISLNK(attr.st_mode) if fh is None: os.chmod(self._inode_to_path(inode), stat_m.S_IMODE(attr.st_mode)) else: os.fchmod(fh, stat_m.S_IMODE(attr.st_mode)) if fields.update_uid and fields.update_gid: if fh is None: os.chown( self._inode_to_path(inode), attr.st_uid, attr.st_gid, follow_symlinks=False ) else: os.fchown(fh, attr.st_uid, attr.st_gid) elif fields.update_uid: if fh is None: os.chown(self._inode_to_path(inode), attr.st_uid, -1, follow_symlinks=False) else: os.fchown(fh, attr.st_uid, -1) elif fields.update_gid: if fh is None: os.chown(self._inode_to_path(inode), -1, attr.st_gid, follow_symlinks=False) else: os.fchown(fh, -1, attr.st_gid) if fields.update_atime and fields.update_mtime: if fh is None: os.utime( self._inode_to_path(inode), None, follow_symlinks=False, ns=(attr.st_atime_ns, attr.st_mtime_ns), ) else: os.utime(fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns)) elif fields.update_atime or fields.update_mtime: # We can only set both values, so we first need to retrieve the # one that we shouldn't be changing. if fh is None: path = self._inode_to_path(inode) oldstat = os.stat(path, follow_symlinks=False) else: oldstat = os.fstat(fh) if not fields.update_atime: attr.st_atime_ns = oldstat.st_atime_ns else: attr.st_mtime_ns = oldstat.st_mtime_ns if fh is None: os.utime( path, # pyright: ignore[reportPossiblyUnboundVariable] None, follow_symlinks=False, ns=(attr.st_atime_ns, attr.st_mtime_ns), ) else: os.utime(fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns)) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) return await self.getattr(inode, ctx) async def mknod( self, parent_inode: InodeT, name: bytes, mode: int, rdev: int, ctx: RequestContext ) -> EntryAttributes: path = os.path.join(self._inode_to_path(parent_inode), fsdecode(name)) try: os.mknod(path, mode=(mode & ~ctx.umask), device=rdev) os.chown(path, ctx.uid, ctx.gid) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) attr = self._getattr(path=path) self._add_path(attr.st_ino, path) return attr async def mkdir( self, parent_inode: InodeT, name: bytes, mode: int, ctx: RequestContext ) -> EntryAttributes: path = os.path.join(self._inode_to_path(parent_inode), fsdecode(name)) try: os.mkdir(path, mode=(mode & ~ctx.umask)) os.chown(path, ctx.uid, ctx.gid) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) attr = self._getattr(path=path) self._add_path(attr.st_ino, path) return attr async def statfs(self, ctx: RequestContext) -> StatvfsData: root = self._inode_path_map[pyfuse3.ROOT_INODE] assert isinstance(root, str) stat_ = StatvfsData() try: statfs = os.statvfs(root) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) for attr in ( 'f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', 'f_bavail', 'f_files', 'f_ffree', 'f_favail', ): setattr(stat_, attr, getattr(statfs, attr)) stat_.f_namemax = statfs.f_namemax - (len(root) + 1) return stat_ async def open(self, inode: InodeT, flags: int, ctx: RequestContext) -> FileInfo: if inode in self._inode_fd_map: fd = self._inode_fd_map[inode] self._fd_open_count[fd] += 1 return FileInfo(fh=FileHandleT(fd)) assert flags & os.O_CREAT == 0 try: fd = os.open(self._inode_to_path(inode), flags) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) self._inode_fd_map[inode] = fd self._fd_inode_map[fd] = inode self._fd_open_count[fd] = 1 return FileInfo(fh=fd) async def create( self, parent_inode: InodeT, name: bytes, mode: int, flags: int, ctx: RequestContext ) -> tuple[FileInfo, EntryAttributes]: path = os.path.join(self._inode_to_path(parent_inode), fsdecode(name)) try: fd = os.open(path, flags | os.O_CREAT | os.O_TRUNC) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) attr = self._getattr(fd=fd) self._add_path(attr.st_ino, path) self._inode_fd_map[attr.st_ino] = fd self._fd_inode_map[fd] = attr.st_ino self._fd_open_count[fd] = 1 return (FileInfo(fh=fd), attr) async def read(self, fh: FileHandleT, off: int, size: int) -> bytes: os.lseek(fh, off, os.SEEK_SET) return os.read(fh, size) async def write(self, fh: FileHandleT, off: int, buf: bytes) -> int: os.lseek(fh, off, os.SEEK_SET) return os.write(fh, buf) async def release(self, fh: FileHandleT) -> None: if self._fd_open_count[fh] > 1: self._fd_open_count[fh] -= 1 return del self._fd_open_count[fh] inode = self._fd_inode_map[fh] del self._inode_fd_map[inode] del self._fd_inode_map[fh] try: os.close(fh) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) def init_logging(debug: bool = False) -> None: formatter = logging.Formatter( '%(asctime)s.%(msecs)03d %(threadName)s: [%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S", ) handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args(args: list[str]) -> Namespace: '''Parse command line''' parser = ArgumentParser() parser.add_argument('source', type=str, help='Directory tree to mirror') parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument( '--debug', action='store_true', default=False, help='Enable debugging output' ) parser.add_argument( '--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output' ) parser.add_argument( '--enable-writeback-cache', action='store_true', default=False, help='Enable writeback cache (default: disabled)', ) return parser.parse_args(args) def main() -> None: options = parse_args(sys.argv[1:]) init_logging(options.debug) operations = Operations(options.source, enable_writeback_cache=options.enable_writeback_cache) log.debug('Mounting...') fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=passthroughfs') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(operations, options.mountpoint, fuse_options) try: log.debug('Entering main loop..') trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise log.debug('Unmounting..') pyfuse3.close() if __name__ == '__main__': main() ”•ßZh]”h-XìO#!/usr/bin/env python3 ''' passthroughfs.py - Example file system for pyfuse3 This file system mirrors the contents of a specified directory tree. Caveats: * Inode generation numbers are not passed through but set to zero. * Block size (st_blksize) and number of allocated blocks (st_blocks) are not passed through. * Performance for large directories is not good, because the directory is always read completely. * There may be a way to break-out of the directory tree. * The readdir implementation is not fully POSIX compliant. If a directory contains hardlinks and is modified during a readdir call, readdir() may return some of the hardlinked files twice or omit them completely. * If you delete or rename files in the underlying file system, the passthrough file system will get confused. Copyright © Nikolaus Rath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import errno import faulthandler import logging import os import stat as stat_m import sys from argparse import ArgumentParser, Namespace from collections import defaultdict from collections.abc import Sequence from os import fsdecode, fsencode import trio import pyfuse3 from pyfuse3 import ( EntryAttributes, FileHandleT, FileInfo, FUSEError, InodeT, ReaddirToken, RequestContext, SetattrFields, StatvfsData, ) faulthandler.enable() log = logging.getLogger(__name__) class Operations(pyfuse3.Operations): def __init__(self, source: str, enable_writeback_cache: bool = False) -> None: super().__init__() self.enable_writeback_cache = enable_writeback_cache self._inode_path_map: dict[InodeT, str | set[str]] = {pyfuse3.ROOT_INODE: source} self._lookup_cnt: defaultdict[InodeT, int] = defaultdict(lambda: 0) self._fd_inode_map: dict[int, InodeT] = dict() self._inode_fd_map: dict[InodeT, int] = dict() self._fd_open_count: dict[int, int] = dict() def _inode_to_path(self, inode: InodeT) -> str: try: val = self._inode_path_map[inode] except KeyError: raise FUSEError(errno.ENOENT) if isinstance(val, set): # In case of hardlinks, pick any path val = next(iter(val)) return val def _add_path(self, inode: InodeT, path: str) -> None: log.debug('_add_path for %d, %s', inode, path) self._lookup_cnt[inode] += 1 # With hardlinks, one inode may map to multiple paths. if inode not in self._inode_path_map: self._inode_path_map[inode] = path return val = self._inode_path_map[inode] if isinstance(val, set): val.add(path) elif val != path: self._inode_path_map[inode] = {path, val} async def forget(self, inode_list: Sequence[tuple[InodeT, int]]) -> None: for inode, nlookup in inode_list: if self._lookup_cnt[inode] > nlookup: self._lookup_cnt[inode] -= nlookup continue log.debug('forgetting about inode %d', inode) assert inode not in self._inode_fd_map del self._lookup_cnt[inode] try: del self._inode_path_map[inode] except KeyError: # may have been deleted pass async def lookup( self, parent_inode: InodeT, name: bytes, ctx: RequestContext ) -> EntryAttributes: name_str = fsdecode(name) log.debug('lookup for %s in %d', name_str, parent_inode) path = os.path.join(self._inode_to_path(parent_inode), name_str) attr = self._getattr(path=path) if name_str != '.' and name_str != '..': self._add_path(InodeT(attr.st_ino), path) return attr async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes: if inode in self._inode_fd_map: return self._getattr(fd=self._inode_fd_map[inode]) else: return self._getattr(path=self._inode_to_path(inode)) def _getattr(self, path: str | None = None, fd: int | None = None) -> EntryAttributes: assert fd is None or path is None assert not (fd is None and path is None) try: if fd is None: assert path is not None stat = os.lstat(path) else: stat = os.fstat(fd) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) entry = EntryAttributes() for attr in ( 'st_ino', 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', 'st_size', 'st_atime_ns', 'st_mtime_ns', 'st_ctime_ns', ): setattr(entry, attr, getattr(stat, attr)) entry.generation = 0 entry.entry_timeout = 0 entry.attr_timeout = 0 entry.st_blksize = 512 entry.st_blocks = (entry.st_size + entry.st_blksize - 1) // entry.st_blksize return entry async def readlink(self, inode: InodeT, ctx: RequestContext) -> bytes: path = self._inode_to_path(inode) try: target = os.readlink(path) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) return fsencode(target) async def opendir(self, inode: InodeT, ctx: RequestContext) -> FileHandleT: # For simplicity, we use the inode as file handle return FileHandleT(inode) async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None: path = self._inode_to_path(InodeT(fh)) log.debug('reading %s', path) entries: list[tuple[InodeT, str, EntryAttributes]] = [] for name in os.listdir(path): if name == '.' or name == '..': continue attr = self._getattr(path=os.path.join(path, name)) entries.append((InodeT(attr.st_ino), name, attr)) log.debug('read %d entries, starting at %d', len(entries), start_id) # This is not fully posix compatible. If there are hardlinks # (two names with the same inode), we don't have a unique # offset to start in between them. Note that we cannot simply # count entries, because then we would skip over entries # (or return them more than once) if the number of directory # entries changes between two calls to readdir(). for ino, name, attr in sorted(entries): if ino <= start_id: continue if not pyfuse3.readdir_reply(token, fsencode(name), attr, ino): break self._add_path(attr.st_ino, os.path.join(path, name)) async def unlink(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None: name_str = fsdecode(name) parent = self._inode_to_path(parent_inode) path = os.path.join(parent, name_str) try: inode = os.lstat(path).st_ino os.unlink(path) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) if inode in self._lookup_cnt: self._forget_path(InodeT(inode), path) async def rmdir(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None: name_str = fsdecode(name) parent = self._inode_to_path(parent_inode) path = os.path.join(parent, name_str) try: inode = os.lstat(path).st_ino os.rmdir(path) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) if inode in self._lookup_cnt: self._forget_path(InodeT(inode), path) def _forget_path(self, inode: InodeT, path: str) -> None: log.debug('forget %s for %d', path, inode) val = self._inode_path_map[inode] if isinstance(val, set): val.remove(path) if len(val) == 1: self._inode_path_map[inode] = next(iter(val)) else: del self._inode_path_map[inode] async def symlink( self, parent_inode: InodeT, name: bytes, target: bytes, ctx: RequestContext ) -> EntryAttributes: name_str = fsdecode(name) target_str = fsdecode(target) parent = self._inode_to_path(parent_inode) path = os.path.join(parent, name_str) try: os.symlink(target_str, path) os.lchown(path, ctx.uid, ctx.gid) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) inode = InodeT(os.lstat(path).st_ino) self._add_path(inode, path) return await self.getattr(inode, ctx) async def rename( self, parent_inode_old: InodeT, name_old: bytes, parent_inode_new: InodeT, name_new: bytes, flags: int, ctx: RequestContext, ) -> None: if flags != 0: raise FUSEError(errno.EINVAL) name_old_str = fsdecode(name_old) name_new_str = fsdecode(name_new) parent_old = self._inode_to_path(parent_inode_old) parent_new = self._inode_to_path(parent_inode_new) path_old = os.path.join(parent_old, name_old_str) path_new = os.path.join(parent_new, name_new_str) try: os.rename(path_old, path_new) inode = os.lstat(path_new).st_ino except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) if inode not in self._lookup_cnt: return val = self._inode_path_map[inode] if isinstance(val, set): assert len(val) > 1 val.add(path_new) val.remove(path_old) else: assert val == path_old self._inode_path_map[inode] = path_new async def link( self, inode: InodeT, new_parent_inode: InodeT, new_name: bytes, ctx: RequestContext ) -> EntryAttributes: new_name_str = fsdecode(new_name) parent = self._inode_to_path(new_parent_inode) path = os.path.join(parent, new_name_str) try: os.link(self._inode_to_path(inode), path, follow_symlinks=False) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) self._add_path(inode, path) return await self.getattr(inode, ctx) async def setattr( self, inode: InodeT, attr: EntryAttributes, fields: SetattrFields, fh: FileHandleT | None, ctx: RequestContext, ) -> EntryAttributes: try: if fields.update_size: if fh is None: os.truncate(self._inode_to_path(inode), attr.st_size) else: os.ftruncate(fh, attr.st_size) if fields.update_mode: # Under Linux, chmod always resolves symlinks so we should # actually never get a setattr() request for a symbolic # link. assert not stat_m.S_ISLNK(attr.st_mode) if fh is None: os.chmod(self._inode_to_path(inode), stat_m.S_IMODE(attr.st_mode)) else: os.fchmod(fh, stat_m.S_IMODE(attr.st_mode)) if fields.update_uid and fields.update_gid: if fh is None: os.chown( self._inode_to_path(inode), attr.st_uid, attr.st_gid, follow_symlinks=False ) else: os.fchown(fh, attr.st_uid, attr.st_gid) elif fields.update_uid: if fh is None: os.chown(self._inode_to_path(inode), attr.st_uid, -1, follow_symlinks=False) else: os.fchown(fh, attr.st_uid, -1) elif fields.update_gid: if fh is None: os.chown(self._inode_to_path(inode), -1, attr.st_gid, follow_symlinks=False) else: os.fchown(fh, -1, attr.st_gid) if fields.update_atime and fields.update_mtime: if fh is None: os.utime( self._inode_to_path(inode), None, follow_symlinks=False, ns=(attr.st_atime_ns, attr.st_mtime_ns), ) else: os.utime(fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns)) elif fields.update_atime or fields.update_mtime: # We can only set both values, so we first need to retrieve the # one that we shouldn't be changing. if fh is None: path = self._inode_to_path(inode) oldstat = os.stat(path, follow_symlinks=False) else: oldstat = os.fstat(fh) if not fields.update_atime: attr.st_atime_ns = oldstat.st_atime_ns else: attr.st_mtime_ns = oldstat.st_mtime_ns if fh is None: os.utime( path, # pyright: ignore[reportPossiblyUnboundVariable] None, follow_symlinks=False, ns=(attr.st_atime_ns, attr.st_mtime_ns), ) else: os.utime(fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns)) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) return await self.getattr(inode, ctx) async def mknod( self, parent_inode: InodeT, name: bytes, mode: int, rdev: int, ctx: RequestContext ) -> EntryAttributes: path = os.path.join(self._inode_to_path(parent_inode), fsdecode(name)) try: os.mknod(path, mode=(mode & ~ctx.umask), device=rdev) os.chown(path, ctx.uid, ctx.gid) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) attr = self._getattr(path=path) self._add_path(attr.st_ino, path) return attr async def mkdir( self, parent_inode: InodeT, name: bytes, mode: int, ctx: RequestContext ) -> EntryAttributes: path = os.path.join(self._inode_to_path(parent_inode), fsdecode(name)) try: os.mkdir(path, mode=(mode & ~ctx.umask)) os.chown(path, ctx.uid, ctx.gid) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) attr = self._getattr(path=path) self._add_path(attr.st_ino, path) return attr async def statfs(self, ctx: RequestContext) -> StatvfsData: root = self._inode_path_map[pyfuse3.ROOT_INODE] assert isinstance(root, str) stat_ = StatvfsData() try: statfs = os.statvfs(root) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) for attr in ( 'f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', 'f_bavail', 'f_files', 'f_ffree', 'f_favail', ): setattr(stat_, attr, getattr(statfs, attr)) stat_.f_namemax = statfs.f_namemax - (len(root) + 1) return stat_ async def open(self, inode: InodeT, flags: int, ctx: RequestContext) -> FileInfo: if inode in self._inode_fd_map: fd = self._inode_fd_map[inode] self._fd_open_count[fd] += 1 return FileInfo(fh=FileHandleT(fd)) assert flags & os.O_CREAT == 0 try: fd = os.open(self._inode_to_path(inode), flags) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) self._inode_fd_map[inode] = fd self._fd_inode_map[fd] = inode self._fd_open_count[fd] = 1 return FileInfo(fh=fd) async def create( self, parent_inode: InodeT, name: bytes, mode: int, flags: int, ctx: RequestContext ) -> tuple[FileInfo, EntryAttributes]: path = os.path.join(self._inode_to_path(parent_inode), fsdecode(name)) try: fd = os.open(path, flags | os.O_CREAT | os.O_TRUNC) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) attr = self._getattr(fd=fd) self._add_path(attr.st_ino, path) self._inode_fd_map[attr.st_ino] = fd self._fd_inode_map[fd] = attr.st_ino self._fd_open_count[fd] = 1 return (FileInfo(fh=fd), attr) async def read(self, fh: FileHandleT, off: int, size: int) -> bytes: os.lseek(fh, off, os.SEEK_SET) return os.read(fh, size) async def write(self, fh: FileHandleT, off: int, buf: bytes) -> int: os.lseek(fh, off, os.SEEK_SET) return os.write(fh, buf) async def release(self, fh: FileHandleT) -> None: if self._fd_open_count[fh] > 1: self._fd_open_count[fh] -= 1 return del self._fd_open_count[fh] inode = self._fd_inode_map[fh] del self._inode_fd_map[inode] del self._fd_inode_map[fh] try: os.close(fh) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) def init_logging(debug: bool = False) -> None: formatter = logging.Formatter( '%(asctime)s.%(msecs)03d %(threadName)s: [%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S", ) handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args(args: list[str]) -> Namespace: '''Parse command line''' parser = ArgumentParser() parser.add_argument('source', type=str, help='Directory tree to mirror') parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument( '--debug', action='store_true', default=False, help='Enable debugging output' ) parser.add_argument( '--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output' ) parser.add_argument( '--enable-writeback-cache', action='store_true', default=False, help='Enable writeback cache (default: disabled)', ) return parser.parse_args(args) def main() -> None: options = parse_args(sys.argv[1:]) init_logging(options.debug) operations = Operations(options.source, enable_writeback_cache=options.enable_writeback_cache) log.debug('Mounting...') fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=passthroughfs') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(operations, options.mountpoint, fuse_options) try: log.debug('Entering main loop..') trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise log.debug('Unmounting..') pyfuse3.close() if __name__ == '__main__': main() ”…”�”}”hj(sbah}”(h]”h]”h]”h]”Œsource”Œj;uŒ nametypes”}”(jFˆjE‰h¬‰hõ‰j>‰uh}”(hh#jBh#h©h\hòh®j;h÷uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”hŒsystem_message”“”)�”}”(hhh]”h8)�”}”(hhh]”h-Œ9Hyperlink target "example-file-system" is not referenced.”…”�”}”hjÞsbah}”(h]”h]”h]”h]”uhh7hjÛubah}”(h]”h]”h]”h]”Œbackrefs”]”Œlevel”KŒtype”ŒINFO”Œsource”h Œline”KuhjÙubaŒ transformer”NŒ include_log”]”Œ decoration”Nhhub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677271.0 pyfuse3-3.5.0/doc/html/.doctrees/fuse_api.doctree0000644000175000017500000014553015201073027022145 0ustar00nikrationikratio€•MËŒdocutils.nodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”hŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒFUSE API Functions”h]”hŒText”“”ŒFUSE API Functions”…”�”}”(Œparent”hŒ _document”hŒsource”NŒline”NubaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”uŒtagname”hhh hhhŒ3/home/nikratio/in-progress/pyfuse3/rst/fuse_api.rst”hKubŒsphinx.addnodes”Œindex”“”)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œinit() (in module pyfuse3)”Œ pyfuse3.init”hNt”auh(h+hh hhhŒdocstring of pyfuse3.init”hNubh*Œdesc”“”)�”}”(hhh]”(h*Œdesc_signature”“”)�”}”(hŒAinit(ops, mountpoint, options=frozenset({'default_permissions'}))”h]”(h*Œ desc_addname”“”)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hhIhhhNhNubah}”(h ]”h"]”(Œ sig-prename”Œ descclassname”eh$]”h&]”Œ xml:space”Œpreserve”uh(hGhhChhhhhKubh*Œ desc_name”“”)�”}”(hŒinit”h]”hŒinit”…”�”}”(hh\hhhNhNubah}”(h ]”h"]”(Œsig-name”Œdescname”eh$]”h&]”hXhYuh(hZhhChhhhhKubh*Œdesc_parameterlist”“”)�”}”(hŒ;ops, mountpoint, options=frozenset({'default_permissions'})”h]”(h*Œdesc_parameter”“”)�”}”(hŒops”h]”h*Œ desc_sig_name”“”)�”}”(hŒops”h]”hŒops”…”�”}”(hhyhhhNhNubah}”(h ]”h"]”Œn”ah$]”h&]”uh(hwhhsubah}”(h ]”h"]”h$]”h&]”hXhYuh(hqhhmubhr)�”}”(hŒ mountpoint”h]”hx)�”}”(hŒ mountpoint”h]”hŒ mountpoint”…”�”}”(hh�hhhNhNubah}”(h ]”h"]”h„ah$]”h&]”uh(hwhhŒubah}”(h ]”h"]”h$]”h&]”hXhYuh(hqhhmubhr)�”}”(hŒ*options=frozenset({'default_permissions'})”h]”(hx)�”}”(hŒoptions”h]”hŒoptions”…”�”}”(hh¦hhhNhNubah}”(h ]”h"]”h„ah$]”h&]”uh(hwhh¢ubh*Œdesc_sig_operator”“”)�”}”(hŒ=”h]”hŒ=”…”�”}”(hhµhhhNhNubah}”(h ]”h"]”Œo”ah$]”h&]”uh(h³hh¢ubhŒinline”“”)�”}”(hŒ"frozenset({'default_permissions'})”h]”hŒ"frozenset({'default_permissions'})”…”�”}”(hhÅhhhNhNubah}”(h ]”h"]”Œ default_value”ah$]”h&]”Œsupport_smartquotes”‰uh(hÃhh¢ubeh}”(h ]”h"]”h$]”h&]”hXhYuh(hqhhmubeh}”(h ]”h"]”h$]”h&]”hXhYŒmulti_line_parameter_list”‰Œmulti_line_trailing_comma”ˆuh(hkhhChhhhhKubeh}”(h ]”h9ah"]”(Œsig”Œ sig-object”eh$]”h&]”Œmodule”Œpyfuse3”Œclass”hŒfullname”h^Œ _toc_parts”hèh^†”Œ _toc_name”Œinit()”uh(hAhhhKhh>hhubh*Œ desc_content”“”)�”}”(hhh]”(hŒ paragraph”“”)�”}”(hŒ%Initialize and mount FUSE file system”h]”hŒ%Initialize and mount FUSE file system”…”�”}”(hhöhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hôhh;hKhhñhhubhõ)�”}”(hŒc*ops* has to be an instance of the `Operations` class (or another class defining the same methods).”h]”(hŒemphasis”“”)�”}”(hŒ*ops*”h]”hŒops”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjubhŒ has to be an instance of the ”…”�”}”(hjhhhNhNubh*Œ pending_xref”“”)�”}”(hŒ `Operations`”h]”hŒliteral”“”)�”}”(hjh]”hŒ Operations”…”�”}”(hj"hhhNhNubah}”(h ]”h"]”(Œxref”Œpy”Œpy-obj”eh$]”h&]”uh(j hjubah}”(h ]”h"]”h$]”h&]”Œrefdoc”Œfuse_api”Œ refdomain”j-Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰Œ py:module”hèŒpy:class”NŒ reftarget”Œ Operations”uh(jhh;hKhjubhŒ4 class (or another class defining the same methods).”…”�”}”(hjhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhh;hKhhñhhubhõ)�”}”(hŒ¿*args* has to be a set of strings. `default_options` provides some reasonable defaults. It is recommended to use these options as a basis and add or remove options as necessary. For example::”h]”(j)�”}”(hŒ*args*”h]”hŒargs”…”�”}”(hjNhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjJubhŒ has to be a set of strings. ”…”�”}”(hjJhhhNhNubj)�”}”(hŒ`default_options`”h]”j!)�”}”(hjah]”hŒdefault_options”…”�”}”(hjchhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj_ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jmŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=hèj>Nj?Œdefault_options”uh(jhh;hKhjJubhŒŠ provides some reasonable defaults. It is recommended to use these options as a basis and add or remove options as necessary. For example:”…”�”}”(hjJhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhh;hKhhñhhubhŒ literal_block”“”)�”}”(hŒ�my_opts = set(pyfuse3.default_options) my_opts.add('allow_other') my_opts.discard('default_permissions') pyfuse3.init(ops, mountpoint, my_opts)”h]”hŒ�my_opts = set(pyfuse3.default_options) my_opts.add('allow_other') my_opts.discard('default_permissions') pyfuse3.init(ops, mountpoint, my_opts)”…”�”}”hjˆsbah}”(h ]”h"]”h$]”h&]”hXhYuh(j†hh;hK hhñhhubhõ)�”}”(hX(Valid options are listed under ``struct fuse_opt fuse_mount_opts[]`` (in `mount.c `_) and ``struct fuse_opt fuse_ll_opts[]`` (in `fuse_lowlevel_c `_).”h]”(hŒValid options are listed under ”…”�”}”(hj•hhhNhNubj!)�”}”(hŒ%``struct fuse_opt fuse_mount_opts[]``”h]”hŒ!struct fuse_opt fuse_mount_opts[]”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j hj•ubhŒ (in ”…”�”}”(hj•hhhNhNubhŒ reference”“”)�”}”(hŒO`mount.c `_”h]”hŒmount.c”…”�”}”(hj°hhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”Œmount.c”Œrefuri”ŒBhttps://github.com/libfuse/libfuse/blob/fuse-3.2.6/lib/mount.c#L80”uh(j®hj•ubhŒtarget”“”)�”}”(hŒE ”h]”h}”(h ]”Œmount-c”ah"]”h$]”Œmount.c”ah&]”Œrefuri”jÀuh(jÁŒ referenced”Khj•ubhŒ) and ”…”�”}”(hj•hhhNhNubj!)�”}”(hŒ"``struct fuse_opt fuse_ll_opts[]``”h]”hŒstruct fuse_opt fuse_ll_opts[]”…”�”}”(hjÔhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j hj•ubhŒ (in ”…”�”}”hj•sbj¯)�”}”(hŒa`fuse_lowlevel_c `_”h]”hŒfuse_lowlevel_c”…”�”}”(hjåhhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”Œfuse_lowlevel_c”j¿ŒLhttps://github.com/libfuse/libfuse/blob/fuse-3.2.6/lib/fuse_lowlevel.c#L2572”uh(j®hj•ubjÂ)�”}”(hŒO ”h]”h}”(h ]”Œfuse-lowlevel-c”ah"]”h$]”Œfuse_lowlevel_c”ah&]”Œrefuri”jôuh(jÁjÏKhj•ubhŒ).”…”�”}”(hj•hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhh;hKhhñhhubeh}”(h ]”h"]”h$]”h&]”uh(hïhh>hhhh;hNubeh}”(h ]”h"]”(Œpy”Œfunction”eh$]”h&]”Œdomain”jŒobjtype”jŒdesctype”jŒno-index”‰Œnoindex”‰Œno-index-entry”‰Œ noindexentry”‰Œno-contents-entry”‰Œnocontentsentry”‰Œno-typesetting”‰uh(h>, >]”h]”(h*Œdesc_sig_keyword”“”)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj=hhhNhNubah}”(h ]”h"]”Œk”ah$]”h&]”uh(j;hj7ubh*Œdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMhhhNhNubah}”(h ]”h"]”Œw”ah$]”h&]”uh(jKhj7ubeh}”(h ]”h"]”h$]”h&]”hXhYuh(j5hj1hhhhhKubhH)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hj`hhhNhNubah}”(h ]”h"]”(hThUeh$]”h&]”hXhYuh(hGhj1hhhhhKubh[)�”}”(hŒmain”h]”hŒmain”…”�”}”(hjmhhhNhNubah}”(h ]”h"]”(hghheh$]”h&]”hXhYuh(hZhj1hhhhhKubhl)�”}”(hŒmin_tasks=1, max_tasks=99”h]”(hr)�”}”(hŒ min_tasks=1”h]”(hx)�”}”(hŒ min_tasks”h]”hŒ min_tasks”…”�”}”(hj‚hhhNhNubah}”(h ]”h"]”h„ah$]”h&]”uh(hwhj~ubh´)�”}”(hŒ=”h]”hŒ=”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”hÀah$]”h&]”uh(h³hj~ubhÄ)�”}”(hŒ1”h]”hŒ1”…”�”}”(hjœhhhNhNubah}”(h ]”h"]”hÐah$]”h&]”Œsupport_smartquotes”‰uh(hÃhj~ubeh}”(h ]”h"]”h$]”h&]”hXhYuh(hqhjzubhr)�”}”(hŒ max_tasks=99”h]”(hx)�”}”(hŒ max_tasks”h]”hŒ max_tasks”…”�”}”(hj³hhhNhNubah}”(h ]”h"]”h„ah$]”h&]”uh(hwhj¯ubh´)�”}”(hŒ=”h]”hŒ=”…”�”}”(hjÀhhhNhNubah}”(h ]”h"]”hÀah$]”h&]”uh(h³hj¯ubhÄ)�”}”(hŒ99”h]”hŒ99”…”�”}”(hjÍhhhNhNubah}”(h ]”h"]”hÐah$]”h&]”Œsupport_smartquotes”‰uh(hÃhj¯ubeh}”(h ]”h"]”h$]”h&]”hXhYuh(hqhjzubeh}”(h ]”h"]”h$]”h&]”hXhYhÞ‰h߈uh(hkhj1hhhhhKubeh}”(h ]”j+ah"]”(hãhäeh$]”h&]”hçŒpyfuse3”héhhêjohëjêjo†”híŒmain()”uh(hAhhhKhj.hhubhð)�”}”(hhh]”hõ)�”}”(hŒRun FUSE main loop”h]”hŒRun FUSE main loop”…”�”}”(hjðhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hôhj-hKhjíhhubah}”(h ]”h"]”h$]”h&]”uh(hïhj.hhhj-hNubeh}”(h ]”h"]”(Œpy”Œfunction”eh$]”h&]”jjjjjjj‰j‰j‰j‰j‰j‰j‰uh(hNj?Œtrio.from_thread.run_sync”uh(jhjhKhjfubhŒ. The necessary ”…”�”}”(hjfhhhNhNubj)�”}”(hŒ *trio_token*”h]”hŒ trio_token”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjfubhŒ6 argument can (for convenience) be retrieved from the ”…”�”}”(hjfhhhNhNubj)�”}”(hŒ `trio_token`”h]”j!)�”}”(hj£h]”hŒ trio_token”…”�”}”(hj¥hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj¡ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j¯Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=jFj>Nj?Œ trio_token”uh(jhjhKhjfubhŒ module attribute.”…”�”}”(hjfhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhjhKhjIhhubeh}”(h ]”h"]”h$]”h&]”uh(hïhjhhhjhNubeh}”(h ]”h"]”(Œpy”Œfunction”eh$]”h&]”jjÐjjÑjjÑj‰j‰j‰j‰j‰j‰j‰uh(hNj?ŒOSError”uh(jhjêhK hjÌubhŒ with errno ENOSYS.”…”�”}”(hjÌhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhjêhK hjdhhubeh}”(h ]”h"]”h$]”h&]”uh(hïhjëhhhjêhNubeh}”(h ]”h"]”(Œpy”Œfunction”eh$]”h&]”jjjjjjj‰j‰j‰j‰j‰j‰j‰uh(hhhhNhNubah}”(h ]”h"]”h„ah$]”h&]”uh(hwhj:ubah}”(h ]”h"]”h$]”h&]”hXhYuh(hqhj6ubhr)�”}”(hŒname”h]”hx)�”}”(hŒname”h]”hŒname”…”�”}”(hjThhhNhNubah}”(h ]”h"]”h„ah$]”h&]”uh(hwhjPubah}”(h ]”h"]”h$]”h&]”hXhYuh(hqhj6ubhr)�”}”(hŒ deleted=0”h]”(hx)�”}”(hŒdeleted”h]”hŒdeleted”…”�”}”(hjjhhhNhNubah}”(h ]”h"]”h„ah$]”h&]”uh(hwhjfubh´)�”}”(hŒ=”h]”hŒ=”…”�”}”(hjwhhhNhNubah}”(h ]”h"]”hÀah$]”h&]”uh(h³hjfubhÄ)�”}”(hŒ0”h]”hŒ0”…”�”}”(hj„hhhNhNubah}”(h ]”h"]”hÐah$]”h&]”Œsupport_smartquotes”‰uh(hÃhjfubeh}”(h ]”h"]”h$]”h&]”hXhYuh(hqhj6ubeh}”(h ]”h"]”h$]”h&]”hXhYhÞ‰h߈uh(hkhjhhhhhKubeh}”(h ]”jah"]”(hãhäeh$]”h&]”hçŒpyfuse3”héhhêj+hëj¡j+†”híŒinvalidate_entry()”uh(hAhhhKhjhhubhð)�”}”(hhh]”(hõ)�”}”(hŒInvalidate directory entry”h]”hŒInvalidate directory entry”…”�”}”(hj§hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hôhjhKhj¤hhubhõ)�”}”(hŒrInstructs the FUSE kernel module to forget about the directory entry *name* in the directory with inode *inode_p*.”h]”(hŒEInstructs the FUSE kernel module to forget about the directory entry ”…”�”}”(hj´hhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hj¼hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj´ubhŒ in the directory with inode ”…”�”}”(hj´hhhNhNubj)�”}”(hŒ *inode_p*”h]”hŒinode_p”…”�”}”(hjÍhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj´ubhŒ.”…”�”}”(hj´hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhjhKhj¤hhubhõ)�”}”(hŒ»If the inode passed as *deleted* matches the inode that is currently associated with *name* by the kernel, any inotify watchers of this inode are informed that the entry has been deleted.”h]”(hŒIf the inode passed as ”…”�”}”(hjãhhhNhNubj)�”}”(hŒ *deleted*”h]”hŒdeleted”…”�”}”(hjëhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjãubhŒ5 matches the inode that is currently associated with ”…”�”}”(hjãhhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hjühhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjãubhŒ` by the kernel, any inotify watchers of this inode are informed that the entry has been deleted.”…”�”}”(hjãhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhjhKhj¤hhubhõ)�”}”(hXPIf there is a pending filesystem operation that is related to the parent directory or directory entry, this function will block until that operation has completed. Therefore, to avoid a deadlock this function must not be called while handling a related request, nor while holding a lock that could be needed for handling such a request.”h]”hXPIf there is a pending filesystem operation that is related to the parent directory or directory entry, this function will block until that operation has completed. Therefore, to avoid a deadlock this function must not be called while handling a related request, nor while holding a lock that could be needed for handling such a request.”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hôhjhK hj¤hhubhõ)�”}”(hX»As for kernel 4.18, a "related operation" is a `~Operations.lookup`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.mkdir`, `~Operations.unlink`, `~Operations.rename`, `~Operations.link` or `~Operations.create` request for the parent, and a `~Operations.setattr`, `~Operations.unlink`, `~Operations.rmdir`, `~Operations.rename`, `~Operations.setxattr`, `~Operations.removexattr` or `~Operations.readdir` request for the inode itself.”h]”(hŒ3As for kernel 4.18, a “related operationâ€� is a ”…”�”}”(hjhhhNhNubj)�”}”(hŒ`~Operations.lookup`”h]”j!)�”}”(hj)h]”hŒlookup”…”�”}”(hj+hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj'ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j5Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.lookup”uh(jhjhKhjubhŒ, ”…”�”}”(hjhhhNhNubj)�”}”(hŒ`~Operations.symlink`”h]”j!)�”}”(hjKh]”hŒsymlink”…”�”}”(hjMhhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjIubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jWŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.symlink”uh(jhjhKhjubhŒ, ”…”�”}”(hjhhhNhNubj)�”}”(hŒ`~Operations.mknod`”h]”j!)�”}”(hjmh]”hŒmknod”…”�”}”(hjohhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjkubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jyŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.mknod”uh(jhjhKhjubhŒ, ”…”�”}”hjsbj)�”}”(hŒ`~Operations.mkdir`”h]”j!)�”}”(hj�h]”hŒmkdir”…”�”}”(hj‘hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj�ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j›Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.mkdir”uh(jhjhKhjubhŒ, ”…”�”}”hjsbj)�”}”(hŒ`~Operations.unlink`”h]”j!)�”}”(hj±h]”hŒunlink”…”�”}”(hj³hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj¯ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j½Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.unlink”uh(jhjhKhjubhŒ, ”…”�”}”hjsbj)�”}”(hŒ`~Operations.rename`”h]”j!)�”}”(hjÓh]”hŒrename”…”�”}”(hjÕhhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjÑubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jߌreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.rename”uh(jhjhKhjubhŒ, ”…”�”}”hjsbj)�”}”(hŒ`~Operations.link`”h]”j!)�”}”(hjõh]”hŒlink”…”�”}”(hj÷hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjóubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.link”uh(jhjhKhjubhŒ or ”…”�”}”(hjhhhNhNubj)�”}”(hŒ`~Operations.create`”h]”j!)�”}”(hjh]”hŒcreate”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j#Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.create”uh(jhjhKhjubhŒ request for the parent, and a ”…”�”}”(hjhhhNhNubj)�”}”(hŒ`~Operations.setattr`”h]”j!)�”}”(hj9h]”hŒsetattr”…”�”}”(hj;hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj7ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jEŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.setattr”uh(jhjhKhjubhŒ, ”…”�”}”hjsbj)�”}”(hŒ`~Operations.unlink`”h]”j!)�”}”(hj[h]”hŒunlink”…”�”}”(hj]hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjYubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jgŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.unlink”uh(jhjhKhjubhŒ, ”…”�”}”hjsbj)�”}”(hŒ`~Operations.rmdir`”h]”j!)�”}”(hj}h]”hŒrmdir”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj{ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j‰Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.rmdir”uh(jhjhKhjubhŒ, ”…”�”}”hjsbj)�”}”(hŒ`~Operations.rename`”h]”j!)�”}”(hjŸh]”hŒrename”…”�”}”(hj¡hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj�ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j«Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.rename”uh(jhjhKhjubhŒ, ”…”�”}”hjsbj)�”}”(hŒ`~Operations.setxattr`”h]”j!)�”}”(hjÁh]”hŒsetxattr”…”�”}”(hjÃhhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj¿ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jÍŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.setxattr”uh(jhjhKhjubhŒ, ”…”�”}”hjsbj)�”}”(hŒ`~Operations.removexattr`”h]”j!)�”}”(hjãh]”hŒ removexattr”…”�”}”(hjåhhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjáubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jïŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.removexattr”uh(jhjhKhjubhŒ or ”…”�”}”(hjhhhNhNubj)�”}”(hŒ`~Operations.readdir`”h]”j!)�”}”(hj h]”hŒreaddir”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?ŒOperations.readdir”uh(jhjhKhjubhŒ request for the inode itself.”…”�”}”(hjhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhjhKhj¤hhubhõ)�”}”(hX­For technical reasons, this function can also not return control to the main event loop but will actually block. To return control to the event loop while this function is running, call it in a separate thread using `trio.run_sync_in_worker_thread `_. A less complicated alternative is to use the `invalidate_entry_async` function instead.”h]”(hŒØFor technical reasons, this function can also not return control to the main event loop but will actually block. To return control to the event loop while this function is running, call it in a separate thread using ”…”�”}”(hj* hhhNhNubj¯)�”}”(hŒ|`trio.run_sync_in_worker_thread `_”h]”hŒtrio.run_sync_in_worker_thread”…”�”}”(hj2 hhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”Œtrio.run_sync_in_worker_thread”j¿ŒXhttps://trio.readthedocs.io/en/latest/reference-core.html#trio.run_sync_in_worker_thread”uh(j®hj* ubjÂ)�”}”(hŒ[ ”h]”h}”(h ]”Œtrio-run-sync-in-worker-thread”ah"]”h$]”Œtrio.run_sync_in_worker_thread”ah&]”Œrefuri”jA uh(jÁjÏKhj* ubhŒ/. A less complicated alternative is to use the ”…”�”}”(hj* hhhNhNubj)�”}”(hŒ`invalidate_entry_async`”h]”j!)�”}”(hjT h]”hŒinvalidate_entry_async”…”�”}”(hjV hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjR ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j` Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j¡j>Nj?Œinvalidate_entry_async”uh(jhjhKhj* ubhŒ function instead.”…”�”}”(hj* hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhjhKhj¤hhubeh}”(h ]”h"]”h$]”h&]”uh(hïhjhhhjhNubeh}”(h ]”h"]”(Œpy”Œfunction”eh$]”h&]”jj� jj‚ jj‚ j‰j‰j‰j‰j‰j‰j‰uh(hNj?Œinvalidate_entry”uh(jhj’ hKhjc ubhŒg, but does so asynchronously in a separate thread. This avoids the deadlocks that may occur when using ”…”�”}”(hjc hhhNhNubj)�”}”(hŒ`invalidate_entry`”h]”j!)�”}”(hj� h]”hŒinvalidate_entry”…”�”}”(hj‘ hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj� ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j› Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=jP j>Nj?Œinvalidate_entry”uh(jhj’ hKhjc ubhŒÄ from within a request handler, but means that the function generally returns before the kernel has actually invalidated the entry, and that no errors can be reported (they will be logged though).”…”�”}”(hjc hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhj’ hKhjS hhubhõ)�”}”(hX†The directory entries that are to be invalidated are put in an unbounded queue which is processed by a single thread. This means that if the entry at the beginning of the queue cannot be invalidated yet because a related file system operation is still in progress, none of the other entries will be processed and repeated calls to this function will result in continued growth of the queue.”h]”hX†The directory entries that are to be invalidated are put in an unbounded queue which is processed by a single thread. This means that if the entry at the beginning of the queue cannot be invalidated yet because a related file system operation is still in progress, none of the other entries will be processed and repeated calls to this function will result in continued growth of the queue.”…”�”}”(hj´ hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hôhj’ hK hjS hhubhõ)�”}”(hŒGIf there are errors, an exception is logged using the `logging` module.”h]”(hŒ6If there are errors, an exception is logged using the ”…”�”}”(hjÁ hhhNhNubj)�”}”(hŒ `logging`”h]”j!)�”}”(hjË h]”hŒlogging”…”�”}”(hjÍ hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjÉ ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j× Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=jP j>Nj?Œlogging”uh(jhj’ hKhjÁ ubhŒ module.”…”�”}”(hjÁ hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhj’ hKhjS hhubhõ)�”}”(hŒ�If *ignore_enoent* is True, ignore ENOENT errors (which occur if the kernel doesn't actually have knowledge of the entry that is to be removed).”h]”(hŒIf ”…”�”}”(hjð hhhNhNubj)�”}”(hŒ*ignore_enoent*”h]”hŒ ignore_enoent”…”�”}”(hjø hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjð ubhŒ€ is True, ignore ENOENT errors (which occur if the kernel doesn’t actually have knowledge of the entry that is to be removed).”…”�”}”(hjð hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhj’ hKhjS hhubeh}”(h ]”h"]”h$]”h&]”uh(hïhj“ hhhj’ hNubeh}”(h ]”h"]”(Œpy”Œfunction”eh$]”h&]”jj jj jj j‰j‰j‰j‰j‰j‰j‰uh(h hëj™ j> †”híŒnotify_store()”uh(hAhhhKhj( hhubhð)�”}”(hhh]”(hõ)�”}”(hŒStore data in kernel page cache”h]”hŒStore data in kernel page cache”…”�”}”(hjŸ hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hôhj' hKhjœ hhubhõ)�”}”(hŒªSends *data* for the kernel to store it in the page cache for *inode* at *offset*. If this provides data beyond the current file size, the file is automatically extended.”h]”(hŒSends ”…”�”}”(hj¬ hhhNhNubj)�”}”(hŒ*data*”h]”hŒdata”…”�”}”(hj´ hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj¬ ubhŒ2 for the kernel to store it in the page cache for ”…”�”}”(hj¬ hhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hjÅ hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj¬ ubhŒ at ”…”�”}”(hj¬ hhhNhNubj)�”}”(hŒ*offset*”h]”hŒoffset”…”�”}”(hjÖ hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj¬ ubhŒY. If this provides data beyond the current file size, the file is automatically extended.”…”�”}”(hj¬ hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhj' hKhjœ hhubhõ)�”}”(hŒSIf this function raises an exception, the store may still have completed partially.”h]”hŒSIf this function raises an exception, the store may still have completed partially.”…”�”}”(hjì hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hôhj' hKhjœ hhubhõ)�”}”(hŒTIf the operation is not supported by the kernel, raises `OSError` with errno ENOSYS.”h]”(hŒ8If the operation is not supported by the kernel, raises ”…”�”}”(hjù hhhNhNubj)�”}”(hŒ `OSError`”h]”j!)�”}”(hj h]”hŒOSError”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=j™ j>Nj?ŒOSError”uh(jhj' hK hjù ubhŒ with errno ENOSYS.”…”�”}”(hjù hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhj' hK hjœ hhubeh}”(h ]”h"]”h$]”h&]”uh(hïhj( hhhj' hNubeh}”(h ]”h"]”(Œpy”Œfunction”eh$]”h&]”jj0 jj1 jj1 j‰j‰j‰j‰j‰j‰j‰uh(hNj?ŒOperations.readdir”uh(jhjA hKhjÏ ubhŒ request.”…”�”}”(hjÏ hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhjA hKhjÌ hhubhõ)�”}”(hŒÂThis function should be called by the `~Operations.readdir` handler to provide the list of directory entries. The function should be called once for each directory entry, until it returns False.”h]”(hŒ&This function should be called by the ”…”�”}”(hjþ hhhNhNubj)�”}”(hŒ`~Operations.readdir`”h]”j!)�”}”(hj h]”hŒreaddir”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=jÉ j>Nj?ŒOperations.readdir”uh(jhjA hKhjþ ubhŒ‡ handler to provide the list of directory entries. The function should be called once for each directory entry, until it returns False.”…”�”}”(hjþ hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhjA hKhjÌ hhubhõ)�”}”(hŒH*token* must be the token received by the `~Operations.readdir` handler.”h]”(j)�”}”(hŒ*token*”h]”hŒtoken”…”�”}”(hj1 hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj- ubhŒ# must be the token received by the ”…”�”}”(hj- hhhNhNubj)�”}”(hŒ`~Operations.readdir`”h]”j!)�”}”(hjD h]”hŒreaddir”…”�”}”(hjF hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjB ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jP Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=jÉ j>Nj?ŒOperations.readdir”uh(jhjA hKhj- ubhŒ handler.”…”�”}”(hj- hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhjA hKhjÌ hhubhŒdefinition_list”“”)�”}”(hhh]”hŒdefinition_list_item”“”)�”}”(hŒt*name* and must be the name of the directory entry and *attr* an `EntryAttributes` instance holding its attributes. ”h]”(hŒterm”“”)�”}”(hŒ@*name* and must be the name of the directory entry and *attr* an”h]”(j)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hjz hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjv ubhŒ1 and must be the name of the directory entry and ”…”�”}”(hjv hhhNhNubj)�”}”(hŒ*attr*”h]”hŒattr”…”�”}”(hj‹ hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjv ubhŒ an”…”�”}”(hjv hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(jt hjA hK hjp ubhŒ definition”“”)�”}”(hhh]”hõ)�”}”(hŒ2`EntryAttributes` instance holding its attributes.”h]”(j)�”}”(hŒ`EntryAttributes`”h]”j!)�”}”(hj¬ h]”hŒEntryAttributes”…”�”}”(hj® hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjª ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j¸ Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=jÉ j>Nj?ŒEntryAttributes”uh(jhjA hK hj¦ ubhŒ! instance holding its attributes.”…”�”}”(hj¦ hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhjA hK hj£ ubah}”(h ]”h"]”h$]”h&]”uh(j¡ hjA hK hjp ubeh}”(h ]”h"]”h$]”h&]”uh(jn hjA hK hjk ubah}”(h ]”h"]”h$]”h&]”uh(ji hjA hK hjÌ hhubhõ)�”}”(hX.*next_id* must be a 64-bit integer value that uniquely identifies the current position in the list of directory entries. It may be passed back to a later `~Operations.readdir` call to start another listing at the right position. This value should be robust in the presence of file removals and creations, i.e. if files are created or removed after a call to `~Operations.readdir` and `~Operations.readdir` is called again with *start_id* set to any previously supplied *next_id* values, under no circumstances must any file be reported twice or skipped over.”h]”(j)�”}”(hŒ *next_id*”h]”hŒnext_id”…”�”}”(hjä hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjà ubhŒ‘ must be a 64-bit integer value that uniquely identifies the current position in the list of directory entries. It may be passed back to a later ”…”�”}”(hjà hhhNhNubj)�”}”(hŒ`~Operations.readdir`”h]”j!)�”}”(hj÷ h]”hŒreaddir”…”�”}”(hjù hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjõ ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=jÉ j>Nj?ŒOperations.readdir”uh(jhjA hK hjà ubhŒ· call to start another listing at the right position. This value should be robust in the presence of file removals and creations, i.e. if files are created or removed after a call to ”…”�”}”(hjà hhhNhNubj)�”}”(hŒ`~Operations.readdir`”h]”j!)�”}”(hjh]”hŒreaddir”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”j%Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=jÉ j>Nj?ŒOperations.readdir”uh(jhjA hK hjà ubhŒ and ”…”�”}”(hjà hhhNhNubj)�”}”(hŒ`~Operations.readdir`”h]”j!)�”}”(hj;h]”hŒreaddir”…”�”}”(hj=hhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hj9ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jGŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=jÉ j>Nj?ŒOperations.readdir”uh(jhjA hK hjà ubhŒ is called again with ”…”�”}”(hjà hhhNhNubj)�”}”(hŒ *start_id*”h]”hŒstart_id”…”�”}”(hj[hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjà ubhŒ set to any previously supplied ”…”�”}”(hjà hhhNhNubj)�”}”(hŒ *next_id*”h]”hŒnext_id”…”�”}”(hjlhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjà ubhŒP values, under no circumstances must any file be reported twice or skipped over.”…”�”}”(hjà hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhjA hK hjÌ hhubeh}”(h ]”h"]”h$]”h&]”uh(hïhjB hhhjA hNubeh}”(h ]”h"]”(Œpy”Œfunction”eh$]”h&]”jjŠjj‹jj‹j‰j‰j‰j‰j‰j‰j‰uh(hNj?Œ trio.lowlevel.current_trio_token”uh(jhh)hKhjÅubhŒ while ”…”�”}”(hjÅhhhNhNubj)�”}”(hŒ`main`”h]”j!)�”}”(hjñh]”hŒmain”…”�”}”(hjóhhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjïubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jýŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=jÀj>Nj?Œmain”uh(jhh)hKhjÅubhŒO is running. Can be used by other threads to run code in the main loop through ”…”�”}”(hjÅhhhNhNubj)�”}”(hŒ`trio.from_thread.run`”h]”j!)�”}”(hjh]”hŒtrio.from_thread.run”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(j,Œpy”Œpy-obj”eh$]”h&]”uh(j hjubah}”(h ]”h"]”h$]”h&]”Œrefdoc”j7Œ refdomain”jŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰j=jÀj>Nj?Œtrio.from_thread.run”uh(jhh)hKhjÅubhŒ.”…”�”}”(hjÅhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hôhh)hKhjÂhhubah}”(h ]”h"]”h$]”h&]”uh(hïhj›hhhh)hNubeh}”(h ]”h"]”(Œpy”Œdata”eh$]”h&]”jj@jjAjjAj‰j‰j‰j‰j‰j‰j‰uh(h`. If you would like to use Trio (which is recommended) but you have not yet used Trio before, please read the `Trio tutorial`_ first.”h]”(hŒ0By default, pyfuse3 uses asynchronous I/O using ”…”�”}”(hhƒhhhNhNubhŒ reference”“”)�”}”(hŒTrio_”h]”hŒTrio”…”�”}”(hh�hhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”ŒTrio”Œrefuri”Œ#https://github.com/python-trio/trio”uh(h‹hhƒŒresolved”ˆubhŒo, and most of the documentation assumes that you are using Trio. If you’d rather use asyncio, take a look at ”…”�”}”(hhƒhhhNhNubhS)�”}”(hŒ :ref:`asyncio Support `”h]”hŒinline”“”)�”}”(hh¥h]”hŒasyncio Support”…”�”}”(hh©hhhNhNubah}”(h ]”h"]”(hdŒstd”Œstd-ref”eh$]”h&]”uh(h§hh£ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”h³Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆhxŒasyncio”uh(hRhh)hKhhƒubhŒn. If you would like to use Trio (which is recommended) but you have not yet used Trio before, please read the ”…”�”}”(hhƒhhhNhNubhŒ)�”}”(hŒ`Trio tutorial`_”h]”hŒ Trio tutorial”…”�”}”(hhÇhhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”Œ Trio tutorial”hœŒ3https://trio.readthedocs.io/en/latest/tutorial.html”uh(h‹hhƒhžˆubhŒ first.”…”�”}”(hhƒhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hGhh)hKhh7hhubhH)�”}”(hXAn instance of the operations class is passed to `pyfuse3.init` to mount the file system. To enter the request handling loop, run `pyfuse3.main` in a trio event loop. This function will return when the file system should be unmounted again, which is done by calling `pyfuse3.close`.”h]”(hŒ1An instance of the operations class is passed to ”…”�”}”(hhàhhhNhNubhS)�”}”(hŒ`pyfuse3.init`”h]”hY)�”}”(hhêh]”hŒ pyfuse3.init”…”�”}”(hhìhhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhhèubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”höŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒ pyfuse3.init”uh(hRhh)hKhhàubhŒC to mount the file system. To enter the request handling loop, run ”…”�”}”(hhàhhhNhNubhS)�”}”(hŒ`pyfuse3.main`”h]”hY)�”}”(hj h]”hŒ pyfuse3.main”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhj ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”jŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒ pyfuse3.main”uh(hRhh)hKhhàubhŒz in a trio event loop. This function will return when the file system should be unmounted again, which is done by calling ”…”�”}”(hhàhhhNhNubhS)�”}”(hŒ`pyfuse3.close`”h]”hY)�”}”(hj.h]”hŒ pyfuse3.close”…”�”}”(hj0hhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhj,ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”j:Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒ pyfuse3.close”uh(hRhh)hKhhàubhŒ.”…”�”}”(hhàhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hGhh)hKhh7hhubhH)�”}”(hŒ¡All character data (directory entry names, extended attribute names and values, symbolic link targets etc) are passed as `bytes` and must be returned as `bytes`.”h]”(hŒyAll character data (directory entry names, extended attribute names and values, symbolic link targets etc) are passed as ”…”�”}”(hjShhhNhNubhS)�”}”(hŒ`bytes`”h]”hY)�”}”(hj]h]”hŒbytes”…”�”}”(hj_hhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhj[ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”jiŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒbytes”uh(hRhh)hKhjSubhŒ and must be returned as ”…”�”}”(hjShhhNhNubhS)�”}”(hŒ`bytes`”h]”hY)�”}”(hjh]”hŒbytes”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhj}ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”j‹Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒbytes”uh(hRhh)hKhjSubhŒ.”…”�”}”(hjShhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hGhh)hKhh7hhubhH)�”}”(hŒ{For easier debugging, it is strongly recommended that applications using pyfuse3 also make use of the faulthandler_ module.”h]”(hŒfFor easier debugging, it is strongly recommended that applications using pyfuse3 also make use of the ”…”�”}”(hj¤hhhNhNubhŒ)�”}”(hŒ faulthandler_”h]”hŒ faulthandler”…”�”}”(hj¬hhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”Œ faulthandler”hœŒ2http://docs.python.org/3/library/faulthandler.html”uh(h‹hj¤hžˆubhŒ module.”…”�”}”(hj¤hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hGhh)hK#hh7hhubh+)�”}”(hŒD.. _faulthandler: http://docs.python.org/3/library/faulthandler.html”h]”h}”(h ]”Œ faulthandler”ah"]”h$]”Œ faulthandler”ah&]”hœj»uh(h*hK&hh7hhhh)Œ referenced”ˆubh+)�”}”(hŒF.. _Trio tutorial: https://trio.readthedocs.io/en/latest/tutorial.html”h]”h}”(h ]”Œ trio-tutorial”ah"]”h$]”Œ trio tutorial”ah&]”hœhÖuh(h*hK'hh7hhhh)jЈubh+)�”}”(hŒ-.. _Trio: https://github.com/python-trio/trio”h]”h}”(h ]”Œtrio”ah"]”h$]”Œtrio”ah&]”hœh�uh(h*hK(hh7hhhh)jЈubeh}”(h ]”(h6Œid1”eh"]”h$]”(Œgetting started”Œgetting_started”eh&]”uh(h hh hhhh)hK Œexpect_referenced_by_name”}”jíh,sŒexpect_referenced_by_id”}”h6h,subh )�”}”(hhh]”(h)�”}”(hŒ Lookup Counts”h]”hŒ Lookup Counts”…”�”}”(hjöhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhjóhhhh)hK+ubhH)�”}”(hXlMost file systems need to keep track which inodes are currently known to the kernel. This is, for example, necessary to correctly implement the *unlink* system call: when unlinking a directory entry whose associated inode is currently opened, the file system must defer removal of the inode (and thus the file contents) until it is no longer in use by any process.”h]”(hŒ�Most file systems need to keep track which inodes are currently known to the kernel. This is, for example, necessary to correctly implement the ”…”�”}”(hjhhhNhNubhŒemphasis”“”)�”}”(hŒ*unlink*”h]”hŒunlink”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j hjubhŒÔ system call: when unlinking a directory entry whose associated inode is currently opened, the file system must defer removal of the inode (and thus the file contents) until it is no longer in use by any process.”…”�”}”(hjhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hGhh)hK-hjóhhubhH)�”}”(hX‡FUSE file systems achieve this by using "lookup counts". A lookup count is a number that's associated with an inode. An inode with a lookup count of zero is currently not known to the kernel. This means that if there are no directory entries referring to such an inode it can be safely removed, or (if a file system implements dynamic inode numbers), the inode number can be safely recycled.”h]”hX�FUSE file systems achieve this by using “lookup countsâ€�. A lookup count is a number that’s associated with an inode. An inode with a lookup count of zero is currently not known to the kernel. This means that if there are no directory entries referring to such an inode it can be safely removed, or (if a file system implements dynamic inode numbers), the inode number can be safely recycled.”…”�”}”(hj#hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hGhh)hK4hjóhhubhH)�”}”(hX‘The lookup count of an inode is increased by every operation that could make the inode "known" to the kernel. This includes e.g. `~Operations.lookup`, `~Operations.create` and `~Operations.readdir` (to determine if a given request handler affects the lookup count, please refer to its description in the `Operations` class). The lookup count is decreased by calls to the `~Operations.forget` handler.”h]”(hŒ…The lookup count of an inode is increased by every operation that could make the inode “knownâ€� to the kernel. This includes e.g. ”…”�”}”(hj0hhhNhNubhS)�”}”(hŒ`~Operations.lookup`”h]”hY)�”}”(hj:h]”hŒlookup”…”�”}”(hj<hhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhj8ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”jFŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒOperations.lookup”uh(hRhh)hK;hj0ubhŒ, ”…”�”}”(hj0hhhNhNubhS)�”}”(hŒ`~Operations.create`”h]”hY)�”}”(hj\h]”hŒcreate”…”�”}”(hj^hhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhjZubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”jhŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒOperations.create”uh(hRhh)hK;hj0ubhŒ and ”…”�”}”(hj0hhhNhNubhS)�”}”(hŒ`~Operations.readdir`”h]”hY)�”}”(hj~h]”hŒreaddir”…”�”}”(hj€hhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhj|ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”jŠŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒOperations.readdir”uh(hRhh)hK;hj0ubhŒk (to determine if a given request handler affects the lookup count, please refer to its description in the ”…”�”}”(hj0hhhNhNubhS)�”}”(hŒ `Operations`”h]”hY)�”}”(hj h]”hŒ Operations”…”�”}”(hj¢hhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhjžubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”j¬Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒ Operations”uh(hRhh)hK;hj0ubhŒ8 class). The lookup count is decreased by calls to the ”…”�”}”(hj0hhhNhNubhS)�”}”(hŒ`~Operations.forget`”h]”hY)�”}”(hjÂh]”hŒforget”…”�”}”(hjÄhhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhjÀubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”jÎŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒOperations.forget”uh(hRhh)hK;hj0ubhŒ handler.”…”�”}”(hj0hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hGhh)hK;hjóhhubeh}”(h ]”Œ lookup-counts”ah"]”h$]”Œ lookup counts”ah&]”uh(h hh hhhh)hK+ubh )�”}”(hhh]”(h)�”}”(hŒFUSE and VFS Locking”h]”hŒFUSE and VFS Locking”…”�”}”(hjñhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhjîhhhh)hKEubhH)�”}”(hŒ€FUSE and the kernel's VFS layer provide some basic locking that FUSE file systems automatically take advantage of. Specifically:”h]”hŒ‚FUSE and the kernel’s VFS layer provide some basic locking that FUSE file systems automatically take advantage of. Specifically:”…”�”}”(hjþhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hGhh)hKGhjîhhubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hXCalls to `~Operations.rename`, `~Operations.create`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.link` and `~Operations.mkdir` acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename). ”h]”hH)�”}”(hXCalls to `~Operations.rename`, `~Operations.create`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.link` and `~Operations.mkdir` acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename).”h]”(hŒ Calls to ”…”�”}”(hjhhhNhNubhS)�”}”(hŒ`~Operations.rename`”h]”hY)�”}”(hj h]”hŒrename”…”�”}”(hj"hhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhjubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”j,Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒOperations.rename”uh(hRhh)hKJhjubhŒ, ”…”�”}”(hjhhhNhNubhS)�”}”(hŒ`~Operations.create`”h]”hY)�”}”(hjBh]”hŒcreate”…”�”}”(hjDhhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhj@ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”jNŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒOperations.create”uh(hRhh)hKJhjubhŒ, ”…”�”}”(hjhhhNhNubhS)�”}”(hŒ`~Operations.symlink`”h]”hY)�”}”(hjdh]”hŒsymlink”…”�”}”(hjfhhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhjbubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”jpŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒOperations.symlink”uh(hRhh)hKJhjubhŒ, ”…”�”}”hjsbhS)�”}”(hŒ`~Operations.mknod`”h]”hY)�”}”(hj†h]”hŒmknod”…”�”}”(hjˆhhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhj„ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”j’Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒOperations.mknod”uh(hRhh)hKJhjubhŒ, ”…”�”}”hjsbhS)�”}”(hŒ`~Operations.link`”h]”hY)�”}”(hj¨h]”hŒlink”…”�”}”(hjªhhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhj¦ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”j´Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒOperations.link”uh(hRhh)hKJhjubhŒ and ”…”�”}”(hjhhhNhNubhS)�”}”(hŒ`~Operations.mkdir`”h]”hY)�”}”(hjÊh]”hŒmkdir”…”�”}”(hjÌhhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhjÈubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”jÖŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒOperations.mkdir”uh(hRhh)hKJhjubhŒz acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename).”…”�”}”(hjhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hGhh)hKJhjubah}”(h ]”h"]”h$]”h&]”uh(jhh)hKJhj hhubj)�”}”(hŒÚCalls to `~Operations.lookup` acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation). ”h]”hH)�”}”(hŒÙCalls to `~Operations.lookup` acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation).”h]”(hŒ Calls to ”…”�”}”(hjøhhhNhNubhS)�”}”(hŒ`~Operations.lookup`”h]”hY)�”}”(hjh]”hŒlookup”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhjubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”jŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒOperations.lookup”uh(hRhh)hKPhjøubhŒ¼ acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation).”…”�”}”(hjøhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hGhh)hKPhjôubah}”(h ]”h"]”h$]”h&]”uh(jhh)hKPhj hhubj)�”}”(hŒÒUnless writeback caching is enabled, calls to `~Operations.write` for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled).”h]”hH)�”}”(hŒÒUnless writeback caching is enabled, calls to `~Operations.write` for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled).”h]”(hŒ.Unless writeback caching is enabled, calls to ”…”�”}”(hj0hhhNhNubhS)�”}”(hŒ`~Operations.write`”h]”hY)�”}”(hj:h]”hŒwrite”…”�”}”(hj<hhhNhNubah}”(h ]”h"]”(hdŒpy”Œpy-obj”eh$]”h&]”uh(hXhj8ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hoŒ refdomain”jFŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰huhvhwNhxŒOperations.write”uh(hRhh)hKUhj0ubhŒ‘ for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled).”…”�”}”(hj0hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hGhh)hKUhj,ubah}”(h ]”h"]”h$]”h&]”uh(jhh)hKUhj hhubeh}”(h ]”h"]”h$]”h&]”Œbullet”Œ*”uh(j hh)hKJhjîhhubeh}”(h ]”Œfuse-and-vfs-locking”ah"]”h$]”Œfuse and vfs locking”ah&]”uh(h hh hhhh)hKEubeh}”(h ]”Œgeneral-information”ah"]”h$]”Œgeneral information”ah&]”uh(h hhhhhh)hKubah}”(h ]”h"]”h$]”h&]”Œsource”h)Œtranslation_progress”}”(Œtotal”KŒ translated”Kuuh(hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(Œ output_path”NhNŒ generator”NŒ datestamp”NŒ root_prefix”hŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”ˆŒ sectnum_xform”ˆŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œutf-8”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j¡Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h)Œ _destination”NŒ _config_files”]”Œdoctitle_xform”‰Œ docinfo_xform”ˆŒsectsubtitle_xform”‰Œfile_insertion_enabled”ˆŒ raw_enabled”ˆŒline_length_limit”M'Œvalidate”NŒpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”(Œtrio”]”h�aŒ trio tutorial”]”hÇaŒ faulthandler”]”j¬auŒrefids”}”h6]”h,asŒnameids”}”(jwjtjíh6jìjéjÎjËjÚj×jåjâjìjéjpjmuŒ nametypes”}”(jw‰jíˆjì‰jΈjÚˆjåˆjì‰jp‰uh }”(jth h6h7jéh7jËjÅj×jÑjâjÜjéjójmjîuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”j¯Ks…”R”Œparse_messages”]”Œtransform_messages”]”hŒsystem_message”“”)�”}”(hhh]”hH)�”}”(hhh]”hŒ5Hyperlink target "getting-started" is not referenced.”…”�”}”hjsbah}”(h ]”h"]”h$]”h&]”uh(hGhjubah}”(h ]”h"]”h$]”h&]”Œbackrefs”]”Œlevel”KŒtype”ŒINFO”Œsource”h)Œline”Kuh(j ubaŒ transformer”NŒ include_log”]”Œ decoration”Nhhub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677271.0 pyfuse3-3.5.0/doc/html/.doctrees/gotchas.doctree0000644000175000017500000001232015201073027021770 0ustar00nikrationikratio€•ÅŒdocutils.nodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”hŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒCommon Gotchas”h]”hŒText”“”ŒCommon Gotchas”…”�”}”(Œparent”hŒ _document”hŒsource”NŒline”NubaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”uŒtagname”hhh hhhŒ2/home/nikratio/in-progress/pyfuse3/rst/gotchas.rst”hKubhŒ paragraph”“”)�”}”(hŒ>This chapter lists some common gotchas that should be avoided.”h]”hŒ>This chapter lists some common gotchas that should be avoided.”…”�”}”(hh,hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hh)hKhh hhubh )�”}”(hhh]”(h)�”}”(hŒ!Removing inodes in unlink handler”h]”hŒ!Removing inodes in unlink handler”…”�”}”(hh`_. You can validate the signature with::”h]”(hŒ(Pyfuse release tarballs are signed with ”…”�”}”(hjŸhhhNhNubh~)�”}”(hŒ0`signify `_”h]”hŒsignify”…”�”}”(hj§hhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”Œsignify”hŽŒ#https://github.com/aperezdc/signify”uh(h}hjŸubhŒtarget”“”)�”}”(hŒ& ”h]”h}”(h ]”Œsignify”ah"]”h$]”Œsignify”ah&]”Œrefuri”j¶uh(j·Œ referenced”KhjŸubhŒ&. You can validate the signature with:”…”�”}”(hjŸhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hIhh)hKhjqhhubhŒ literal_block”“”)�”}”(hŒ2signify -V -m pyfuse3-A.B.C.tar.gz -p ”h]”hŒ2signify -V -m pyfuse3-A.B.C.tar.gz -p ”…”�”}”hjÑsbah}”(h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh(jÏhh)hK"hjqhhubhJ)�”}”(hXThe public key needs to be retrieved from a trustworthy source for the first installation. Afterwards, the trust chain is self-sustaining: each release tarball contains the public key for the release in its ``signify/`` directory. Bugfix releases (``A.B.C``) will be signed by :file:`pyfuse-A.B.pub`. New major or minor releases (``A.B.0``) will be signed by :file:`pyfuse-next.pub`.”h]”(hŒÏThe public key needs to be retrieved from a trustworthy source for the first installation. Afterwards, the trust chain is self-sustaining: each release tarball contains the public key for the release in its ”…”�”}”(hjàhhhNhNubhT)�”}”(hŒ ``signify/``”h]”hŒsignify/”…”�”}”(hjèhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hShjàubhŒ directory. Bugfix releases (”…”�”}”(hjàhhhNhNubhT)�”}”(hŒ ``A.B.C``”h]”hŒA.B.C”…”�”}”(hjùhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hShjàubhŒ) will be signed by ”…”�”}”(hjàhhhNhNubhT)�”}”(hŒ:file:`pyfuse-A.B.pub`”h]”hŒpyfuse-A.B.pub”…”�”}”(hj hhhNhNubah}”(h ]”h"]”Œfile”ah$]”h&]”Œrole”Œfile”uh(hShjàubhŒ. New major or minor releases (”…”�”}”(hjàhhhNhNubhT)�”}”(hŒ ``A.B.0``”h]”hŒA.B.0”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hShjàubhŒ) will be signed by ”…”�”}”(hjàhhhNhNubhT)�”}”(hŒ:file:`pyfuse-next.pub`”h]”hŒpyfuse-next.pub”…”�”}”(hj/hhhNhNubah}”(h ]”h"]”Œfile”ah$]”h&]”Œrole”Œfile”uh(hShjàubhŒ.”…”�”}”(hjàhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hIhh)hK$hjqhhubeh}”(h ]”Œstable-releases”ah"]”h$]”Œstable releases”ah&]”uh(h hh hhhh)hKubh )�”}”(hhh]”(h)�”}”(hŒ(Installing from Git / Developing pyfuse3”h]”hŒ(Installing from Git / Developing pyfuse3”…”�”}”(hjRhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hhjOhhhh)hK,ubhJ)�”}”(hŒRClone the pyfuse3_ repository and take a look at :file:`developer_notes/setup.md`.”h]”(hŒ Clone the ”…”�”}”(hj_hhhNhNubh~)�”}”(hŒpyfuse3_”h]”hŒpyfuse3”…”�”}”(hjghhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”Œpyfuse3”hŽŒ#https://github.com/libfuse/pyfuse3/”uh(h}hj_h�ˆubhŒ repository and take a look at ”…”�”}”(hj_hhhNhNubhT)�”}”(hŒ :file:`developer_notes/setup.md`”h]”hŒdeveloper_notes/setup.md”…”�”}”(hj{hhhNhNubah}”(h ]”h"]”Œfile”ah$]”h&]”Œrole”Œfile”uh(hShj_ubhŒ.”…”�”}”(hj_hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(hIhh)hK.hjOhhubj¸)�”}”(hŒ... _libfuse: http://github.com/libfuse/libfuse”h]”h}”(h ]”Œlibfuse”ah"]”h$]”Œlibfuse”ah&]”hŽh�uh(j·hK2hjOhhhh)jňubj¸)�”}”(hŒ3.. _attr: http://savannah.nongnu.org/projects/attr/”h]”h}”(h ]”Œattr”ah"]”h$]”Œattr”ah&]”hŽjuh(j·hK3hjOhhhh)jňubj¸)�”}”(hŒE.. _`pkg-config`: http://www.freedesktop.org/wiki/Software/pkg-config”h]”h}”(h ]”Œ pkg-config”ah"]”h$]”Œ pkg-config”ah&]”hŽhÝuh(j·hK4hjOhhhh)jňubj¸)�”}”(hŒ0.. _pyfuse3: https://github.com/libfuse/pyfuse3/”h]”h}”(h ]”Œpyfuse3”ah"]”h$]”Œpyfuse3”ah&]”hŽjvuh(j·hK5hjOhhhh)jňubeh}”(h ]”Œ&installing-from-git-developing-pyfuse3”ah"]”h$]”Œ(installing from git / developing pyfuse3”ah&]”uh(h hh hhhh)hK,ubeh}”(h ]”Œ installation”ah"]”h$]”Œ installation”ah&]”uh(h hhhhhh)hKubah}”(h ]”h"]”h$]”h&]”Œsource”h)Œtranslation_progress”}”(Œtotal”KŒ translated”Kuuh(hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(Œ output_path”NhNŒ generator”NŒ datestamp”NŒ root_prefix”hŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”ˆŒ sectnum_xform”ˆŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œutf-8”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jöŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h)Œ _destination”NŒ _config_files”]”Œdoctitle_xform”‰Œ docinfo_xform”ˆŒsectsubtitle_xform”‰Œfile_insertion_enabled”ˆŒ raw_enabled”ˆŒline_length_limit”M'Œvalidate”NŒpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”(Œlibfuse”]”haŒ pkg-config”]”hÎaŒattr”]”h÷aŒpyfuse3”]”jgauŒrefids”}”Œnameids”}”(jÌjÉjojljMjJjÂj¿jÅjÂj�jšj¨j¥j³j°j¾j»uŒ nametypes”}”(j̉jo‰jM‰j‰jʼnj�ˆj¨ˆj³ˆj¾ˆuh }”(jÉh jlh9jJjqj¿j¹jÂjOjšj”j¥jŸj°jªj»jµuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhhub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677271.0 pyfuse3-3.5.0/doc/html/.doctrees/operations.doctree0000644000175000017500000065273215201073027022544 0ustar00nikrationikratio€•Œdocutils.nodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”hŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒRequest Handlers”h]”hŒText”“”ŒRequest Handlers”…”�”}”(Œparent”hŒ _document”hŒsource”NŒline”NubaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”uŒtagname”hhh hhhŒ5/home/nikratio/in-progress/pyfuse3/rst/operations.rst”hKubhŒ paragraph”“”)�”}”(hŒI(You can use the :ref:`genindex` to directly jump to a specific handler).”h]”(hŒ(You can use the ”…”�”}”(hh,hhhNhNubŒsphinx.addnodes”Œ pending_xref”“”)�”}”(hŒ:ref:`genindex`”h]”hŒinline”“”)�”}”(hh9h]”hŒgenindex”…”�”}”(hh=hhhNhNubah}”(h ]”h"]”(Œxref”Œstd”Œstd-ref”eh$]”h&]”uh(h;hh7ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”Œ operations”Œ refdomain”hHŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆŒ reftarget”Œgenindex”uh(h5hh)hKhh,ubhŒ) to directly jump to a specific handler).”…”�”}”(hh,hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hh)hKhh hhubh4Œindex”“”)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”ŒOperations (class in pyfuse3)”Œpyfuse3.Operations”hNt”auh(hchh hhhNhNubh4Œdesc”“”)�”}”(hhh]”(h4Œdesc_signature”“”)�”}”(hŒ Operations()”h]”(h4Œdesc_annotation”“”)�”}”(hŒF[>, >]”h]”(h4Œdesc_sig_keyword”“”)�”}”(hŒclass”h]”hŒclass”…”�”}”(hh†hhhNhNubah}”(h ]”h"]”Œk”ah$]”h&]”uh(h„hh€ubh4Œdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hh–hhhNhNubah}”(h ]”h"]”Œw”ah$]”h&]”uh(h”hh€ubeh}”(h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh(h~hhzhhhhhKubh4Œ desc_addname”“”)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hh­hhhNhNubah}”(h ]”h"]”(Œ sig-prename”Œ descclassname”eh$]”h&]”h©hªuh(h«hhzhhhhhKubh4Œ desc_name”“”)�”}”(hŒ Operations”h]”hŒ Operations”…”�”}”(hh¾hhhNhNubah}”(h ]”h"]”(Œsig-name”Œdescname”eh$]”h&]”h©hªuh(h¼hhzhhhhhKubeh}”(h ]”hqah"]”(Œsig”Œ sig-object”eh$]”h&]”Œmodule”Œpyfuse3”Œclass”hŒfullname”hÀŒ _toc_parts”hÕhÀ†”Œ _toc_name”hÀuh(hxhhhKhhuhhubh4Œ desc_content”“”)�”}”(hhh]”(h+)�”}”(hXKThis class defines the request handler methods that an pyfuse3 file system may implement. If a particular request handler has not been implemented, it must raise `FUSEError` with an errorcode of `errno.ENOSYS`. Further requests of this type will then be handled directly by the FUSE kernel module without calling the handler again.”h]”(hŒ¢This class defines the request handler methods that an pyfuse3 file system may implement. If a particular request handler has not been implemented, it must raise ”…”�”}”(hhàhhhNhNubh6)�”}”(hŒ `FUSEError`”h]”hŒliteral”“”)�”}”(hhêh]”hŒ FUSEError”…”�”}”(hhîhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhhèubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”høŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰Œ py:module”hÕŒpy:class”hÀhXŒ FUSEError”uh(h5hŒc/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations”hKhhàubhŒ with an errorcode of ”…”�”}”(hhàhhhNhNubh6)�”}”(hŒ`errno.ENOSYS`”h]”hí)�”}”(hjh]”hŒ errno.ENOSYS”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jhÕjhÀhXŒ errno.ENOSYS”uh(h5hj hKhhàubhŒz. Further requests of this type will then be handled directly by the FUSE kernel module without calling the handler again.”…”�”}”(hhàhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj hKhhÝhhubh+)�”}”(hŒ¦The only exception that request handlers are allowed to raise is `FUSEError`. This will cause the specified errno to be returned by the syscall that is being handled.”h]”(hŒAThe only exception that request handlers are allowed to raise is ”…”�”}”(hj6hhhNhNubh6)�”}”(hŒ `FUSEError`”h]”hí)�”}”(hj@h]”hŒ FUSEError”…”�”}”(hjBhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj>ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jLŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jhÕjhÀhXŒ FUSEError”uh(h5hj hKhj6ubhŒZ. This will cause the specified errno to be returned by the syscall that is being handled.”…”�”}”(hj6hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj hKhhÝhhubh+)�”}”(hŒÕIt is recommended that file systems are derived from this class and only overwrite the handlers that they actually implement. (The methods defined in this class all just raise ``FUSEError(ENOSYS)`` or do nothing).”h]”(hŒ°It is recommended that file systems are derived from this class and only overwrite the handlers that they actually implement. (The methods defined in this class all just raise ”…”�”}”(hjehhhNhNubhí)�”}”(hŒ``FUSEError(ENOSYS)``”h]”hŒFUSEError(ENOSYS)”…”�”}”(hjmhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjeubhŒ or do nothing).”…”�”}”(hjehhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj hK hhÝhhubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”uh(hchhÝhhhh)hNubht)�”}”(hhh]”(hy)�”}”(hŒsupports_dot_lookup = True”h]”h½)�”}”(hj’h]”hŒsupports_dot_lookup = True”…”�”}”(hj”hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj�hhhh)hK ubah}”(h ]”h"]”(hÐhÑeh$]”h&]”hØ)hÚhuh(hxhh)hK hj�hhubhÜ)�”}”(hhh]”h+)�”}”(hŒ“If set, indicates that the filesystem supports lookup of the ``.`` and ``..`` entries. This is required if the file system will be shared over NFS.”h]”(hŒ=If set, indicates that the filesystem supports lookup of the ”…”�”}”(hj¨hhhNhNubhí)�”}”(hŒ``.``”h]”hŒ.”…”�”}”(hj°hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhj¨ubhŒ and ”…”�”}”(hj¨hhhNhNubhí)�”}”(hŒ``..``”h]”hŒ..”…”�”}”(hjÁhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhj¨ubhŒF entries. This is required if the file system will be shared over NFS.”…”�”}”(hj¨hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hh)hKhj¥hhubah}”(h ]”h"]”h$]”h&]”uh(hÛhj�hhhh)hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”Œdomain”jߌobjtype”jàŒdesctype”jàŒno-index”‰Œnoindex”‰Œno-index-entry”‰Œ noindexentry”‰Œno-contents-entry”‰Œnocontentsentry”‰Œno-typesetting”‰uh(hshhhhÝhh)hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”uh(hchhÝhhhh)hNubht)�”}”(hhh]”(hy)�”}”(hŒenable_writeback_cache = True”h]”h½)�”}”(hjüh]”hŒenable_writeback_cache = True”…”�”}”(hjþhhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjúhhhh)hKubah}”(h ]”h"]”(hÐhÑeh$]”h&]”hØ)hÚhuh(hxhh)hKhj÷hhubhÜ)�”}”(hhh]”h+)�”}”(hŒ«Enables write-caching in the kernel if available. This means that individual write request may be buffered and merged in the kernel before they are send to the filesystem.”h]”hŒ«Enables write-caching in the kernel if available. This means that individual write request may be buffered and merged in the kernel before they are send to the filesystem.”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hh)hKhjhhubah}”(h ]”h"]”h$]”h&]”uh(hÛhj÷hhhh)hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”jãj'jäj(jåj(jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhh)hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”uh(hchhÝhhhh)hNubht)�”}”(hhh]”(hy)�”}”(hŒenable_acl = False”h]”h½)�”}”(hj:h]”hŒenable_acl = False”…”�”}”(hj<hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj8hhhh)hKubah}”(h ]”h"]”(hÐhÑeh$]”h&]”hØ)hÚhuh(hxhh)hKhj5hhubhÜ)�”}”(hhh]”(h+)�”}”(hXÁEnable ACL support. When enabled, the kernel will cache and have responsibility for enforcing ACLs. ACL will be stored as xattrs and passed to userspace, which is responsible for updating the ACLs in the filesystem, keeping the file mode in sync with the ACL, and ensuring inheritance of default ACLs when new filesystem nodes are created. Note that this requires that the file system is able to parse and interpret the xattr representation of ACLs.”h]”hXÁEnable ACL support. When enabled, the kernel will cache and have responsibility for enforcing ACLs. ACL will be stored as xattrs and passed to userspace, which is responsible for updating the ACLs in the filesystem, keeping the file mode in sync with the ACL, and ensuring inheritance of default ACLs when new filesystem nodes are created. Note that this requires that the file system is able to parse and interpret the xattr representation of ACLs.”…”�”}”(hjPhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hh)hKhjMhhubhŒ block_quote”“”)�”}”(hŒMEnabling this feature implicitly turns on the ``default_permissions`` option.”h]”h+)�”}”(hŒMEnabling this feature implicitly turns on the ``default_permissions`` option.”h]”(hŒ.Enabling this feature implicitly turns on the ”…”�”}”(hjchhhNhNubhí)�”}”(hŒ``default_permissions``”h]”hŒdefault_permissions”…”�”}”(hjkhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjcubhŒ option.”…”�”}”(hjchhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hh)hK"hj_ubah}”(h ]”h"]”h$]”h&]”uh(j]hh)hK"hjMhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj5hhhh)hNubeh}”(h ]”h"]”(Œpy”Œ attribute”eh$]”h&]”jãjŽjäj�jåj�jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhh)hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ$access() (pyfuse3.Operations method)”Œpyfuse3.Operations.access”hNt”auh(hchhÝhhhŒj/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.access”hNubht)�”}”(hhh]”(hy)�”}”(hŒEOperations.access(inode: int, mode: int, ctx: RequestContext) -> bool”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj«hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj§ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj§ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj£hhhhhKubh½)�”}”(hŒaccess”h]”hŒaccess”…”�”}”(hjÊhhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj£hhhhhKubh4Œdesc_parameterlist”“”)�”}”(hŒ*inode: int, mode: int, ctx: RequestContext”h]”(h4Œdesc_parameter”“”)�”}”(hŒ inode: int”h]”(h4Œ desc_sig_name”“”)�”}”(hŒinode”h]”hŒinode”…”�”}”(hjåhhhNhNubah}”(h ]”h"]”Œn”ah$]”h&]”uh(jãhjßubh4Œdesc_sig_punctuation”“”)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjõhhhNhNubah}”(h ]”h"]”Œp”ah$]”h&]”uh(jóhjßubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjßubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”Œpy”Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjßubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÙubjÞ)�”}”(hŒ mode: int”h]”(jä)�”}”(hŒmode”h]”hŒmode”…”�”}”(hj6hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj2ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjChhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj2ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjPhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj2ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjahhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj]ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj2ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÙubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj‚hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj~ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj~ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj~ubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hj­hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj©ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj~ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÙubeh}”(h ]”h"]”h$]”h&]”h©hªŒmulti_line_parameter_list”‰Œmulti_line_trailing_comma”ˆuh(j×hj£hhhhhKubh4Œ desc_returns”“”)�”}”(hŒbool”h]”h6)�”}”(hhh]”hŒbool”…”�”}”(hj×hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbool”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÓubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj£hhhhhKubeh}”(h ]”j�ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.access”hØjôŒ Operations”Œaccess”‡”hÚŒOperations.access()”uh(hxhhhKhj hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ9Check if requesting process has *mode* rights on *inode*.”h]”(hŒ Check if requesting process has ”…”�”}”(hjýhhhNhNubhŒemphasis”“”)�”}”(hŒ*mode*”h]”hŒmode”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjýubhŒ rights on ”…”�”}”(hjýhhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjýubhŒ.”…”�”}”(hjýhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjŸhKhjúhhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hj2hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj.ubhŒ will be a ”…”�”}”(hj.hhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjEh]”hŒRequestContext”…”�”}”(hjGhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjCubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jQŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjôjhÀhXŒRequestContext”uh(h5hjŸhKhj.ubhŒ instance.”…”�”}”(hj.hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjŸhKhjúhhubh+)�”}”(hŒ'The method must return a boolean value.”h]”hŒ'The method must return a boolean value.”…”�”}”(hjjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hjŸhKhjúhhubh+)�”}”(hŒPIf the ``default_permissions`` mount option is given, this method is not called.”h]”(hŒIf the ”…”�”}”(hjwhhhNhNubhí)�”}”(hŒ``default_permissions``”h]”hŒdefault_permissions”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjwubhŒ2 mount option is given, this method is not called.”…”�”}”(hjwhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjŸhKhjúhhubh+)�”}”(hŒKWhen implementing this method, the `get_sup_groups` function may be useful.”h]”(hŒ#When implementing this method, the ”…”�”}”(hj•hhhNhNubh6)�”}”(hŒ`get_sup_groups`”h]”hí)�”}”(hjŸh]”hŒget_sup_groups”…”�”}”(hj¡hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj�ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j«Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjôjhÀhXŒget_sup_groups”uh(h5hjŸhK hj•ubhŒ function may be useful.”…”�”}”(hj•hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjŸhK hjúhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj hhhjŸhNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjÌjäjÍjåjÍjæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjŸhNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ$create() (pyfuse3.Operations method)”Œpyfuse3.Operations.create”hNt”auh(hchhÝhhhŒj/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.create”hNubht)�”}”(hhh]”(hy)�”}”(hŒ‰Operations.create(parent_inode: int, name: bytes, mode: int, flags: int, ctx: RequestContext) -> ~typing.Tuple[FileInfo, EntryAttributes]”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjéhhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjåubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjåubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hjáhhhhhKubh½)�”}”(hŒcreate”h]”hŒcreate”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjáhhhhhKubjØ)�”}”(hŒJparent_inode: int, name: bytes, mode: int, flags: int, ctx: RequestContext”h]”(jÞ)�”}”(hŒparent_inode: int”h]”(jä)�”}”(hŒ parent_inode”h]”hŒ parent_inode”…”�”}”(hjhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj*hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjHhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjDubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjubjÞ)�”}”(hŒ name: bytes”h]”(jä)�”}”(hŒname”h]”hŒname”…”�”}”(hjihhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjeubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjvhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjeubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjeubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hj”hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj�ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjeubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjubjÞ)�”}”(hŒ mode: int”h]”(jä)�”}”(hŒmode”h]”hŒmode”…”�”}”(hjµhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj±ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjÂhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj±ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj±ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjàhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÜubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj±ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjubjÞ)�”}”(hŒ flags: int”h]”(jä)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjýubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjýubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjýubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj,hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj(ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjýubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjMhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjIubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjZhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjIubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjghhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjIubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hjxhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjtubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjIubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hjáhhhhhKubjÒ)�”}”(hŒ(~typing.Tuple[FileInfo, EntryAttributes]”h]”(h6)�”}”(hhh]”hŒTuple”…”�”}”(hjžhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”Œobj”Œ reftarget”Œ typing.Tuple”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjšubjô)�”}”(hŒ[”h]”hŒ[”…”�”}”(hj²hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjšubh6)�”}”(hhh]”hŒFileInfo”…”�”}”(hj¿hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒFileInfo”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjšubjô)�”}”(hŒ,”h]”hŒ,”…”�”}”(hjÒhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjšubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjßhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjšubh6)�”}”(hhh]”hŒEntryAttributes”…”�”}”(hjìhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒEntryAttributes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjšubjô)�”}”(hŒ]”h]”hŒ]”…”�”}”(hjÿhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjšubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhjáhhhhhKubeh}”(h ]”jÛah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.create”hØjŒ Operations”Œcreate”‡”hÚŒOperations.create()”uh(hxhhhKhjÞhhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ?Create a file with permissions *mode* and open it with *flags*.”h]”(hŒCreate a file with permissions ”…”�”}”(hjhhhNhNubj)�”}”(hŒ*mode*”h]”hŒmode”…”�”}”(hj'hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjubhŒ and open it with ”…”�”}”(hjhhhNhNubj)�”}”(hŒ*flags*”h]”hŒflags”…”�”}”(hj8hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjubhŒ.”…”�”}”(hjhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjÝhKhjhhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hjRhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjNubhŒ will be a ”…”�”}”(hjNhhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjeh]”hŒRequestContext”…”�”}”(hjghhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjcubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jqŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjjhÀhXŒRequestContext”uh(h5hjÝhKhjNubhŒ instance.”…”�”}”(hjNhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjÝhKhjhhubh+)�”}”(hŒçThe method must return a tuple of the form *(fi, attr)*, where *fi* is a FileInfo instance handle like the one returned by `open` and *attr* is an `EntryAttributes` instance with the attributes of the newly created directory entry.”h]”(hŒ+The method must return a tuple of the form ”…”�”}”(hjŠhhhNhNubj)�”}”(hŒ *(fi, attr)*”h]”hŒ (fi, attr)”…”�”}”(hj’hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjŠubhŒ, where ”…”�”}”(hjŠhhhNhNubj)�”}”(hŒ*fi*”h]”hŒfi”…”�”}”(hj£hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjŠubhŒ8 is a FileInfo instance handle like the one returned by ”…”�”}”(hjŠhhhNhNubh6)�”}”(hŒ`open`”h]”hí)�”}”(hj¶h]”hŒopen”…”�”}”(hj¸hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj´ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jÂŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjjhÀhXŒopen”uh(h5hjÝhKhjŠubhŒ and ”…”�”}”(hjŠhhhNhNubj)�”}”(hŒ*attr*”h]”hŒattr”…”�”}”(hjÖhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjŠubhŒ is an ”…”�”}”(hjŠhhhNhNubh6)�”}”(hŒ`EntryAttributes`”h]”hí)�”}”(hjéh]”hŒEntryAttributes”…”�”}”(hjëhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjçubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jõŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjjhÀhXŒEntryAttributes”uh(h5hjÝhKhjŠubhŒC instance with the attributes of the newly created directory entry.”…”�”}”(hjŠhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjÝhKhjhhubh+)�”}”(hŒ`(Successful) execution of this handler increases the lookup count for the returned inode by one.”h]”hŒ`(Successful) execution of this handler increases the lookup count for the returned inode by one.”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hjÝhK hjhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjÞhhhjÝhNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãj#jäj$jåj$jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjÝhNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ#flush() (pyfuse3.Operations method)”Œpyfuse3.Operations.flush”hNt”auh(hchhÝhhhŒi/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.flush”hNubht)�”}”(hhh]”(hy)�”}”(hŒ!Operations.flush(fh: int) -> None”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj@hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj<ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj<ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj8hhhhhKubh½)�”}”(hŒflush”h]”hŒflush”…”�”}”(hj_hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj8hhhhhKubjØ)�”}”(hŒfh: int”h]”jÞ)�”}”(hŒfh: int”h]”(jä)�”}”(hŒfh”h]”hŒfh”…”�”}”(hjthhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjpubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjpubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjpubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjŸhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj›ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjpubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjlubah}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj8hhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hjÅhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÁubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj8hhhhhKubeh}”(h ]”j2ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.flush”hØj⌠Operations”Œflush”‡”hÚŒOperations.flush()”uh(hxhhhKhj5hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒHandle close() syscall.”h]”hŒHandle close() syscall.”…”�”}”(hjëhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj4hKhjèhhubh+)�”}”(hŒO*fh* will be an integer filehandle returned by a prior `open` or `create` call.”h]”(j)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hjühhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjøubhŒ3 will be an integer filehandle returned by a prior ”…”�”}”(hjøhhhNhNubh6)�”}”(hŒ`open`”h]”hí)�”}”(hj h]”hŒopen”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjâjhÀhXŒopen”uh(h5hj4hKhjøubhŒ or ”…”�”}”(hjøhhhNhNubh6)�”}”(hŒ`create`”h]”hí)�”}”(hj1 h]”hŒcreate”…”�”}”(hj3 hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj/ ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j= Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjâjhÀhXŒcreate”uh(h5hj4hKhjøubhŒ call.”…”�”}”(hjøhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj4hKhjèhhubh+)�”}”(hŒ¡This method is called whenever a file descriptor is closed. It may be called multiple times for the same open file (e.g. if the file handle has been duplicated).”h]”hŒ¡This method is called whenever a file descriptor is closed. It may be called multiple times for the same open file (e.g. if the file handle has been duplicated).”…”�”}”(hjV hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj4hKhjèhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj5hhhj4hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjk jäjl jåjl jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj4hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ$forget() (pyfuse3.Operations method)”Œpyfuse3.Operations.forget”hNt”auh(hchhÝhhhŒj/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.forget”hNubht)�”}”(hhh]”(hy)�”}”(hŒPOperations.forget(inode_list: ~typing.Sequence[~typing.Tuple[int, int]]) -> None”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjˆ hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj„ ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj• hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj„ ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj€ hhhhhKubh½)�”}”(hŒforget”h]”hŒforget”…”�”}”(hj§ hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj€ hhhhhKubjØ)�”}”(hŒ5inode_list: ~typing.Sequence[~typing.Tuple[int, int]]”h]”jÞ)�”}”(hŒ%inode_list: Sequence[Tuple[int, int]]”h]”(jä)�”}”(hŒ inode_list”h]”hŒ inode_list”…”�”}”(hj¼ hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj¸ ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjÉ hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj¸ ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖ hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj¸ ubjä)�”}”(hŒSequence[Tuple[int, int]]”h]”(h6)�”}”(hhh]”hŒSequence”…”�”}”(hjç hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”Œtyping.Sequence”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjã ubjô)�”}”(hŒ[”h]”hŒ[”…”�”}”(hjú hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjã ubh6)�”}”(hhh]”hŒTuple”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”Œ typing.Tuple”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjã ubjô)�”}”(hŒ[”h]”hŒ[”…”�”}”(hj hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjã ubh6)�”}”(hhh]”hŒint”…”�”}”(hj' hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjã ubjô)�”}”(hŒ,”h]”hŒ,”…”�”}”(hj: hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjã ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjG hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjã ubh6)�”}”(hhh]”hŒint”…”�”}”(hjT hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjã ubjô)�”}”(hŒ]”h]”hŒ]”…”�”}”(hjg hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjã ubjô)�”}”(hŒ]”h]”hŒ]”…”�”}”(hjt hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjã ubeh}”(h ]”h"]”jðah$]”h&]”uh(jãhj¸ ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj´ ubah}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj€ hhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hj” hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj� ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj€ hhhhhKubeh}”(h ]”jz ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.forget”hØj± Œ Operations”Œforget”‡”hÚŒOperations.forget()”uh(hxhhhKhj} hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ2Decrease lookup counts for inodes in *inode_list*.”h]”(hŒ%Decrease lookup counts for inodes in ”…”�”}”(hjº hhhNhNubj)�”}”(hŒ *inode_list*”h]”hŒ inode_list”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjº ubhŒ.”…”�”}”(hjº hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj| hKhj· hhubh+)�”}”(hŒ€*inode_list* is a list of ``(inode, nlookup)`` tuples. This method should reduce the lookup count for each *inode* by *nlookup*.”h]”(j)�”}”(hŒ *inode_list*”h]”hŒ inode_list”…”�”}”(hjÜ hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjØ ubhŒ is a list of ”…”�”}”(hjØ hhhNhNubhí)�”}”(hŒ``(inode, nlookup)``”h]”hŒ(inode, nlookup)”…”�”}”(hjí hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjØ ubhŒ= tuples. This method should reduce the lookup count for each ”…”�”}”(hjØ hhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hjþ hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjØ ubhŒ by ”…”�”}”(hjØ hhhNhNubj)�”}”(hŒ *nlookup*”h]”hŒnlookup”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjØ ubhŒ.”…”�”}”(hjØ hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj| hKhj· hhubh+)�”}”(hŒàIf the lookup count reaches zero, the inode is currently not known to the kernel. In this case, the file system will typically check if there are still directory entries referring to this inode and, if not, remove the inode.”h]”hŒàIf the lookup count reaches zero, the inode is currently not known to the kernel. In this case, the file system will typically check if there are still directory entries referring to this inode and, if not, remove the inode.”…”�”}”(hj% hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj| hKhj· hhubh+)�”}”(hXIIf the file system is unmounted, it may not have received `forget` calls to bring all lookup counts to zero. The filesystem needs to take care to clean up inodes that at that point still have non-zero lookup count (e.g. by explicitly calling `forget` with the current lookup count for every such inode after `main` has returned).”h]”(hŒ:If the file system is unmounted, it may not have received ”…”�”}”(hj2 hhhNhNubh6)�”}”(hŒ`forget`”h]”hí)�”}”(hj< h]”hŒforget”…”�”}”(hj> hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj: ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jH Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj± jhÀhXŒforget”uh(h5hj| hK hj2 ubhŒ° calls to bring all lookup counts to zero. The filesystem needs to take care to clean up inodes that at that point still have non-zero lookup count (e.g. by explicitly calling ”…”�”}”(hj2 hhhNhNubh6)�”}”(hŒ`forget`”h]”hí)�”}”(hj^ h]”hŒforget”…”�”}”(hj` hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj\ ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jj Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj± jhÀhXŒforget”uh(h5hj| hK hj2 ubhŒ: with the current lookup count for every such inode after ”…”�”}”(hj2 hhhNhNubh6)�”}”(hŒ`main`”h]”hí)�”}”(hj€ h]”hŒmain”…”�”}”(hj‚ hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj~ ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jŒ Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj± jhÀhXŒmain”uh(h5hj| hK hj2 ubhŒ has returned).”…”�”}”(hj2 hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj| hK hj· hhubh+)�”}”(hŒwThis method must not raise any exceptions (not even `FUSEError`), since it is not handling a particular client request.”h]”(hŒ4This method must not raise any exceptions (not even ”…”�”}”(hj¥ hhhNhNubh6)�”}”(hŒ `FUSEError`”h]”hí)�”}”(hj¯ h]”hŒ FUSEError”…”�”}”(hj± hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj­ ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j» Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj± jhÀhXŒ FUSEError”uh(h5hj| hKhj¥ ubhŒ8), since it is not handling a particular client request.”…”�”}”(hj¥ hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj| hKhj· hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj} hhhj| hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjÜ jäjÝ jåjÝ jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj| hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ#fsync() (pyfuse3.Operations method)”Œpyfuse3.Operations.fsync”hNt”auh(hchhÝhhhŒi/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.fsync”hNubht)�”}”(hhh]”(hy)�”}”(hŒ1Operations.fsync(fh: int, datasync: bool) -> None”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjù hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjõ ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjõ ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hjñ hhhhhKubh½)�”}”(hŒfsync”h]”hŒfsync”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjñ hhhhhKubjØ)�”}”(hŒfh: int, datasync: bool”h]”(jÞ)�”}”(hŒfh: int”h]”(jä)�”}”(hŒfh”h]”hŒfh”…”�”}”(hj- hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj) ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj: hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj) ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjG hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj) ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjX hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjT ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj) ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj% ubjÞ)�”}”(hŒdatasync: bool”h]”(jä)�”}”(hŒdatasync”h]”hŒdatasync”…”�”}”(hjy hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhju ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj† hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhju ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“ hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hju ubjä)�”}”(hŒbool”h]”h6)�”}”(hhh]”hŒbool”…”�”}”(hj¤ hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbool”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj  ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhju ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj% ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hjñ hhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hjÊ hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÆ ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhjñ hhhhhKubeh}”(h ]”jë ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.fsync”hØjç Œ Operations”Œfsync”‡”hÚŒOperations.fsync()”uh(hxhhhKhjî hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ!Flush buffers for open file *fh*.”h]”(hŒFlush buffers for open file ”…”�”}”(hjð hhhNhNubj)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hjø hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjð ubhŒ.”…”�”}”(hjð hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjí hKhjí hhubh+)�”}”(hŒmIf *datasync* is true, only the file contents should be flushed (in contrast to the metadata about the file).”h]”(hŒIf ”…”�”}”(hj hhhNhNubj)�”}”(hŒ *datasync*”h]”hŒdatasync”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj ubhŒ` is true, only the file contents should be flushed (in contrast to the metadata about the file).”…”�”}”(hj hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjí hKhjí hhubh+)�”}”(hŒO*fh* will be an integer filehandle returned by a prior `open` or `create` call.”h]”(j)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hj0 hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj, ubhŒ3 will be an integer filehandle returned by a prior ”…”�”}”(hj, hhhNhNubh6)�”}”(hŒ`open`”h]”hí)�”}”(hjC h]”hŒopen”…”�”}”(hjE hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjA ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jO Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjç jhÀhXŒopen”uh(h5hjí hKhj, ubhŒ or ”…”�”}”(hj, hhhNhNubh6)�”}”(hŒ`create`”h]”hí)�”}”(hje h]”hŒcreate”…”�”}”(hjg hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjc ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jq Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjç jhÀhXŒcreate”uh(h5hjí hKhj, ubhŒ call.”…”�”}”(hj, hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjí hKhjí hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjî hhhjí hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãj’ jäj“ jåj“ jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjí hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ&fsyncdir() (pyfuse3.Operations method)”Œpyfuse3.Operations.fsyncdir”hNt”auh(hchhÝhhhŒl/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.fsyncdir”hNubht)�”}”(hhh]”(hy)�”}”(hŒ4Operations.fsyncdir(fh: int, datasync: bool) -> None”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj¯ hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj« ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼ hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj« ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj§ hhhhhKubh½)�”}”(hŒfsyncdir”h]”hŒfsyncdir”…”�”}”(hjÎ hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj§ hhhhhKubjØ)�”}”(hŒfh: int, datasync: bool”h]”(jÞ)�”}”(hŒfh: int”h]”(jä)�”}”(hŒfh”h]”hŒfh”…”�”}”(hjã hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjß ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjð hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjß ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjß ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjß ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÛ ubjÞ)�”}”(hŒdatasync: bool”h]”(jä)�”}”(hŒdatasync”h]”hŒdatasync”…”�”}”(hj/hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj+ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj<hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj+ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjIhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj+ubjä)�”}”(hŒbool”h]”h6)�”}”(hhh]”hŒbool”…”�”}”(hjZhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbool”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjVubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj+ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÛ ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj§ hhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hj€hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj|ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj§ hhhhhKubeh}”(h ]”j¡ ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.fsyncdir”hØj�Œ Operations”Œfsyncdir”‡”hÚŒOperations.fsyncdir()”uh(hxhhhKhj¤ hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ&Flush buffers for open directory *fh*.”h]”(hŒ!Flush buffers for open directory ”…”�”}”(hj¦hhhNhNubj)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hj®hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj¦ubhŒ.”…”�”}”(hj¦hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj£ hKhj£hhubh+)�”}”(hŒzIf *datasync* is true, only the directory contents should be flushed (in contrast to metadata about the directory itself).”h]”(hŒIf ”…”�”}”(hjÄhhhNhNubj)�”}”(hŒ *datasync*”h]”hŒdatasync”…”�”}”(hjÌhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÄubhŒm is true, only the directory contents should be flushed (in contrast to metadata about the directory itself).”…”�”}”(hjÄhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj£ hKhj£hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj¤ hhhj£ hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjêjäjëjåjëjæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj£ hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ%getattr() (pyfuse3.Operations method)”Œpyfuse3.Operations.getattr”hNt”auh(hchhÝhhhŒk/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.getattr”hNubht)�”}”(hhh]”(hy)�”}”(hŒFOperations.getattr(inode: int, ctx: RequestContext) -> EntryAttributes”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hjÿhhhhhKubh½)�”}”(hŒgetattr”h]”hŒgetattr”…”�”}”(hj&hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjÿhhhhhKubjØ)�”}”(hŒinode: int, ctx: RequestContext”h]”(jÞ)�”}”(hŒ inode: int”h]”(jä)�”}”(hŒinode”h]”hŒinode”…”�”}”(hj;hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj7ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjHhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj7ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjUhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj7ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjfhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjbubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj7ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj3ubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj‡hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjƒubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj”hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjƒubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjƒubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hj²hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj®ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjƒubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj3ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hjÿhhhhhKubjÒ)�”}”(hŒEntryAttributes”h]”h6)�”}”(hhh]”hŒEntryAttributes”…”�”}”(hjØhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒEntryAttributes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÔubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhjÿhhhhhKubeh}”(h ]”jùah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.getattr”hØjõŒ Operations”Œgetattr”‡”hÚŒOperations.getattr()”uh(hxhhhKhjühhubhÜ)�”}”(hhh]”(h+)�”}”(hŒGet attributes for *inode*.”h]”(hŒGet attributes for ”…”�”}”(hjþhhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjþubhŒ.”…”�”}”(hjþhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjûhKhjûhhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjubhŒ will be a ”…”�”}”(hjhhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hj3h]”hŒRequestContext”…”�”}”(hj5hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj1ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j?Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjõjhÀhXŒRequestContext”uh(h5hjûhKhjubhŒ instance.”…”�”}”(hjhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjûhKhjûhhubh+)�”}”(hŒ¢This method should return an `EntryAttributes` instance with the attributes of *inode*. The `~EntryAttributes.entry_timeout` attribute is ignored in this context.”h]”(hŒThis method should return an ”…”�”}”(hjXhhhNhNubh6)�”}”(hŒ`EntryAttributes`”h]”hí)�”}”(hjbh]”hŒEntryAttributes”…”�”}”(hjdhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj`ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jnŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjõjhÀhXŒEntryAttributes”uh(h5hjûhKhjXubhŒ! instance with the attributes of ”…”�”}”(hjXhhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hj‚hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjXubhŒ. The ”…”�”}”(hjXhhhNhNubh6)�”}”(hŒ `~EntryAttributes.entry_timeout`”h]”hí)�”}”(hj•h]”hŒ entry_timeout”…”�”}”(hj—hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj“ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j¡Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjõjhÀhXŒEntryAttributes.entry_timeout”uh(h5hjûhKhjXubhŒ& attribute is ignored in this context.”…”�”}”(hjXhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjûhKhjûhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjühhhjûhNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjÂjäjÃjåjÃjæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjûhNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ&getxattr() (pyfuse3.Operations method)”Œpyfuse3.Operations.getxattr”hNt”auh(hchhÝhhhŒl/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.getxattr”hNubht)�”}”(hhh]”(hy)�”}”(hŒJOperations.getxattr(inode: int, name: bytes, ctx: RequestContext) -> bytes”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjßhhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjÛubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjìhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjÛubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj×hhhhhKubh½)�”}”(hŒgetxattr”h]”hŒgetxattr”…”�”}”(hjþhhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj×hhhhhKubjØ)�”}”(hŒ,inode: int, name: bytes, ctx: RequestContext”h]”(jÞ)�”}”(hŒ inode: int”h]”(jä)�”}”(hŒinode”h]”hŒinode”…”�”}”(hjhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj>hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj:ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj ubjÞ)�”}”(hŒ name: bytes”h]”(jä)�”}”(hŒname”h]”hŒname”…”�”}”(hj_hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj[ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjlhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj[ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjyhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj[ubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hjŠhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj†ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj[ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj ubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj«hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj§ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj¸hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj§ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj§ubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hjÖhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÒubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj§ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj×hhhhhKubjÒ)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hjühhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjøubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj×hhhhhKubeh}”(h ]”jÑah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.getxattr”hØjŒ Operations”Œgetxattr”‡”hÚŒOperations.getxattr()”uh(hxhhhKhjÔhhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ,Return extended attribute *name* of *inode*.”h]”(hŒReturn extended attribute ”…”�”}”(hj"hhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hj*hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj"ubhŒ of ”…”�”}”(hj"hhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hj;hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj"ubhŒ.”…”�”}”(hj"hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjÓhKhjhhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hjUhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjQubhŒ will be a ”…”�”}”(hjQhhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjhh]”hŒRequestContext”…”�”}”(hjjhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjfubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jtŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjjhÀhXŒRequestContext”uh(h5hjÓhKhjQubhŒ instance.”…”�”}”(hjQhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjÓhKhjhhubh+)�”}”(hŒ¹If the attribute does not exist, the method must raise `FUSEError` with an error code of `ENOATTR`. *name* will be of type `bytes`, but is guaranteed not to contain zero-bytes (``\0``).”h]”(hŒ7If the attribute does not exist, the method must raise ”…”�”}”(hj�hhhNhNubh6)�”}”(hŒ `FUSEError`”h]”hí)�”}”(hj—h]”hŒ FUSEError”…”�”}”(hj™hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj•ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j£Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjjhÀhXŒ FUSEError”uh(h5hjÓhKhj�ubhŒ with an error code of ”…”�”}”(hj�hhhNhNubh6)�”}”(hŒ `ENOATTR`”h]”hí)�”}”(hj¹h]”hŒENOATTR”…”�”}”(hj»hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj·ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jÅŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjjhÀhXŒENOATTR”uh(h5hjÓhKhj�ubhŒ. ”…”�”}”(hj�hhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hjÙhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj�ubhŒ will be of type ”…”�”}”(hj�hhhNhNubh6)�”}”(hŒ`bytes`”h]”hí)�”}”(hjìh]”hŒbytes”…”�”}”(hjîhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjêubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jøŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjjhÀhXŒbytes”uh(h5hjÓhKhj�ubhŒ/, but is guaranteed not to contain zero-bytes (”…”�”}”(hj�hhhNhNubhí)�”}”(hŒ``\0``”h]”hŒ\0”…”�”}”(hj hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhj�ubhŒ).”…”�”}”(hj�hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjÓhKhjhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjÔhhhjÓhNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãj*jäj+jåj+jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjÓhNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ"init() (pyfuse3.Operations method)”Œpyfuse3.Operations.init”hNt”auh(hchhÝhhhŒh/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.init”hNubht)�”}”(hhh]”(hy)�”}”(hŒOperations.init() -> None”h]”(h½)�”}”(hŒinit”h]”hŒinit”…”�”}”(hjChhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj?hhhhhKubjØ)�”}”(hŒ()”h]”h}”(h ]”h"]”h$]”h&]”h©hªuh(j×hj?hhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hj]hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjYubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj?hhhhhKubeh}”(h ]”j9ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.init”hØjzŒ Operations”Œinit”‡”hÚŒOperations.init()”uh(hxhhhKhj<hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒInitialize operations.”h]”hŒInitialize operations.”…”�”}”(hjƒhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj;hKhj€hhubh+)�”}”(hŒ¿This method will be called just before the file system starts handling requests. It must not raise any exceptions (not even `FUSEError`), since it is not handling a particular client request.”h]”(hŒ|This method will be called just before the file system starts handling requests. It must not raise any exceptions (not even ”…”�”}”(hj�hhhNhNubh6)�”}”(hŒ `FUSEError`”h]”hí)�”}”(hjšh]”hŒ FUSEError”…”�”}”(hjœhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj˜ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j¦Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjzjhÀhXŒ FUSEError”uh(h5hj;hKhj�ubhŒ8), since it is not handling a particular client request.”…”�”}”(hj�hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj;hKhj€hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj<hhhj;hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjÇjäjÈjåjÈjæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj;hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ"link() (pyfuse3.Operations method)”Œpyfuse3.Operations.link”hNt”auh(hchhÝhhhŒh/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.link”hNubht)�”}”(hhh]”(hy)�”}”(hŒkOperations.link(inode: int, new_parent_inode: int, new_name: bytes, ctx: RequestContext) -> EntryAttributes”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjähhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjàubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjàubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hjÜhhhhhKubh½)�”}”(hŒlink”h]”hŒlink”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjÜhhhhhKubjØ)�”}”(hŒGinode: int, new_parent_inode: int, new_name: bytes, ctx: RequestContext”h]”(jÞ)�”}”(hŒ inode: int”h]”(jä)�”}”(hŒinode”h]”hŒinode”…”�”}”(hjhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj%hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjChhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj?ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjubjÞ)�”}”(hŒnew_parent_inode: int”h]”(jä)�”}”(hŒnew_parent_inode”h]”hŒnew_parent_inode”…”�”}”(hjdhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj`ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjqhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj`ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj`ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj‹ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj`ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjubjÞ)�”}”(hŒnew_name: bytes”h]”(jä)�”}”(hŒnew_name”h]”hŒnew_name”…”�”}”(hj°hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj¬ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj½hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj¬ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj¬ubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hjÛhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj×ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj¬ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjühhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjøubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjøubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjøubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hj'hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj#ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjøubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hjÜhhhhhKubjÒ)�”}”(hŒEntryAttributes”h]”h6)�”}”(hhh]”hŒEntryAttributes”…”�”}”(hjMhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒEntryAttributes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjIubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhjÜhhhhhKubeh}”(h ]”jÖah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.link”hØjjŒ Operations”Œlink”‡”hÚŒOperations.link()”uh(hxhhhKhjÙhhubhÜ)�”}”(hhh]”(h+)�”}”(hŒECreate directory entry *name* in *parent_inode* referring to *inode*.”h]”(hŒCreate directory entry ”…”�”}”(hjshhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hj{hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjsubhŒ in ”…”�”}”(hjshhhNhNubj)�”}”(hŒ*parent_inode*”h]”hŒ parent_inode”…”�”}”(hjŒhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjsubhŒ referring to ”…”�”}”(hjshhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjsubhŒ.”…”�”}”(hjshhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjØhKhjphhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hj·hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj³ubhŒ will be a ”…”�”}”(hj³hhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjÊh]”hŒRequestContext”…”�”}”(hjÌhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjÈubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jÖŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjjjhÀhXŒRequestContext”uh(h5hjØhKhj³ubhŒ instance.”…”�”}”(hj³hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjØhKhjphhubh+)�”}”(hŒnThe method must return an `EntryAttributes` instance with the attributes of the newly created directory entry.”h]”(hŒThe method must return an ”…”�”}”(hjïhhhNhNubh6)�”}”(hŒ`EntryAttributes`”h]”hí)�”}”(hjùh]”hŒEntryAttributes”…”�”}”(hjûhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj÷ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjjjhÀhXŒEntryAttributes”uh(h5hjØhKhjïubhŒC instance with the attributes of the newly created directory entry.”…”�”}”(hjïhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjØhKhjphhubh+)�”}”(hŒ`(Successful) execution of this handler increases the lookup count for the returned inode by one.”h]”hŒ`(Successful) execution of this handler increases the lookup count for the returned inode by one.”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hjØhKhjphhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjÙhhhjØhNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãj3jäj4jåj4jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjØhNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ'listxattr() (pyfuse3.Operations method)”Œpyfuse3.Operations.listxattr”hNt”auh(hchhÝhhhŒm/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.listxattr”hNubht)�”}”(hhh]”(hy)�”}”(hŒPOperations.listxattr(inode: int, ctx: RequestContext) -> ~typing.Sequence[bytes]”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjPhhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjLubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjLubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hjHhhhhhKubh½)�”}”(hŒ listxattr”h]”hŒ listxattr”…”�”}”(hjohhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjHhhhhhKubjØ)�”}”(hŒinode: int, ctx: RequestContext”h]”(jÞ)�”}”(hŒ inode: int”h]”(jä)�”}”(hŒinode”h]”hŒinode”…”�”}”(hj„hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj€ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj‘hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj€ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjžhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj€ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj¯hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj«ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj€ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj|ubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÐhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjÌubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjÝhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjÌubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjêhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjÌubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hjûhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj÷ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjÌubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj|ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hjHhhhhhKubjÒ)�”}”(hŒ~typing.Sequence[bytes]”h]”(h6)�”}”(hhh]”hŒSequence”…”�”}”(hj!hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”Œtyping.Sequence”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjubjô)�”}”(hŒ[”h]”hŒ[”…”�”}”(hj4hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjubh6)�”}”(hhh]”hŒbytes”…”�”}”(hjAhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjubjô)�”}”(hŒ]”h]”hŒ]”…”�”}”(hjThhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhjHhhhhhKubeh}”(h ]”jBah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.listxattr”hØjkŒ Operations”Œ listxattr”‡”hÚŒOperations.listxattr()”uh(hxhhhKhjEhhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ,Get list of extended attributes for *inode*.”h]”(hŒ$Get list of extended attributes for ”…”�”}”(hjthhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hj|hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjtubhŒ.”…”�”}”(hjthhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjDhKhjqhhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hj–hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj’ubhŒ will be a ”…”�”}”(hj’hhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hj©h]”hŒRequestContext”…”�”}”(hj«hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj§ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jµŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjkj•hÀhXŒRequestContext”uh(h5hjDhKhj’ubhŒ instance.”…”�”}”(hj’hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjDhKhjqhhubh+)�”}”(hŒiThis method must return a sequence of `bytes` objects. The objects must not include zero-bytes (``\0``).”h]”(hŒ&This method must return a sequence of ”…”�”}”(hjÎhhhNhNubh6)�”}”(hŒ`bytes`”h]”hí)�”}”(hjØh]”hŒbytes”…”�”}”(hjÚhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjÖubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jäŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjkjhÀhXŒbytes”uh(h5hjDhKhjÎubhŒ4 objects. The objects must not include zero-bytes (”…”�”}”(hjÎhhhNhNubhí)�”}”(hŒ``\0``”h]”hŒ\0”…”�”}”(hjøhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjÎubhŒ).”…”�”}”(hjÎhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjDhKhjqhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjEhhhjDhNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjjäjjåjjæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjDhNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ$lookup() (pyfuse3.Operations method)”Œpyfuse3.Operations.lookup”hNt”auh(hchhÝhhhŒj/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.lookup”hNubht)�”}”(hhh]”(hy)�”}”(hŒYOperations.lookup(parent_inode: int, name: bytes, ctx: RequestContext) -> EntryAttributes”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj3hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj/ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj/ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj+hhhhhKubh½)�”}”(hŒlookup”h]”hŒlookup”…”�”}”(hjRhhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj+hhhhhKubjØ)�”}”(hŒ3parent_inode: int, name: bytes, ctx: RequestContext”h]”(jÞ)�”}”(hŒparent_inode: int”h]”(jä)�”}”(hŒ parent_inode”h]”hŒ parent_inode”…”�”}”(hjghhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjcubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjthhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjcubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjcubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj’hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjŽubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjcubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj_ubjÞ)�”}”(hŒ name: bytes”h]”(jä)�”}”(hŒname”h]”hŒname”…”�”}”(hj³hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj¯ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjÀhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj¯ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj¯ubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hjÞhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÚubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj¯ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj_ubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÿhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjûubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjûubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjûubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hj*hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj&ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjûubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj_ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj+hhhhhKubjÒ)�”}”(hŒEntryAttributes”h]”h6)�”}”(hhh]”hŒEntryAttributes”…”�”}”(hjPhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒEntryAttributes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjLubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj+hhhhhKubeh}”(h ]”j%ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.lookup”hØjmŒ Operations”Œlookup”‡”hÚŒOperations.lookup()”uh(hxhhhKhj(hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ9Look up a directory entry by name and get its attributes.”h]”hŒ9Look up a directory entry by name and get its attributes.”…”�”}”(hjvhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj'hKhjshhubh+)�”}”(hŒ‚This method should return an `EntryAttributes` instance for the directory entry *name* in the directory with inode *parent_inode*.”h]”(hŒThis method should return an ”…”�”}”(hjƒhhhNhNubh6)�”}”(hŒ`EntryAttributes`”h]”hí)�”}”(hj�h]”hŒEntryAttributes”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj‹ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j™Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjmjhÀhXŒEntryAttributes”uh(h5hj'hKhjƒubhŒ" instance for the directory entry ”…”�”}”(hjƒhhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hj­hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjƒubhŒ in the directory with inode ”…”�”}”(hjƒhhhNhNubj)�”}”(hŒ*parent_inode*”h]”hŒ parent_inode”…”�”}”(hj¾hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjƒubhŒ.”…”�”}”(hjƒhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj'hKhjshhubh+)�”}”(hX?If there is no such entry, the method should either return an `EntryAttributes` instance with zero ``st_ino`` value (in which case the negative lookup will be cached as specified by ``entry_timeout``), or it should raise `FUSEError` with an errno of `errno.ENOENT` (in this case the negative result will not be cached).”h]”(hŒ>If there is no such entry, the method should either return an ”…”�”}”(hjÔhhhNhNubh6)�”}”(hŒ`EntryAttributes`”h]”hí)�”}”(hjÞh]”hŒEntryAttributes”…”�”}”(hjàhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjÜubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jêŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjmjhÀhXŒEntryAttributes”uh(h5hj'hKhjÔubhŒ instance with zero ”…”�”}”(hjÔhhhNhNubhí)�”}”(hŒ ``st_ino``”h]”hŒst_ino”…”�”}”(hjþhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjÔubhŒI value (in which case the negative lookup will be cached as specified by ”…”�”}”(hjÔhhhNhNubhí)�”}”(hŒ``entry_timeout``”h]”hŒ entry_timeout”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjÔubhŒ), or it should raise ”…”�”}”(hjÔhhhNhNubh6)�”}”(hŒ `FUSEError`”h]”hí)�”}”(hj"h]”hŒ FUSEError”…”�”}”(hj$hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j.Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjmjhÀhXŒ FUSEError”uh(h5hj'hKhjÔubhŒ with an errno of ”…”�”}”(hjÔhhhNhNubh6)�”}”(hŒ`errno.ENOENT`”h]”hí)�”}”(hjDh]”hŒ errno.ENOENT”…”�”}”(hjFhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjBubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jPŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjmjhÀhXŒ errno.ENOENT”uh(h5hj'hKhjÔubhŒ7 (in this case the negative result will not be cached).”…”�”}”(hjÔhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj'hKhjshhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hjmhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjiubhŒ will be a ”…”�”}”(hjihhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hj€h]”hŒRequestContext”…”�”}”(hj‚hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj~ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jŒŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjmjhÀhXŒRequestContext”uh(h5hj'hK hjiubhŒ instance.”…”�”}”(hjihhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj'hK hjshhubh+)�”}”(hŒ‰The file system must be able to handle lookups for :file:`.` and :file:`..`, no matter if these entries are returned by `readdir` or not.”h]”(hŒ3The file system must be able to handle lookups for ”…”�”}”(hj¥hhhNhNubhí)�”}”(hŒ :file:`.`”h]”hŒ.”…”�”}”(hj­hhhNhNubah}”(h ]”h"]”Œfile”ah$]”h&]”Œrole”Œfile”uh(hìhj¥ubhŒ and ”…”�”}”(hj¥hhhNhNubhí)�”}”(hŒ :file:`..`”h]”hŒ..”…”�”}”(hjÁhhhNhNubah}”(h ]”h"]”Œfile”ah$]”h&]”Œrole”Œfile”uh(hìhj¥ubhŒ-, no matter if these entries are returned by ”…”�”}”(hj¥hhhNhNubh6)�”}”(hŒ `readdir`”h]”hí)�”}”(hj×h]”hŒreaddir”…”�”}”(hjÙhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjÕubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jãŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjmjhÀhXŒreaddir”uh(h5hj'hKhj¥ubhŒ or not.”…”�”}”(hj¥hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj'hKhjshhubh+)�”}”(hŒ`(Successful) execution of this handler increases the lookup count for the returned inode by one.”h]”hŒ`(Successful) execution of this handler increases the lookup count for the returned inode by one.”…”�”}”(hjühhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj'hKhjshhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj(hhhj'hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjjäjjåjjæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj'hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ#mkdir() (pyfuse3.Operations method)”Œpyfuse3.Operations.mkdir”hNt”auh(hchhÝhhhŒi/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.mkdir”hNubht)�”}”(hhh]”(hy)�”}”(hŒcOperations.mkdir(parent_inode: int, name: bytes, mode: int, ctx: RequestContext) -> EntryAttributes”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj.hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj*ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj*ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj&hhhhhKubh½)�”}”(hŒmkdir”h]”hŒmkdir”…”�”}”(hjMhhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj&hhhhhKubjØ)�”}”(hŒ>parent_inode: int, name: bytes, mode: int, ctx: RequestContext”h]”(jÞ)�”}”(hŒparent_inode: int”h]”(jä)�”}”(hŒ parent_inode”h]”hŒ parent_inode”…”�”}”(hjbhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj^ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjohhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj^ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj^ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj‰ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj^ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjZubjÞ)�”}”(hŒ name: bytes”h]”(jä)�”}”(hŒname”h]”hŒname”…”�”}”(hj®hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjªubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj»hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjªubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjªubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hjÙhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÕubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjªubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjZubjÞ)�”}”(hŒ mode: int”h]”(jä)�”}”(hŒmode”h]”hŒmode”…”�”}”(hjúhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjöubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjöubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjöubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj%hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj!ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjöubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjZubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjFhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjBubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjShhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjBubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjBubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hjqhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjmubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjBubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjZubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj&hhhhhKubjÒ)�”}”(hŒEntryAttributes”h]”h6)�”}”(hhh]”hŒEntryAttributes”…”�”}”(hj—hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒEntryAttributes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj“ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj&hhhhhKubeh}”(h ]”j ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.mkdir”hØj´Œ Operations”Œmkdir”‡”hÚŒOperations.mkdir()”uh(hxhhhKhj#hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒCreate a directory.”h]”hŒCreate a directory.”…”�”}”(hj½hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj"hKhjºhhubh+)�”}”(hŒ–This method must create a new directory *name* with mode *mode* in the directory with inode *parent_inode*. *ctx* will be a `RequestContext` instance.”h]”(hŒ(This method must create a new directory ”…”�”}”(hjÊhhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hjÒhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÊubhŒ with mode ”…”�”}”(hjÊhhhNhNubj)�”}”(hŒ*mode*”h]”hŒmode”…”�”}”(hjãhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÊubhŒ in the directory with inode ”…”�”}”(hjÊhhhNhNubj)�”}”(hŒ*parent_inode*”h]”hŒ parent_inode”…”�”}”(hjôhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÊubhŒ. ”…”�”}”(hjÊhhhNhNubj)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÊubhŒ will be a ”…”�”}”(hjÊhhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjh]”hŒRequestContext”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j$Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj´jhÀhXŒRequestContext”uh(h5hj"hKhjÊubhŒ instance.”…”�”}”(hjÊhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj"hKhjºhhubh+)�”}”(hŒoThis method must return an `EntryAttributes` instance with the attributes of the newly created directory entry.”h]”(hŒThis method must return an ”…”�”}”(hj=hhhNhNubh6)�”}”(hŒ`EntryAttributes`”h]”hí)�”}”(hjGh]”hŒEntryAttributes”…”�”}”(hjIhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjEubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jSŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj´jhÀhXŒEntryAttributes”uh(h5hj"hKhj=ubhŒC instance with the attributes of the newly created directory entry.”…”�”}”(hj=hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj"hKhjºhhubh+)�”}”(hŒ`(Successful) execution of this handler increases the lookup count for the returned inode by one.”h]”hŒ`(Successful) execution of this handler increases the lookup count for the returned inode by one.”…”�”}”(hjlhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj"hK hjºhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj#hhhj"hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãj�jäj‚jåj‚jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj"hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ#mknod() (pyfuse3.Operations method)”Œpyfuse3.Operations.mknod”hNt”auh(hchhÝhhhŒi/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.mknod”hNubht)�”}”(hhh]”(hy)�”}”(hŒnOperations.mknod(parent_inode: int, name: bytes, mode: int, rdev: int, ctx: RequestContext) -> EntryAttributes”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjžhhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjšubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjšubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj–hhhhhKubh½)�”}”(hŒmknod”h]”hŒmknod”…”�”}”(hj½hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj–hhhhhKubjØ)�”}”(hŒIparent_inode: int, name: bytes, mode: int, rdev: int, ctx: RequestContext”h]”(jÞ)�”}”(hŒparent_inode: int”h]”(jä)�”}”(hŒ parent_inode”h]”hŒ parent_inode”…”�”}”(hjÒhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjÎubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjßhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjÎubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjìhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjÎubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjýhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjùubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjÎubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÊubjÞ)�”}”(hŒ name: bytes”h]”(jä)�”}”(hŒname”h]”hŒname”…”�”}”(hjhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj+hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hjIhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjEubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÊubjÞ)�”}”(hŒ mode: int”h]”(jä)�”}”(hŒmode”h]”hŒmode”…”�”}”(hjjhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjfubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjwhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjfubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjfubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj•hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj‘ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjfubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÊubjÞ)�”}”(hŒ rdev: int”h]”(jä)�”}”(hŒrdev”h]”hŒrdev”…”�”}”(hj¶hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj²ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjÃhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj²ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj²ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjáhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÝubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj²ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÊubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjþubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjþubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjþubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hj-hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj)ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjþubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÊubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj–hhhhhKubjÒ)�”}”(hŒEntryAttributes”h]”h6)�”}”(hhh]”hŒEntryAttributes”…”�”}”(hjShhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒEntryAttributes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjOubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj–hhhhhKubeh}”(h ]”j�ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.mknod”hØjpŒ Operations”Œmknod”‡”hÚŒOperations.mknod()”uh(hxhhhKhj“hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒCreate (possibly special) file.”h]”hŒCreate (possibly special) file.”…”�”}”(hjyhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj’hKhjvhhubh+)�”}”(hX!This method must create a (special or regular) file *name* in the directory with inode *parent_inode*. Whether the file is special or regular is determined by its *mode*. If the file is neither a block nor character device, *rdev* can be ignored. *ctx* will be a `RequestContext` instance.”h]”(hŒ4This method must create a (special or regular) file ”…”�”}”(hj†hhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hjŽhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj†ubhŒ in the directory with inode ”…”�”}”(hj†hhhNhNubj)�”}”(hŒ*parent_inode*”h]”hŒ parent_inode”…”�”}”(hjŸhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj†ubhŒ>. Whether the file is special or regular is determined by its ”…”�”}”(hj†hhhNhNubj)�”}”(hŒ*mode*”h]”hŒmode”…”�”}”(hj°hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj†ubhŒ7. If the file is neither a block nor character device, ”…”�”}”(hj†hhhNhNubj)�”}”(hŒ*rdev*”h]”hŒrdev”…”�”}”(hjÁhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj†ubhŒ can be ignored. ”…”�”}”(hj†hhhNhNubj)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hjÒhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj†ubhŒ will be a ”…”�”}”(hj†hhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjåh]”hŒRequestContext”…”�”}”(hjçhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjãubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jñŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjpjhÀhXŒRequestContext”uh(h5hj’hKhj†ubhŒ instance.”…”�”}”(hj†hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj’hKhjvhhubh+)�”}”(hŒnThe method must return an `EntryAttributes` instance with the attributes of the newly created directory entry.”h]”(hŒThe method must return an ”…”�”}”(hj hhhNhNubh6)�”}”(hŒ`EntryAttributes`”h]”hí)�”}”(hj h]”hŒEntryAttributes”…”�”}”(hj hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjpjhÀhXŒEntryAttributes”uh(h5hj’hK hj ubhŒC instance with the attributes of the newly created directory entry.”…”�”}”(hj hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj’hK hjvhhubh+)�”}”(hŒ`(Successful) execution of this handler increases the lookup count for the returned inode by one.”h]”hŒ`(Successful) execution of this handler increases the lookup count for the returned inode by one.”…”�”}”(hj9 hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj’hK hjvhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj“hhhj’hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjN jäjO jåjO jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj’hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ"open() (pyfuse3.Operations method)”Œpyfuse3.Operations.open”hNt”auh(hchhÝhhhŒh/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.open”hNubht)�”}”(hhh]”(hy)�”}”(hŒHOperations.open(inode: int, flags: int, ctx: RequestContext) -> FileInfo”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjk hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjg ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjx hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjg ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hjc hhhhhKubh½)�”}”(hŒopen”h]”hŒopen”…”�”}”(hjŠ hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjc hhhhhKubjØ)�”}”(hŒ+inode: int, flags: int, ctx: RequestContext”h]”(jÞ)�”}”(hŒ inode: int”h]”(jä)�”}”(hŒinode”h]”hŒinode”…”�”}”(hjŸ hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj› ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj¬ hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj› ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹ hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj› ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjÊ hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÆ ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj› ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj— ubjÞ)�”}”(hŒ flags: int”h]”(jä)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjë hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjç ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjø hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjç ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjç ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj!hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj!ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjç ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj— ubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj7!hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj3!ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjD!hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj3!ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQ!hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj3!ubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hjb!hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj^!ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj3!ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj— ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hjc hhhhhKubjÒ)�”}”(hŒFileInfo”h]”h6)�”}”(hhh]”hŒFileInfo”…”�”}”(hjˆ!hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒFileInfo”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj„!ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhjc hhhhhKubeh}”(h ]”j] ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.open”hØj¥!Œ Operations”Œopen”‡”hÚŒOperations.open()”uh(hxhhhKhj` hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ"Open a inode *inode* with *flags*.”h]”(hŒ Open a inode ”…”�”}”(hj®!hhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hj¶!hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj®!ubhŒ with ”…”�”}”(hj®!hhhNhNubj)�”}”(hŒ*flags*”h]”hŒflags”…”�”}”(hjÇ!hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj®!ubhŒ.”…”�”}”(hj®!hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj_ hKhj«!hhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hjá!hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÝ!ubhŒ will be a ”…”�”}”(hjÝ!hhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjô!h]”hŒRequestContext”…”�”}”(hjö!hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjò!ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j"Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¥!jhÀhXŒRequestContext”uh(h5hj_ hKhjÝ!ubhŒ instance.”…”�”}”(hjÝ!hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj_ hKhj«!hhubh+)�”}”(hŒÇ*flags* will be a bitwise or of the open flags described in the :manpage:`open(2)` manpage and defined in the `os` module (with the exception of ``O_CREAT``, ``O_EXCL``, ``O_NOCTTY`` and ``O_TRUNC``)”h]”(j)�”}”(hŒ*flags*”h]”hŒflags”…”�”}”(hj"hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj"ubhŒ9 will be a bitwise or of the open flags described in the ”…”�”}”(hj"hhhNhNubh4Œmanpage”“”)�”}”(hŒ:manpage:`open(2)`”h]”hŒopen(2)”…”�”}”(hj0"hhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œopen(2)”Œpage”Œopen”Œsection”Œ2”h©hªuh(j."hj"ubhŒ manpage and defined in the ”…”�”}”(hj"hhhNhNubh6)�”}”(hŒ`os`”h]”hí)�”}”(hjJ"h]”hŒos”…”�”}”(hjL"hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjH"ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jV"Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¥!jhÀhXŒos”uh(h5hj_ hKhj"ubhŒ module (with the exception of ”…”�”}”(hj"hhhNhNubhí)�”}”(hŒ ``O_CREAT``”h]”hŒO_CREAT”…”�”}”(hjj"hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhj"ubhŒ, ”…”�”}”(hj"hhhNhNubhí)�”}”(hŒ ``O_EXCL``”h]”hŒO_EXCL”…”�”}”(hj{"hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhj"ubhŒ, ”…”�”}”hj"sbhí)�”}”(hŒ ``O_NOCTTY``”h]”hŒO_NOCTTY”…”�”}”(hjŒ"hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhj"ubhŒ and ”…”�”}”(hj"hhhNhNubhí)�”}”(hŒ ``O_TRUNC``”h]”hŒO_TRUNC”…”�”}”(hj�"hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhj"ubhŒ)”…”�”}”(hj"hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj_ hKhj«!hhubh+)�”}”(hX^This method must return a `FileInfo` instance. The `FileInfo.fh` field must contain an integer file handle, which will be passed to the `read`, `write`, `flush`, `fsync` and `release` methods to identify the open file. The `FileInfo` instance may also have relevant configuration attributes set; see the `FileInfo` documentation for more information.”h]”(hŒThis method must return a ”…”�”}”(hj³"hhhNhNubh6)�”}”(hŒ `FileInfo`”h]”hí)�”}”(hj½"h]”hŒFileInfo”…”�”}”(hj¿"hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj»"ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jÉ"Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¥!jhÀhXŒFileInfo”uh(h5hj_ hK hj³"ubhŒ instance. The ”…”�”}”(hj³"hhhNhNubh6)�”}”(hŒ `FileInfo.fh`”h]”hí)�”}”(hjß"h]”hŒ FileInfo.fh”…”�”}”(hjá"hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjÝ"ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jë"Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¥!jhÀhXŒ FileInfo.fh”uh(h5hj_ hK hj³"ubhŒH field must contain an integer file handle, which will be passed to the ”…”�”}”(hj³"hhhNhNubh6)�”}”(hŒ`read`”h]”hí)�”}”(hj#h]”hŒread”…”�”}”(hj#hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjÿ"ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j #Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¥!jhÀhXŒread”uh(h5hj_ hK hj³"ubhŒ, ”…”�”}”(hj³"hhhNhNubh6)�”}”(hŒ`write`”h]”hí)�”}”(hj##h]”hŒwrite”…”�”}”(hj%#hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj!#ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j/#Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¥!jhÀhXŒwrite”uh(h5hj_ hK hj³"ubhŒ, ”…”�”}”(hj³"hhhNhNubh6)�”}”(hŒ`flush`”h]”hí)�”}”(hjE#h]”hŒflush”…”�”}”(hjG#hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjC#ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jQ#Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¥!jhÀhXŒflush”uh(h5hj_ hK hj³"ubhŒ, ”…”�”}”hj³"sbh6)�”}”(hŒ`fsync`”h]”hí)�”}”(hjg#h]”hŒfsync”…”�”}”(hji#hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhje#ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”js#Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¥!jhÀhXŒfsync”uh(h5hj_ hK hj³"ubhŒ and ”…”�”}”(hj³"hhhNhNubh6)�”}”(hŒ `release`”h]”hí)�”}”(hj‰#h]”hŒrelease”…”�”}”(hj‹#hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj‡#ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j•#Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¥!jhÀhXŒrelease”uh(h5hj_ hK hj³"ubhŒ( methods to identify the open file. The ”…”�”}”(hj³"hhhNhNubh6)�”}”(hŒ `FileInfo`”h]”hí)�”}”(hj«#h]”hŒFileInfo”…”�”}”(hj­#hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj©#ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j·#Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¥!jhÀhXŒFileInfo”uh(h5hj_ hK hj³"ubhŒG instance may also have relevant configuration attributes set; see the ”…”�”}”(hj³"hhhNhNubh6)�”}”(hŒ `FileInfo`”h]”hí)�”}”(hjÍ#h]”hŒFileInfo”…”�”}”(hjÏ#hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjË#ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jÙ#Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¥!jhÀhXŒFileInfo”uh(h5hj_ hK hj³"ubhŒ$ documentation for more information.”…”�”}”(hj³"hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj_ hK hj«!hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj` hhhj_ hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjú#jäjû#jåjû#jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj_ hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ%opendir() (pyfuse3.Operations method)”Œpyfuse3.Operations.opendir”hNt”auh(hchhÝhhhŒk/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.opendir”hNubht)�”}”(hhh]”(hy)�”}”(hŒ:Operations.opendir(inode: int, ctx: RequestContext) -> int”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj$hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj$ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$$hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj$ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj$hhhhhKubh½)�”}”(hŒopendir”h]”hŒopendir”…”�”}”(hj6$hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj$hhhhhKubjØ)�”}”(hŒinode: int, ctx: RequestContext”h]”(jÞ)�”}”(hŒ inode: int”h]”(jä)�”}”(hŒinode”h]”hŒinode”…”�”}”(hjK$hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjG$ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjX$hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjG$ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hje$hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjG$ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjv$hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjr$ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjG$ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjC$ubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj—$hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj“$ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj¤$hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj“$ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj±$hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj“$ubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hjÂ$hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj¾$ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj“$ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjC$ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj$hhhhhKubjÒ)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjè$hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjä$ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj$hhhhhKubeh}”(h ]”j $ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.opendir”hØj%Œ Operations”Œopendir”‡”hÚŒOperations.opendir()”uh(hxhhhKhj $hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ&Open the directory with inode *inode*.”h]”(hŒOpen the directory with inode ”…”�”}”(hj%hhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hj%hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj%ubhŒ.”…”�”}”(hj%hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj $hKhj %hhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hj0%hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj,%ubhŒ will be a ”…”�”}”(hj,%hhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjC%h]”hŒRequestContext”…”�”}”(hjE%hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjA%ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jO%Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj%jhÀhXŒRequestContext”uh(h5hj $hKhj,%ubhŒ instance.”…”�”}”(hj,%hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj $hKhj %hhubh+)�”}”(hŒ¡This method should return an integer file handle. The file handle will be passed to the `readdir`, `fsyncdir` and `releasedir` methods to identify the directory.”h]”(hŒXThis method should return an integer file handle. The file handle will be passed to the ”…”�”}”(hjh%hhhNhNubh6)�”}”(hŒ `readdir`”h]”hí)�”}”(hjr%h]”hŒreaddir”…”�”}”(hjt%hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjp%ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j~%Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj%jhÀhXŒreaddir”uh(h5hj $hKhjh%ubhŒ, ”…”�”}”(hjh%hhhNhNubh6)�”}”(hŒ `fsyncdir`”h]”hí)�”}”(hj”%h]”hŒfsyncdir”…”�”}”(hj–%hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj’%ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j %Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj%jhÀhXŒfsyncdir”uh(h5hj $hKhjh%ubhŒ and ”…”�”}”(hjh%hhhNhNubh6)�”}”(hŒ `releasedir`”h]”hí)�”}”(hj¶%h]”hŒ releasedir”…”�”}”(hj¸%hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj´%ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jÂ%Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj%jhÀhXŒ releasedir”uh(h5hj $hKhjh%ubhŒ# methods to identify the directory.”…”�”}”(hjh%hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj $hKhj %hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj $hhhj $hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjã%jäjä%jåjä%jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj $hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ"poll() (pyfuse3.Operations method)”Œpyfuse3.Operations.poll”hNt”auh(hchhÝhhhŒh/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.poll”hNubht)�”}”(hhh]”(hy)�”}”(hŒ`Operations.poll(inode: int, fh: int, poll_handle: PollHandle | None, ctx: RequestContext) -> int”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj&hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjü%ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj &hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjü%ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hjø%hhhhhKubh½)�”}”(hŒpoll”h]”hŒpoll”…”�”}”(hj&hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjø%hhhhhKubjØ)�”}”(hŒHinode: int, fh: int, poll_handle: PollHandle | None, ctx: RequestContext”h]”(jÞ)�”}”(hŒ inode: int”h]”(jä)�”}”(hŒinode”h]”hŒinode”…”�”}”(hj4&hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj0&ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjA&hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj0&ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN&hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj0&ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj_&hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj[&ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj0&ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj,&ubjÞ)�”}”(hŒfh: int”h]”(jä)�”}”(hŒfh”h]”hŒfh”…”�”}”(hj€&hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj|&ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj�&hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj|&ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjš&hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj|&ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj«&hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj§&ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj|&ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj,&ubjÞ)�”}”(hŒpoll_handle: PollHandle | None”h]”(jä)�”}”(hŒ poll_handle”h]”hŒ poll_handle”…”�”}”(hjÌ&hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjÈ&ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjÙ&hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjÈ&ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæ&hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjÈ&ubjä)�”}”(hŒPollHandle | None”h]”(h6)�”}”(hhh]”hŒ PollHandle”…”�”}”(hj÷&hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œ PollHandle”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjó&ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj 'hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjó&ubjô)�”}”(hŒ|”h]”hŒ|”…”�”}”(hj'hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjó&ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$'hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjó&ubh6)�”}”(hhh]”hŒNone”…”�”}”(hj1'hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjó&ubeh}”(h ]”h"]”jðah$]”h&]”uh(jãhjÈ&ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj,&ubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjR'hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjN'ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj_'hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjN'ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjl'hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjN'ubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hj}'hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjy'ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjN'ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj,&ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hjø%hhhhhKubjÒ)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj£'hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjŸ'ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhjø%hhhhhKubeh}”(h ]”jò%ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.poll”hØjÀ'Œ Operations”Œpoll”‡”hÚŒOperations.poll()”uh(hxhhhKhjõ%hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ#Check IO readiness on an open file.”h]”hŒ#Check IO readiness on an open file.”…”�”}”(hjÉ'hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hjô%hKhjÆ'hhubh+)�”}”(hŒ÷This method is called when a process performs :manpage:`poll(2)`, :manpage:`select(2)` or :manpage:`epoll_wait(2)` on a file descriptor backed by *fh* (returned by a prior `open` or `create` call). *inode* identifies the inode that *fh* refers to.”h]”(hŒ.This method is called when a process performs ”…”�”}”(hjÖ'hhhNhNubj/")�”}”(hŒ:manpage:`poll(2)`”h]”hŒpoll(2)”…”�”}”(hjÞ'hhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œpoll(2)”Œpage”Œpoll”Œsection”jC"h©hªuh(j."hjÖ'ubhŒ, ”…”�”}”(hjÖ'hhhNhNubj/")�”}”(hŒ:manpage:`select(2)`”h]”hŒ select(2)”…”�”}”(hjõ'hhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œ select(2)”Œpage”Œselect”Œsection”jC"h©hªuh(j."hjÖ'ubhŒ or ”…”�”}”(hjÖ'hhhNhNubj/")�”}”(hŒ:manpage:`epoll_wait(2)`”h]”hŒ epoll_wait(2)”…”�”}”(hj (hhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œ epoll_wait(2)”Œpage”Œ epoll_wait”Œsection”jC"h©hªuh(j."hjÖ'ubhŒ on a file descriptor backed by ”…”�”}”(hjÖ'hhhNhNubj)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hj#(hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÖ'ubhŒ (returned by a prior ”…”�”}”(hjÖ'hhhNhNubh6)�”}”(hŒ`open`”h]”hí)�”}”(hj6(h]”hŒopen”…”�”}”(hj8(hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj4(ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jB(Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjÀ'jhÀhXŒopen”uh(h5hjô%hKhjÖ'ubhŒ or ”…”�”}”hjÖ'sbh6)�”}”(hŒ`create`”h]”hí)�”}”(hjX(h]”hŒcreate”…”�”}”(hjZ(hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjV(ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jd(Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjÀ'jhÀhXŒcreate”uh(h5hjô%hKhjÖ'ubhŒ call). ”…”�”}”(hjÖ'hhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hjx(hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÖ'ubhŒ identifies the inode that ”…”�”}”(hjÖ'hhhNhNubj)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hj‰(hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÖ'ubhŒ refers to.”…”�”}”(hjÖ'hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjô%hKhjÆ'hhubh+)�”}”(hŒËThe method will return the bitwise-or of the currently active poll events, for example ``select.POLLIN``, ``select.POLLOUT`` or ``select.POLLPRI``. If no events are currently ready, it will return ``0``.”h]”(hŒWThe method will return the bitwise-or of the currently active poll events, for example ”…”�”}”(hjŸ(hhhNhNubhí)�”}”(hŒ``select.POLLIN``”h]”hŒ select.POLLIN”…”�”}”(hj§(hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjŸ(ubhŒ, ”…”�”}”(hjŸ(hhhNhNubhí)�”}”(hŒ``select.POLLOUT``”h]”hŒselect.POLLOUT”…”�”}”(hj¸(hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjŸ(ubhŒ or ”…”�”}”(hjŸ(hhhNhNubhí)�”}”(hŒ``select.POLLPRI``”h]”hŒselect.POLLPRI”…”�”}”(hjÉ(hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjŸ(ubhŒ3. If no events are currently ready, it will return ”…”�”}”(hjŸ(hhhNhNubhí)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hjÚ(hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjŸ(ubhŒ.”…”�”}”(hjŸ(hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjô%hKhjÆ'hhubh+)�”}”(hXIf *poll_handle* is `None`, the kernel has not provided a notification handle for this request. The filesystem should only return the current readiness mask and must not attempt to store a handle or arrange a later `PollHandle.notify` call for this poll request.”h]”(hŒIf ”…”�”}”(hjð(hhhNhNubj)�”}”(hŒ *poll_handle*”h]”hŒ poll_handle”…”�”}”(hjø(hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjð(ubhŒ is ”…”�”}”(hjð(hhhNhNubh6)�”}”(hŒ`None`”h]”hí)�”}”(hj )h]”hŒNone”…”�”}”(hj )hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj )ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j)Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjÀ'jhÀhXŒNone”uh(h5hjô%hK hjð(ubhŒ½, the kernel has not provided a notification handle for this request. The filesystem should only return the current readiness mask and must not attempt to store a handle or arrange a later ”…”�”}”(hjð(hhhNhNubh6)�”}”(hŒ`PollHandle.notify`”h]”hí)�”}”(hj-)h]”hŒPollHandle.notify”…”�”}”(hj/)hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj+)ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j9)Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjÀ'jhÀhXŒPollHandle.notify”uh(h5hjô%hK hjð(ubhŒ call for this poll request.”…”�”}”(hjð(hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjô%hK hjÆ'hhubh+)�”}”(hXªIf *poll_handle* is not `None`, the kernel has provided a notification handle that may be used to wake waiters if readiness changes after this method returns. The filesystem may store the handle and later call `PollHandle.notify` when a relevant event becomes available. Each `~Operations.poll` call produces a fresh handle; storing a new handle should replace any previously held one, allowing the old handle to be destroyed.”h]”(hŒIf ”…”�”}”(hjR)hhhNhNubj)�”}”(hŒ *poll_handle*”h]”hŒ poll_handle”…”�”}”(hjZ)hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjR)ubhŒ is not ”…”�”}”(hjR)hhhNhNubh6)�”}”(hŒ`None`”h]”hí)�”}”(hjm)h]”hŒNone”…”�”}”(hjo)hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjk)ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jy)Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjÀ'jhÀhXŒNone”uh(h5hjô%hKhjR)ubhŒ´, the kernel has provided a notification handle that may be used to wake waiters if readiness changes after this method returns. The filesystem may store the handle and later call ”…”�”}”(hjR)hhhNhNubh6)�”}”(hŒ`PollHandle.notify`”h]”hí)�”}”(hj�)h]”hŒPollHandle.notify”…”�”}”(hj‘)hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj�)ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j›)Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjÀ'jhÀhXŒPollHandle.notify”uh(h5hjô%hKhjR)ubhŒ/ when a relevant event becomes available. Each ”…”�”}”(hjR)hhhNhNubh6)�”}”(hŒ`~Operations.poll`”h]”hí)�”}”(hj±)h]”hŒpoll”…”�”}”(hj³)hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj¯)ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j½)Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjÀ'jhÀhXŒOperations.poll”uh(h5hjô%hKhjR)ubhŒ„ call produces a fresh handle; storing a new handle should replace any previously held one, allowing the old handle to be destroyed.”…”�”}”(hjR)hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjô%hKhjÆ'hhubh+)�”}”(hŒ¿If this method raises ``FUSEError(errno.ENOSYS)`` (the default), the kernel will fall back to a default poll implementation and will not call this handler again for the lifetime of the mount.”h]”(hŒIf this method raises ”…”�”}”(hjÖ)hhhNhNubhí)�”}”(hŒ``FUSEError(errno.ENOSYS)``”h]”hŒFUSEError(errno.ENOSYS)”…”�”}”(hjÞ)hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjÖ)ubhŒŽ (the default), the kernel will fall back to a default poll implementation and will not call this handler again for the lifetime of the mount.”…”�”}”(hjÖ)hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjô%hKhjÆ'hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjõ%hhhjô%hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjü)jäjý)jåjý)jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjô%hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ"read() (pyfuse3.Operations method)”Œpyfuse3.Operations.read”hNt”auh(hchhÝhhhŒh/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.read”hNubht)�”}”(hhh]”(hy)�”}”(hŒ6Operations.read(fh: int, off: int, size: int) -> bytes”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj*hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj*ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&*hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj*ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj*hhhhhKubh½)�”}”(hŒread”h]”hŒread”…”�”}”(hj8*hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj*hhhhhKubjØ)�”}”(hŒfh: int, off: int, size: int”h]”(jÞ)�”}”(hŒfh: int”h]”(jä)�”}”(hŒfh”h]”hŒfh”…”�”}”(hjM*hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjI*ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjZ*hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjI*ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjg*hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjI*ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjx*hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjt*ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjI*ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjE*ubjÞ)�”}”(hŒoff: int”h]”(jä)�”}”(hŒoff”h]”hŒoff”…”�”}”(hj™*hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj•*ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj¦*hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj•*ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³*hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj•*ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjÄ*hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÀ*ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj•*ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjE*ubjÞ)�”}”(hŒ size: int”h]”(jä)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjå*hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjá*ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjò*hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjá*ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿ*hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjá*ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj+hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj +ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjá*ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjE*ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj*hhhhhKubjÒ)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hj6+hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj2+ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj*hhhhhKubeh}”(h ]”j *ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.read”hØjS+Œ Operations”Œread”‡”hÚŒOperations.read()”uh(hxhhhKhj*hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ.Read *size* bytes from *fh* at position *off*.”h]”(hŒRead ”…”�”}”(hj\+hhhNhNubj)�”}”(hŒ*size*”h]”hŒsize”…”�”}”(hjd+hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj\+ubhŒ bytes from ”…”�”}”(hj\+hhhNhNubj)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hju+hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj\+ubhŒ at position ”…”�”}”(hj\+hhhNhNubj)�”}”(hŒ*off*”h]”hŒoff”…”�”}”(hj†+hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj\+ubhŒ.”…”�”}”(hj\+hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj *hKhjY+hhubh+)�”}”(hŒO*fh* will be an integer filehandle returned by a prior `open` or `create` call.”h]”(j)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hj +hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjœ+ubhŒ3 will be an integer filehandle returned by a prior ”…”�”}”(hjœ+hhhNhNubh6)�”}”(hŒ`open`”h]”hí)�”}”(hj³+h]”hŒopen”…”�”}”(hjµ+hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj±+ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j¿+Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjS+jhÀhXŒopen”uh(h5hj *hKhjœ+ubhŒ or ”…”�”}”(hjœ+hhhNhNubh6)�”}”(hŒ`create`”h]”hí)�”}”(hjÕ+h]”hŒcreate”…”�”}”(hj×+hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjÓ+ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”já+Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjS+jhÀhXŒcreate”uh(h5hj *hKhjœ+ubhŒ call.”…”�”}”(hjœ+hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj *hKhjY+hhubh+)�”}”(hŒ™This function should return exactly the number of bytes requested except on EOF or error, otherwise the rest of the data will be substituted with zeroes.”h]”hŒ™This function should return exactly the number of bytes requested except on EOF or error, otherwise the rest of the data will be substituted with zeroes.”…”�”}”(hjú+hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj *hKhjY+hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj*hhhj *hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãj,jäj,jåj,jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj *hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ%readdir() (pyfuse3.Operations method)”Œpyfuse3.Operations.readdir”hNt”auh(hchhÝhhhŒk/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.readdir”hNubht)�”}”(hhh]”(hy)�”}”(hŒGOperations.readdir(fh: int, start_id: int, token: ReaddirToken) -> None”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj,,hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj(,ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9,hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj(,ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj$,hhhhhKubh½)�”}”(hŒreaddir”h]”hŒreaddir”…”�”}”(hjK,hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj$,hhhhhKubjØ)�”}”(hŒ+fh: int, start_id: int, token: ReaddirToken”h]”(jÞ)�”}”(hŒfh: int”h]”(jä)�”}”(hŒfh”h]”hŒfh”…”�”}”(hj`,hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj\,ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjm,hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj\,ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjz,hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj\,ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj‹,hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj‡,ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj\,ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjX,ubjÞ)�”}”(hŒ start_id: int”h]”(jä)�”}”(hŒstart_id”h]”hŒstart_id”…”�”}”(hj¬,hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj¨,ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj¹,hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj¨,ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆ,hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj¨,ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj×,hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÓ,ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj¨,ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjX,ubjÞ)�”}”(hŒtoken: ReaddirToken”h]”(jä)�”}”(hŒtoken”h]”hŒtoken”…”�”}”(hjø,hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjô,ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj-hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjô,ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjô,ubjä)�”}”(hŒ ReaddirToken”h]”h6)�”}”(hhh]”hŒ ReaddirToken”…”�”}”(hj#-hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œ ReaddirToken”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj-ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjô,ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjX,ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj$,hhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hjI-hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjE-ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj$,hhhhhKubeh}”(h ]”j,ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.readdir”hØjf-Œ Operations”Œreaddir”‡”hÚŒOperations.readdir()”uh(hxhhhKhj!,hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ$Read entries in open directory *fh*.”h]”(hŒRead entries in open directory ”…”�”}”(hjo-hhhNhNubj)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hjw-hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjo-ubhŒ.”…”�”}”(hjo-hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj ,hKhjl-hhubh+)�”}”(hŒ�This method should list the contents of directory *fh* (as returned by a prior `opendir` call), starting at the entry identified by *start_id*.”h]”(hŒ2This method should list the contents of directory ”…”�”}”(hj�-hhhNhNubj)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hj•-hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj�-ubhŒ (as returned by a prior ”…”�”}”(hj�-hhhNhNubh6)�”}”(hŒ `opendir`”h]”hí)�”}”(hj¨-h]”hŒopendir”…”�”}”(hjª-hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj¦-ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j´-Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjf-jhÀhXŒopendir”uh(h5hj ,hKhj�-ubhŒ, call), starting at the entry identified by ”…”�”}”(hj�-hhhNhNubj)�”}”(hŒ *start_id*”h]”hŒstart_id”…”�”}”(hjÈ-hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj�-ubhŒ.”…”�”}”(hj�-hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj ,hKhjl-hhubh+)�”}”(hX¹Instead of returning the directory entries directly, the method must call `readdir_reply` for each directory entry. If `readdir_reply` returns True, the file system must increase the lookup count for the provided directory entry by one and call `readdir_reply` again for the next entry (if any). If `readdir_reply` returns False, the lookup count must *not* be increased and the method should return without further calls to `readdir_reply`.”h]”(hŒJInstead of returning the directory entries directly, the method must call ”…”�”}”(hjÞ-hhhNhNubh6)�”}”(hŒ`readdir_reply`”h]”hí)�”}”(hjè-h]”hŒ readdir_reply”…”�”}”(hjê-hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjæ-ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jô-Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjf-jhÀhXŒ readdir_reply”uh(h5hj ,hKhjÞ-ubhŒ for each directory entry. If ”…”�”}”(hjÞ-hhhNhNubh6)�”}”(hŒ`readdir_reply`”h]”hí)�”}”(hj .h]”hŒ readdir_reply”…”�”}”(hj .hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj.ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j.Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjf-jhÀhXŒ readdir_reply”uh(h5hj ,hKhjÞ-ubhŒo returns True, the file system must increase the lookup count for the provided directory entry by one and call ”…”�”}”(hjÞ-hhhNhNubh6)�”}”(hŒ`readdir_reply`”h]”hí)�”}”(hj,.h]”hŒ readdir_reply”…”�”}”(hj..hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj*.ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j8.Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjf-jhÀhXŒ readdir_reply”uh(h5hj ,hKhjÞ-ubhŒ' again for the next entry (if any). If ”…”�”}”(hjÞ-hhhNhNubh6)�”}”(hŒ`readdir_reply`”h]”hí)�”}”(hjN.h]”hŒ readdir_reply”…”�”}”(hjP.hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjL.ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jZ.Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjf-jhÀhXŒ readdir_reply”uh(h5hj ,hKhjÞ-ubhŒ& returns False, the lookup count must ”…”�”}”(hjÞ-hhhNhNubj)�”}”(hŒ*not*”h]”hŒnot”…”�”}”(hjn.hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÞ-ubhŒD be increased and the method should return without further calls to ”…”�”}”(hjÞ-hhhNhNubh6)�”}”(hŒ`readdir_reply`”h]”hí)�”}”(hj�.h]”hŒ readdir_reply”…”�”}”(hjƒ.hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj.ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j�.Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjf-jhÀhXŒ readdir_reply”uh(h5hj ,hKhjÞ-ubhŒ.”…”�”}”(hjÞ-hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj ,hKhjl-hhubh+)�”}”(hŒñThe *start_id* parameter will be either zero (in which case listing should begin with the first entry) or it will correspond to a value that was previously passed by the file system to the `readdir_reply` function in the *next_id* parameter.”h]”(hŒThe ”…”�”}”(hj¦.hhhNhNubj)�”}”(hŒ *start_id*”h]”hŒstart_id”…”�”}”(hj®.hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj¦.ubhŒ¯ parameter will be either zero (in which case listing should begin with the first entry) or it will correspond to a value that was previously passed by the file system to the ”…”�”}”(hj¦.hhhNhNubh6)�”}”(hŒ`readdir_reply`”h]”hí)�”}”(hjÁ.h]”hŒ readdir_reply”…”�”}”(hjÃ.hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj¿.ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jÍ.Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjf-jhÀhXŒ readdir_reply”uh(h5hj ,hKhj¦.ubhŒ function in the ”…”�”}”(hj¦.hhhNhNubj)�”}”(hŒ *next_id*”h]”hŒnext_id”…”�”}”(hjá.hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj¦.ubhŒ parameter.”…”�”}”(hj¦.hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj ,hKhjl-hhubh+)�”}”(hŒ¯If entries are added or removed during a `readdir` cycle, they may or may not be returned. However, they must not cause other entries to be skipped or returned more than once.”h]”(hŒ)If entries are added or removed during a ”…”�”}”(hj÷.hhhNhNubh6)�”}”(hŒ `readdir`”h]”hí)�”}”(hj/h]”hŒreaddir”…”�”}”(hj/hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjÿ.ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j /Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjf-jhÀhXŒreaddir”uh(h5hj ,hKhj÷.ubhŒ} cycle, they may or may not be returned. However, they must not cause other entries to be skipped or returned more than once.”…”�”}”(hj÷.hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj ,hKhjl-hhubh+)�”}”(hŒÝ:file:`.` and :file:`..` entries may be included but are not required. However, if they are reported the filesystem *must not* increase the lookup count for the corresponding inodes (even if `readdir_reply` returns True).”h]”(hí)�”}”(hŒ :file:`.`”h]”hŒ.”…”�”}”(hj*/hhhNhNubah}”(h ]”h"]”Œfile”ah$]”h&]”Œrole”Œfile”uh(hìhj&/ubhŒ and ”…”�”}”(hj&/hhhNhNubhí)�”}”(hŒ :file:`..`”h]”hŒ..”…”�”}”(hj>/hhhNhNubah}”(h ]”h"]”Œfile”ah$]”h&]”Œrole”Œfile”uh(hìhj&/ubhŒ\ entries may be included but are not required. However, if they are reported the filesystem ”…”�”}”(hj&/hhhNhNubj)�”}”(hŒ *must not*”h]”hŒmust not”…”�”}”(hjR/hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj&/ubhŒA increase the lookup count for the corresponding inodes (even if ”…”�”}”(hj&/hhhNhNubh6)�”}”(hŒ`readdir_reply`”h]”hí)�”}”(hje/h]”hŒ readdir_reply”…”�”}”(hjg/hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjc/ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jq/Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjf-jhÀhXŒ readdir_reply”uh(h5hj ,hKhj&/ubhŒ returns True).”…”�”}”(hj&/hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj ,hKhjl-hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj!,hhhj ,hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãj’/jäj“/jåj“/jæ‰jç‰jè‰jé‰jê‰j땉jì‰uh(hshhhhÝhj ,hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ&readlink() (pyfuse3.Operations method)”Œpyfuse3.Operations.readlink”hNt”auh(hchhÝhhhŒl/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.readlink”hNubht)�”}”(hhh]”(hy)�”}”(hŒ=Operations.readlink(inode: int, ctx: RequestContext) -> bytes”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj¯/hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj«/ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼/hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj«/ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj§/hhhhhKubh½)�”}”(hŒreadlink”h]”hŒreadlink”…”�”}”(hjÎ/hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj§/hhhhhKubjØ)�”}”(hŒinode: int, ctx: RequestContext”h]”(jÞ)�”}”(hŒ inode: int”h]”(jä)�”}”(hŒinode”h]”hŒinode”…”�”}”(hjã/hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjß/ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjð/hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjß/ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý/hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjß/ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj0hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj 0ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjß/ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÛ/ubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj/0hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj+0ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj<0hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj+0ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjI0hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj+0ubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hjZ0hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjV0ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj+0ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÛ/ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj§/hhhhhKubjÒ)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hj€0hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj|0ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj§/hhhhhKubeh}”(h ]”j¡/ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.readlink”hØj�0Œ Operations”Œreadlink”‡”hÚŒOperations.readlink()”uh(hxhhhKhj¤/hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ'Return target of symbolic link *inode*.”h]”(hŒReturn target of symbolic link ”…”�”}”(hj¦0hhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hj®0hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj¦0ubhŒ.”…”�”}”(hj¦0hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj£/hKhj£0hhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hjÈ0hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÄ0ubhŒ will be a ”…”�”}”(hjÄ0hhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjÛ0h]”hŒRequestContext”…”�”}”(hjÝ0hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjÙ0ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jç0Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj�0jhÀhXŒRequestContext”uh(h5hj£/hKhjÄ0ubhŒ instance.”…”�”}”(hjÄ0hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj£/hKhj£0hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj¤/hhhj£/hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãj1jäj 1jåj 1jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj£/hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ%release() (pyfuse3.Operations method)”Œpyfuse3.Operations.release”hNt”auh(hchhÝhhhŒk/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.release”hNubht)�”}”(hhh]”(hy)�”}”(hŒ#Operations.release(fh: int) -> None”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj%1hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj!1ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj21hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj!1ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj1hhhhhKubh½)�”}”(hŒrelease”h]”hŒrelease”…”�”}”(hjD1hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj1hhhhhKubjØ)�”}”(hŒfh: int”h]”jÞ)�”}”(hŒfh: int”h]”(jä)�”}”(hŒfh”h]”hŒfh”…”�”}”(hjY1hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjU1ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjf1hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjU1ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjs1hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjU1ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj„1hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj€1ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjU1ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjQ1ubah}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj1hhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hjª1hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj¦1ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj1hhhhhKubeh}”(h ]”j1ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.release”hØjÇ1Œ Operations”Œrelease”‡”hÚŒOperations.release()”uh(hxhhhKhj1hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒRelease open file.”h]”hŒRelease open file.”…”�”}”(hjÐ1hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj1hKhjÍ1hhubh+)�”}”(hŒ�This method will be called when the last file descriptor of *fh* has been closed, i.e. when the file is no longer opened by any client process.”h]”(hŒ None”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj$3hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj 3ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj13hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj 3ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj3hhhhhKubh½)�”}”(hŒ releasedir”h]”hŒ releasedir”…”�”}”(hjC3hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj3hhhhhKubjØ)�”}”(hŒfh: int”h]”jÞ)�”}”(hŒfh: int”h]”(jä)�”}”(hŒfh”h]”hŒfh”…”�”}”(hjX3hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjT3ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hje3hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjT3ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjr3hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjT3ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjƒ3hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj3ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjT3ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjP3ubah}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj3hhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hj©3hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj¥3ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj3hhhhhKubeh}”(h ]”j3ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.releasedir”hØjÆ3Œ Operations”Œ releasedir”‡”hÚŒOperations.releasedir()”uh(hxhhhKhj3hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒRelease open directory.”h]”hŒRelease open directory.”…”�”}”(hjÏ3hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj3hKhjÌ3hhubh+)�”}”(hŒ¿This method will be called exactly once for each `opendir` call. After *fh* has been released, no further `readdir` requests will be received for it (until it is opened again with `opendir`).”h]”(hŒ1This method will be called exactly once for each ”…”�”}”(hjÜ3hhhNhNubh6)�”}”(hŒ `opendir`”h]”hí)�”}”(hjæ3h]”hŒopendir”…”�”}”(hjè3hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjä3ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jò3Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjÆ3jhÀhXŒopendir”uh(h5hj3hKhjÜ3ubhŒ call. After ”…”�”}”(hjÜ3hhhNhNubj)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hj4hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÜ3ubhŒ has been released, no further ”…”�”}”(hjÜ3hhhNhNubh6)�”}”(hŒ `readdir`”h]”hí)�”}”(hj4h]”hŒreaddir”…”�”}”(hj4hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj4ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j%4Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjÆ3jhÀhXŒreaddir”uh(h5hj3hKhjÜ3ubhŒA requests will be received for it (until it is opened again with ”…”�”}”(hjÜ3hhhNhNubh6)�”}”(hŒ `opendir`”h]”hí)�”}”(hj;4h]”hŒopendir”…”�”}”(hj=4hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj94ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jG4Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjÆ3jhÀhXŒopendir”uh(h5hj3hKhjÜ3ubhŒ).”…”�”}”(hjÜ3hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj3hKhjÌ3hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj3hhhj3hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjh4jäji4jåji4jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj3hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ)removexattr() (pyfuse3.Operations method)”Œpyfuse3.Operations.removexattr”hNt”auh(hchhÝhhhŒo/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.removexattr”hNubht)�”}”(hhh]”(hy)�”}”(hŒLOperations.removexattr(inode: int, name: bytes, ctx: RequestContext) -> None”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj…4hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj�4ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’4hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj�4ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj}4hhhhhKubh½)�”}”(hŒ removexattr”h]”hŒ removexattr”…”�”}”(hj¤4hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj}4hhhhhKubjØ)�”}”(hŒ,inode: int, name: bytes, ctx: RequestContext”h]”(jÞ)�”}”(hŒ inode: int”h]”(jä)�”}”(hŒinode”h]”hŒinode”…”�”}”(hj¹4hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjµ4ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjÆ4hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjµ4ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓ4hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjµ4ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjä4hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjà4ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjµ4ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj±4ubjÞ)�”}”(hŒ name: bytes”h]”(jä)�”}”(hŒname”h]”hŒname”…”�”}”(hj5hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj5ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj5hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj5ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj5ubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hj05hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj,5ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj5ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj±4ubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjQ5hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjM5ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj^5hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjM5ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjk5hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjM5ubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hj|5hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjx5ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjM5ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj±4ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj}4hhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hj¢5hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjž5ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj}4hhhhhKubeh}”(h ]”jw4ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.removexattr”hØj¿5Œ Operations”Œ removexattr”‡”hÚŒOperations.removexattr()”uh(hxhhhKhjz4hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ,Remove extended attribute *name* of *inode*.”h]”(hŒRemove extended attribute ”…”�”}”(hjÈ5hhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hjÐ5hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÈ5ubhŒ of ”…”�”}”(hjÈ5hhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hjá5hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÈ5ubhŒ.”…”�”}”(hjÈ5hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjy4hKhjÅ5hhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hjû5hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj÷5ubhŒ will be a ”…”�”}”(hj÷5hhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hj6h]”hŒRequestContext”…”�”}”(hj6hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj 6ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j6Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¿5jhÀhXŒRequestContext”uh(h5hjy4hKhj÷5ubhŒ instance.”…”�”}”(hj÷5hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjy4hKhjÅ5hhubh+)�”}”(hŒ¹If the attribute does not exist, the method must raise `FUSEError` with an error code of `ENOATTR`. *name* will be of type `bytes`, but is guaranteed not to contain zero-bytes (``\0``).”h]”(hŒ7If the attribute does not exist, the method must raise ”…”�”}”(hj36hhhNhNubh6)�”}”(hŒ `FUSEError`”h]”hí)�”}”(hj=6h]”hŒ FUSEError”…”�”}”(hj?6hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj;6ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jI6Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¿5jhÀhXŒ FUSEError”uh(h5hjy4hKhj36ubhŒ with an error code of ”…”�”}”(hj36hhhNhNubh6)�”}”(hŒ `ENOATTR`”h]”hí)�”}”(hj_6h]”hŒENOATTR”…”�”}”(hja6hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj]6ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jk6Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¿5jhÀhXŒENOATTR”uh(h5hjy4hKhj36ubhŒ. ”…”�”}”(hj36hhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hj6hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj36ubhŒ will be of type ”…”�”}”(hj36hhhNhNubh6)�”}”(hŒ`bytes`”h]”hí)�”}”(hj’6h]”hŒbytes”…”�”}”(hj”6hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj�6ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jž6Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj¿5jhÀhXŒbytes”uh(h5hjy4hKhj36ubhŒ/, but is guaranteed not to contain zero-bytes (”…”�”}”(hj36hhhNhNubhí)�”}”(hŒ``\0``”h]”hŒ\0”…”�”}”(hj²6hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhj36ubhŒ).”…”�”}”(hj36hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjy4hKhjÅ5hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjz4hhhjy4hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjÐ6jäjÑ6jåjÑ6jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjy4hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ$rename() (pyfuse3.Operations method)”Œpyfuse3.Operations.rename”hNt”auh(hchhÝhhhŒj/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.rename”hNubht)�”}”(hhh]”(hy)�”}”(hŒŠOperations.rename(parent_inode_old: int, name_old: bytes, parent_inode_new: int, name_new: bytes, flags: int, ctx: RequestContext) -> None”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjí6hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjé6ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjú6hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjé6ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hjå6hhhhhKubh½)�”}”(hŒrename”h]”hŒrename”…”�”}”(hj 7hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjå6hhhhhKubjØ)�”}”(hŒoparent_inode_old: int, name_old: bytes, parent_inode_new: int, name_new: bytes, flags: int, ctx: RequestContext”h]”(jÞ)�”}”(hŒparent_inode_old: int”h]”(jä)�”}”(hŒparent_inode_old”h]”hŒparent_inode_old”…”�”}”(hj!7hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj7ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj.7hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj7ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;7hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj7ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjL7hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjH7ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj7ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj7ubjÞ)�”}”(hŒname_old: bytes”h]”(jä)�”}”(hŒname_old”h]”hŒname_old”…”�”}”(hjm7hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhji7ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjz7hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhji7ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‡7hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hji7ubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hj˜7hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj”7ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhji7ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj7ubjÞ)�”}”(hŒparent_inode_new: int”h]”(jä)�”}”(hŒparent_inode_new”h]”hŒparent_inode_new”…”�”}”(hj¹7hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjµ7ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjÆ7hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjµ7ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓ7hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjµ7ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjä7hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjà7ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjµ7ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj7ubjÞ)�”}”(hŒname_new: bytes”h]”(jä)�”}”(hŒname_new”h]”hŒname_new”…”�”}”(hj8hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj8ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj8hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj8ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj8ubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hj08hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj,8ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj8ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj7ubjÞ)�”}”(hŒ flags: int”h]”(jä)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjQ8hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjM8ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj^8hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjM8ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjk8hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjM8ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj|8hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjx8ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjM8ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj7ubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj�8hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj™8ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjª8hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj™8ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·8hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj™8ubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hjÈ8hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÄ8ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj™8ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj7ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hjå6hhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hjî8hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjê8ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhjå6hhhhhKubeh}”(h ]”jß6ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.rename”hØj 9Œ Operations”Œrename”‡”hÚŒOperations.rename()”uh(hxhhhKhjâ6hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒRename a directory entry.”h]”hŒRename a directory entry.”…”�”}”(hj9hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hjá6hKhj9hhubh+)�”}”(hŒÈThis method must rename *name_old* in the directory with inode *parent_inode_old* to *name_new* in the directory with inode *parent_inode_new*. If *name_new* already exists, it should be overwritten.”h]”(hŒThis method must rename ”…”�”}”(hj!9hhhNhNubj)�”}”(hŒ *name_old*”h]”hŒname_old”…”�”}”(hj)9hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj!9ubhŒ in the directory with inode ”…”�”}”(hj!9hhhNhNubj)�”}”(hŒ*parent_inode_old*”h]”hŒparent_inode_old”…”�”}”(hj:9hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj!9ubhŒ to ”…”�”}”(hj!9hhhNhNubj)�”}”(hŒ *name_new*”h]”hŒname_new”…”�”}”(hjK9hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj!9ubhŒ in the directory with inode ”…”�”}”hj!9sbj)�”}”(hŒ*parent_inode_new*”h]”hŒparent_inode_new”…”�”}”(hj\9hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj!9ubhŒ. If ”…”�”}”(hj!9hhhNhNubj)�”}”(hŒ *name_new*”h]”hŒname_new”…”�”}”(hjm9hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj!9ubhŒ* already exists, it should be overwritten.”…”�”}”(hj!9hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjá6hKhj9hhubh+)�”}”(hX=*flags* may be `RENAME_EXCHANGE` or `RENAME_NOREPLACE`. If `RENAME_NOREPLACE` is specified, the filesystem must not overwrite *name_new* if it exists and return an error instead. If `RENAME_EXCHANGE` is specified, the filesystem must atomically exchange the two files, i.e. both must exist and neither may be deleted.”h]”(j)�”}”(hŒ*flags*”h]”hŒflags”…”�”}”(hj‡9hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjƒ9ubhŒ may be ”…”�”}”(hjƒ9hhhNhNubh6)�”}”(hŒ`RENAME_EXCHANGE`”h]”hí)�”}”(hjš9h]”hŒRENAME_EXCHANGE”…”�”}”(hjœ9hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj˜9ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j¦9Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj 9jhÀhXŒRENAME_EXCHANGE”uh(h5hjá6hKhjƒ9ubhŒ or ”…”�”}”(hjƒ9hhhNhNubh6)�”}”(hŒ`RENAME_NOREPLACE`”h]”hí)�”}”(hj¼9h]”hŒRENAME_NOREPLACE”…”�”}”(hj¾9hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjº9ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jÈ9Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj 9jhÀhXŒRENAME_NOREPLACE”uh(h5hjá6hKhjƒ9ubhŒ. If ”…”�”}”(hjƒ9hhhNhNubh6)�”}”(hŒ`RENAME_NOREPLACE`”h]”hí)�”}”(hjÞ9h]”hŒRENAME_NOREPLACE”…”�”}”(hjà9hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjÜ9ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jê9Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj 9jhÀhXŒRENAME_NOREPLACE”uh(h5hjá6hKhjƒ9ubhŒ1 is specified, the filesystem must not overwrite ”…”�”}”(hjƒ9hhhNhNubj)�”}”(hŒ *name_new*”h]”hŒname_new”…”�”}”(hjþ9hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjƒ9ubhŒ. if it exists and return an error instead. If ”…”�”}”(hjƒ9hhhNhNubh6)�”}”(hŒ`RENAME_EXCHANGE`”h]”hí)�”}”(hj:h]”hŒRENAME_EXCHANGE”…”�”}”(hj:hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj:ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j:Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj 9jhÀhXŒRENAME_EXCHANGE”uh(h5hjá6hKhjƒ9ubhŒv is specified, the filesystem must atomically exchange the two files, i.e. both must exist and neither may be deleted.”…”�”}”(hjƒ9hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjá6hKhj9hhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hj::hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj6:ubhŒ will be a ”…”�”}”(hj6:hhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjM:h]”hŒRequestContext”…”�”}”(hjO:hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjK:ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jY:Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj 9jhÀhXŒRequestContext”uh(h5hjá6hKhj6:ubhŒ instance.”…”�”}”(hj6:hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjá6hKhj9hhubh+)�”}”(hŒ·Let the inode associated with *name_old* in *parent_inode_old* be *inode_moved*, and the inode associated with *name_new* in *parent_inode_new* (if it exists) be called *inode_deref*.”h]”(hŒLet the inode associated with ”…”�”}”(hjr:hhhNhNubj)�”}”(hŒ *name_old*”h]”hŒname_old”…”�”}”(hjz:hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjr:ubhŒ in ”…”�”}”(hjr:hhhNhNubj)�”}”(hŒ*parent_inode_old*”h]”hŒparent_inode_old”…”�”}”(hj‹:hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjr:ubhŒ be ”…”�”}”(hjr:hhhNhNubj)�”}”(hŒ *inode_moved*”h]”hŒ inode_moved”…”�”}”(hjœ:hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjr:ubhŒ , and the inode associated with ”…”�”}”(hjr:hhhNhNubj)�”}”(hŒ *name_new*”h]”hŒname_new”…”�”}”(hj­:hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjr:ubhŒ in ”…”�”}”(hjr:hhhNhNubj)�”}”(hŒ*parent_inode_new*”h]”hŒparent_inode_new”…”�”}”(hj¾:hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjr:ubhŒ (if it exists) be called ”…”�”}”(hjr:hhhNhNubj)�”}”(hŒ *inode_deref*”h]”hŒ inode_deref”…”�”}”(hjÏ:hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjr:ubhŒ.”…”�”}”(hjr:hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjá6hKhj9hhubh+)�”}”(hXIf *inode_deref* exists and has a non-zero lookup count, or if there are other directory entries referring to *inode_deref*), the file system must update only the directory entry for *name_new* to point to *inode_moved* instead of *inode_deref*. (Potential) removal of *inode_deref* (containing the previous contents of *name_new*) must be deferred to the `forget` method to be carried out when the lookup count reaches zero (and of course only if at that point there are no more directory entries associated with *inode_deref* either).”h]”(hŒIf ”…”�”}”(hjå:hhhNhNubj)�”}”(hŒ *inode_deref*”h]”hŒ inode_deref”…”�”}”(hjí:hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjå:ubhŒ^ exists and has a non-zero lookup count, or if there are other directory entries referring to ”…”�”}”(hjå:hhhNhNubj)�”}”(hŒ *inode_deref*”h]”hŒ inode_deref”…”�”}”(hjþ:hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjå:ubhŒ<), the file system must update only the directory entry for ”…”�”}”(hjå:hhhNhNubj)�”}”(hŒ *name_new*”h]”hŒname_new”…”�”}”(hj;hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjå:ubhŒ to point to ”…”�”}”(hjå:hhhNhNubj)�”}”(hŒ *inode_moved*”h]”hŒ inode_moved”…”�”}”(hj ;hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjå:ubhŒ instead of ”…”�”}”(hjå:hhhNhNubj)�”}”(hŒ *inode_deref*”h]”hŒ inode_deref”…”�”}”(hj1;hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjå:ubhŒ. (Potential) removal of ”…”�”}”(hjå:hhhNhNubj)�”}”(hŒ *inode_deref*”h]”hŒ inode_deref”…”�”}”(hjB;hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjå:ubhŒ& (containing the previous contents of ”…”�”}”(hjå:hhhNhNubj)�”}”(hŒ *name_new*”h]”hŒname_new”…”�”}”(hjS;hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjå:ubhŒ) must be deferred to the ”…”�”}”(hjå:hhhNhNubh6)�”}”(hŒ`forget`”h]”hí)�”}”(hjf;h]”hŒforget”…”�”}”(hjh;hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjd;ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jr;Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj 9jhÀhXŒforget”uh(h5hjá6hKhjå:ubhŒ– method to be carried out when the lookup count reaches zero (and of course only if at that point there are no more directory entries associated with ”…”�”}”(hjå:hhhNhNubj)�”}”(hŒ *inode_deref*”h]”hŒ inode_deref”…”�”}”(hj†;hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjå:ubhŒ either).”…”�”}”(hjå:hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjá6hKhj9hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjâ6hhhjá6hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãj¤;jäj¥;jåj¥;jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjá6hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ#rmdir() (pyfuse3.Operations method)”Œpyfuse3.Operations.rmdir”hNt”auh(hchhÝhhhŒi/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.rmdir”hNubht)�”}”(hhh]”(hy)�”}”(hŒMOperations.rmdir(parent_inode: int, name: bytes, ctx: RequestContext) -> None”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjÁ;hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj½;ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎ;hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj½;ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj¹;hhhhhKubh½)�”}”(hŒrmdir”h]”hŒrmdir”…”�”}”(hjà;hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj¹;hhhhhKubjØ)�”}”(hŒ3parent_inode: int, name: bytes, ctx: RequestContext”h]”(jÞ)�”}”(hŒparent_inode: int”h]”(jä)�”}”(hŒ parent_inode”h]”hŒ parent_inode”…”�”}”(hjõ;hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjñ;ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj<hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjñ;ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjñ;ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj <hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj<ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjñ;ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjí;ubjÞ)�”}”(hŒ name: bytes”h]”(jä)�”}”(hŒname”h]”hŒname”…”�”}”(hjA<hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj=<ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjN<hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj=<ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[<hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj=<ubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hjl<hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjh<ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj=<ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjí;ubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj�<hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj‰<ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjš<hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj‰<ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§<hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj‰<ubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hj¸<hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj´<ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj‰<ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjí;ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj¹;hhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hjÞ<hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÚ<ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj¹;hhhhhKubeh}”(h ]”j³;ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.rmdir”hØjû<Œ Operations”Œrmdir”‡”hÚŒOperations.rmdir()”uh(hxhhhKhj¶;hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒRemove directory *name*.”h]”(hŒRemove directory ”…”�”}”(hj=hhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hj =hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj=ubhŒ.”…”�”}”(hj=hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjµ;hKhj=hhubh+)�”}”(hŒêThis method must remove the directory *name* from the directory with inode *parent_inode*. *ctx* will be a `RequestContext` instance. If there are still entries in the directory, the method should raise ``FUSEError(errno.ENOTEMPTY)``.”h]”(hŒ&This method must remove the directory ”…”�”}”(hj"=hhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hj*=hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj"=ubhŒ from the directory with inode ”…”�”}”(hj"=hhhNhNubj)�”}”(hŒ*parent_inode*”h]”hŒ parent_inode”…”�”}”(hj;=hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj"=ubhŒ. ”…”�”}”(hj"=hhhNhNubj)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hjL=hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj"=ubhŒ will be a ”…”�”}”(hj"=hhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hj_=h]”hŒRequestContext”…”�”}”(hja=hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj]=ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jk=Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjû<jhÀhXŒRequestContext”uh(h5hjµ;hKhj"=ubhŒP instance. If there are still entries in the directory, the method should raise ”…”�”}”(hj"=hhhNhNubhí)�”}”(hŒ``FUSEError(errno.ENOTEMPTY)``”h]”hŒFUSEError(errno.ENOTEMPTY)”…”�”}”(hj=hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhj"=ubhŒ.”…”�”}”(hj"=hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjµ;hKhj=hhubh+)�”}”(hXÒIf the inode associated with *name* (i.e., not the *parent_inode*) has a non-zero lookup count, the file system must remove only the directory entry (so that future calls to `readdir` for *parent_inode* will no longer include *name*, but e.g. calls to `getattr` for *file*'s inode still succeed). Removal of the associated inode holding the directory contents and metadata must be deferred to the `forget` method to be carried out when the lookup count reaches zero.”h]”(hŒIf the inode associated with ”…”�”}”(hj•=hhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hj�=hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj•=ubhŒ (i.e., not the ”…”�”}”(hj•=hhhNhNubj)�”}”(hŒ*parent_inode*”h]”hŒ parent_inode”…”�”}”(hj®=hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj•=ubhŒm) has a non-zero lookup count, the file system must remove only the directory entry (so that future calls to ”…”�”}”(hj•=hhhNhNubh6)�”}”(hŒ `readdir`”h]”hí)�”}”(hjÁ=h]”hŒreaddir”…”�”}”(hjÃ=hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj¿=ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jÍ=Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjû<jhÀhXŒreaddir”uh(h5hjµ;hKhj•=ubhŒ for ”…”�”}”(hj•=hhhNhNubj)�”}”(hŒ*parent_inode*”h]”hŒ parent_inode”…”�”}”(hjá=hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj•=ubhŒ will no longer include ”…”�”}”(hj•=hhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hjò=hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj•=ubhŒ, but e.g. calls to ”…”�”}”(hj•=hhhNhNubh6)�”}”(hŒ `getattr`”h]”hí)�”}”(hj>h]”hŒgetattr”…”�”}”(hj>hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj>ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j>Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjû<jhÀhXŒgetattr”uh(h5hjµ;hKhj•=ubhŒ for ”…”�”}”hj•=sbj)�”}”(hŒ*file*”h]”hŒfile”…”�”}”(hj%>hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj•=ubhŒ’s inode still succeed). Removal of the associated inode holding the directory contents and metadata must be deferred to the ”…”�”}”(hj•=hhhNhNubh6)�”}”(hŒ`forget`”h]”hí)�”}”(hj8>h]”hŒforget”…”�”}”(hj:>hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj6>ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jD>Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjû<jhÀhXŒforget”uh(h5hjµ;hKhj•=ubhŒ= method to be carried out when the lookup count reaches zero.”…”�”}”(hj•=hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjµ;hKhj=hhubh+)�”}”(hŒÿ(Since hard links to directories are not allowed by POSIX, this method is not required to check if there are still other directory entries referring to the same inode. This conveniently avoids the ambiguities associated with the ``.`` and ``..`` entries).”h]”(hŒå(Since hard links to directories are not allowed by POSIX, this method is not required to check if there are still other directory entries referring to the same inode. This conveniently avoids the ambiguities associated with the ”…”�”}”(hj]>hhhNhNubhí)�”}”(hŒ``.``”h]”hŒ.”…”�”}”(hje>hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhj]>ubhŒ and ”…”�”}”(hj]>hhhNhNubhí)�”}”(hŒ``..``”h]”hŒ..”…”�”}”(hjv>hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhj]>ubhŒ entries).”…”�”}”(hj]>hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjµ;hKhj=hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj¶;hhhjµ;hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãj”>jäj•>jåj•>jæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjµ;hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ%setattr() (pyfuse3.Operations method)”Œpyfuse3.Operations.setattr”hNt”auh(hchhÝhhhŒk/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.setattr”hNubht)�”}”(hhh]”(hy)�”}”(hŒ„Operations.setattr(inode: int, attr: EntryAttributes, fields: SetattrFields, fh: int | None, ctx: RequestContext) -> EntryAttributes”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj±>hhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hj­>ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¾>hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj­>ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hj©>hhhhhKubh½)�”}”(hŒsetattr”h]”hŒsetattr”…”�”}”(hjÐ>hhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj©>hhhhhKubjØ)�”}”(hŒ]inode: int, attr: EntryAttributes, fields: SetattrFields, fh: int | None, ctx: RequestContext”h]”(jÞ)�”}”(hŒ inode: int”h]”(jä)�”}”(hŒinode”h]”hŒinode”…”�”}”(hjå>hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjá>ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjò>hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjá>ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿ>hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjá>ubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj?hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj ?ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjá>ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÝ>ubjÞ)�”}”(hŒattr: EntryAttributes”h]”(jä)�”}”(hŒattr”h]”hŒattr”…”�”}”(hj1?hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj-?ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj>?hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj-?ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK?hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj-?ubjä)�”}”(hŒEntryAttributes”h]”h6)�”}”(hhh]”hŒEntryAttributes”…”�”}”(hj\?hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒEntryAttributes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjX?ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj-?ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÝ>ubjÞ)�”}”(hŒfields: SetattrFields”h]”(jä)�”}”(hŒfields”h]”hŒfields”…”�”}”(hj}?hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjy?ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjŠ?hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjy?ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—?hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjy?ubjä)�”}”(hŒ SetattrFields”h]”h6)�”}”(hhh]”hŒ SetattrFields”…”�”}”(hj¨?hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œ SetattrFields”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj¤?ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjy?ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÝ>ubjÞ)�”}”(hŒfh: int | None”h]”(jä)�”}”(hŒfh”h]”hŒfh”…”�”}”(hjÉ?hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjÅ?ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjÖ?hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjÅ?ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjã?hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjÅ?ubjä)�”}”(hŒ int | None”h]”(h6)�”}”(hhh]”hŒint”…”�”}”(hjô?hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjð?ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjð?ubjô)�”}”(hŒ|”h]”hŒ|”…”�”}”(hj@hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjð?ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!@hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjð?ubh6)�”}”(hhh]”hŒNone”…”�”}”(hj.@hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjð?ubeh}”(h ]”h"]”jðah$]”h&]”uh(jãhjÅ?ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÝ>ubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjO@hhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjK@ubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj\@hhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjK@ubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hji@hhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjK@ubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hjz@hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjv@ubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjK@ubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjÝ>ubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hj©>hhhhhKubjÒ)�”}”(hŒEntryAttributes”h]”h6)�”}”(hhh]”hŒEntryAttributes”…”�”}”(hj @hhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒEntryAttributes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjœ@ubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj©>hhhhhKubeh}”(h ]”j£>ah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.setattr”hØj½@Œ Operations”Œsetattr”‡”hÚŒOperations.setattr()”uh(hxhhhKhj¦>hhubhÜ)�”}”(hhh]”(h+)�”}”(hŒChange attributes of *inode*.”h]”(hŒChange attributes of ”…”�”}”(hjÆ@hhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hjÎ@hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÆ@ubhŒ.”…”�”}”(hjÆ@hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj¥>hKhjÃ@hhubh+)�”}”(hŒü*fields* will be an `SetattrFields` instance that specifies which attributes are to be updated. *attr* will be an `EntryAttributes` instance for *inode* that contains the new values for changed attributes, and undefined values for all other attributes.”h]”(j)�”}”(hŒ*fields*”h]”hŒfields”…”�”}”(hjè@hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjä@ubhŒ will be an ”…”�”}”(hjä@hhhNhNubh6)�”}”(hŒ`SetattrFields`”h]”hí)�”}”(hjû@h]”hŒ SetattrFields”…”�”}”(hjý@hhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjù@ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jAŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj½@jhÀhXŒ SetattrFields”uh(h5hj¥>hKhjä@ubhŒ= instance that specifies which attributes are to be updated. ”…”�”}”(hjä@hhhNhNubj)�”}”(hŒ*attr*”h]”hŒattr”…”�”}”(hjAhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjä@ubhŒ will be an ”…”�”}”hjä@sbh6)�”}”(hŒ`EntryAttributes`”h]”hí)�”}”(hj.Ah]”hŒEntryAttributes”…”�”}”(hj0AhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj,Aubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j:AŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj½@jhÀhXŒEntryAttributes”uh(h5hj¥>hKhjä@ubhŒ instance for ”…”�”}”(hjä@hhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hjNAhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjä@ubhŒd that contains the new values for changed attributes, and undefined values for all other attributes.”…”�”}”(hjä@hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj¥>hKhjÃ@hhubh+)�”}”(hŒ›Most file systems will additionally set the `~EntryAttributes.st_ctime_ns` attribute to the current time (to indicate that the inode metadata was changed).”h]”(hŒ,Most file systems will additionally set the ”…”�”}”(hjdAhhhNhNubh6)�”}”(hŒ`~EntryAttributes.st_ctime_ns`”h]”hí)�”}”(hjnAh]”hŒ st_ctime_ns”…”�”}”(hjpAhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjlAubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jzAŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj½@jhÀhXŒEntryAttributes.st_ctime_ns”uh(h5hj¥>hKhjdAubhŒQ attribute to the current time (to indicate that the inode metadata was changed).”…”�”}”(hjdAhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj¥>hKhjÃ@hhubh+)�”}”(hXLIf the syscall that is being processed received a file descriptor argument (like e.g. :manpage:`ftruncate(2)` or :manpage:`fchmod(2)`), *fh* will be the file handle returned by the corresponding call to the `open` handler. If the syscall was path based (like e.g. :manpage:`truncate(2)` or :manpage:`chmod(2)`), *fh* will be `None`.”h]”(hŒVIf the syscall that is being processed received a file descriptor argument (like e.g. ”…”�”}”(hj“AhhhNhNubj/")�”}”(hŒ:manpage:`ftruncate(2)`”h]”hŒ ftruncate(2)”…”�”}”(hj›AhhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œ ftruncate(2)”Œpage”Œ ftruncate”Œsection”jC"h©hªuh(j."hj“AubhŒ or ”…”�”}”(hj“AhhhNhNubj/")�”}”(hŒ:manpage:`fchmod(2)`”h]”hŒ fchmod(2)”…”�”}”(hj²AhhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œ fchmod(2)”Œpage”Œfchmod”Œsection”jC"h©hªuh(j."hj“AubhŒ), ”…”�”}”(hj“AhhhNhNubj)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hjÉAhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj“AubhŒC will be the file handle returned by the corresponding call to the ”…”�”}”(hj“AhhhNhNubh6)�”}”(hŒ`open`”h]”hí)�”}”(hjÜAh]”hŒopen”…”�”}”(hjÞAhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjÚAubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jèAŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj½@jhÀhXŒopen”uh(h5hj¥>hK hj“AubhŒ3 handler. If the syscall was path based (like e.g. ”…”�”}”(hj“AhhhNhNubj/")�”}”(hŒ:manpage:`truncate(2)`”h]”hŒ truncate(2)”…”�”}”(hjüAhhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œ truncate(2)”Œpage”Œtruncate”Œsection”jC"h©hªuh(j."hj“AubhŒ or ”…”�”}”hj“Asbj/")�”}”(hŒ:manpage:`chmod(2)`”h]”hŒchmod(2)”…”�”}”(hjBhhhNhNubah}”(h ]”h"]”Œmanpage”ah$]”h&]”Œpath”Œchmod(2)”Œpage”Œchmod”Œsection”jC"h©hªuh(j."hj“AubhŒ), ”…”�”}”(hj“AhhhNhNubj)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hj*BhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj“AubhŒ will be ”…”�”}”(hj“AhhhNhNubh6)�”}”(hŒ`None`”h]”hí)�”}”(hj=Bh]”hŒNone”…”�”}”(hj?BhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj;Bubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jIBŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj½@jhÀhXŒNone”uh(h5hj¥>hK hj“AubhŒ.”…”�”}”(hj“AhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj¥>hK hjÃ@hhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hjfBhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjbBubhŒ will be a ”…”�”}”(hjbBhhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjyBh]”hŒRequestContext”…”�”}”(hj{BhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjwBubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j…BŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj½@jhÀhXŒRequestContext”uh(h5hj¥>hKhjbBubhŒ instance.”…”�”}”(hjbBhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj¥>hKhjÃ@hhubh+)�”}”(hŒjThe method should return an `EntryAttributes` instance (containing both the changed and unchanged values).”h]”(hŒThe method should return an ”…”�”}”(hjžBhhhNhNubh6)�”}”(hŒ`EntryAttributes`”h]”hí)�”}”(hj¨Bh]”hŒEntryAttributes”…”�”}”(hjªBhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj¦Bubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j´BŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj½@jhÀhXŒEntryAttributes”uh(h5hj¥>hKhjžBubhŒ= instance (containing both the changed and unchanged values).”…”�”}”(hjžBhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj¥>hKhjÃ@hhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj¦>hhhj¥>hNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjÕBjäjÖBjåjÖBjæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj¥>hNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ&setxattr() (pyfuse3.Operations method)”Œpyfuse3.Operations.setxattr”hNt”auh(hchhÝhhhŒl/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.setxattr”hNubht)�”}”(hhh]”(hy)�”}”(hŒWOperations.setxattr(inode: int, name: bytes, value: bytes, ctx: RequestContext) -> None”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjòBhhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjîBubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿBhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjîBubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hjêBhhhhhKubh½)�”}”(hŒsetxattr”h]”hŒsetxattr”…”�”}”(hjChhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjêBhhhhhKubjØ)�”}”(hŒ:inode: int, name: bytes, value: bytes, ctx: RequestContext”h]”(jÞ)�”}”(hŒ inode: int”h]”(jä)�”}”(hŒinode”h]”hŒinode”…”�”}”(hj&ChhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj"Cubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj3ChhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj"Cubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@ChhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj"Cubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjQChhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjMCubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj"Cubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjCubjÞ)�”}”(hŒ name: bytes”h]”(jä)�”}”(hŒname”h]”hŒname”…”�”}”(hjrChhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjnCubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjChhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjnCubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒChhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjnCubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hj�ChhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj™Cubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjnCubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjCubjÞ)�”}”(hŒ value: bytes”h]”(jä)�”}”(hŒvalue”h]”hŒvalue”…”�”}”(hj¾ChhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjºCubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjËChhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjºCubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØChhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjºCubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hjéChhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjåCubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjºCubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjCubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj DhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjDubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjDhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjDubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$DhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjDubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hj5DhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj1Dubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjDubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjCubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hjêBhhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hj[DhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjWDubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhjêBhhhhhKubeh}”(h ]”jäBah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.setxattr”hØjxDŒ Operations”Œsetxattr”‡”hÚŒOperations.setxattr()”uh(hxhhhKhjçBhhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ4Set extended attribute *name* of *inode* to *value*.”h]”(hŒSet extended attribute ”…”�”}”(hj�DhhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hj‰DhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj�DubhŒ of ”…”�”}”(hj�DhhhNhNubj)�”}”(hŒ*inode*”h]”hŒinode”…”�”}”(hjšDhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj�DubhŒ to ”…”�”}”(hj�DhhhNhNubj)�”}”(hŒ*value*”h]”hŒvalue”…”�”}”(hj«DhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj�DubhŒ.”…”�”}”(hj�DhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjæBhKhj~Dhhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hjÅDhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÁDubhŒ will be a ”…”�”}”(hjÁDhhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjØDh]”hŒRequestContext”…”�”}”(hjÚDhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjÖDubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jäDŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjxDjhÀhXŒRequestContext”uh(h5hjæBhKhjÁDubhŒ instance.”…”�”}”(hjÁDhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjæBhKhj~Dhhubh+)�”}”(hŒ•The attribute may or may not exist already. Both *name* and *value* will be of type `bytes`. *name* is guaranteed not to contain zero-bytes (``\0``).”h]”(hŒ1The attribute may or may not exist already. Both ”…”�”}”(hjýDhhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hjEhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjýDubhŒ and ”…”�”}”(hjýDhhhNhNubj)�”}”(hŒ*value*”h]”hŒvalue”…”�”}”(hjEhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjýDubhŒ will be of type ”…”�”}”(hjýDhhhNhNubh6)�”}”(hŒ`bytes`”h]”hí)�”}”(hj)Eh]”hŒbytes”…”�”}”(hj+EhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj'Eubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j5EŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjxDjhÀhXŒbytes”uh(h5hjæBhKhjýDubhŒ. ”…”�”}”(hjýDhhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hjIEhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjýDubhŒ* is guaranteed not to contain zero-bytes (”…”�”}”(hjýDhhhNhNubhí)�”}”(hŒ``\0``”h]”hŒ\0”…”�”}”(hjZEhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjýDubhŒ).”…”�”}”(hjýDhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjæBhKhj~Dhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjçBhhhjæBhNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjxEjäjyEjåjyEjæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjæBhNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ(stacktrace() (pyfuse3.Operations method)”Œpyfuse3.Operations.stacktrace”hNt”auh(hchhÝhhhŒn/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.stacktrace”hNubht)�”}”(hhh]”(hy)�”}”(hŒOperations.stacktrace() -> None”h]”(h½)�”}”(hŒ stacktrace”h]”hŒ stacktrace”…”�”}”(hj‘EhhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hj�EhhhhhKubjØ)�”}”(hŒ()”h]”h}”(h ]”h"]”h$]”h&]”h©hªuh(j×hj�EhhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hj«EhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj§Eubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhj�EhhhhhKubeh}”(h ]”j‡Eah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.stacktrace”hØjÈEŒ Operations”Œ stacktrace”‡”hÚŒOperations.stacktrace()”uh(hxhhhKhjŠEhhubhÜ)�”}”(hhh]”(h+)�”}”(hŒAsynchronous debugging.”h]”hŒAsynchronous debugging.”…”�”}”(hjÑEhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj‰EhKhjÎEhhubh+)�”}”(hŒõThis method will be called when the ``fuse_stacktrace`` extended attribute is set on the mountpoint. The default implementation logs the current stack trace of every running Python thread. This can be quite useful to debug file system deadlocks.”h]”(hŒ$This method will be called when the ”…”�”}”(hjÞEhhhNhNubhí)�”}”(hŒ``fuse_stacktrace``”h]”hŒfuse_stacktrace”…”�”}”(hjæEhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjÞEubhŒ¾ extended attribute is set on the mountpoint. The default implementation logs the current stack trace of every running Python thread. This can be quite useful to debug file system deadlocks.”…”�”}”(hjÞEhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj‰EhKhjÎEhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjŠEhhhj‰EhNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjFjäjFjåjFjæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj‰EhNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ$statfs() (pyfuse3.Operations method)”Œpyfuse3.Operations.statfs”hNt”auh(hchhÝhhhŒj/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.statfs”hNubht)�”}”(hhh]”(hy)�”}”(hŒ5Operations.statfs(ctx: RequestContext) -> StatvfsData”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hj!FhhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjFubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.FhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjFubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hjFhhhhhKubh½)�”}”(hŒstatfs”h]”hŒstatfs”…”�”}”(hj@FhhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjFhhhhhKubjØ)�”}”(hŒctx: RequestContext”h]”jÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjUFhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjQFubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjbFhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjQFubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjoFhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjQFubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hj€FhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj|Fubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjQFubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjMFubah}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hjFhhhhhKubjÒ)�”}”(hŒ StatvfsData”h]”h6)�”}”(hhh]”hŒ StatvfsData”…”�”}”(hj¦FhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œ StatvfsData”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj¢Fubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhjFhhhhhKubeh}”(h ]”jFah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.statfs”hØjÃFŒ Operations”Œstatfs”‡”hÚŒOperations.statfs()”uh(hxhhhKhjFhhubhÜ)�”}”(hhh]”(h+)�”}”(hŒGet file system statistics.”h]”hŒGet file system statistics.”…”�”}”(hjÌFhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hjFhKhjÉFhhubh+)�”}”(hŒ**ctx* will be a `RequestContext` instance.”h]”(j)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hjÝFhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjÙFubhŒ will be a ”…”�”}”(hjÙFhhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjðFh]”hŒRequestContext”…”�”}”(hjòFhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjîFubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jüFŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjÃFjhÀhXŒRequestContext”uh(h5hjFhKhjÙFubhŒ instance.”…”�”}”(hjÙFhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjFhKhjÉFhhubh+)�”}”(hŒFThe method must return an appropriately filled `StatvfsData` instance.”h]”(hŒ/The method must return an appropriately filled ”…”�”}”(hjGhhhNhNubh6)�”}”(hŒ `StatvfsData`”h]”hí)�”}”(hjGh]”hŒ StatvfsData”…”�”}”(hj!GhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjGubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j+GŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjÃFjhÀhXŒ StatvfsData”uh(h5hjFhKhjGubhŒ instance.”…”�”}”(hjGhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjFhKhjÉFhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjFhhhjFhNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãjLGjäjMGjåjMGjæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjFhNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ%symlink() (pyfuse3.Operations method)”Œpyfuse3.Operations.symlink”hNt”auh(hchhÝhhhŒk/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.symlink”hNubht)�”}”(hhh]”(hy)�”}”(hŒiOperations.symlink(parent_inode: int, name: bytes, target: bytes, ctx: RequestContext) -> EntryAttributes”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjiGhhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjeGubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjvGhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjeGubeh}”(h ]”h"]”h$]”h&]”•°Uh©hªuh(h~hjaGhhhhhKubh½)�”}”(hŒsymlink”h]”hŒsymlink”…”�”}”(hjˆGhhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjaGhhhhhKubjØ)�”}”(hŒBparent_inode: int, name: bytes, target: bytes, ctx: RequestContext”h]”(jÞ)�”}”(hŒparent_inode: int”h]”(jä)�”}”(hŒ parent_inode”h]”hŒ parent_inode”…”�”}”(hj�GhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj™Gubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjªGhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj™Gubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·GhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj™Gubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hjÈGhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÄGubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj™Gubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj•GubjÞ)�”}”(hŒ name: bytes”h]”(jä)�”}”(hŒname”h]”hŒname”…”�”}”(hjéGhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjåGubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjöGhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjåGubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjåGubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hjHhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjHubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjåGubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj•GubjÞ)�”}”(hŒ target: bytes”h]”(jä)�”}”(hŒtarget”h]”hŒtarget”…”�”}”(hj5HhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj1Hubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjBHhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj1Hubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjOHhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj1Hubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hj`HhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj\Hubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj1Hubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj•GubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj�HhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj}Hubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjŽHhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj}Hubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›HhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj}Hubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hj¬HhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj¨Hubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj}Hubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj•Gubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hjaGhhhhhKubjÒ)�”}”(hŒEntryAttributes”h]”h6)�”}”(hhh]”hŒEntryAttributes”…”�”}”(hjÒHhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒEntryAttributes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÎHubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhjaGhhhhhKubeh}”(h ]”j[Gah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.symlink”hØjïHŒ Operations”Œsymlink”‡”hÚŒOperations.symlink()”uh(hxhhhKhj^GhhubhÜ)�”}”(hhh]”(h+)�”}”(hŒCreate a symbolic link.”h]”hŒCreate a symbolic link.”…”�”}”(hjøHhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj]GhKhjõHhhubh+)�”}”(hŒ£This method must create a symbolink link named *name* in the directory with inode *parent_inode*, pointing to *target*. *ctx* will be a `RequestContext` instance.”h]”(hŒ/This method must create a symbolink link named ”…”�”}”(hjIhhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hj IhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjIubhŒ in the directory with inode ”…”�”}”(hjIhhhNhNubj)�”}”(hŒ*parent_inode*”h]”hŒ parent_inode”…”�”}”(hjIhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjIubhŒ, pointing to ”…”�”}”(hjIhhhNhNubj)�”}”(hŒ*target*”h]”hŒtarget”…”�”}”(hj/IhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjIubhŒ. ”…”�”}”(hjIhhhNhNubj)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hj@IhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjIubhŒ will be a ”…”�”}”(hjIhhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjSIh]”hŒRequestContext”…”�”}”(hjUIhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjQIubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j_IŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjïHjhÀhXŒRequestContext”uh(h5hj]GhKhjIubhŒ instance.”…”�”}”(hjIhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj]GhKhjõHhhubh+)�”}”(hŒnThe method must return an `EntryAttributes` instance with the attributes of the newly created directory entry.”h]”(hŒThe method must return an ”…”�”}”(hjxIhhhNhNubh6)�”}”(hŒ`EntryAttributes`”h]”hí)�”}”(hj‚Ih]”hŒEntryAttributes”…”�”}”(hj„IhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj€Iubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jŽIŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjïHjhÀhXŒEntryAttributes”uh(h5hj]GhKhjxIubhŒC instance with the attributes of the newly created directory entry.”…”�”}”(hjxIhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj]GhKhjõHhhubh+)�”}”(hŒ`(Successful) execution of this handler increases the lookup count for the returned inode by one.”h]”hŒ`(Successful) execution of this handler increases the lookup count for the returned inode by one.”…”�”}”(hj§IhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj]GhK hjõHhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhj^Ghhhj]GhNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãj¼Ijäj½Ijåj½Ijæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhj]GhNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ$unlink() (pyfuse3.Operations method)”Œpyfuse3.Operations.unlink”hNt”auh(hchhÝhhhŒj/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.unlink”hNubht)�”}”(hhh]”(hy)�”}”(hŒNOperations.unlink(parent_inode: int, name: bytes, ctx: RequestContext) -> None”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjÙIhhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjÕIubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæIhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjÕIubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hjÑIhhhhhKubh½)�”}”(hŒunlink”h]”hŒunlink”…”�”}”(hjøIhhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjÑIhhhhhKubjØ)�”}”(hŒ3parent_inode: int, name: bytes, ctx: RequestContext”h]”(jÞ)�”}”(hŒparent_inode: int”h]”(jä)�”}”(hŒ parent_inode”h]”hŒ parent_inode”…”�”}”(hj JhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj Jubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjJhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj Jubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'JhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj Jubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj8JhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj4Jubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj Jubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjJubjÞ)�”}”(hŒ name: bytes”h]”(jä)�”}”(hŒname”h]”hŒname”…”�”}”(hjYJhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjUJubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjfJhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjUJubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjsJhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjUJubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hj„JhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj€Jubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjUJubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjJubjÞ)�”}”(hŒctx: RequestContext”h]”(jä)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj¥JhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj¡Jubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj²JhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj¡Jubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿JhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj¡Jubjä)�”}”(hŒRequestContext”h]”h6)�”}”(hhh]”hŒRequestContext”…”�”}”(hjÐJhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”ŒRequestContext”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÌJubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj¡Jubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhjJubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hjÑIhhhhhKubjÒ)�”}”(hŒNone”h]”h6)�”}”(hhh]”hŒNone”…”�”}”(hjöJhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”j¬Œ reftarget”ŒNone”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjòJubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhjÑIhhhhhKubeh}”(h ]”jËIah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.unlink”hØjKŒ Operations”Œunlink”‡”hÚŒOperations.unlink()”uh(hxhhhKhjÎIhhubhÜ)�”}”(hhh]”(h+)�”}”(hŒ!Remove a (possibly special) file.”h]”hŒ!Remove a (possibly special) file.”…”�”}”(hjKhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hjÍIhKhjKhhubh+)�”}”(hŒ–This method must remove the (special or regular) file *name* from the directory with inode *parent_inode*. *ctx* will be a `RequestContext` instance.”h]”(hŒ6This method must remove the (special or regular) file ”…”�”}”(hj)KhhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hj1KhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj)KubhŒ from the directory with inode ”…”�”}”(hj)KhhhNhNubj)�”}”(hŒ*parent_inode*”h]”hŒ parent_inode”…”�”}”(hjBKhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj)KubhŒ. ”…”�”}”(hj)KhhhNhNubj)�”}”(hŒ*ctx*”h]”hŒctx”…”�”}”(hjSKhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj)KubhŒ will be a ”…”�”}”(hj)KhhhNhNubh6)�”}”(hŒ`RequestContext`”h]”hí)�”}”(hjfKh]”hŒRequestContext”…”�”}”(hjhKhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjdKubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jrKŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjKjhÀhXŒRequestContext”uh(h5hjÍIhKhj)KubhŒ instance.”…”�”}”(hj)KhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjÍIhKhjKhhubh+)�”}”(hX›If the inode associated with *file* (i.e., not the *parent_inode*) has a non-zero lookup count, or if there are still other directory entries referring to this inode (due to hardlinks), the file system must remove only the directory entry (so that future calls to `readdir` for *parent_inode* will no longer include *name*, but e.g. calls to `getattr` for *file*'s inode still succeed). (Potential) removal of the associated inode with the file contents and metadata must be deferred to the `forget` method to be carried out when the lookup count reaches zero (and of course only if at that point there are no more directory entries associated with the inode either).”h]”(hŒIf the inode associated with ”…”�”}”(hj‹KhhhNhNubj)�”}”(hŒ*file*”h]”hŒfile”…”�”}”(hj“KhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj‹KubhŒ (i.e., not the ”…”�”}”(hj‹KhhhNhNubj)�”}”(hŒ*parent_inode*”h]”hŒ parent_inode”…”�”}”(hj¤KhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj‹KubhŒÇ) has a non-zero lookup count, or if there are still other directory entries referring to this inode (due to hardlinks), the file system must remove only the directory entry (so that future calls to ”…”�”}”(hj‹KhhhNhNubh6)�”}”(hŒ `readdir`”h]”hí)�”}”(hj·Kh]”hŒreaddir”…”�”}”(hj¹KhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjµKubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jÃKŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjKjhÀhXŒreaddir”uh(h5hjÍIhKhj‹KubhŒ for ”…”�”}”(hj‹KhhhNhNubj)�”}”(hŒ*parent_inode*”h]”hŒ parent_inode”…”�”}”(hj×KhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj‹KubhŒ will no longer include ”…”�”}”(hj‹KhhhNhNubj)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hjèKhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj‹KubhŒ, but e.g. calls to ”…”�”}”(hj‹KhhhNhNubh6)�”}”(hŒ `getattr`”h]”hí)�”}”(hjûKh]”hŒgetattr”…”�”}”(hjýKhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjùKubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jLŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjKjhÀhXŒgetattr”uh(h5hjÍIhKhj‹KubhŒ for ”…”�”}”(hj‹KhhhNhNubj)�”}”(hŒ*file*”h]”hŒfile”…”�”}”(hjLhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj‹KubhŒƒâ€™s inode still succeed). (Potential) removal of the associated inode with the file contents and metadata must be deferred to the ”…”�”}”(hj‹KhhhNhNubh6)�”}”(hŒ`forget`”h]”hí)�”}”(hj.Lh]”hŒforget”…”�”}”(hj0LhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj,Lubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j:LŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jjKjhÀhXŒforget”uh(h5hjÍIhKhj‹KubhŒ¨ method to be carried out when the lookup count reaches zero (and of course only if at that point there are no more directory entries associated with the inode either).”…”�”}”(hj‹KhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjÍIhKhjKhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjÎIhhhjÍIhNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãj[Ljäj\Ljåj\Ljæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjÍIhNubhd)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hoŒ#write() (pyfuse3.Operations method)”Œpyfuse3.Operations.write”hNt”auh(hchhÝhhhŒi/home/nikratio/in-progress/pyfuse3/src/pyfuse3/_pyfuse3.py:docstring of pyfuse3._pyfuse3.Operations.write”hNubht)�”}”(hhh]”(hy)�”}”(hŒ6Operations.write(fh: int, off: int, buf: bytes) -> int”h]”(h)�”}”(hŒF[>, >]”h]”(h…)�”}”(hŒasync”h]”hŒasync”…”�”}”(hjxLhhhNhNubah}”(h ]”h"]”h‘ah$]”h&]”uh(h„hjtLubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…LhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjtLubeh}”(h ]”h"]”h$]”h&]”h©hªuh(h~hjpLhhhhhKubh½)�”}”(hŒwrite”h]”hŒwrite”…”�”}”(hj—LhhhNhNubah}”(h ]”h"]”(hÉhÊeh$]”h&]”h©hªuh(h¼hjpLhhhhhKubjØ)�”}”(hŒfh: int, off: int, buf: bytes”h]”(jÞ)�”}”(hŒfh: int”h]”(jä)�”}”(hŒfh”h]”hŒfh”…”�”}”(hj¬LhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj¨Lubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hj¹LhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj¨Lubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆLhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj¨Lubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj×LhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjÓLubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj¨Lubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj¤LubjÞ)�”}”(hŒoff: int”h]”(jä)�”}”(hŒoff”h]”hŒoff”…”�”}”(hjøLhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjôLubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjMhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhjôLubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hjôLubjä)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj#MhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjMubah}”(h ]”h"]”jðah$]”h&]”uh(jãhjôLubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj¤LubjÞ)�”}”(hŒ buf: bytes”h]”(jä)�”}”(hŒbuf”h]”hŒbuf”…”�”}”(hjDMhhhNhNubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj@Mubjô)�”}”(hŒ:”h]”hŒ:”…”�”}”(hjQMhhhNhNubah}”(h ]”h"]”jah$]”h&]”uh(jóhj@Mubh•)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^MhhhNhNubah}”(h ]”h"]”h¡ah$]”h&]”uh(h”hj@Mubjä)�”}”(hŒbytes”h]”h6)�”}”(hhh]”hŒbytes”…”�”}”(hjoMhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œbytes”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hjkMubah}”(h ]”h"]”jðah$]”h&]”uh(jãhj@Mubeh}”(h ]”h"]”h$]”h&]”h©hªuh(jÝhj¤Lubeh}”(h ]”h"]”h$]”h&]”h©hªjωjЈuh(j×hjpLhhhhhKubjÒ)�”}”(hŒint”h]”h6)�”}”(hhh]”hŒint”…”�”}”(hj•MhhhNhNubah}”(h ]”h"]”h$]”h&]”Œ refdomain”j!Œreftype”hÖŒ reftarget”Œint”Œ refspecific”‰Œ py:module”hÕŒpy:class”hÀuh(h5hj‘Mubah}”(h ]”h"]”h$]”h&]”h©hªuh(jÑhjpLhhhhhKubeh}”(h ]”jjLah"]”(hÐhÑeh$]”h&]”hÔŒpyfuse3”hÖhÀh׌Operations.write”hØj²MŒ Operations”Œwrite”‡”hÚŒOperations.write()”uh(hxhhhKhjmLhhubhÜ)�”}”(hhh]”(h+)�”}”(hŒWrite *buf* into *fh* at *off*.”h]”(hŒWrite ”…”�”}”(hj»MhhhNhNubj)�”}”(hŒ*buf*”h]”hŒbuf”…”�”}”(hjÃMhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj»MubhŒ into ”…”�”}”(hj»MhhhNhNubj)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hjÔMhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj»MubhŒ at ”…”�”}”(hj»MhhhNhNubj)�”}”(hŒ*off*”h]”hŒoff”…”�”}”(hjåMhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhj»MubhŒ.”…”�”}”(hj»MhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjlLhKhj¸Mhhubh+)�”}”(hŒO*fh* will be an integer filehandle returned by a prior `open` or `create` call.”h]”(j)�”}”(hŒ*fh*”h]”hŒfh”…”�”}”(hjÿMhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjûMubhŒ3 will be an integer filehandle returned by a prior ”…”�”}”(hjûMhhhNhNubh6)�”}”(hŒ`open`”h]”hí)�”}”(hjNh]”hŒopen”…”�”}”(hjNhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhjNubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”jNŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj²MjhÀhXŒopen”uh(h5hjlLhKhjûMubhŒ or ”…”�”}”(hjûMhhhNhNubh6)�”}”(hŒ`create`”h]”hí)�”}”(hj4Nh]”hŒcreate”…”�”}”(hj6NhhhNhNubah}”(h ]”h"]”(hGŒpy”Œpy-obj”eh$]”h&]”uh(hìhj2Nubah}”(h ]”h"]”h$]”h&]”Œrefdoc”hRŒ refdomain”j@NŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jj²MjhÀhXŒcreate”uh(h5hjlLhKhjûMubhŒ call.”…”�”}”(hjûMhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjlLhKhj¸Mhhubh+)�”}”(hŒÝThis method must return the number of bytes written. However, unless the file system has been mounted with the ``direct_io`` option, the file system *must* always write *all* the provided data (i.e., return ``len(buf)``).”h]”(hŒoThis method must return the number of bytes written. However, unless the file system has been mounted with the ”…”�”}”(hjYNhhhNhNubhí)�”}”(hŒ ``direct_io``”h]”hŒ direct_io”…”�”}”(hjaNhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjYNubhŒ option, the file system ”…”�”}”(hjYNhhhNhNubj)�”}”(hŒ*must*”h]”hŒmust”…”�”}”(hjrNhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjYNubhŒ always write ”…”�”}”(hjYNhhhNhNubj)�”}”(hŒ*all*”h]”hŒall”…”�”}”(hjƒNhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jhjYNubhŒ! the provided data (i.e., return ”…”�”}”(hjYNhhhNhNubhí)�”}”(hŒ ``len(buf)``”h]”hŒlen(buf)”…”�”}”(hj”NhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(hìhjYNubhŒ).”…”�”}”(hjYNhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjlLhKhj¸Mhhubeh}”(h ]”h"]”h$]”h&]”uh(hÛhjmLhhhjlLhNubeh}”(h ]”h"]”(Œpy”Œmethod”eh$]”h&]”jãj²Njäj³Njåj³Njæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhhÝhjlLhNubeh}”(h ]”h"]”h$]”h&]”uh(hÛhhuhhhNhNubeh}”(h ]”h"]”(Œpy”Œclass”eh$]”h&]”jãj¾Njäj¿Njåj¿Njæ‰jç‰jè‰jé‰jê‰jë‰jì‰uh(hshhhh hNhNubeh}”(h ]”Œrequest-handlers”ah"]”h$]”Œrequest handlers”ah&]”uh(h hhhhhh)hKubah}”(h ]”h"]”h$]”h&]”Œsource”h)Œtranslation_progress”}”(Œtotal”KŒ translated”Kuuh(hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(Œ output_path”NhNŒ generator”NŒ datestamp”NŒ root_prefix”hŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”ˆŒ sectnum_xform”ˆŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œutf-8”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jñNŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h)Œ _destination”NŒ _config_files”]”Œdoctitle_xform”‰Œ docinfo_xform”ˆŒsectsubtitle_xform”‰Œfile_insertion_enabled”ˆŒ raw_enabled”ˆŒline_length_limit”M'Œvalidate”NŒpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”jÇNjÄNsŒ nametypes”}”jÇN‰sh }”(jÄNh hqhzj�j£jÛjáj2j8jz j€ jë jñ j¡ j§ jùjÿjÑj×j9j?jÖjÜjBjHj%j+j j&j�j–j] jc j $j$jò%jø%j *j*j,j$,j¡/j§/j1j1j3j3jw4j}4jß6jå6j³;j¹;j£>j©>jäBjêBj‡Ej�EjFjFj[GjaGjËIjÑIjjLjpLuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhhub.././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677271.0 pyfuse3-3.5.0/doc/html/.doctrees/util.doctree0000644000175000017500000005075615201073027021334 0ustar00nikrationikratio€•ãQŒdocutils.nodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”hŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒUtility Functions”h]”hŒText”“”ŒUtility Functions”…”�”}”(Œparent”hŒ _document”hŒsource”NŒline”NubaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”uŒtagname”hhh hhhŒ//home/nikratio/in-progress/pyfuse3/rst/util.rst”hKubhŒ paragraph”“”)�”}”(hŒ±The following functions do not necessarily translate to calls to the FUSE library. They are provided because they're potentially useful when implementing file systems in Python.”h]”hŒ³The following functions do not necessarily translate to calls to the FUSE library. They are provided because they’re potentially useful when implementing file systems in Python.”…”�”}”(hh,hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hh)hKhh hhubŒsphinx.addnodes”Œindex”“”)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œsetxattr() (in module pyfuse3)”Œpyfuse3.setxattr”hNt”auh(h:hh hhhŒdocstring of pyfuse3.setxattr”hNubh9Œdesc”“”)�”}”(hhh]”(h9Œdesc_signature”“”)�”}”(hŒ-setxattr(path, name, value, namespace='user')”h]”(h9Œ desc_addname”“”)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hhXhhhNhNubah}”(h ]”h"]”(Œ sig-prename”Œ descclassname”eh$]”h&]”Œ xml:space”Œpreserve”uh(hVhhRhhhhhKubh9Œ desc_name”“”)�”}”(hŒsetxattr”h]”hŒsetxattr”…”�”}”(hhkhhhNhNubah}”(h ]”h"]”(Œsig-name”Œdescname”eh$]”h&]”hghhuh(hihhRhhhhhKubh9Œdesc_parameterlist”“”)�”}”(hŒ#path, name, value, namespace='user'”h]”(h9Œdesc_parameter”“”)�”}”(hŒpath”h]”h9Œ desc_sig_name”“”)�”}”(hŒpath”h]”hŒpath”…”�”}”(hhˆhhhNhNubah}”(h ]”h"]”Œn”ah$]”h&]”uh(h†hh‚ubah}”(h ]”h"]”h$]”h&]”hghhuh(h€hh|ubh�)�”}”(hŒname”h]”h‡)�”}”(hŒname”h]”hŒname”…”�”}”(hhŸhhhNhNubah}”(h ]”h"]”h“ah$]”h&]”uh(h†hh›ubah}”(h ]”h"]”h$]”h&]”hghhuh(h€hh|ubh�)�”}”(hŒvalue”h]”h‡)�”}”(hŒvalue”h]”hŒvalue”…”�”}”(hhµhhhNhNubah}”(h ]”h"]”h“ah$]”h&]”uh(h†hh±ubah}”(h ]”h"]”h$]”h&]”hghhuh(h€hh|ubh�)�”}”(hŒnamespace='user'”h]”(h‡)�”}”(hŒ namespace”h]”hŒ namespace”…”�”}”(hhËhhhNhNubah}”(h ]”h"]”h“ah$]”h&]”uh(h†hhÇubh9Œdesc_sig_operator”“”)�”}”(hŒ=”h]”hŒ=”…”�”}”(hhÚhhhNhNubah}”(h ]”h"]”Œo”ah$]”h&]”uh(hØhhÇubhŒinline”“”)�”}”(hŒ'user'”h]”hŒ'user'”…”�”}”(hhêhhhNhNubah}”(h ]”h"]”Œ default_value”ah$]”h&]”Œsupport_smartquotes”‰uh(hèhhÇubeh}”(h ]”h"]”h$]”h&]”hghhuh(h€hh|ubeh}”(h ]”h"]”h$]”h&]”hghhŒmulti_line_parameter_list”‰Œmulti_line_trailing_comma”ˆuh(hzhhRhhhhhKubeh}”(h ]”hHah"]”(Œsig”Œ sig-object”eh$]”h&]”Œmodule”Œpyfuse3”Œclass”hŒfullname”hmŒ _toc_parts”j hm†”Œ _toc_name”Œ setxattr()”uh(hPhhhKhhMhhubh9Œ desc_content”“”)�”}”(hhh]”(h+)�”}”(hŒSet extended attribute”h]”hŒSet extended attribute”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hhJhKhjhhubh+)�”}”(hŒz*path* and *name* have to be of type `str`. In Python 3.x, they may contain surrogates. *value* has to be of type `bytes`.”h]”(hŒemphasis”“”)�”}”(hŒ*path*”h]”hŒpath”…”�”}”(hj,hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hj&ubhŒ and ”…”�”}”(hj&hhhNhNubj+)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hj=hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hj&ubhŒ have to be of type ”…”�”}”(hj&hhhNhNubh9Œ pending_xref”“”)�”}”(hŒ`str`”h]”hŒliteral”“”)�”}”(hjRh]”hŒstr”…”�”}”(hjVhhhNhNubah}”(h ]”h"]”(Œxref”Œpy”Œpy-obj”eh$]”h&]”uh(jThjPubah}”(h ]”h"]”h$]”h&]”Œrefdoc”Œutil”Œ refdomain”jaŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰Œ py:module”j Œpy:class”NŒ reftarget”Œstr”uh(jNhhJhKhj&ubhŒ.. In Python 3.x, they may contain surrogates. ”…”�”}”(hj&hhhNhNubj+)�”}”(hŒ*value*”h]”hŒvalue”…”�”}”(hjyhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hj&ubhŒ has to be of type ”…”�”}”(hj&hhhNhNubjO)�”}”(hŒ`bytes`”h]”jU)�”}”(hjŒh]”hŒbytes”…”�”}”(hjŽhhhNhNubah}”(h ]”h"]”(j`Œpy”Œpy-obj”eh$]”h&]”uh(jThjŠubah}”(h ]”h"]”h$]”h&]”Œrefdoc”jkŒ refdomain”j˜Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jqj jrNjsŒbytes”uh(jNhhJhKhj&ubhŒ.”…”�”}”(hj&hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hhJhKhjhhubh+)�”}”(hŒ­Under FreeBSD, the *namespace* parameter may be set to *system* or *user* to select the namespace for the extended attribute. For other platforms, this parameter is ignored.”h]”(hŒUnder FreeBSD, the ”…”�”}”(hj±hhhNhNubj+)�”}”(hŒ *namespace*”h]”hŒ namespace”…”�”}”(hj¹hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hj±ubhŒ parameter may be set to ”…”�”}”(hj±hhhNhNubj+)�”}”(hŒ*system*”h]”hŒsystem”…”�”}”(hjÊhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hj±ubhŒ or ”…”�”}”(hj±hhhNhNubj+)�”}”(hŒ*user*”h]”hŒuser”…”�”}”(hjÛhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hj±ubhŒd to select the namespace for the extended attribute. For other platforms, this parameter is ignored.”…”�”}”(hj±hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hhJhKhjhhubh+)�”}”(hŒŒIn contrast to the `os.setxattr` function from the standard library, the method provided by pyfuse3 is also available for non-Linux systems.”h]”(hŒIn contrast to the ”…”�”}”(hjñhhhNhNubjO)�”}”(hŒ `os.setxattr`”h]”jU)�”}”(hjûh]”hŒ os.setxattr”…”�”}”(hjýhhhNhNubah}”(h ]”h"]”(j`Œpy”Œpy-obj”eh$]”h&]”uh(jThjùubah}”(h ]”h"]”h$]”h&]”Œrefdoc”jkŒ refdomain”jŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jqj jrNjsŒ os.setxattr”uh(jNhhJhK hjñubhŒl function from the standard library, the method provided by pyfuse3 is also available for non-Linux systems.”…”�”}”(hjñhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hhJhK hjhhubeh}”(h ]”h"]”h$]”h&]”uh(jhhMhhhhJhNubeh}”(h ]”h"]”(Œpy”Œfunction”eh$]”h&]”Œdomain”j(Œobjtype”j)Œdesctype”j)Œno-index”‰Œnoindex”‰Œno-index-entry”‰Œ noindexentry”‰Œno-contents-entry”‰Œnocontentsentry”‰Œno-typesetting”‰uh(hKhhhh hhJhNubh;)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hFŒgetxattr() (in module pyfuse3)”Œpyfuse3.getxattr”hNt”auh(h:hh hhhŒdocstring of pyfuse3.getxattr”hNubhL)�”}”(hhh]”(hQ)�”}”(hŒ6getxattr(path, name, size_guess=128, namespace='user')”h]”(hW)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hjKhhhNhNubah}”(h ]”h"]”(hchdeh$]”h&]”hghhuh(hVhjGhhhhhKubhj)�”}”(hŒgetxattr”h]”hŒgetxattr”…”�”}”(hjXhhhNhNubah}”(h ]”h"]”(hvhweh$]”h&]”hghhuh(hihjGhhhhhKubh{)�”}”(hŒ,path, name, size_guess=128, namespace='user'”h]”(h�)�”}”(hŒpath”h]”h‡)�”}”(hŒpath”h]”hŒpath”…”�”}”(hjmhhhNhNubah}”(h ]”h"]”h“ah$]”h&]”uh(h†hjiubah}”(h ]”h"]”h$]”h&]”hghhuh(h€hjeubh�)�”}”(hŒname”h]”h‡)�”}”(hŒname”h]”hŒname”…”�”}”(hjƒhhhNhNubah}”(h ]”h"]”h“ah$]”h&]”uh(h†hjubah}”(h ]”h"]”h$]”h&]”hghhuh(h€hjeubh�)�”}”(hŒsize_guess=128”h]”(h‡)�”}”(hŒ size_guess”h]”hŒ size_guess”…”�”}”(hj™hhhNhNubah}”(h ]”h"]”h“ah$]”h&]”uh(h†hj•ubhÙ)�”}”(hŒ=”h]”hŒ=”…”�”}”(hj¦hhhNhNubah}”(h ]”h"]”håah$]”h&]”uh(hØhj•ubhé)�”}”(hŒ128”h]”hŒ128”…”�”}”(hj³hhhNhNubah}”(h ]”h"]”hõah$]”h&]”Œsupport_smartquotes”‰uh(hèhj•ubeh}”(h ]”h"]”h$]”h&]”hghhuh(h€hjeubh�)�”}”(hŒnamespace='user'”h]”(h‡)�”}”(hŒ namespace”h]”hŒ namespace”…”�”}”(hjÊhhhNhNubah}”(h ]”h"]”h“ah$]”h&]”uh(h†hjÆubhÙ)�”}”(hŒ=”h]”hŒ=”…”�”}”(hj×hhhNhNubah}”(h ]”h"]”håah$]”h&]”uh(hØhjÆubhé)�”}”(hŒ'user'”h]”hŒ'user'”…”�”}”(hjähhhNhNubah}”(h ]”h"]”hõah$]”h&]”Œsupport_smartquotes”‰uh(hèhjÆubeh}”(h ]”h"]”h$]”h&]”hghhuh(h€hjeubeh}”(h ]”h"]”h$]”h&]”hghhj‰jˆuh(hzhjGhhhhhKubeh}”(h ]”jAah"]”(jj eh$]”h&]”j Œpyfuse3”jhjjZjjjZ†”jŒ getxattr()”uh(hPhhhKhjDhhubj)�”}”(hhh]”(h+)�”}”(hŒGet extended attribute”h]”hŒGet extended attribute”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hjChKhjhhubh+)�”}”(hŒx*path* and *name* have to be of type `str`. In Python 3.x, they may contain surrogates. Returns a value of type `bytes`.”h]”(j+)�”}”(hŒ*path*”h]”hŒpath”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hjubhŒ and ”…”�”}”(hjhhhNhNubj+)�”}”(hŒ*name*”h]”hŒname”…”�”}”(hj)hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hjubhŒ have to be of type ”…”�”}”(hjhhhNhNubjO)�”}”(hŒ`str`”h]”jU)�”}”(hj<h]”hŒstr”…”�”}”(hj>hhhNhNubah}”(h ]”h"]”(j`Œpy”Œpy-obj”eh$]”h&]”uh(jThj:ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”jkŒ refdomain”jHŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jqjjrNjsŒstr”uh(jNhjChKhjubhŒF. In Python 3.x, they may contain surrogates. Returns a value of type ”…”�”}”(hjhhhNhNubjO)�”}”(hŒ`bytes`”h]”jU)�”}”(hj^h]”hŒbytes”…”�”}”(hj`hhhNhNubah}”(h ]”h"]”(j`Œpy”Œpy-obj”eh$]”h&]”uh(jThj\ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”jkŒ refdomain”jjŒreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jqjjrNjsŒbytes”uh(jNhjChKhjubhŒ.”…”�”}”(hjhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjChKhjhhubh+)�”}”(hXIf the caller knows the approximate size of the attribute value, it should be supplied in *size_guess*. If the guess turns out to be wrong, the system call has to be carried out three times (the first call will fail, the second determines the size and the third finally gets the value).”h]”(hŒZIf the caller knows the approximate size of the attribute value, it should be supplied in ”…”�”}”(hjƒhhhNhNubj+)�”}”(hŒ *size_guess*”h]”hŒ size_guess”…”�”}”(hj‹hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hjƒubhŒ¸. If the guess turns out to be wrong, the system call has to be carried out three times (the first call will fail, the second determines the size and the third finally gets the value).”…”�”}”(hjƒhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjChKhjhhubh+)�”}”(hŒ­Under FreeBSD, the *namespace* parameter may be set to *system* or *user* to select the namespace for the extended attribute. For other platforms, this parameter is ignored.”h]”(hŒUnder FreeBSD, the ”…”�”}”(hj¡hhhNhNubj+)�”}”(hŒ *namespace*”h]”hŒ namespace”…”�”}”(hj©hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hj¡ubhŒ parameter may be set to ”…”�”}”(hj¡hhhNhNubj+)�”}”(hŒ*system*”h]”hŒsystem”…”�”}”(hjºhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hj¡ubhŒ or ”…”�”}”(hj¡hhhNhNubj+)�”}”(hŒ*user*”h]”hŒuser”…”�”}”(hjËhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hj¡ubhŒd to select the namespace for the extended attribute. For other platforms, this parameter is ignored.”…”�”}”(hj¡hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjChK hjhhubh+)�”}”(hŒŒIn contrast to the `os.getxattr` function from the standard library, the method provided by pyfuse3 is also available for non-Linux systems.”h]”(hŒIn contrast to the ”…”�”}”(hjáhhhNhNubjO)�”}”(hŒ `os.getxattr`”h]”jU)�”}”(hjëh]”hŒ os.getxattr”…”�”}”(hjíhhhNhNubah}”(h ]”h"]”(j`Œpy”Œpy-obj”eh$]”h&]”uh(jThjéubah}”(h ]”h"]”h$]”h&]”Œrefdoc”jkŒ refdomain”j÷Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jqjjrNjsŒ os.getxattr”uh(jNhjChKhjáubhŒl function from the standard library, the method provided by pyfuse3 is also available for non-Linux systems.”…”�”}”(hjáhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hjChKhjhhubeh}”(h ]”h"]”h$]”h&]”uh(jhjDhhhjChNubeh}”(h ]”h"]”(Œpy”Œfunction”eh$]”h&]”j,jj-jj.jj/‰j0‰j1‰j2‰j3‰j4‰j5‰uh(hKhhhh hjChNubh;)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hFŒlistdir() (in module pyfuse3)”Œpyfuse3.listdir”hNt”auh(h:hh hhhŒdocstring of pyfuse3.listdir”hNubhL)�”}”(hhh]”(hQ)�”}”(hŒ listdir(path)”h]”(hW)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hj1hhhNhNubah}”(h ]”h"]”(hchdeh$]”h&]”hghhuh(hVhj-hhhhhKubhj)�”}”(hŒlistdir”h]”hŒlistdir”…”�”}”(hj>hhhNhNubah}”(h ]”h"]”(hvhweh$]”h&]”hghhuh(hihj-hhhhhKubh{)�”}”(hŒpath”h]”h�)�”}”(hŒpath”h]”h‡)�”}”(hŒpath”h]”hŒpath”…”�”}”(hjShhhNhNubah}”(h ]”h"]”h“ah$]”h&]”uh(h†hjOubah}”(h ]”h"]”h$]”h&]”hghhuh(h€hjKubah}”(h ]”h"]”h$]”h&]”hghhj‰jˆuh(hzhj-hhhhhKubeh}”(h ]”j'ah"]”(jj eh$]”h&]”j Œpyfuse3”jhjj@jjoj@†”jŒ listdir()”uh(hPhhhKhj*hhubj)�”}”(hhh]”(h+)�”}”(hŒ(Like `os.listdir`, but releases the GIL.”h]”(hŒLike ”…”�”}”(hjuhhhNhNubjO)�”}”(hŒ `os.listdir`”h]”jU)�”}”(hjh]”hŒ os.listdir”…”�”}”(hj�hhhNhNubah}”(h ]”h"]”(j`Œpy”Œpy-obj”eh$]”h&]”uh(jThj}ubah}”(h ]”h"]”h$]”h&]”Œrefdoc”jkŒ refdomain”j‹Œreftype”Œobj”Œ refexplicit”‰Œrefwarn”‰jqjojrNjsŒ os.listdir”uh(jNhj)hKhjuubhŒ, but releases the GIL.”…”�”}”(hjuhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj)hKhjrhhubh+)�”}”(hŒGThis function returns an iterator over the directory entries in *path*.”h]”(hŒ@This function returns an iterator over the directory entries in ”…”�”}”(hj¤hhhNhNubj+)�”}”(hŒ*path*”h]”hŒpath”…”�”}”(hj¬hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hj¤ubhŒ.”…”�”}”(hj¤hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj)hKhjrhhubh+)�”}”(hŒ×The returned values are of type :ref:`str `. Surrogate escape coding (cf. `PEP 383 `_) is used for directory names that do not have a string representation.”h]”(hŒ The returned values are of type ”…”�”}”(hjÂhhhNhNubjO)�”}”(hŒ:ref:`str `”h]”hé)�”}”(hjÌh]”hŒstr”…”�”}”(hjÎhhhNhNubah}”(h ]”h"]”(j`Œstd”Œstd-ref”eh$]”h&]”uh(hèhjÊubah}”(h ]”h"]”h$]”h&]”Œrefdoc”jkŒ refdomain”jØŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjsŒpython:textseq”uh(jNhj)hKhjÂubhŒ . Surrogate escape coding (cf. ”…”�”}”(hjÂhhhNhNubhŒ reference”“”)�”}”(hŒ5`PEP 383 `_”h]”hŒPEP 383”…”�”}”(hjîhhhNhNubah}”(h ]”h"]”h$]”h&]”Œname”ŒPEP 383”Œrefuri”Œ(http://www.python.org/dev/peps/pep-0383/”uh(jìhjÂubhŒtarget”“”)�”}”(hŒ+ ”h]”h}”(h ]”Œpep-383”ah"]”h$]”Œpep 383”ah&]”Œrefuri”jþuh(jÿŒ referenced”KhjÂubhŒG) is used for directory names that do not have a string representation.”…”�”}”(hjÂhhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj)hKhjrhhubeh}”(h ]”h"]”h$]”h&]”uh(jhj*hhhj)hNubeh}”(h ]”h"]”(Œpy”Œfunction”eh$]”h&]”j,jj-j j.j j/‰j0‰j1‰j2‰j3‰j4‰j5‰uh(hKhhhh hj)hNubh;)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hFŒ$get_sup_groups() (in module pyfuse3)”Œpyfuse3.get_sup_groups”hNt”auh(h:hh hhhŒ#docstring of pyfuse3.get_sup_groups”hNubhL)�”}”(hhh]”(hQ)�”}”(hŒget_sup_groups(pid)”h]”(hW)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hj8hhhNhNubah}”(h ]”h"]”(hchdeh$]”h&]”hghhuh(hVhj4hhhhhKubhj)�”}”(hŒget_sup_groups”h]”hŒget_sup_groups”…”�”}”(hjEhhhNhNubah}”(h ]”h"]”(hvhweh$]”h&]”hghhuh(hihj4hhhhhKubh{)�”}”(hŒpid”h]”h�)�”}”(hŒpid”h]”h‡)�”}”(hŒpid”h]”hŒpid”…”�”}”(hjZhhhNhNubah}”(h ]”h"]”h“ah$]”h&]”uh(h†hjVubah}”(h ]”h"]”h$]”h&]”hghhuh(h€hjRubah}”(h ]”h"]”h$]”h&]”hghhj‰jˆuh(hzhj4hhhhhKubeh}”(h ]”j.ah"]”(jj eh$]”h&]”j Œpyfuse3”jhjjGjjvjG†”jŒget_sup_groups()”uh(hPhhhKhj1hhubj)�”}”(hhh]”(h+)�”}”(hŒ'Return supplementary group ids of *pid*”h]”(hŒ"Return supplementary group ids of ”…”�”}”(hj|hhhNhNubj+)�”}”(hŒ*pid*”h]”hŒpid”…”�”}”(hj„hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hj|ubeh}”(h ]”h"]”h$]”h&]”uh(h*hj0hKhjyhhubh+)�”}”(hŒÊThis function is relatively expensive because it has to read the group ids from ``/proc/[pid]/status``. For the same reason, it will also not work on systems that do not provide a ``/proc`` file system.”h]”(hŒPThis function is relatively expensive because it has to read the group ids from ”…”�”}”(hj–hhhNhNubjU)�”}”(hŒ``/proc/[pid]/status``”h]”hŒ/proc/[pid]/status”…”�”}”(hjžhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jThj–ubhŒN. For the same reason, it will also not work on systems that do not provide a ”…”�”}”(hj–hhhNhNubjU)�”}”(hŒ ``/proc``”h]”hŒ/proc”…”�”}”(hj¯hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(jThj–ubhŒ file system.”…”�”}”(hj–hhhNhNubeh}”(h ]”h"]”h$]”h&]”uh(h*hj0hKhjyhhubh+)�”}”(hŒReturns a set.”h]”hŒReturns a set.”…”�”}”(hjÅhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hj0hKhjyhhubeh}”(h ]”h"]”h$]”h&]”uh(jhj1hhhj0hNubeh}”(h ]”h"]”(Œpy”Œfunction”eh$]”h&]”j,jÚj-jÛj.jÛj/‰j0‰j1‰j2‰j3‰j4‰j5‰uh(hKhhhh hj0hNubh;)�”}”(hhh]”h}”(h ]”h"]”h$]”h&]”Œentries”]”(hFŒsyncfs() (in module pyfuse3)”Œpyfuse3.syncfs”hNt”auh(h:hh hhhŒdocstring of pyfuse3.syncfs”hNubhL)�”}”(hhh]”(hQ)�”}”(hŒ syncfs(path)”h]”(hW)�”}”(hŒpyfuse3.”h]”hŒpyfuse3.”…”�”}”(hjóhhhNhNubah}”(h ]”h"]”(hchdeh$]”h&]”hghhuh(hVhjïhhhhhKubhj)�”}”(hŒsyncfs”h]”hŒsyncfs”…”�”}”(hjhhhNhNubah}”(h ]”h"]”(hvhweh$]”h&]”hghhuh(hihjïhhhhhKubh{)�”}”(hŒpath”h]”h�)�”}”(hŒpath”h]”h‡)�”}”(hŒpath”h]”hŒpath”…”�”}”(hjhhhNhNubah}”(h ]”h"]”h“ah$]”h&]”uh(h†hjubah}”(h ]”h"]”h$]”h&]”hghhuh(h€hj ubah}”(h ]”h"]”h$]”h&]”hghhj‰jˆuh(hzhjïhhhhhKubeh}”(h ]”jéah"]”(jj eh$]”h&]”j Œpyfuse3”jhjjjj1j†”jŒsyncfs()”uh(hPhhhKhjìhhubj)�”}”(hhh]”(h+)�”}”(hŒ!Sync filesystem mounted at *path*”h]”(hŒSync filesystem mounted at ”…”�”}”(hj7hhhNhNubj+)�”}”(hŒ*path*”h]”hŒpath”…”�”}”(hj?hhhNhNubah}”(h ]”h"]”h$]”h&]”uh(j*hj7ubeh}”(h ]”h"]”h$]”h&]”uh(h*hjëhKhj4hhubh+)�”}”(hŒ�This is a Python interface to the syncfs(2) system call. There is no particular relation to libfuse, it is provided by pyfuse3 as a convenience.”h]”hŒ�This is a Python interface to the syncfs(2) system call. There is no particular relation to libfuse, it is provided by pyfuse3 as a convenience.”…”�”}”(hjQhhhNhNubah}”(h ]”h"]”h$]”h&]”uh(h*hjëhKhj4hhubeh}”(h ]”h"]”h$]”h&]”uh(jhjìhhhjëhNubeh}”(h ]”h"]”(Œpy”Œfunction”eh$]”h&]”j,jfj-jgj.jgj/‰j0‰j1‰j2‰j3‰j4‰j5‰uh(hKhhhh hjëhNubeh}”(h ]”Œutility-functions”ah"]”h$]”Œutility functions”ah&]”uh(h hhhhhh)hKubah}”(h ]”h"]”h$]”h&]”Œsource”h)Œtranslation_progress”}”(Œtotal”KŒ translated”Kuuh(hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(Œ output_path”NhNŒ generator”NŒ datestamp”NŒ root_prefix”hŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”ˆŒ sectnum_xform”ˆŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œutf-8”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j™Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h)Œ _destination”NŒ _config_files”]”Œdoctitle_xform”‰Œ docinfo_xform”ˆŒsectsubtitle_xform”‰Œfile_insertion_enabled”ˆŒ raw_enabled”ˆŒline_length_limit”M'Œvalidate”NŒpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jojlj juŒ nametypes”}”(jo‰j ‰uh }”(jlh hHhRjAjGj'j-jjj.j4jéjïuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhhub.././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1778686357.066098 pyfuse3-3.5.0/doc/html/_sources/0000755000175000017500000000000015201114625016727 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/doc/html/_sources/about.rst.txt0000644000175000017500000000012015124221126021401 0ustar00nikrationikratio======= About ======= .. include:: ../README.rst :start-after: start-intro ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778671834.0 pyfuse3-3.5.0/doc/html/_sources/asyncio.rst.txt0000644000175000017500000000100615201060332021734 0ustar00nikrationikratio.. _asyncio: .. py:module:: pyfuse3.asyncio ================= asyncio Support ================= By default, pyfuse3 uses asynchronous I/O using Trio_ (and most of the documentation assumes that you are using Trio). If you'd rather use asyncio, import the *pyfuse3.asyncio* module and call its *enable()* function before using *pyfuse3*. For example:: import pyfuse3 import pyfuse3.asyncio pyfuse3.asyncio.enable() # Use pyfuse3 as usual from here on. .. _Trio: https://github.com/python-trio/trio ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/doc/html/_sources/changes.rst.txt0000644000175000017500000000003415124221126021703 0ustar00nikrationikratio.. include:: ../Changes.rst ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778672018.0 pyfuse3-3.5.0/doc/html/_sources/data.rst.txt0000644000175000017500000001127215201060622021210 0ustar00nikrationikratio================= Data Structures ================= .. currentmodule:: pyfuse3 .. py:data:: ENOATTR This errorcode is unfortunately missing in the `errno` module, so it is provided by pyfuse3 instead. .. py:data:: ROOT_INODE The inode of the root directory, i.e. the mount point of the file system. .. py:data:: RENAME_EXCHANGE A flag that may be passed to the `~Operations.rename` handler. When passed, the handler must atomically exchange the two paths (which must both exist). .. py:data:: RENAME_NOREPLACE A flag that may be passed to the `~Operations.rename` handler. When passed, the handler must not replace an existing target. .. py:data:: default_options This is a recommended set of options that should be passed to `pyfuse3.init` to get reasonable behavior and performance. pyfuse3 is compatible with any other combination of options as well, but you should only deviate from the defaults with good reason. (The :samp:`fsname=` option is guaranteed never to be included in the default options, so you can always safely add it to the set). The default options are: * ``default_permissions`` enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect. .. autoexception:: FUSEError .. class:: FileHandleT A type alias for `int`, representing an integer file handle produced by a `~Operations.create`, `~Operations.open`, or `~Operations.opendir` call. .. class:: FileNameT A type alias for `bytes`, representing a file name, with no embedded zero-bytes (``\0``). .. class:: FlagT A type alias for `int`, representing flags modifying the behavior of an operation. .. class:: InodeT A type alias for `int`, representing an inode number. .. class:: ModeT A type alias for `int`, representing a file mode. .. class:: XAttrNameT A type alias for `bytes`, representing an extended attribute name, with no embedded zero-bytes (``\0``). .. autoclass:: RequestContext .. attribute:: pid .. attribute:: uid .. attribute:: gid .. attribute:: umask .. autoclass:: StatvfsData .. attribute:: f_bsize .. attribute:: f_frsize .. attribute:: f_blocks .. attribute:: f_bfree .. attribute:: f_bavail .. attribute:: f_files .. attribute:: f_ffree .. attribute:: f_favail .. attribute:: f_namemax .. autoclass:: EntryAttributes .. autoattribute:: st_ino .. autoattribute:: generation .. autoattribute:: entry_timeout .. autoattribute:: attr_timeout .. autoattribute:: st_mode .. autoattribute:: st_nlink .. autoattribute:: st_uid .. autoattribute:: st_gid .. autoattribute:: st_rdev .. autoattribute:: st_size .. autoattribute:: st_blksize .. autoattribute:: st_blocks .. autoattribute:: st_atime_ns .. autoattribute:: st_ctime_ns .. autoattribute:: st_mtime_ns .. autoclass:: FileInfo .. autoattribute:: fh This attribute must be set to the file handle to be returned from `Operations.open`. .. autoattribute:: direct_io If true, signals to the kernel that this file should not be cached or buffered. .. autoattribute:: keep_cache If true, signals to the kernel that previously cached data for this inode is still valid, and should not be invalidated. .. autoattribute:: nonseekable If true, indicates that the file does not support seeking. .. autoclass:: SetattrFields .. attribute:: update_atime If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_atime_ns` field contains an updated value. .. attribute:: update_mtime If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_mtime_ns` field contains an updated value. .. attribute:: update_mode If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_mode` field contains an updated value. .. attribute:: update_uid If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_uid` field contains an updated value. .. attribute:: update_gid If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_gid` field contains an updated value. .. attribute:: update_size If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_size` field contains an updated value. .. autoclass:: ReaddirToken An identifier for a particular `~Operations.readdir` invocation. .. autoclass:: PollHandle .. automethod:: notify ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/doc/html/_sources/example.rst.txt0000644000175000017500000000145115124221126021732 0ustar00nikrationikratio.. _example file system: ====================== Example File Systems ====================== pyfuse3 comes with several example file systems in the :file:`examples` directory of the release tarball. For completeness, these examples are also included here. Single-file, Read-only File System ================================== (shipped as :file:`examples/lltest.py`) .. literalinclude:: ../examples/hello.py :linenos: :language: python In-memory File System ===================== (shipped as :file:`examples/tmpfs.py`) .. literalinclude:: ../examples/tmpfs.py :linenos: :language: python Passthrough / Overlay File System ================================= (shipped as :file:`examples/passthroughfs.py`) .. literalinclude:: ../examples/passthroughfs.py :linenos: :language: python ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/doc/html/_sources/fuse_api.rst.txt0000644000175000017500000000110115124221126022062 0ustar00nikrationikratio==================== FUSE API Functions ==================== .. currentmodule:: pyfuse3 .. autofunction:: init .. autofunction:: main .. autofunction:: terminate .. autofunction:: close .. autofunction:: invalidate_inode .. autofunction:: invalidate_entry .. autofunction:: invalidate_entry_async .. autofunction:: notify_store .. autofunction:: readdir_reply .. py:data:: trio_token Set to the value returned by `trio.lowlevel.current_trio_token` while `main` is running. Can be used by other threads to run code in the main loop through `trio.from_thread.run`. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/doc/html/_sources/general.rst.txt0000644000175000017500000000717615124221126021726 0ustar00nikrationikratio===================== General Information ===================== .. currentmodule:: pyfuse3 .. _getting_started: Getting started =============== A file system is implemented by subclassing the `pyfuse3.Operations` class and implementing the various request handlers. The handlers respond to requests received from the FUSE kernel module and perform functions like looking up the inode given a file name, looking up attributes of an inode, opening a (file) inode for reading or writing or listing the contents of a (directory) inode. By default, pyfuse3 uses asynchronous I/O using Trio_, and most of the documentation assumes that you are using Trio. If you'd rather use asyncio, take a look at :ref:`asyncio Support `. If you would like to use Trio (which is recommended) but you have not yet used Trio before, please read the `Trio tutorial`_ first. An instance of the operations class is passed to `pyfuse3.init` to mount the file system. To enter the request handling loop, run `pyfuse3.main` in a trio event loop. This function will return when the file system should be unmounted again, which is done by calling `pyfuse3.close`. All character data (directory entry names, extended attribute names and values, symbolic link targets etc) are passed as `bytes` and must be returned as `bytes`. For easier debugging, it is strongly recommended that applications using pyfuse3 also make use of the faulthandler_ module. .. _faulthandler: http://docs.python.org/3/library/faulthandler.html .. _Trio tutorial: https://trio.readthedocs.io/en/latest/tutorial.html .. _Trio: https://github.com/python-trio/trio Lookup Counts ============= Most file systems need to keep track which inodes are currently known to the kernel. This is, for example, necessary to correctly implement the *unlink* system call: when unlinking a directory entry whose associated inode is currently opened, the file system must defer removal of the inode (and thus the file contents) until it is no longer in use by any process. FUSE file systems achieve this by using "lookup counts". A lookup count is a number that's associated with an inode. An inode with a lookup count of zero is currently not known to the kernel. This means that if there are no directory entries referring to such an inode it can be safely removed, or (if a file system implements dynamic inode numbers), the inode number can be safely recycled. The lookup count of an inode is increased by every operation that could make the inode "known" to the kernel. This includes e.g. `~Operations.lookup`, `~Operations.create` and `~Operations.readdir` (to determine if a given request handler affects the lookup count, please refer to its description in the `Operations` class). The lookup count is decreased by calls to the `~Operations.forget` handler. FUSE and VFS Locking ==================== FUSE and the kernel's VFS layer provide some basic locking that FUSE file systems automatically take advantage of. Specifically: * Calls to `~Operations.rename`, `~Operations.create`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.link` and `~Operations.mkdir` acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename). * Calls to `~Operations.lookup` acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation). * Unless writeback caching is enabled, calls to `~Operations.write` for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled). ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/doc/html/_sources/gotchas.rst.txt0000644000175000017500000000154515124221126021733 0ustar00nikrationikratio================ Common Gotchas ================ .. currentmodule:: pyfuse3 This chapter lists some common gotchas that should be avoided. Removing inodes in unlink handler ================================= If your file system is mounted at :file:`mnt`, the following code should complete without errors:: with open('mnt/file_one', 'w+') as fh1: fh1.write('foo') fh1.flush() with open('mnt/file_one', 'a') as fh2: os.unlink('mnt/file_one') assert 'file_one' not in os.listdir('mnt') fh2.write('bar') os.close(os.dup(fh1.fileno())) fh1.seek(0) assert fh1.read() == 'foobar' If you're getting an error, then you probably did a mistake when implementing the `~Operations.unlink` handler and are removing the file contents when you should be deferring removal to the `~Operations.forget` handler. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/doc/html/_sources/index.rst.txt0000644000175000017500000000062715124221126021412 0ustar00nikrationikratio============================= pyfuse3 Documentation ============================= Table of Contents ----------------- .. module:: pyfuse3 .. toctree:: :maxdepth: 1 about.rst install.rst general.rst asyncio.rst fuse_api.rst data.rst operations.rst util.rst gotchas.rst example.rst changes.rst Indices and tables ------------------ * :ref:`genindex` * :ref:`search` ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677036.0 pyfuse3-3.5.0/doc/html/_sources/install.rst.txt0000644000175000017500000000341115201072454021747 0ustar00nikrationikratio============== Installation ============== .. highlight:: sh Dependencies ============ As usual, Python dependencies are specified in :file:`pyproject.toml`. However, to build pyfuse3 you also need the following additional dependencies installed on your system: * libfuse_, version 3.3.0 or newer, including development headers (typically distributions provide them in a *libfuse3-devel* or *libfuse3-dev* package). * the `pkg-config`_ tool * the `attr`_ library * Python development headers (for example, the *python3-dev* or *python3-devel* package on many Linux distributions) * A C compiler Stable releases =============== To install a stable pyfuse3 release, ensure you have the non-Python dependencies installed and then use your favorite Python package manager to install pyfuse3 from PyPI (e.g. ``pip install pyfuse3``). Pyfuse release tarballs are signed with `signify `_. You can validate the signature with:: signify -V -m pyfuse3-A.B.C.tar.gz -p The public key needs to be retrieved from a trustworthy source for the first installation. Afterwards, the trust chain is self-sustaining: each release tarball contains the public key for the release in its ``signify/`` directory. Bugfix releases (``A.B.C``) will be signed by :file:`pyfuse-A.B.pub`. New major or minor releases (``A.B.0``) will be signed by :file:`pyfuse-next.pub`. Installing from Git / Developing pyfuse3 ======================================== Clone the pyfuse3_ repository and take a look at :file:`developer_notes/setup.md`. .. _libfuse: http://github.com/libfuse/libfuse .. _attr: http://savannah.nongnu.org/projects/attr/ .. _`pkg-config`: http://www.freedesktop.org/wiki/Software/pkg-config .. _pyfuse3: https://github.com/libfuse/pyfuse3/ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/doc/html/_sources/operations.rst.txt0000644000175000017500000000235115124221126022462 0ustar00nikrationikratio================== Request Handlers ================== (You can use the :ref:`genindex` to directly jump to a specific handler). .. currentmodule:: pyfuse3 .. autoclass:: Operations :members: .. attribute:: supports_dot_lookup = True If set, indicates that the filesystem supports lookup of the ``.`` and ``..`` entries. This is required if the file system will be shared over NFS. .. attribute:: enable_writeback_cache = True Enables write-caching in the kernel if available. This means that individual write request may be buffered and merged in the kernel before they are send to the filesystem. .. attribute:: enable_acl = False Enable ACL support. When enabled, the kernel will cache and have responsibility for enforcing ACLs. ACL will be stored as xattrs and passed to userspace, which is responsible for updating the ACLs in the filesystem, keeping the file mode in sync with the ACL, and ensuring inheritance of default ACLs when new filesystem nodes are created. Note that this requires that the file system is able to parse and interpret the xattr representation of ACLs. Enabling this feature implicitly turns on the ``default_permissions`` option. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/doc/html/_sources/util.rst.txt0000644000175000017500000000062715124221126021260 0ustar00nikrationikratio==================== Utility Functions ==================== The following functions do not necessarily translate to calls to the FUSE library. They are provided because they're potentially useful when implementing file systems in Python. .. currentmodule:: pyfuse3 .. autofunction:: setxattr .. autofunction:: getxattr .. autofunction:: listdir .. autofunction:: get_sup_groups .. autofunction:: syncfs ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1778686357.067098 pyfuse3-3.5.0/doc/html/_static/0000755000175000017500000000000015201114625016533 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778671783.0 pyfuse3-3.5.0/doc/html/_static/base-stemmer.js0000644000175000017500000002773215201060247021470 0ustar00nikrationikratio// @ts-check /**@constructor*/ BaseStemmer = function() { /** @protected */ this.current = ''; this.cursor = 0; this.limit = 0; this.limit_backward = 0; this.bra = 0; this.ket = 0; /** * @param {string} value */ this.setCurrent = function(value) { this.current = value; this.cursor = 0; this.limit = this.current.length; this.limit_backward = 0; this.bra = this.cursor; this.ket = this.limit; }; /** * @return {string} */ this.getCurrent = function() { return this.current; }; /** * @param {BaseStemmer} other */ this.copy_from = function(other) { /** @protected */ this.current = other.current; this.cursor = other.cursor; this.limit = other.limit; this.limit_backward = other.limit_backward; this.bra = other.bra; this.ket = other.ket; }; /** * @param {number[]} s * @param {number} min * @param {number} max * @return {boolean} */ this.in_grouping = function(s, min, max) { /** @protected */ if (this.cursor >= this.limit) return false; var ch = this.current.charCodeAt(this.cursor); if (ch > max || ch < min) return false; ch -= min; if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return false; this.cursor++; return true; }; /** * @param {number[]} s * @param {number} min * @param {number} max * @return {boolean} */ this.go_in_grouping = function(s, min, max) { /** @protected */ while (this.cursor < this.limit) { var ch = this.current.charCodeAt(this.cursor); if (ch > max || ch < min) return true; ch -= min; if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return true; this.cursor++; } return false; }; /** * @param {number[]} s * @param {number} min * @param {number} max * @return {boolean} */ this.in_grouping_b = function(s, min, max) { /** @protected */ if (this.cursor <= this.limit_backward) return false; var ch = this.current.charCodeAt(this.cursor - 1); if (ch > max || ch < min) return false; ch -= min; if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return false; this.cursor--; return true; }; /** * @param {number[]} s * @param {number} min * @param {number} max * @return {boolean} */ this.go_in_grouping_b = function(s, min, max) { /** @protected */ while (this.cursor > this.limit_backward) { var ch = this.current.charCodeAt(this.cursor - 1); if (ch > max || ch < min) return true; ch -= min; if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return true; this.cursor--; } return false; }; /** * @param {number[]} s * @param {number} min * @param {number} max * @return {boolean} */ this.out_grouping = function(s, min, max) { /** @protected */ if (this.cursor >= this.limit) return false; var ch = this.current.charCodeAt(this.cursor); if (ch > max || ch < min) { this.cursor++; return true; } ch -= min; if ((s[ch >>> 3] & (0X1 << (ch & 0x7))) == 0) { this.cursor++; return true; } return false; }; /** * @param {number[]} s * @param {number} min * @param {number} max * @return {boolean} */ this.go_out_grouping = function(s, min, max) { /** @protected */ while (this.cursor < this.limit) { var ch = this.current.charCodeAt(this.cursor); if (ch <= max && ch >= min) { ch -= min; if ((s[ch >>> 3] & (0X1 << (ch & 0x7))) != 0) { return true; } } this.cursor++; } return false; }; /** * @param {number[]} s * @param {number} min * @param {number} max * @return {boolean} */ this.out_grouping_b = function(s, min, max) { /** @protected */ if (this.cursor <= this.limit_backward) return false; var ch = this.current.charCodeAt(this.cursor - 1); if (ch > max || ch < min) { this.cursor--; return true; } ch -= min; if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) { this.cursor--; return true; } return false; }; /** * @param {number[]} s * @param {number} min * @param {number} max * @return {boolean} */ this.go_out_grouping_b = function(s, min, max) { /** @protected */ while (this.cursor > this.limit_backward) { var ch = this.current.charCodeAt(this.cursor - 1); if (ch <= max && ch >= min) { ch -= min; if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) != 0) { return true; } } this.cursor--; } return false; }; /** * @param {string} s * @return {boolean} */ this.eq_s = function(s) { /** @protected */ if (this.limit - this.cursor < s.length) return false; if (this.current.slice(this.cursor, this.cursor + s.length) != s) { return false; } this.cursor += s.length; return true; }; /** * @param {string} s * @return {boolean} */ this.eq_s_b = function(s) { /** @protected */ if (this.cursor - this.limit_backward < s.length) return false; if (this.current.slice(this.cursor - s.length, this.cursor) != s) { return false; } this.cursor -= s.length; return true; }; /** * @param {Among[]} v * @return {number} */ this.find_among = function(v) { /** @protected */ var i = 0; var j = v.length; var c = this.cursor; var l = this.limit; var common_i = 0; var common_j = 0; var first_key_inspected = false; while (true) { var k = i + ((j - i) >>> 1); var diff = 0; var common = common_i < common_j ? common_i : common_j; // smaller // w[0]: string, w[1]: substring_i, w[2]: result, w[3]: function (optional) var w = v[k]; var i2; for (i2 = common; i2 < w[0].length; i2++) { if (c + common == l) { diff = -1; break; } diff = this.current.charCodeAt(c + common) - w[0].charCodeAt(i2); if (diff != 0) break; common++; } if (diff < 0) { j = k; common_j = common; } else { i = k; common_i = common; } if (j - i <= 1) { if (i > 0) break; // v->s has been inspected if (j == i) break; // only one item in v // - but now we need to go round once more to get // v->s inspected. This looks messy, but is actually // the optimal approach. if (first_key_inspected) break; first_key_inspected = true; } } do { var w = v[i]; if (common_i >= w[0].length) { this.cursor = c + w[0].length; if (w.length < 4) return w[2]; var res = w[3](this); this.cursor = c + w[0].length; if (res) return w[2]; } i = w[1]; } while (i >= 0); return 0; }; // find_among_b is for backwards processing. Same comments apply /** * @param {Among[]} v * @return {number} */ this.find_among_b = function(v) { /** @protected */ var i = 0; var j = v.length var c = this.cursor; var lb = this.limit_backward; var common_i = 0; var common_j = 0; var first_key_inspected = false; while (true) { var k = i + ((j - i) >> 1); var diff = 0; var common = common_i < common_j ? common_i : common_j; var w = v[k]; var i2; for (i2 = w[0].length - 1 - common; i2 >= 0; i2--) { if (c - common == lb) { diff = -1; break; } diff = this.current.charCodeAt(c - 1 - common) - w[0].charCodeAt(i2); if (diff != 0) break; common++; } if (diff < 0) { j = k; common_j = common; } else { i = k; common_i = common; } if (j - i <= 1) { if (i > 0) break; if (j == i) break; if (first_key_inspected) break; first_key_inspected = true; } } do { var w = v[i]; if (common_i >= w[0].length) { this.cursor = c - w[0].length; if (w.length < 4) return w[2]; var res = w[3](this); this.cursor = c - w[0].length; if (res) return w[2]; } i = w[1]; } while (i >= 0); return 0; }; /* to replace chars between c_bra and c_ket in this.current by the * chars in s. */ /** * @param {number} c_bra * @param {number} c_ket * @param {string} s * @return {number} */ this.replace_s = function(c_bra, c_ket, s) { /** @protected */ var adjustment = s.length - (c_ket - c_bra); this.current = this.current.slice(0, c_bra) + s + this.current.slice(c_ket); this.limit += adjustment; if (this.cursor >= c_ket) this.cursor += adjustment; else if (this.cursor > c_bra) this.cursor = c_bra; return adjustment; }; /** * @return {boolean} */ this.slice_check = function() { /** @protected */ if (this.bra < 0 || this.bra > this.ket || this.ket > this.limit || this.limit > this.current.length) { return false; } return true; }; /** * @param {number} c_bra * @return {boolean} */ this.slice_from = function(s) { /** @protected */ var result = false; if (this.slice_check()) { this.replace_s(this.bra, this.ket, s); result = true; } return result; }; /** * @return {boolean} */ this.slice_del = function() { /** @protected */ return this.slice_from(""); }; /** * @param {number} c_bra * @param {number} c_ket * @param {string} s */ this.insert = function(c_bra, c_ket, s) { /** @protected */ var adjustment = this.replace_s(c_bra, c_ket, s); if (c_bra <= this.bra) this.bra += adjustment; if (c_bra <= this.ket) this.ket += adjustment; }; /** * @return {string} */ this.slice_to = function() { /** @protected */ var result = ''; if (this.slice_check()) { result = this.current.slice(this.bra, this.ket); } return result; }; /** * @return {string} */ this.assign_to = function() { /** @protected */ return this.current.slice(0, this.limit); }; }; ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/_static/basic.css0000644000175000017500000003453515201114623020336 0ustar00nikrationikratio/* * Sphinx stylesheet -- basic theme. */ /* -- main layout ----------------------------------------------------------- */ div.clearer { clear: both; } div.section::after { display: block; content: ''; clear: left; } /* -- relbar ---------------------------------------------------------------- */ div.related { width: 100%; font-size: 90%; } div.related h3 { display: none; } div.related ul { margin: 0; padding: 0 0 0 10px; list-style: none; } div.related li { display: inline; } div.related li.right { float: right; margin-right: 5px; } /* -- sidebar --------------------------------------------------------------- */ div.sphinxsidebarwrapper { padding: 10px 5px 0 10px; } div.sphinxsidebar { float: left; width: 230px; margin-left: -100%; font-size: 90%; word-wrap: break-word; overflow-wrap : break-word; } div.sphinxsidebar ul { list-style: none; } div.sphinxsidebar ul ul, div.sphinxsidebar ul.want-points { margin-left: 20px; list-style: square; } div.sphinxsidebar ul ul { margin-top: 0; margin-bottom: 0; } div.sphinxsidebar form { margin-top: 10px; } div.sphinxsidebar input { border: 1px solid #98dbcc; font-family: sans-serif; font-size: 1em; } div.sphinxsidebar #searchbox form.search { overflow: hidden; } div.sphinxsidebar #searchbox input[type="text"] { float: left; width: 80%; padding: 0.25em; box-sizing: border-box; } div.sphinxsidebar #searchbox input[type="submit"] { float: left; width: 20%; border-left: none; padding: 0.25em; box-sizing: border-box; } img { border: 0; max-width: 100%; } /* -- search page ----------------------------------------------------------- */ ul.search { margin-top: 10px; } ul.search li { padding: 5px 0; } ul.search li a { font-weight: bold; } ul.search li p.context { color: #888; margin: 2px 0 0 30px; text-align: left; } ul.keywordmatches li.goodmatch a { font-weight: bold; } /* -- index page ------------------------------------------------------------ */ table.contentstable { width: 90%; margin-left: auto; margin-right: auto; } table.contentstable p.biglink { line-height: 150%; } a.biglink { font-size: 1.3em; } span.linkdescr { font-style: italic; padding-top: 5px; font-size: 90%; } /* -- general index --------------------------------------------------------- */ table.indextable { width: 100%; } table.indextable td { text-align: left; vertical-align: top; } table.indextable ul { margin-top: 0; margin-bottom: 0; list-style-type: none; } table.indextable > tbody > tr > td > ul { padding-left: 0em; } table.indextable tr.pcap { height: 10px; } table.indextable tr.cap { margin-top: 10px; background-color: #f2f2f2; } img.toggler { margin-right: 3px; margin-top: 3px; cursor: pointer; } div.modindex-jumpbox { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; margin: 1em 0 1em 0; padding: 0.4em; } div.genindex-jumpbox { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; margin: 1em 0 1em 0; padding: 0.4em; } /* -- domain module index --------------------------------------------------- */ table.modindextable td { padding: 2px; border-collapse: collapse; } /* -- general body styles --------------------------------------------------- */ div.body { min-width: 360px; max-width: 800px; } div.body p, div.body dd, div.body li, div.body blockquote { -moz-hyphens: auto; -ms-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; } a.headerlink { visibility: hidden; } a:visited { color: #551A8B; } h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, h4:hover > a.headerlink, h5:hover > a.headerlink, h6:hover > a.headerlink, dt:hover > a.headerlink, caption:hover > a.headerlink, p.caption:hover > a.headerlink, div.code-block-caption:hover > a.headerlink { visibility: visible; } div.body p.caption { text-align: inherit; } div.body td { text-align: left; } .first { margin-top: 0 !important; } p.rubric { margin-top: 30px; font-weight: bold; } img.align-left, figure.align-left, .figure.align-left, object.align-left { clear: left; float: left; margin-right: 1em; } img.align-right, figure.align-right, .figure.align-right, object.align-right { clear: right; float: right; margin-left: 1em; } img.align-center, figure.align-center, .figure.align-center, object.align-center { display: block; margin-left: auto; margin-right: auto; } img.align-default, figure.align-default, .figure.align-default { display: block; margin-left: auto; margin-right: auto; } .align-left { text-align: left; } .align-center { text-align: center; } .align-default { text-align: center; } .align-right { text-align: right; } /* -- sidebars -------------------------------------------------------------- */ div.sidebar, aside.sidebar { margin: 0 0 0.5em 1em; border: 1px solid #ddb; padding: 7px; background-color: #ffe; width: 40%; float: right; clear: right; overflow-x: auto; } p.sidebar-title { font-weight: bold; } nav.contents, aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ nav.contents, aside.topic, div.topic { border: 1px solid #ccc; padding: 7px; margin: 10px 0 10px 0; } p.topic-title { font-size: 1.1em; font-weight: bold; margin-top: 10px; } /* -- admonitions ----------------------------------------------------------- */ div.admonition { margin-top: 10px; margin-bottom: 10px; padding: 7px; } div.admonition dt { font-weight: bold; } p.admonition-title { margin: 0px 10px 5px 0px; font-weight: bold; } div.body p.centered { text-align: center; margin-top: 25px; } /* -- content of sidebars/topics/admonitions -------------------------------- */ div.sidebar > :last-child, aside.sidebar > :last-child, nav.contents > :last-child, aside.topic > :last-child, div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; } div.sidebar::after, aside.sidebar::after, nav.contents::after, aside.topic::after, div.topic::after, div.admonition::after, blockquote::after { display: block; content: ''; clear: both; } /* -- tables ---------------------------------------------------------------- */ table.docutils { margin-top: 10px; margin-bottom: 10px; border: 0; border-collapse: collapse; } table.align-center { margin-left: auto; margin-right: auto; } table.align-default { margin-left: auto; margin-right: auto; } table caption span.caption-number { font-style: italic; } table caption span.caption-text { } table.docutils td, table.docutils th { padding: 1px 8px 1px 5px; border-top: 0; border-left: 0; border-right: 0; border-bottom: 1px solid #aaa; } th { text-align: left; padding-right: 5px; } table.citation { border-left: solid 1px gray; margin-left: 1px; } table.citation td { border-bottom: none; } th > :first-child, td > :first-child { margin-top: 0px; } th > :last-child, td > :last-child { margin-bottom: 0px; } /* -- figures --------------------------------------------------------------- */ div.figure, figure { margin: 0.5em; padding: 0.5em; } div.figure p.caption, figcaption { padding: 0.3em; } div.figure p.caption span.caption-number, figcaption span.caption-number { font-style: italic; } div.figure p.caption span.caption-text, figcaption span.caption-text { } /* -- field list styles ----------------------------------------------------- */ table.field-list td, table.field-list th { border: 0 !important; } .field-list ul { margin: 0; padding-left: 1em; } .field-list p { margin: 0; } .field-name { -moz-hyphens: manual; -ms-hyphens: manual; -webkit-hyphens: manual; hyphens: manual; } /* -- hlist styles ---------------------------------------------------------- */ table.hlist { margin: 1em 0; } table.hlist td { vertical-align: top; } /* -- object description styles --------------------------------------------- */ .sig { font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; } .sig-name, code.descname { background-color: transparent; font-weight: bold; } .sig-name { font-size: 1.1em; } code.descname { font-size: 1.2em; } .sig-prename, code.descclassname { background-color: transparent; } .optional { font-size: 1.3em; } .sig-paren { font-size: larger; } .sig-param.n { font-style: italic; } /* C++ specific styling */ .sig-inline.c-texpr, .sig-inline.cpp-texpr { font-family: unset; } .sig.c .k, .sig.c .kt, .sig.cpp .k, .sig.cpp .kt { color: #0033B3; } .sig.c .m, .sig.cpp .m { color: #1750EB; } .sig.c .s, .sig.c .sc, .sig.cpp .s, .sig.cpp .sc { color: #067D17; } /* -- other body styles ----------------------------------------------------- */ ol.arabic { list-style: decimal; } ol.loweralpha { list-style: lower-alpha; } ol.upperalpha { list-style: upper-alpha; } ol.lowerroman { list-style: lower-roman; } ol.upperroman { list-style: upper-roman; } :not(li) > ol > li:first-child > :first-child, :not(li) > ul > li:first-child > :first-child { margin-top: 0px; } :not(li) > ol > li:last-child > :last-child, :not(li) > ul > li:last-child > :last-child { margin-bottom: 0px; } ol.simple ol p, ol.simple ul p, ul.simple ol p, ul.simple ul p { margin-top: 0; } ol.simple > li:not(:first-child) > p, ul.simple > li:not(:first-child) > p { margin-top: 0; } ol.simple p, ul.simple p { margin-bottom: 0; } aside.footnote > span, div.citation > span { float: left; } aside.footnote > span:last-of-type, div.citation > span:last-of-type { padding-right: 0.5em; } aside.footnote > p { margin-left: 2em; } div.citation > p { margin-left: 4em; } aside.footnote > p:last-of-type, div.citation > p:last-of-type { margin-bottom: 0em; } aside.footnote > p:last-of-type:after, div.citation > p:last-of-type:after { content: ""; clear: both; } dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; } dl.field-list > dt { font-weight: bold; word-break: break-word; padding-left: 0.5em; padding-right: 5px; } dl.field-list > dd { padding-left: 0.5em; margin-top: 0em; margin-left: 0em; margin-bottom: 0em; } dl { margin-bottom: 15px; } dd > :first-child { margin-top: 0px; } dd ul, dd table { margin-bottom: 10px; } dd { margin-top: 3px; margin-bottom: 10px; margin-left: 30px; } .sig dd { margin-top: 0px; margin-bottom: 0px; } .sig dl { margin-top: 0px; margin-bottom: 0px; } dl > dd:last-child, dl > dd:last-child > :last-child { margin-bottom: 0; } dt:target, span.highlighted { background-color: #fbe54e; } rect.highlighted { fill: #fbe54e; } dl.glossary dt { font-weight: bold; font-size: 1.1em; } .versionmodified { font-style: italic; } .system-message { background-color: #fda; padding: 5px; border: 3px solid red; } .footnote:target { background-color: #ffa; } .line-block { display: block; margin-top: 1em; margin-bottom: 1em; } .line-block .line-block { margin-top: 0; margin-bottom: 0; margin-left: 1.5em; } .guilabel, .menuselection { font-family: sans-serif; } .accelerator { text-decoration: underline; } .classifier { font-style: oblique; } .classifier:before { font-style: normal; margin: 0 0.5em; content: ":"; display: inline-block; } abbr, acronym { border-bottom: dotted 1px; cursor: help; } /* -- code displays --------------------------------------------------------- */ pre { overflow: auto; overflow-y: hidden; /* fixes display issues on Chrome browsers */ } pre, div[class*="highlight-"] { clear: both; } span.pre { -moz-hyphens: none; -ms-hyphens: none; -webkit-hyphens: none; hyphens: none; white-space: nowrap; } div[class*="highlight-"] { margin: 1em 0; } td.linenos pre { border: 0; background-color: transparent; color: #aaa; } table.highlighttable { display: block; } table.highlighttable tbody { display: block; } table.highlighttable tr { display: flex; } table.highlighttable td { margin: 0; padding: 0; } table.highlighttable td.linenos { padding-right: 0.5em; } table.highlighttable td.code { flex: 1; overflow: hidden; } .highlight .hll { display: block; } div.highlight pre, table.highlighttable pre { margin: 0; } div.code-block-caption + div { margin-top: 0; } div.code-block-caption { margin-top: 1em; padding: 2px 5px; font-size: small; } div.code-block-caption code { background-color: transparent; } table.highlighttable td.linenos, span.linenos, div.highlight span.gp { /* gp: Generic.Prompt */ user-select: none; -webkit-user-select: text; /* Safari fallback only */ -webkit-user-select: none; /* Chrome/Safari */ -moz-user-select: none; /* Firefox */ -ms-user-select: none; /* IE10+ */ } div.code-block-caption span.caption-number { padding: 0.1em 0.3em; font-style: italic; } div.code-block-caption span.caption-text { } div.literal-block-wrapper { margin: 1em 0; } code.xref, a code { background-color: transparent; font-weight: bold; } h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { background-color: transparent; } .viewcode-link { float: right; } .viewcode-back { float: right; font-family: sans-serif; } div.viewcode-block:target { margin: -1px -10px; padding: 0 10px; } /* -- math display ---------------------------------------------------------- */ img.math { vertical-align: middle; } div.body div.math p { text-align: center; } span.eqno { float: right; } span.eqno a.headerlink { position: absolute; z-index: 1; } div.math:hover a.headerlink { visibility: visible; } /* -- printout stylesheet --------------------------------------------------- */ @media print { div.document, div.documentwrapper, div.bodywrapper { margin: 0 !important; width: 100%; } div.sphinxsidebar, div.related, div.footer, #top-link { display: none; } }././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/_static/classic.css0000644000175000017500000001006415201114623020665 0ustar00nikrationikratio/* * Sphinx stylesheet -- classic theme. */ @import url("basic.css"); /* -- page layout ----------------------------------------------------------- */ html { /* CSS hack for macOS's scrollbar (see #1125) */ background-color: #FFFFFF; } body { font-family: sans-serif; font-size: 100%; background-color: #11303d; color: #000; margin: 0; padding: 0; } div.document { display: flex; background-color: #1c4e63; } div.documentwrapper { float: left; width: 100%; } div.bodywrapper { margin: 0 0 0 230px; } div.body { background-color: #ffffff; color: #000000; padding: 0 20px 30px 20px; } div.footer { color: #ffffff; width: 100%; padding: 9px 0 9px 0; text-align: center; font-size: 75%; } div.footer a { color: #ffffff; text-decoration: underline; } div.related { background-color: #133f52; line-height: 30px; color: #ffffff; } div.related a { color: #ffffff; } div.sphinxsidebar { } div.sphinxsidebar h3 { font-family: 'Trebuchet MS', sans-serif; color: #ffffff; font-size: 1.4em; font-weight: normal; margin: 0; padding: 0; } div.sphinxsidebar h3 a { color: #ffffff; } div.sphinxsidebar h4 { font-family: 'Trebuchet MS', sans-serif; color: #ffffff; font-size: 1.3em; font-weight: normal; margin: 5px 0 0 0; padding: 0; } div.sphinxsidebar p { color: #ffffff; } div.sphinxsidebar p.topless { margin: 5px 10px 10px 10px; } div.sphinxsidebar ul { margin: 10px; padding: 0; color: #ffffff; } div.sphinxsidebar a { color: #98dbcc; } div.sphinxsidebar input { border: 1px solid #98dbcc; font-family: sans-serif; font-size: 1em; } /* -- hyperlink styles ------------------------------------------------------ */ a { color: #355f7c; text-decoration: none; } a:visited { color: #551a8b; text-decoration: none; } a:hover { text-decoration: underline; } /* -- body styles ----------------------------------------------------------- */ div.body h1, div.body h2, div.body h3, div.body h4, div.body h5, div.body h6 { font-family: 'Trebuchet MS', sans-serif; background-color: #f2f2f2; font-weight: normal; color: #20435c; border-bottom: 1px solid #ccc; margin: 20px -20px 10px -20px; padding: 3px 0 3px 10px; } div.body h1 { margin-top: 0; font-size: 200%; } div.body h2 { font-size: 160%; } div.body h3 { font-size: 140%; } div.body h4 { font-size: 120%; } div.body h5 { font-size: 110%; } div.body h6 { font-size: 100%; } a.headerlink { color: #c60f0f; font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; } a.headerlink:hover { background-color: #c60f0f; color: white; } div.body p, div.body dd, div.body li, div.body blockquote { text-align: justify; line-height: 130%; } div.admonition p.admonition-title + p { display: inline; } div.admonition p { margin-bottom: 5px; } div.admonition pre { margin-bottom: 5px; } div.admonition ul, div.admonition ol { margin-bottom: 5px; } div.note { background-color: #eee; border: 1px solid #ccc; } div.seealso { background-color: #ffc; border: 1px solid #ff6; } nav.contents, aside.topic, div.topic { background-color: #eee; } div.warning { background-color: #ffe4e4; border: 1px solid #f66; } p.admonition-title { display: inline; } p.admonition-title:after { content: ":"; } pre { padding: 5px; background-color: unset; color: unset; line-height: 120%; border: 1px solid #ac9; border-left: none; border-right: none; } code { background-color: #ecf0f3; padding: 0 1px 0 1px; font-size: 0.95em; } th, dl.field-list > dt { background-color: #ede; } .warning code { background: #efc2c2; } .note code { background: #d6d6d6; } .viewcode-back { font-family: sans-serif; } div.viewcode-block:target { background-color: #f4debf; border-top: 1px solid #ac9; border-bottom: 1px solid #ac9; } div.code-block-caption { color: #efefef; background-color: #1c4e63; }././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778671783.0 pyfuse3-3.5.0/doc/html/_static/default.css0000644000175000017500000000003415201060247020666 0ustar00nikrationikratio@import url("classic.css"); ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778671783.0 pyfuse3-3.5.0/doc/html/_static/doctools.js0000644000175000017500000001035415201060247020722 0ustar00nikrationikratio/* * Base JavaScript utilities for all Sphinx HTML documentation. */ "use strict"; const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ "TEXTAREA", "INPUT", "SELECT", "BUTTON", ]); const _ready = (callback) => { if (document.readyState !== "loading") { callback(); } else { document.addEventListener("DOMContentLoaded", callback); } }; /** * Small JavaScript module for the documentation. */ const Documentation = { init: () => { Documentation.initDomainIndexTable(); Documentation.initOnKeyListeners(); }, /** * i18n support */ TRANSLATIONS: {}, PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) gettext: (string) => { const translated = Documentation.TRANSLATIONS[string]; switch (typeof translated) { case "undefined": return string; // no translation case "string": return translated; // translation exists default: return translated[0]; // (singular, plural) translation tuple exists } }, ngettext: (singular, plural, n) => { const translated = Documentation.TRANSLATIONS[singular]; if (typeof translated !== "undefined") return translated[Documentation.PLURAL_EXPR(n)]; return n === 1 ? singular : plural; }, addTranslations: (catalog) => { Object.assign(Documentation.TRANSLATIONS, catalog.messages); Documentation.PLURAL_EXPR = new Function( "n", `return (${catalog.plural_expr})`, ); Documentation.LOCALE = catalog.locale; }, /** * helper function to focus on search bar */ focusSearchBar: () => { document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** * Initialise the domain index toggle buttons */ initDomainIndexTable: () => { const toggler = (el) => { const idNumber = el.id.substr(7); const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); if (el.src.substr(-9) === "minus.png") { el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; toggledRows.forEach((el) => (el.style.display = "none")); } else { el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; toggledRows.forEach((el) => (el.style.display = "")); } }; const togglerElements = document.querySelectorAll("img.toggler"); togglerElements.forEach((el) => el.addEventListener("click", (event) => toggler(event.currentTarget)), ); togglerElements.forEach((el) => (el.style.display = "")); if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, initOnKeyListeners: () => { // only install a listener if it is really needed if ( !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS ) return; document.addEventListener("keydown", (event) => { // bail for input elements if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; // bail with special keys if (event.altKey || event.ctrlKey || event.metaKey) return; if (!event.shiftKey) { switch (event.key) { case "ArrowLeft": if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; const prevLink = document.querySelector('link[rel="prev"]'); if (prevLink && prevLink.href) { window.location.href = prevLink.href; event.preventDefault(); } break; case "ArrowRight": if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; const nextLink = document.querySelector('link[rel="next"]'); if (nextLink && nextLink.href) { window.location.href = nextLink.href; event.preventDefault(); } break; } } // some keyboard layouts may need Shift to get / switch (event.key) { case "/": if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; Documentation.focusSearchBar(); event.preventDefault(); } }); }, }; // quick alias for translations const _ = Documentation.gettext; _ready(Documentation.init); ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/_static/documentation_options.js0000644000175000017500000000054315201114623023515 0ustar00nikrationikratioconst DOCUMENTATION_OPTIONS = { VERSION: '3.4.3.dev19+g57a14ee07.d20260509', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', FILE_SUFFIX: '.html', LINK_SUFFIX: '.html', HAS_SOURCE: true, SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, ENABLE_SEARCH_SHORTCUTS: true, };././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778671783.0 pyfuse3-3.5.0/doc/html/_static/english-stemmer.js0000644000175000017500000007360715201060247022211 0ustar00nikrationikratio// Generated from english.sbl by Snowball 3.0.1 - https://snowballstem.org/ /**@constructor*/ var EnglishStemmer = function() { var base = new BaseStemmer(); /** @const */ var a_0 = [ ["arsen", -1, -1], ["commun", -1, -1], ["emerg", -1, -1], ["gener", -1, -1], ["later", -1, -1], ["organ", -1, -1], ["past", -1, -1], ["univers", -1, -1] ]; /** @const */ var a_1 = [ ["'", -1, 1], ["'s'", 0, 1], ["'s", -1, 1] ]; /** @const */ var a_2 = [ ["ied", -1, 2], ["s", -1, 3], ["ies", 1, 2], ["sses", 1, 1], ["ss", 1, -1], ["us", 1, -1] ]; /** @const */ var a_3 = [ ["succ", -1, 1], ["proc", -1, 1], ["exc", -1, 1] ]; /** @const */ var a_4 = [ ["even", -1, 2], ["cann", -1, 2], ["inn", -1, 2], ["earr", -1, 2], ["herr", -1, 2], ["out", -1, 2], ["y", -1, 1] ]; /** @const */ var a_5 = [ ["", -1, -1], ["ed", 0, 2], ["eed", 1, 1], ["ing", 0, 3], ["edly", 0, 2], ["eedly", 4, 1], ["ingly", 0, 2] ]; /** @const */ var a_6 = [ ["", -1, 3], ["bb", 0, 2], ["dd", 0, 2], ["ff", 0, 2], ["gg", 0, 2], ["bl", 0, 1], ["mm", 0, 2], ["nn", 0, 2], ["pp", 0, 2], ["rr", 0, 2], ["at", 0, 1], ["tt", 0, 2], ["iz", 0, 1] ]; /** @const */ var a_7 = [ ["anci", -1, 3], ["enci", -1, 2], ["ogi", -1, 14], ["li", -1, 16], ["bli", 3, 12], ["abli", 4, 4], ["alli", 3, 8], ["fulli", 3, 9], ["lessli", 3, 15], ["ousli", 3, 10], ["entli", 3, 5], ["aliti", -1, 8], ["biliti", -1, 12], ["iviti", -1, 11], ["tional", -1, 1], ["ational", 14, 7], ["alism", -1, 8], ["ation", -1, 7], ["ization", 17, 6], ["izer", -1, 6], ["ator", -1, 7], ["iveness", -1, 11], ["fulness", -1, 9], ["ousness", -1, 10], ["ogist", -1, 13] ]; /** @const */ var a_8 = [ ["icate", -1, 4], ["ative", -1, 6], ["alize", -1, 3], ["iciti", -1, 4], ["ical", -1, 4], ["tional", -1, 1], ["ational", 5, 2], ["ful", -1, 5], ["ness", -1, 5] ]; /** @const */ var a_9 = [ ["ic", -1, 1], ["ance", -1, 1], ["ence", -1, 1], ["able", -1, 1], ["ible", -1, 1], ["ate", -1, 1], ["ive", -1, 1], ["ize", -1, 1], ["iti", -1, 1], ["al", -1, 1], ["ism", -1, 1], ["ion", -1, 2], ["er", -1, 1], ["ous", -1, 1], ["ant", -1, 1], ["ent", -1, 1], ["ment", 15, 1], ["ement", 16, 1] ]; /** @const */ var a_10 = [ ["e", -1, 1], ["l", -1, 2] ]; /** @const */ var a_11 = [ ["andes", -1, -1], ["atlas", -1, -1], ["bias", -1, -1], ["cosmos", -1, -1], ["early", -1, 5], ["gently", -1, 3], ["howe", -1, -1], ["idly", -1, 2], ["news", -1, -1], ["only", -1, 6], ["singly", -1, 7], ["skies", -1, 1], ["sky", -1, -1], ["ugly", -1, 4] ]; /** @const */ var /** Array */ g_aeo = [17, 64]; /** @const */ var /** Array */ g_v = [17, 65, 16, 1]; /** @const */ var /** Array */ g_v_WXY = [1, 17, 65, 208, 1]; /** @const */ var /** Array */ g_valid_LI = [55, 141, 2]; var /** boolean */ B_Y_found = false; var /** number */ I_p2 = 0; var /** number */ I_p1 = 0; /** @return {boolean} */ function r_prelude() { B_Y_found = false; /** @const */ var /** number */ v_1 = base.cursor; lab0: { base.bra = base.cursor; if (!(base.eq_s("'"))) { break lab0; } base.ket = base.cursor; if (!base.slice_del()) { return false; } } base.cursor = v_1; /** @const */ var /** number */ v_2 = base.cursor; lab1: { base.bra = base.cursor; if (!(base.eq_s("y"))) { break lab1; } base.ket = base.cursor; if (!base.slice_from("Y")) { return false; } B_Y_found = true; } base.cursor = v_2; /** @const */ var /** number */ v_3 = base.cursor; lab2: { while(true) { /** @const */ var /** number */ v_4 = base.cursor; lab3: { golab4: while(true) { /** @const */ var /** number */ v_5 = base.cursor; lab5: { if (!(base.in_grouping(g_v, 97, 121))) { break lab5; } base.bra = base.cursor; if (!(base.eq_s("y"))) { break lab5; } base.ket = base.cursor; base.cursor = v_5; break golab4; } base.cursor = v_5; if (base.cursor >= base.limit) { break lab3; } base.cursor++; } if (!base.slice_from("Y")) { return false; } B_Y_found = true; continue; } base.cursor = v_4; break; } } base.cursor = v_3; return true; }; /** @return {boolean} */ function r_mark_regions() { I_p1 = base.limit; I_p2 = base.limit; /** @const */ var /** number */ v_1 = base.cursor; lab0: { lab1: { /** @const */ var /** number */ v_2 = base.cursor; lab2: { if (base.find_among(a_0) == 0) { break lab2; } break lab1; } base.cursor = v_2; if (!base.go_out_grouping(g_v, 97, 121)) { break lab0; } base.cursor++; if (!base.go_in_grouping(g_v, 97, 121)) { break lab0; } base.cursor++; } I_p1 = base.cursor; if (!base.go_out_grouping(g_v, 97, 121)) { break lab0; } base.cursor++; if (!base.go_in_grouping(g_v, 97, 121)) { break lab0; } base.cursor++; I_p2 = base.cursor; } base.cursor = v_1; return true; }; /** @return {boolean} */ function r_shortv() { lab0: { /** @const */ var /** number */ v_1 = base.limit - base.cursor; lab1: { if (!(base.out_grouping_b(g_v_WXY, 89, 121))) { break lab1; } if (!(base.in_grouping_b(g_v, 97, 121))) { break lab1; } if (!(base.out_grouping_b(g_v, 97, 121))) { break lab1; } break lab0; } base.cursor = base.limit - v_1; lab2: { if (!(base.out_grouping_b(g_v, 97, 121))) { break lab2; } if (!(base.in_grouping_b(g_v, 97, 121))) { break lab2; } if (base.cursor > base.limit_backward) { break lab2; } break lab0; } base.cursor = base.limit - v_1; if (!(base.eq_s_b("past"))) { return false; } } return true; }; /** @return {boolean} */ function r_R1() { return I_p1 <= base.cursor; }; /** @return {boolean} */ function r_R2() { return I_p2 <= base.cursor; }; /** @return {boolean} */ function r_Step_1a() { var /** number */ among_var; /** @const */ var /** number */ v_1 = base.limit - base.cursor; lab0: { base.ket = base.cursor; if (base.find_among_b(a_1) == 0) { base.cursor = base.limit - v_1; break lab0; } base.bra = base.cursor; if (!base.slice_del()) { return false; } } base.ket = base.cursor; among_var = base.find_among_b(a_2); if (among_var == 0) { return false; } base.bra = base.cursor; switch (among_var) { case 1: if (!base.slice_from("ss")) { return false; } break; case 2: lab1: { /** @const */ var /** number */ v_2 = base.limit - base.cursor; lab2: { { /** @const */ var /** number */ c1 = base.cursor - 2; if (c1 < base.limit_backward) { break lab2; } base.cursor = c1; } if (!base.slice_from("i")) { return false; } break lab1; } base.cursor = base.limit - v_2; if (!base.slice_from("ie")) { return false; } } break; case 3: if (base.cursor <= base.limit_backward) { return false; } base.cursor--; if (!base.go_out_grouping_b(g_v, 97, 121)) { return false; } base.cursor--; if (!base.slice_del()) { return false; } break; } return true; }; /** @return {boolean} */ function r_Step_1b() { var /** number */ among_var; base.ket = base.cursor; among_var = base.find_among_b(a_5); base.bra = base.cursor; lab0: { /** @const */ var /** number */ v_1 = base.limit - base.cursor; lab1: { switch (among_var) { case 1: /** @const */ var /** number */ v_2 = base.limit - base.cursor; lab2: { lab3: { /** @const */ var /** number */ v_3 = base.limit - base.cursor; lab4: { if (base.find_among_b(a_3) == 0) { break lab4; } if (base.cursor > base.limit_backward) { break lab4; } break lab3; } base.cursor = base.limit - v_3; if (!r_R1()) { break lab2; } if (!base.slice_from("ee")) { return false; } } } base.cursor = base.limit - v_2; break; case 2: break lab1; case 3: among_var = base.find_among_b(a_4); if (among_var == 0) { break lab1; } switch (among_var) { case 1: /** @const */ var /** number */ v_4 = base.limit - base.cursor; if (!(base.out_grouping_b(g_v, 97, 121))) { break lab1; } if (base.cursor > base.limit_backward) { break lab1; } base.cursor = base.limit - v_4; base.bra = base.cursor; if (!base.slice_from("ie")) { return false; } break; case 2: if (base.cursor > base.limit_backward) { break lab1; } break; } break; } break lab0; } base.cursor = base.limit - v_1; /** @const */ var /** number */ v_5 = base.limit - base.cursor; if (!base.go_out_grouping_b(g_v, 97, 121)) { return false; } base.cursor--; base.cursor = base.limit - v_5; if (!base.slice_del()) { return false; } base.ket = base.cursor; base.bra = base.cursor; /** @const */ var /** number */ v_6 = base.limit - base.cursor; among_var = base.find_among_b(a_6); switch (among_var) { case 1: if (!base.slice_from("e")) { return false; } return false; case 2: { /** @const */ var /** number */ v_7 = base.limit - base.cursor; lab5: { if (!(base.in_grouping_b(g_aeo, 97, 111))) { break lab5; } if (base.cursor > base.limit_backward) { break lab5; } return false; } base.cursor = base.limit - v_7; } break; case 3: if (base.cursor != I_p1) { return false; } /** @const */ var /** number */ v_8 = base.limit - base.cursor; if (!r_shortv()) { return false; } base.cursor = base.limit - v_8; if (!base.slice_from("e")) { return false; } return false; } base.cursor = base.limit - v_6; base.ket = base.cursor; if (base.cursor <= base.limit_backward) { return false; } base.cursor--; base.bra = base.cursor; if (!base.slice_del()) { return false; } } return true; }; /** @return {boolean} */ function r_Step_1c() { base.ket = base.cursor; lab0: { /** @const */ var /** number */ v_1 = base.limit - base.cursor; lab1: { if (!(base.eq_s_b("y"))) { break lab1; } break lab0; } base.cursor = base.limit - v_1; if (!(base.eq_s_b("Y"))) { return false; } } base.bra = base.cursor; if (!(base.out_grouping_b(g_v, 97, 121))) { return false; } lab2: { if (base.cursor > base.limit_backward) { break lab2; } return false; } if (!base.slice_from("i")) { return false; } return true; }; /** @return {boolean} */ function r_Step_2() { var /** number */ among_var; base.ket = base.cursor; among_var = base.find_among_b(a_7); if (among_var == 0) { return false; } base.bra = base.cursor; if (!r_R1()) { return false; } switch (among_var) { case 1: if (!base.slice_from("tion")) { return false; } break; case 2: if (!base.slice_from("ence")) { return false; } break; case 3: if (!base.slice_from("ance")) { return false; } break; case 4: if (!base.slice_from("able")) { return false; } break; case 5: if (!base.slice_from("ent")) { return false; } break; case 6: if (!base.slice_from("ize")) { return false; } break; case 7: if (!base.slice_from("ate")) { return false; } break; case 8: if (!base.slice_from("al")) { return false; } break; case 9: if (!base.slice_from("ful")) { return false; } break; case 10: if (!base.slice_from("ous")) { return false; } break; case 11: if (!base.slice_from("ive")) { return false; } break; case 12: if (!base.slice_from("ble")) { return false; } break; case 13: if (!base.slice_from("og")) { return false; } break; case 14: if (!(base.eq_s_b("l"))) { return false; } if (!base.slice_from("og")) { return false; } break; case 15: if (!base.slice_from("less")) { return false; } break; case 16: if (!(base.in_grouping_b(g_valid_LI, 99, 116))) { return false; } if (!base.slice_del()) { return false; } break; } return true; }; /** @return {boolean} */ function r_Step_3() { var /** number */ among_var; base.ket = base.cursor; among_var = base.find_among_b(a_8); if (among_var == 0) { return false; } base.bra = base.cursor; if (!r_R1()) { return false; } switch (among_var) { case 1: if (!base.slice_from("tion")) { return false; } break; case 2: if (!base.slice_from("ate")) { return false; } break; case 3: if (!base.slice_from("al")) { return false; } break; case 4: if (!base.slice_from("ic")) { return false; } break; case 5: if (!base.slice_del()) { return false; } break; case 6: if (!r_R2()) { return false; } if (!base.slice_del()) { return false; } break; } return true; }; /** @return {boolean} */ function r_Step_4() { var /** number */ among_var; base.ket = base.cursor; among_var = base.find_among_b(a_9); if (among_var == 0) { return false; } base.bra = base.cursor; if (!r_R2()) { return false; } switch (among_var) { case 1: if (!base.slice_del()) { return false; } break; case 2: lab0: { /** @const */ var /** number */ v_1 = base.limit - base.cursor; lab1: { if (!(base.eq_s_b("s"))) { break lab1; } break lab0; } base.cursor = base.limit - v_1; if (!(base.eq_s_b("t"))) { return false; } } if (!base.slice_del()) { return false; } break; } return true; }; /** @return {boolean} */ function r_Step_5() { var /** number */ among_var; base.ket = base.cursor; among_var = base.find_among_b(a_10); if (among_var == 0) { return false; } base.bra = base.cursor; switch (among_var) { case 1: lab0: { lab1: { if (!r_R2()) { break lab1; } break lab0; } if (!r_R1()) { return false; } { /** @const */ var /** number */ v_1 = base.limit - base.cursor; lab2: { if (!r_shortv()) { break lab2; } return false; } base.cursor = base.limit - v_1; } } if (!base.slice_del()) { return false; } break; case 2: if (!r_R2()) { return false; } if (!(base.eq_s_b("l"))) { return false; } if (!base.slice_del()) { return false; } break; } return true; }; /** @return {boolean} */ function r_exception1() { var /** number */ among_var; base.bra = base.cursor; among_var = base.find_among(a_11); if (among_var == 0) { return false; } base.ket = base.cursor; if (base.cursor < base.limit) { return false; } switch (among_var) { case 1: if (!base.slice_from("sky")) { return false; } break; case 2: if (!base.slice_from("idl")) { return false; } break; case 3: if (!base.slice_from("gentl")) { return false; } break; case 4: if (!base.slice_from("ugli")) { return false; } break; case 5: if (!base.slice_from("earli")) { return false; } break; case 6: if (!base.slice_from("onli")) { return false; } break; case 7: if (!base.slice_from("singl")) { return false; } break; } return true; }; /** @return {boolean} */ function r_postlude() { if (!B_Y_found) { return false; } while(true) { /** @const */ var /** number */ v_1 = base.cursor; lab0: { golab1: while(true) { /** @const */ var /** number */ v_2 = base.cursor; lab2: { base.bra = base.cursor; if (!(base.eq_s("Y"))) { break lab2; } base.ket = base.cursor; base.cursor = v_2; break golab1; } base.cursor = v_2; if (base.cursor >= base.limit) { break lab0; } base.cursor++; } if (!base.slice_from("y")) { return false; } continue; } base.cursor = v_1; break; } return true; }; this.stem = /** @return {boolean} */ function() { lab0: { /** @const */ var /** number */ v_1 = base.cursor; lab1: { if (!r_exception1()) { break lab1; } break lab0; } base.cursor = v_1; lab2: { { /** @const */ var /** number */ v_2 = base.cursor; lab3: { { /** @const */ var /** number */ c1 = base.cursor + 3; if (c1 > base.limit) { break lab3; } base.cursor = c1; } break lab2; } base.cursor = v_2; } break lab0; } base.cursor = v_1; r_prelude(); r_mark_regions(); base.limit_backward = base.cursor; base.cursor = base.limit; /** @const */ var /** number */ v_3 = base.limit - base.cursor; r_Step_1a(); base.cursor = base.limit - v_3; /** @const */ var /** number */ v_4 = base.limit - base.cursor; r_Step_1b(); base.cursor = base.limit - v_4; /** @const */ var /** number */ v_5 = base.limit - base.cursor; r_Step_1c(); base.cursor = base.limit - v_5; /** @const */ var /** number */ v_6 = base.limit - base.cursor; r_Step_2(); base.cursor = base.limit - v_6; /** @const */ var /** number */ v_7 = base.limit - base.cursor; r_Step_3(); base.cursor = base.limit - v_7; /** @const */ var /** number */ v_8 = base.limit - base.cursor; r_Step_4(); base.cursor = base.limit - v_8; /** @const */ var /** number */ v_9 = base.limit - base.cursor; r_Step_5(); base.cursor = base.limit - v_9; base.cursor = base.limit_backward; /** @const */ var /** number */ v_10 = base.cursor; r_postlude(); base.cursor = v_10; } return true; }; /**@return{string}*/ this['stemWord'] = function(/**string*/word) { base.setCurrent(word); this.stem(); return base.getCurrent(); }; }; ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778671783.0 pyfuse3-3.5.0/doc/html/_static/file.png0000644000175000017500000000043615201060247020163 0ustar00nikrationikratio‰PNG  IHDRóÿaåIDATx­“ƒR…÷){…l× Û¶ÙfÛ=@®å œ:¿¹¾3ßú~箄þþþ¹òòrX$AðX-öD ~ñýý òóó€Ç‰(ŠP%¾€�8<<9:: ãøøØP•êO&’$é Ø�l~‚X÷ìã�ûæ&ȽÖEWÀ^4µwQ}ÂÎö^ü˜Ô÷Í£¾ ‹¨iê©ïš0/H/é@F)éDzq+’ój�”[žSU5¾€Ìèhš¦/ð¿oY– G&Lfs|�£¡»»{Íêßøß3%¸U+S°é`AFÒIEND®B`‚././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/_static/language_data.js0000644000175000017500000003242515201114623021651 0ustar00nikrationikratio/* * This script contains the language-specific data used by searchtools.js, * namely the set of stopwords, stemmer, scorer and splitter. */ const stopwords = new Set(["a", "about", "above", "after", "again", "against", "all", "am", "an", "and", "any", "are", "aren't", "as", "at", "be", "because", "been", "before", "being", "below", "between", "both", "but", "by", "can't", "cannot", "could", "couldn't", "did", "didn't", "do", "does", "doesn't", "doing", "don't", "down", "during", "each", "few", "for", "from", "further", "had", "hadn't", "has", "hasn't", "have", "haven't", "having", "he", "he'd", "he'll", "he's", "her", "here", "here's", "hers", "herself", "him", "himself", "his", "how", "how's", "i", "i'd", "i'll", "i'm", "i've", "if", "in", "into", "is", "isn't", "it", "it's", "its", "itself", "let's", "me", "more", "most", "mustn't", "my", "myself", "no", "nor", "not", "of", "off", "on", "once", "only", "or", "other", "ought", "our", "ours", "ourselves", "out", "over", "own", "same", "shan't", "she", "she'd", "she'll", "she's", "should", "shouldn't", "so", "some", "such", "than", "that", "that's", "the", "their", "theirs", "them", "themselves", "then", "there", "there's", "these", "they", "they'd", "they'll", "they're", "they've", "this", "those", "through", "to", "too", "under", "until", "up", "very", "was", "wasn't", "we", "we'd", "we'll", "we're", "we've", "were", "weren't", "what", "what's", "when", "when's", "where", "where's", "which", "while", "who", "who's", "whom", "why", "why's", "with", "won't", "would", "wouldn't", "you", "you'd", "you'll", "you're", "you've", "your", "yours", "yourself", "yourselves"]); window.stopwords = stopwords; // Export to global scope /* Non-minified versions are copied as separate JavaScript files, if available */ BaseStemmer=function(){this.current="",this.cursor=0,this.limit=0,this.limit_backward=0,this.bra=0,this.ket=0,this.setCurrent=function(t){this.current=t,this.cursor=0,this.limit=this.current.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},this.getCurrent=function(){return this.current},this.copy_from=function(t){this.current=t.current,this.cursor=t.cursor,this.limit=t.limit,this.limit_backward=t.limit_backward,this.bra=t.bra,this.ket=t.ket},this.in_grouping=function(t,r,i){return!(this.cursor>=this.limit||i<(i=this.current.charCodeAt(this.cursor))||i>>3]&1<<(7&i))||(this.cursor++,0))},this.go_in_grouping=function(t,r,i){for(;this.cursor>>3]&1<<(7&s)))return!0;this.cursor++}return!1},this.in_grouping_b=function(t,r,i){return!(this.cursor<=this.limit_backward||i<(i=this.current.charCodeAt(this.cursor-1))||i>>3]&1<<(7&i))||(this.cursor--,0))},this.go_in_grouping_b=function(t,r,i){for(;this.cursor>this.limit_backward;){var s=this.current.charCodeAt(this.cursor-1);if(i>>3]&1<<(7&s)))return!0;this.cursor--}return!1},this.out_grouping=function(t,r,i){return!(this.cursor>=this.limit)&&(i<(i=this.current.charCodeAt(this.cursor))||i>>3]&1<<(7&i)))&&(this.cursor++,!0)},this.go_out_grouping=function(t,r,i){for(;this.cursor>>3]&1<<(7&s)))return!0;this.cursor++}return!1},this.out_grouping_b=function(t,r,i){return!(this.cursor<=this.limit_backward)&&(i<(i=this.current.charCodeAt(this.cursor-1))||i>>3]&1<<(7&i)))&&(this.cursor--,!0)},this.go_out_grouping_b=function(t,r,i){for(;this.cursor>this.limit_backward;){var s=this.current.charCodeAt(this.cursor-1);if(s<=i&&r<=s&&0!=(t[(s-=r)>>>3]&1<<(7&s)))return!0;this.cursor--}return!1},this.eq_s=function(t){return!(this.limit-this.cursor>>1),o=0,a=e=(l=t[r])[0].length){if(this.cursor=s+l[0].length,l.length<4)return l[2];var g=l[3](this);if(this.cursor=s+l[0].length,g)return l[2]}}while(0<=(r=l[1]));return 0},this.find_among_b=function(t){for(var r=0,i=t.length,s=this.cursor,h=this.limit_backward,e=0,n=0,c=!1;;){for(var u,o=r+(i-r>>1),a=0,l=e=(u=t[r])[0].length){if(this.cursor=s-u[0].length,u.length<4)return u[2];var g=u[3](this);if(this.cursor=s-u[0].length,g)return u[2]}}while(0<=(r=u[1]));return 0},this.replace_s=function(t,r,i){var s=i.length-(r-t);return this.current=this.current.slice(0,t)+i+this.current.slice(r),this.limit+=s,this.cursor>=r?this.cursor+=s:this.cursor>t&&(this.cursor=t),s},this.slice_check=function(){return!(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>this.current.length)},this.slice_from=function(t){var r=!1;return this.slice_check()&&(this.replace_s(this.bra,this.ket,t),r=!0),r},this.slice_del=function(){return this.slice_from("")},this.insert=function(t,r,i){r=this.replace_s(t,r,i);t<=this.bra&&(this.bra+=r),t<=this.ket&&(this.ket+=r)},this.slice_to=function(){var t="";return t=this.slice_check()?this.current.slice(this.bra,this.ket):t},this.assign_to=function(){return this.current.slice(0,this.limit)}}; var EnglishStemmer=function(){var a=new BaseStemmer,c=[["arsen",-1,-1],["commun",-1,-1],["emerg",-1,-1],["gener",-1,-1],["later",-1,-1],["organ",-1,-1],["past",-1,-1],["univers",-1,-1]],o=[["'",-1,1],["'s'",0,1],["'s",-1,1]],u=[["ied",-1,2],["s",-1,3],["ies",1,2],["sses",1,1],["ss",1,-1],["us",1,-1]],t=[["succ",-1,1],["proc",-1,1],["exc",-1,1]],l=[["even",-1,2],["cann",-1,2],["inn",-1,2],["earr",-1,2],["herr",-1,2],["out",-1,2],["y",-1,1]],n=[["",-1,-1],["ed",0,2],["eed",1,1],["ing",0,3],["edly",0,2],["eedly",4,1],["ingly",0,2]],f=[["",-1,3],["bb",0,2],["dd",0,2],["ff",0,2],["gg",0,2],["bl",0,1],["mm",0,2],["nn",0,2],["pp",0,2],["rr",0,2],["at",0,1],["tt",0,2],["iz",0,1]],_=[["anci",-1,3],["enci",-1,2],["ogi",-1,14],["li",-1,16],["bli",3,12],["abli",4,4],["alli",3,8],["fulli",3,9],["lessli",3,15],["ousli",3,10],["entli",3,5],["aliti",-1,8],["biliti",-1,12],["iviti",-1,11],["tional",-1,1],["ational",14,7],["alism",-1,8],["ation",-1,7],["ization",17,6],["izer",-1,6],["ator",-1,7],["iveness",-1,11],["fulness",-1,9],["ousness",-1,10],["ogist",-1,13]],m=[["icate",-1,4],["ative",-1,6],["alize",-1,3],["iciti",-1,4],["ical",-1,4],["tional",-1,1],["ational",5,2],["ful",-1,5],["ness",-1,5]],b=[["ic",-1,1],["ance",-1,1],["ence",-1,1],["able",-1,1],["ible",-1,1],["ate",-1,1],["ive",-1,1],["ize",-1,1],["iti",-1,1],["al",-1,1],["ism",-1,1],["ion",-1,2],["er",-1,1],["ous",-1,1],["ant",-1,1],["ent",-1,1],["ment",15,1],["ement",16,1]],k=[["e",-1,1],["l",-1,2]],g=[["andes",-1,-1],["atlas",-1,-1],["bias",-1,-1],["cosmos",-1,-1],["early",-1,5],["gently",-1,3],["howe",-1,-1],["idly",-1,2],["news",-1,-1],["only",-1,6],["singly",-1,7],["skies",-1,1],["sky",-1,-1],["ugly",-1,4]],d=[17,64],v=[17,65,16,1],i=[1,17,65,208,1],w=[55,141,2],p=!1,y=0,h=0;function q(){var r=a.limit-a.cursor;return!!(a.out_grouping_b(i,89,121)&&a.in_grouping_b(v,97,121)&&a.out_grouping_b(v,97,121)||(a.cursor=a.limit-r,a.out_grouping_b(v,97,121)&&a.in_grouping_b(v,97,121)&&!(a.cursor>a.limit_backward))||(a.cursor=a.limit-r,a.eq_s_b("past")))}function z(){return h<=a.cursor}function Y(){return y<=a.cursor}this.stem=function(){var r=a.cursor;if(!(()=>{var r;if(a.bra=a.cursor,0!=(r=a.find_among(g))&&(a.ket=a.cursor,!(a.cursora.limit)a.cursor=i;else{a.cursor=e,a.cursor=r,(()=>{p=!1;var r=a.cursor;if(a.bra=a.cursor,!a.eq_s("'")||(a.ket=a.cursor,a.slice_del())){a.cursor=r;r=a.cursor;if(a.bra=a.cursor,a.eq_s("y")){if(a.ket=a.cursor,!a.slice_from("Y"))return;p=!0}a.cursor=r;for(r=a.cursor;;){var i=a.cursor;r:{for(;;){var e=a.cursor;if(a.in_grouping(v,97,121)&&(a.bra=a.cursor,a.eq_s("y"))){a.ket=a.cursor,a.cursor=e;break}if(a.cursor=e,a.cursor>=a.limit)break r;a.cursor++}if(!a.slice_from("Y"))return;p=!0;continue}a.cursor=i;break}a.cursor=r}})(),h=a.limit,y=a.limit;i=a.cursor;r:{var s=a.cursor;if(0==a.find_among(c)){if(a.cursor=s,!a.go_out_grouping(v,97,121))break r;if(a.cursor++,!a.go_in_grouping(v,97,121))break r;a.cursor++}h=a.cursor,a.go_out_grouping(v,97,121)&&(a.cursor++,a.go_in_grouping(v,97,121))&&(a.cursor++,y=a.cursor)}a.cursor=i,a.limit_backward=a.cursor,a.cursor=a.limit;var e=a.limit-a.cursor,r=((()=>{var r=a.limit-a.cursor;if(a.ket=a.cursor,0==a.find_among_b(o))a.cursor=a.limit-r;else if(a.bra=a.cursor,!a.slice_del())return;if(a.ket=a.cursor,0!=(r=a.find_among_b(u)))switch(a.bra=a.cursor,r){case 1:if(a.slice_from("ss"))break;return;case 2:r:{var i=a.limit-a.cursor,e=a.cursor-2;if(!(e{a.ket=a.cursor,o=a.find_among_b(n),a.bra=a.cursor;r:{var r=a.limit-a.cursor;i:{switch(o){case 1:var i=a.limit-a.cursor;e:{var e=a.limit-a.cursor;if(0==a.find_among_b(t)||a.cursor>a.limit_backward){if(a.cursor=a.limit-e,!z())break e;if(!a.slice_from("ee"))return}}a.cursor=a.limit-i;break;case 2:break i;case 3:if(0==(o=a.find_among_b(l)))break i;switch(o){case 1:var s=a.limit-a.cursor;if(!a.out_grouping_b(v,97,121))break i;if(a.cursor>a.limit_backward)break i;if(a.cursor=a.limit-s,a.bra=a.cursor,a.slice_from("ie"))break;return;case 2:if(a.cursor>a.limit_backward)break i}}break r}a.cursor=a.limit-r;var c=a.limit-a.cursor;if(!a.go_out_grouping_b(v,97,121))return;if(a.cursor--,a.cursor=a.limit-c,!a.slice_del())return;a.ket=a.cursor,a.bra=a.cursor;var o,c=a.limit-a.cursor;switch(o=a.find_among_b(f)){case 1:return a.slice_from("e");case 2:var u=a.limit-a.cursor;if(a.in_grouping_b(d,97,111)&&!(a.cursor>a.limit_backward))return;a.cursor=a.limit-u;break;case 3:return a.cursor!=h||(u=a.limit-a.cursor,q()&&(a.cursor=a.limit-u,a.slice_from("e")))}if(a.cursor=a.limit-c,a.ket=a.cursor,a.cursor<=a.limit_backward)return;if(a.cursor--,a.bra=a.cursor,!a.slice_del())return}})(),a.cursor=a.limit-r,a.limit-a.cursor),r=(a.ket=a.cursor,e=a.limit-a.cursor,(a.eq_s_b("y")||(a.cursor=a.limit-e,a.eq_s_b("Y")))&&(a.bra=a.cursor,a.out_grouping_b(v,97,121))&&a.cursor>a.limit_backward&&a.slice_from("i"),a.cursor=a.limit-i,a.limit-a.cursor),e=((()=>{var r;if(a.ket=a.cursor,0!=(r=a.find_among_b(_))&&(a.bra=a.cursor,z()))switch(r){case 1:if(a.slice_from("tion"))break;return;case 2:if(a.slice_from("ence"))break;return;case 3:if(a.slice_from("ance"))break;return;case 4:if(a.slice_from("able"))break;return;case 5:if(a.slice_from("ent"))break;return;case 6:if(a.slice_from("ize"))break;return;case 7:if(a.slice_from("ate"))break;return;case 8:if(a.slice_from("al"))break;return;case 9:if(a.slice_from("ful"))break;return;case 10:if(a.slice_from("ous"))break;return;case 11:if(a.slice_from("ive"))break;return;case 12:if(a.slice_from("ble"))break;return;case 13:if(a.slice_from("og"))break;return;case 14:if(!a.eq_s_b("l"))return;if(a.slice_from("og"))break;return;case 15:if(a.slice_from("less"))break;return;case 16:if(!a.in_grouping_b(w,99,116))return;if(a.slice_del())break}})(),a.cursor=a.limit-r,a.limit-a.cursor),i=((()=>{var r;if(a.ket=a.cursor,0!=(r=a.find_among_b(m))&&(a.bra=a.cursor,z()))switch(r){case 1:if(a.slice_from("tion"))break;return;case 2:if(a.slice_from("ate"))break;return;case 3:if(a.slice_from("al"))break;return;case 4:if(a.slice_from("ic"))break;return;case 5:if(a.slice_del())break;return;case 6:if(!Y())return;if(a.slice_del())break}})(),a.cursor=a.limit-e,a.limit-a.cursor),r=((()=>{var r;if(a.ket=a.cursor,0!=(r=a.find_among_b(b))&&(a.bra=a.cursor,Y()))switch(r){case 1:if(a.slice_del())break;return;case 2:var i=a.limit-a.cursor;if(!a.eq_s_b("s")&&(a.cursor=a.limit-i,!a.eq_s_b("t")))return;if(a.slice_del())break}})(),a.cursor=a.limit-i,a.limit-a.cursor),e=((()=>{var r;if(a.ket=a.cursor,0!=(r=a.find_among_b(k)))switch(a.bra=a.cursor,r){case 1:if(!Y()){if(!z())return;var i=a.limit-a.cursor;if(q())return;a.cursor=a.limit-i}if(a.slice_del())break;return;case 2:if(!Y())return;if(!a.eq_s_b("l"))return;if(a.slice_del())break}})(),a.cursor=a.limit-r,a.cursor=a.limit_backward,a.cursor);(()=>{if(p)for(;;){var r=a.cursor;r:{for(;;){var i=a.cursor;if(a.bra=a.cursor,a.eq_s("Y")){a.ket=a.cursor,a.cursor=i;break}if(a.cursor=i,a.cursor>=a.limit)break r;a.cursor++}if(a.slice_from("y"))continue;return}a.cursor=r;break}})(),a.cursor=e}}return!0},this.stemWord=function(r){return a.setCurrent(r),this.stem(),a.getCurrent()}}; window.Stemmer = EnglishStemmer; ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778671783.0 pyfuse3-3.5.0/doc/html/_static/minus.png0000644000175000017500000000013215201060247020370 0ustar00nikrationikratio‰PNG  IHDR ŒÇ(ú!IDATxc8ƒ g>@Á;(û!¶&«þ€Ø]ìf2nüNIEND®B`‚././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778671783.0 pyfuse3-3.5.0/doc/html/_static/plus.png0000644000175000017500000000013215201060247020220 0ustar00nikrationikratio‰PNG  IHDR ŒÇ(ú!IDATxc8ƒ g>@Á;([“[ˆUÿ @l-!a”óð@IEND®B`‚././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/_static/pygments.css0000644000175000017500000001145415201114623021116 0ustar00nikrationikratiopre { line-height: 125%; } td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } .highlight { background: #eeffcc; } .highlight .c { color: #408090; font-style: italic } /* Comment */ .highlight .err { border: 1px solid #F00 } /* Error */ .highlight .k { color: #007020; font-weight: bold } /* Keyword */ .highlight .o { color: #666 } /* Operator */ .highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ .highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ .highlight .cp { color: #007020 } /* Comment.Preproc */ .highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ .highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ .highlight .cs { color: #408090; background-color: #FFF0F0 } /* Comment.Special */ .highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #F00 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #00A000 } /* Generic.Inserted */ .highlight .go { color: #333 } /* Generic.Output */ .highlight .gp { color: #C65D09; font-weight: bold } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ .highlight .gt { color: #04D } /* Generic.Traceback */ .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #007020 } /* Keyword.Pseudo */ .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #902000 } /* Keyword.Type */ .highlight .m { color: #208050 } /* Literal.Number */ .highlight .s { color: #4070A0 } /* Literal.String */ .highlight .na { color: #4070A0 } /* Name.Attribute */ .highlight .nb { color: #007020 } /* Name.Builtin */ .highlight .nc { color: #0E84B5; font-weight: bold } /* Name.Class */ .highlight .no { color: #60ADD5 } /* Name.Constant */ .highlight .nd { color: #555; font-weight: bold } /* Name.Decorator */ .highlight .ni { color: #D55537; font-weight: bold } /* Name.Entity */ .highlight .ne { color: #007020 } /* Name.Exception */ .highlight .nf { color: #06287E } /* Name.Function */ .highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ .highlight .nn { color: #0E84B5; font-weight: bold } /* Name.Namespace */ .highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #BB60D5 } /* Name.Variable */ .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ .highlight .w { color: #BBB } /* Text.Whitespace */ .highlight .mb { color: #208050 } /* Literal.Number.Bin */ .highlight .mf { color: #208050 } /* Literal.Number.Float */ .highlight .mh { color: #208050 } /* Literal.Number.Hex */ .highlight .mi { color: #208050 } /* Literal.Number.Integer */ .highlight .mo { color: #208050 } /* Literal.Number.Oct */ .highlight .sa { color: #4070A0 } /* Literal.String.Affix */ .highlight .sb { color: #4070A0 } /* Literal.String.Backtick */ .highlight .sc { color: #4070A0 } /* Literal.String.Char */ .highlight .dl { color: #4070A0 } /* Literal.String.Delimiter */ .highlight .sd { color: #4070A0; font-style: italic } /* Literal.String.Doc */ .highlight .s2 { color: #4070A0 } /* Literal.String.Double */ .highlight .se { color: #4070A0; font-weight: bold } /* Literal.String.Escape */ .highlight .sh { color: #4070A0 } /* Literal.String.Heredoc */ .highlight .si { color: #70A0D0; font-style: italic } /* Literal.String.Interpol */ .highlight .sx { color: #C65D09 } /* Literal.String.Other */ .highlight .sr { color: #235388 } /* Literal.String.Regex */ .highlight .s1 { color: #4070A0 } /* Literal.String.Single */ .highlight .ss { color: #517918 } /* Literal.String.Symbol */ .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #06287E } /* Name.Function.Magic */ .highlight .vc { color: #BB60D5 } /* Name.Variable.Class */ .highlight .vg { color: #BB60D5 } /* Name.Variable.Global */ .highlight .vi { color: #BB60D5 } /* Name.Variable.Instance */ .highlight .vm { color: #BB60D5 } /* Name.Variable.Magic */ .highlight .il { color: #208050 } /* Literal.Number.Integer.Long */././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778671783.0 pyfuse3-3.5.0/doc/html/_static/searchtools.js0000644000175000017500000005370015201060247021424 0ustar00nikrationikratio/* * Sphinx JavaScript utilities for the full-text search. */ "use strict"; /** * Simple result scoring code. */ if (typeof Scorer === "undefined") { var Scorer = { // Implement the following function to further tweak the score for each result // The function takes a result array [docname, title, anchor, descr, score, filename] // and returns the new score. /* score: result => { const [docname, title, anchor, descr, score, filename, kind] = result return score }, */ // query matches the full name of an object objNameMatch: 11, // or matches in the last dotted part of the object name objPartialMatch: 6, // Additive scores depending on the priority of the object objPrio: { 0: 15, // used to be importantResults 1: 5, // used to be objectResults 2: -5, // used to be unimportantResults }, // Used when the priority is not in the mapping. objPrioDefault: 0, // query found in title title: 15, partialTitle: 7, // query found in terms term: 5, partialTerm: 2, }; } // Global search result kind enum, used by themes to style search results. // prettier-ignore class SearchResultKind { static get index() { return "index"; } static get object() { return "object"; } static get text() { return "text"; } static get title() { return "title"; } } const _removeChildren = (element) => { while (element && element.lastChild) element.removeChild(element.lastChild); }; /** * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping */ const _escapeRegExp = (string) => string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string const _escapeHTML = (text) => { return text .replaceAll("&", "&") .replaceAll("<", "<") .replaceAll(">", ">") .replaceAll('"', """) .replaceAll("'", "'"); }; const _displayItem = (item, searchTerms, highlightTerms) => { const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; const contentRoot = document.documentElement.dataset.content_root; const [docName, title, anchor, descr, score, _filename, kind] = item; let listItem = document.createElement("li"); // Add a class representing the item's type: // can be used by a theme's CSS selector for styling // See SearchResultKind for the class names. listItem.classList.add(`kind-${kind}`); let requestUrl; let linkUrl; if (docBuilder === "dirhtml") { // dirhtml builder let dirname = docName + "/"; if (dirname.match(/\/index\/$/)) dirname = dirname.substring(0, dirname.length - 6); else if (dirname === "index/") dirname = ""; requestUrl = contentRoot + dirname; linkUrl = requestUrl; } else { // normal html builders requestUrl = contentRoot + docName + docFileSuffix; linkUrl = docName + docLinkSuffix; } let linkEl = listItem.appendChild(document.createElement("a")); linkEl.href = linkUrl + anchor; linkEl.dataset.score = score; linkEl.innerHTML = _escapeHTML(title); if (descr) { listItem.appendChild(document.createElement("span")).innerHTML = ` (${_escapeHTML(descr)})`; // highlight search terms in the description if (SPHINX_HIGHLIGHT_ENABLED) // SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"), ); } else if (showSearchSummary) fetch(requestUrl) .then((responseData) => responseData.text()) .then((data) => { if (data) listItem.appendChild( Search.makeSearchSummary(data, searchTerms, anchor), ); // highlight search terms in the summary if (SPHINX_HIGHLIGHT_ENABLED) // SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"), ); }); Search.output.appendChild(listItem); }; const _finishSearch = (resultCount) => { Search.stopPulse(); Search.title.innerText = _("Search Results"); if (!resultCount) Search.status.innerText = Documentation.gettext( "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.", ); else Search.status.innerText = Documentation.ngettext( "Search finished, found one page matching the search query.", "Search finished, found ${resultCount} pages matching the search query.", resultCount, ).replace("${resultCount}", resultCount); }; const _displayNextItem = ( results, resultCount, searchTerms, highlightTerms, ) => { // results left, load the summary and display it // this is intended to be dynamic (don't sub resultsCount) if (results.length) { _displayItem(results.pop(), searchTerms, highlightTerms); setTimeout( () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), 5, ); } // search finished, update title and status message else _finishSearch(resultCount); }; // Helper function used by query() to order search results. // Each input is an array of [docname, title, anchor, descr, score, filename, kind]. // Order the results by score (in opposite order of appearance, since the // `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. const _orderResultsByScoreThenName = (a, b) => { const leftScore = a[4]; const rightScore = b[4]; if (leftScore === rightScore) { // same score: sort alphabetically const leftTitle = a[1].toLowerCase(); const rightTitle = b[1].toLowerCase(); if (leftTitle === rightTitle) return 0; return leftTitle > rightTitle ? -1 : 1; // inverted is intentional } return leftScore > rightScore ? 1 : -1; }; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a * custom function per language. * * The regular expression works by splitting the string on consecutive characters * that are not Unicode letters, numbers, underscores, or emoji characters. * This is the same as ``\W+`` in Python, preserving the surrogate pair area. */ if (typeof splitQuery === "undefined") { var splitQuery = (query) => query .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) .filter((term) => term); // remove remaining empty strings } /** * Search Module */ const Search = { _index: null, _queued_query: null, _pulse_status: -1, htmlToText: (htmlString, anchor) => { const htmlElement = new DOMParser().parseFromString( htmlString, "text/html", ); for (const removalQuery of [".headerlink", "script", "style"]) { htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove(); }); } if (anchor) { const anchorContent = htmlElement.querySelector( `[role="main"] ${anchor}`, ); if (anchorContent) return anchorContent.textContent; console.warn( `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`, ); } // if anchor not specified or not found, fall back to main content const docContent = htmlElement.querySelector('[role="main"]'); if (docContent) return docContent.textContent; console.warn( "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template.", ); return ""; }, init: () => { const query = new URLSearchParams(window.location.search).get("q"); document .querySelectorAll('input[name="q"]') .forEach((el) => (el.value = query)); if (query) Search.performSearch(query); }, loadIndex: (url) => (document.body.appendChild(document.createElement("script")).src = url), setIndex: (index) => { Search._index = index; if (Search._queued_query !== null) { const query = Search._queued_query; Search._queued_query = null; Search.query(query); } }, hasIndex: () => Search._index !== null, deferQuery: (query) => (Search._queued_query = query), stopPulse: () => (Search._pulse_status = -1), startPulse: () => { if (Search._pulse_status >= 0) return; const pulse = () => { Search._pulse_status = (Search._pulse_status + 1) % 4; Search.dots.innerText = ".".repeat(Search._pulse_status); if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); }; pulse(); }, /** * perform a search for something (or wait until index is loaded) */ performSearch: (query) => { // create the required interface elements const searchText = document.createElement("h2"); searchText.textContent = _("Searching"); const searchSummary = document.createElement("p"); searchSummary.classList.add("search-summary"); searchSummary.innerText = ""; const searchList = document.createElement("ul"); searchList.setAttribute("role", "list"); searchList.classList.add("search"); const out = document.getElementById("search-results"); Search.title = out.appendChild(searchText); Search.dots = Search.title.appendChild(document.createElement("span")); Search.status = out.appendChild(searchSummary); Search.output = out.appendChild(searchList); const searchProgress = document.getElementById("search-progress"); // Some themes don't use the search progress node if (searchProgress) { searchProgress.innerText = _("Preparing search..."); } Search.startPulse(); // index already loaded, the browser was quick! if (Search.hasIndex()) Search.query(query); else Search.deferQuery(query); }, _parseQuery: (query) => { // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); const excludedTerms = new Set(); const highlightTerms = new Set(); const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); splitQuery(query.trim()).forEach((queryTerm) => { const queryTermLower = queryTerm.toLowerCase(); // maybe skip this "word" // stopwords set is from language_data.js if (stopwords.has(queryTermLower) || queryTerm.match(/^\d+$/)) return; // stem the word let word = stemmer.stemWord(queryTermLower); // select the correct list if (word[0] === "-") excludedTerms.add(word.substr(1)); else { searchTerms.add(word); highlightTerms.add(queryTermLower); } }); if (SPHINX_HIGHLIGHT_ENABLED) { // SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js localStorage.setItem( "sphinx_highlight_terms", [...highlightTerms].join(" "), ); } // console.debug("SEARCH: searching for:"); // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; }, /** * execute search (requires search index to be loaded) */ _performSearch: ( query, searchTerms, excludedTerms, highlightTerms, objectTerms, ) => { const filenames = Search._index.filenames; const docNames = Search._index.docnames; const titles = Search._index.titles; const allTitles = Search._index.alltitles; const indexEntries = Search._index.indexentries; // Collect multiple result groups to be sorted separately and then ordered. // Each is an array of [docname, title, anchor, descr, score, filename, kind]. const normalResults = []; const nonMainIndexResults = []; _removeChildren(document.getElementById("search-progress")); const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { if ( title.toLowerCase().trim().includes(queryLower) && queryLower.length >= title.length / 2 ) { for (const [file, id] of foundTitles) { const score = Math.round( (Scorer.title * queryLower.length) / title.length, ); const boost = titles[file] === title ? 1 : 0; // add a boost for document titles normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", null, score + boost, filenames[file], SearchResultKind.title, ]); } } } // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && queryLower.length >= entry.length / 2) { for (const [file, id, isMain] of foundEntries) { const score = Math.round((100 * queryLower.length) / entry.length); const result = [ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], SearchResultKind.index, ]; if (isMain) { normalResults.push(result); } else { nonMainIndexResults.push(result); } } } } // lookup as object objectTerms.forEach((term) => normalResults.push(...Search.performObjectSearch(term, objectTerms)), ); // lookup as search terms in fulltext normalResults.push( ...Search.performTermsSearch(searchTerms, excludedTerms), ); // let the scorer override scores with a custom scoring function if (Scorer.score) { normalResults.forEach((item) => (item[4] = Scorer.score(item))); nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); } // Sort each group of results by score and then alphabetically by name. normalResults.sort(_orderResultsByScoreThenName); nonMainIndexResults.sort(_orderResultsByScoreThenName); // Combine the result groups in (reverse) order. // Non-main index entries are typically arbitrary cross-references, // so display them after other results. let results = [...nonMainIndexResults, ...normalResults]; // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept let seen = new Set(); results = results.reverse().reduce((acc, result) => { let resultStr = result .slice(0, 4) .concat([result[5]]) .map((v) => String(v)) .join(","); if (!seen.has(resultStr)) { acc.push(result); seen.add(resultStr); } return acc; }, []); return results.reverse(); }, query: (query) => { const [ searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms, ] = Search._parseQuery(query); const results = Search._performSearch( searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms, ); // for debugging //Search.lastresults = results.slice(); // a copy // console.info("search results:", Search.lastresults); // print the results _displayNextItem(results, results.length, searchTerms, highlightTerms); }, /** * search for object names */ performObjectSearch: (object, objectTerms) => { const filenames = Search._index.filenames; const docNames = Search._index.docnames; const objects = Search._index.objects; const objNames = Search._index.objnames; const titles = Search._index.titles; const results = []; const objectSearchCallback = (prefix, match) => { const name = match[4]; const fullname = (prefix ? prefix + "." : "") + name; const fullnameLower = fullname.toLowerCase(); if (fullnameLower.indexOf(object) < 0) return; let score = 0; const parts = fullnameLower.split("."); // check for different match types: exact matches of full name or // "last name" (i.e. last dotted part) if (fullnameLower === object || parts.slice(-1)[0] === object) score += Scorer.objNameMatch; else if (parts.slice(-1)[0].indexOf(object) > -1) score += Scorer.objPartialMatch; // matches in last name const objName = objNames[match[1]][2]; const title = titles[match[0]]; // If more than one term searched for, we require other words to be // found in the name/title/description const otherTerms = new Set(objectTerms); otherTerms.delete(object); if (otherTerms.size > 0) { const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); if ( [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) ) return; } let anchor = match[3]; if (anchor === "") anchor = fullname; else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; const descr = objName + _(", in ") + title; // add custom score for some objects according to scorer if (Scorer.objPrio.hasOwnProperty(match[2])) score += Scorer.objPrio[match[2]]; else score += Scorer.objPrioDefault; results.push([ docNames[match[0]], fullname, "#" + anchor, descr, score, filenames[match[0]], SearchResultKind.object, ]); }; Object.keys(objects).forEach((prefix) => objects[prefix].forEach((array) => objectSearchCallback(prefix, array)), ); return results; }, /** * search for full-text terms in the index */ performTermsSearch: (searchTerms, excludedTerms) => { // prepare search const terms = Search._index.terms; const titleTerms = Search._index.titleterms; const filenames = Search._index.filenames; const docNames = Search._index.docnames; const titles = Search._index.titles; const scoreMap = new Map(); const fileMap = new Map(); // perform the search on the required terms searchTerms.forEach((word) => { const files = []; // find documents, if any, containing the query word in their text/title term indices // use Object.hasOwnProperty to avoid mismatching against prototype properties const arr = [ { files: terms.hasOwnProperty(word) ? terms[word] : undefined, score: Scorer.term, }, { files: titleTerms.hasOwnProperty(word) ? titleTerms[word] : undefined, score: Scorer.title, }, ]; // add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); if (!terms.hasOwnProperty(word)) { Object.keys(terms).forEach((term) => { if (term.match(escapedWord)) arr.push({ files: terms[term], score: Scorer.partialTerm }); }); } if (!titleTerms.hasOwnProperty(word)) { Object.keys(titleTerms).forEach((term) => { if (term.match(escapedWord)) arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); }); } } // no match but word was a required one if (arr.every((record) => record.files === undefined)) return; // found search word in contents arr.forEach((record) => { if (record.files === undefined) return; let recordFiles = record.files; if (recordFiles.length === undefined) recordFiles = [recordFiles]; files.push(...recordFiles); // set score for the word in each file recordFiles.forEach((file) => { if (!scoreMap.has(file)) scoreMap.set(file, new Map()); const fileScores = scoreMap.get(file); fileScores.set(word, record.score); }); }); // create the mapping files.forEach((file) => { if (!fileMap.has(file)) fileMap.set(file, [word]); else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); }); }); // now check if the files don't contain excluded terms const results = []; for (const [file, wordList] of fileMap) { // check if all requirements are matched // as search terms with length < 3 are discarded const filteredTermCount = [...searchTerms].filter( (term) => term.length > 2, ).length; if ( wordList.length !== searchTerms.size && wordList.length !== filteredTermCount ) continue; // ensure that none of the excluded terms is in the search result if ( [...excludedTerms].some( (term) => terms[term] === file || titleTerms[term] === file || (terms[term] || []).includes(file) || (titleTerms[term] || []).includes(file), ) ) break; // select one (max) score for the file. const score = Math.max(...wordList.map((w) => scoreMap.get(file).get(w))); // add result to the result list results.push([ docNames[file], titles[file], "", null, score, filenames[file], SearchResultKind.text, ]); } return results; }, /** * helper function to return a node containing the * search summary for a given text. keywords is a list * of stemmed words. */ makeSearchSummary: (htmlText, keywords, anchor) => { const text = Search.htmlToText(htmlText, anchor); if (text === "") return null; const textLower = text.toLowerCase(); const actualStartPosition = [...keywords] .map((k) => textLower.indexOf(k.toLowerCase())) .filter((i) => i > -1) .slice(-1)[0]; const startWithContext = Math.max(actualStartPosition - 120, 0); const top = startWithContext === 0 ? "" : "..."; const tail = startWithContext + 240 < text.length ? "..." : ""; let summary = document.createElement("p"); summary.classList.add("context"); summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; return summary; }, }; _ready(Search.init); ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/_static/sidebar.js0000644000175000017500000000453315201114623020505 0ustar00nikrationikratio/* * This script makes the Sphinx sidebar collapsible. * * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton * used to collapse and expand the sidebar. * * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden * and the width of the sidebar and the margin-left of the document * are decreased. When the sidebar is expanded the opposite happens. * This script saves a per-browser/per-session cookie used to * remember the position of the sidebar among the pages. * Once the browser is closed the cookie is deleted and the position * reset to the default (expanded). * */ const initialiseSidebar = () => { // global elements used by the functions. const bodyWrapper = document.getElementsByClassName("bodywrapper")[0] const sidebar = document.getElementsByClassName("sphinxsidebar")[0] const sidebarWrapper = document.getElementsByClassName('sphinxsidebarwrapper')[0] const sidebarButton = document.getElementById("sidebarbutton") const sidebarArrow = sidebarButton.querySelector('span') // for some reason, the document has no sidebar; do not run into errors if (typeof sidebar === "undefined") return; const flipArrow = element => element.innerText = (element.innerText === "»") ? "«" : "»" const collapse_sidebar = () => { bodyWrapper.style.marginLeft = ".8em"; sidebar.style.width = ".8em" sidebarWrapper.style.display = "none" flipArrow(sidebarArrow) sidebarButton.title = _('Expand sidebar') window.localStorage.setItem("sidebar", "collapsed") } const expand_sidebar = () => { bodyWrapper.style.marginLeft = "" sidebar.style.removeProperty("width") sidebarWrapper.style.display = "" flipArrow(sidebarArrow) sidebarButton.title = _('Collapse sidebar') window.localStorage.setItem("sidebar", "expanded") } sidebarButton.addEventListener("click", () => { (sidebarWrapper.style.display === "none") ? expand_sidebar() : collapse_sidebar() }) if (!window.localStorage.getItem("sidebar")) return const value = window.localStorage.getItem("sidebar") if (value === "collapsed") collapse_sidebar(); else if (value === "expanded") expand_sidebar(); } if (document.readyState !== "loading") initialiseSidebar() else document.addEventListener("DOMContentLoaded", initialiseSidebar)././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778671783.0 pyfuse3-3.5.0/doc/html/_static/sphinx_highlight.js0000644000175000017500000001231515201060247022433 0ustar00nikrationikratio/* Highlighting utilities for Sphinx HTML documentation. */ "use strict"; const SPHINX_HIGHLIGHT_ENABLED = true; /** * highlight a given string on a node by wrapping it in * span elements with the given class name. */ const _highlight = (node, addItems, text, className) => { if (node.nodeType === Node.TEXT_NODE) { const val = node.nodeValue; const parent = node.parentNode; const pos = val.toLowerCase().indexOf(text); if ( pos >= 0 && !parent.classList.contains(className) && !parent.classList.contains("nohighlight") ) { let span; const closestNode = parent.closest("body, svg, foreignObject"); const isInSVG = closestNode && closestNode.matches("svg"); if (isInSVG) { span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); } else { span = document.createElement("span"); span.classList.add(className); } span.appendChild(document.createTextNode(val.substr(pos, text.length))); const rest = document.createTextNode(val.substr(pos + text.length)); parent.insertBefore(span, parent.insertBefore(rest, node.nextSibling)); node.nodeValue = val.substr(0, pos); /* There may be more occurrences of search term in this node. So call this * function recursively on the remaining fragment. */ _highlight(rest, addItems, text, className); if (isInSVG) { const rect = document.createElementNS( "http://www.w3.org/2000/svg", "rect", ); const bbox = parent.getBBox(); rect.x.baseVal.value = bbox.x; rect.y.baseVal.value = bbox.y; rect.width.baseVal.value = bbox.width; rect.height.baseVal.value = bbox.height; rect.setAttribute("class", className); addItems.push({ parent: parent, target: rect }); } } } else if (node.matches && !node.matches("button, select, textarea")) { node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); } }; const _highlightText = (thisNode, text, className) => { let addItems = []; _highlight(thisNode, addItems, text, className); addItems.forEach((obj) => obj.parent.insertAdjacentElement("beforebegin", obj.target), ); }; /** * Small JavaScript module for the documentation. */ const SphinxHighlight = { /** * highlight the search words provided in localstorage in the text */ highlightSearchWords: () => { if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight // get and clear terms from localstorage const url = new URL(window.location); const highlight = localStorage.getItem("sphinx_highlight_terms") || url.searchParams.get("highlight") || ""; localStorage.removeItem("sphinx_highlight_terms"); // Update history only if '?highlight' is present; otherwise it // clears text fragments (not set in window.location by the browser) if (url.searchParams.has("highlight")) { url.searchParams.delete("highlight"); window.history.replaceState({}, "", url); } // get individual terms from highlight string const terms = highlight .toLowerCase() .split(/\s+/) .filter((x) => x); if (terms.length === 0) return; // nothing to do // There should never be more than one element matching "div.body" const divBody = document.querySelectorAll("div.body"); const body = divBody.length ? divBody[0] : document.querySelector("body"); window.setTimeout(() => { terms.forEach((term) => _highlightText(body, term, "highlighted")); }, 10); const searchBox = document.getElementById("searchbox"); if (searchBox === null) return; searchBox.appendChild( document .createRange() .createContextualFragment( '", ), ); }, /** * helper function to hide the search marks again */ hideSearchWords: () => { document .querySelectorAll("#searchbox .highlight-link") .forEach((el) => el.remove()); document .querySelectorAll("span.highlighted") .forEach((el) => el.classList.remove("highlighted")); localStorage.removeItem("sphinx_highlight_terms"); }, initEscapeListener: () => { // only install a listener if it is really needed if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; document.addEventListener("keydown", (event) => { // bail for input elements if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; // bail with special keys if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; if ( DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && event.key === "Escape" ) { SphinxHighlight.hideSearchWords(); event.preventDefault(); } }); }, }; _ready(() => { /* Do not call highlightSearchWords() when we are on the search page. * It will highlight words from the *previous* search query. */ if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); SphinxHighlight.initEscapeListener(); }); ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677271.0 pyfuse3-3.5.0/doc/html/about.html0000644000175000017500000001732615201073027017116 0ustar00nikrationikratio About — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation

About¶

pyfuse3 is a set of Python 3 bindings for libfuse 3. It provides an asynchronous API compatible with Trio and asyncio, and enables you to easily write a full-featured Linux filesystem in Python.

pyfuse3 releases can be downloaded from PyPi. The documentation can be read online and is also included in the doc/html directory of the pyfuse3 tarball.

Getting Help¶

Please report any bugs on the issue tracker. For discussion and questions, please use the general FUSE mailing list or GitHub Discussions.

Development Status¶

pyfuse3 is stable when used with Trio. The current maintainers ensure that bugs are addressed and pyfuse3 continues to work with new Python and libfuse versions. There is no plan to add new features or other non-bugfix work. However, pull requests for new features or other improvements may be accepted.

Using pyfuse3 with asyncio (rather than Trio) support is less well tested, there may be bugs, and some of them may not be easily fixable.

If you need a synchronous (non async) implementation, mfusepy is a maintained alternative.

Contributing¶

The pyfuse3 source code is available on GitHub.

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677271.0 pyfuse3-3.5.0/doc/html/asyncio.html0000644000175000017500000001452615201073027017450 0ustar00nikrationikratio asyncio Support — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation

asyncio Support¶

By default, pyfuse3 uses asynchronous I/O using Trio (and most of the documentation assumes that you are using Trio). If you’d rather use asyncio, import the pyfuse3.asyncio module and call its enable() function before using pyfuse3. For example:

import pyfuse3
import pyfuse3.asyncio

pyfuse3.asyncio.enable()

# Use pyfuse3 as usual from here on.
././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/changes.html0000644000175000017500000004427715201114623017417 0ustar00nikrationikratio Changelog — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation

Changelog¶

pyfuse 3.5.0 (2026-05-13)¶

  • Filesystems may now define a poll method to support the epoll and select system calls.

  • The FileHandleT and InodeT types are no longer declared as NewTypes but are now simply aliases for int. This should make it easier to write type annotations.

  • Future releases of pyfuse will be signed with signify rather than GPG. The public key to verify the signature of a the next version will always be included in the previous versions, so this version already ships the public key that will be used to sign the next versions, signify/pyfuse-3.5.pub for any bugfix releases and signify/pyfuse-next.pub for the next minor (or major) release.

pyfuse 3.4.2 (2026-01-06)¶

  • Removed the pyfuse3_asyncio module. This has been renamed to pyfuse3.asyncio for quite some time.

  • Fixed a test failure in test_examples.py

  • Many internal changes, modernizing build process and adding more type annotations.

Release 3.4.1 (2025-12-22)¶

  • Cythonized with latest Cython 3.2.3.

  • CI: also test on Python 3.14, on Ubuntu 24.04.

  • asyncio:

    • use .run and .get_running_loop, #106.

    • replace deprecated Future() with create_future; fix lazy trio.Lock init.

  • use SPDX license identifier, #107

  • fix LICENSE text: LGPL v2.1, #102

Release 3.4.0 (2024-08-28)¶

  • Cythonized with latest Cython 3.0.11 to support Python 3.13.

  • CI: also test python 3.13, run mypy.

  • Move _pyfuse3 to pyfuse3._pyfuse3 and add a compatibility wrapper for the old name.

  • Move pyfuse3_asyncio to pyfuse3.asyncio and add a compatibility wrapper for the old name.

  • Add bytes subclass XAttrNameT as the type of extended attribute names.

  • Various fixes to type annotations.

  • Add py.typed marker to enable external use of type annotations.

Release 3.3.0 (2023-08-06)¶

  • Note: This is the first pyfuse3 release compatible with Cython 3.0.0 release. Cython 0.29.x is also still supported.

  • Cythonized with latest Cython 3.0.0.

  • Drop Python 3.6 and 3.7 support and testing, #71.

  • CI: also test python 3.12. test on cython 0.29 and cython 3.0.

  • Tell Cython that callbacks may raise exceptions, #80.

  • Fix lookup in examples/hello.py, similar to #16.

  • Misc. CI, testing, build and sphinx related fixes.

Release 3.2.3 (2023-05-09)¶

  • cythonize with latest Cython 0.29.34 (brings Python 3.12 support)

  • add a minimal pyproject.toml, require setuptools

  • tests: fix integer overflow on 32-bit arches, fixes #47

  • test: Use shutil.which() instead of external which(1) program

  • setup.py: catch more generic OSError when searching Cython, fixes #63

  • setup.py: require Cython >= 0.29

  • fix basedir computation in setup.py (fix pip install -e .)

  • use sphinx < 6.0 due to compatibility issues with more recent versions

Release 3.2.2 (2022-09-28)¶

  • remove support for python 3.5 (broken, out of support by python devs)

  • cythonize with latest Cython 0.29.x (brings Python 3.11 support)

  • use github actions for CI, remove travis-ci

  • update README: minimal maintenance, not developed

  • update setup.py with tested python versions

  • examples/tmpfs.py: work around strange kernel behaviour (calling SETATTR after UNLINK of a (not open) file): respond with ENOENT instead of crashing.

Release 3.2.1 (2021-09-17)¶

  • Add type annotations

  • Passing a XATTR_CREATE or XATTR_REPLACE to setxattr is now working correctly.

Release 3.2.0 (2020-12-30)¶

  • Fix long-standing rounding error in file date handling when the nanosecond part of file dates were > 999999500.

  • There is a new pyfuse3.terminate() function to gracefully end the main loop.

Release 3.1.1 (2020-10-06)¶

  • No source changes. Regenerated Cython files with Cython 0.29.21 for Python 3.9 compatibility.

Release 3.1.0 (2020-05-31)¶

  • Made compatible with newest Trio module.

Release 3.0.0 (2020-05-08)¶

  • Changed create handler to return a FileInfo struct to allow for modification of certain kernel file attributes, e.g. direct_io.

    Note that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed.

Release 2.0.0¶

  • Changed open handler to return the new FileInfo struct to allow for modification of certain kernel file attributes, e.g. direct_io.

    Note that this change breaks backwards compatibility, code that depends on the old behavior needs to be changed.

Release 1.3.1 (2019-07-17)¶

  • Fixed a bug in the hello_asyncio.py example.

Release 1.3 (2019-06-02)¶

  • Fixed a bug in the tmpfs.py and passthroughfs.py example file systems (so rename operations no longer fail).

Release 1.2 (2018-12-22)¶

  • Clarified that invalidate_inode may block in some circumstances.

  • Added support for using the asyncio module instead of Trio.

Release 1.1 (2018-11-02)¶

  • Fixed examples/passthroughfs.py - was not handling readdir() correctly.

  • invalidate_entry_async now accepts an additional ignore_enoent parameter. When this is set, no errors are logged if the kernel is not actually aware of the entry that should have been removed.

Release 1.0 (2018-10-08)¶

  • Added a new syncfs function.

Release 0.9 (2018-09-27)¶

  • First release

  • pyfuse3 was forked from python-llfuse - thanks for all the work!

  • If you need compatibility with Python 2.x or libfuse 2.x, you may want to take a look at python-llfuse instead.

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677271.0 pyfuse3-3.5.0/doc/html/data.html0000644000175000017500000011241615201073027016711 0ustar00nikrationikratio Data Structures — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation

Data Structures¶

pyfuse3.ENOATTR¶

This errorcode is unfortunately missing in the errno module, so it is provided by pyfuse3 instead.

pyfuse3.ROOT_INODE¶

The inode of the root directory, i.e. the mount point of the file system.

pyfuse3.RENAME_EXCHANGE¶

A flag that may be passed to the rename handler. When passed, the handler must atomically exchange the two paths (which must both exist).

pyfuse3.RENAME_NOREPLACE¶

A flag that may be passed to the rename handler. When passed, the handler must not replace an existing target.

pyfuse3.default_options¶

This is a recommended set of options that should be passed to pyfuse3.init to get reasonable behavior and performance. pyfuse3 is compatible with any other combination of options as well, but you should only deviate from the defaults with good reason.

(The fsname=<foo> option is guaranteed never to be included in the default options, so you can always safely add it to the set).

The default options are:

  • default_permissions enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect.

exception pyfuse3.FUSEError¶

This exception may be raised by request handlers to indicate that the requested operation could not be carried out. The system call that resulted in the request (if any) will then fail with error code errno_.

class pyfuse3.FileHandleT¶

A type alias for int, representing an integer file handle produced by a create, open, or opendir call.

class pyfuse3.FileNameT¶

A type alias for bytes, representing a file name, with no embedded zero-bytes (\0).

class pyfuse3.FlagT¶

A type alias for int, representing flags modifying the behavior of an operation.

class pyfuse3.InodeT¶

A type alias for int, representing an inode number.

class pyfuse3.ModeT¶

A type alias for int, representing a file mode.

class pyfuse3.XAttrNameT¶

A type alias for bytes, representing an extended attribute name, with no embedded zero-bytes (\0).

class pyfuse3.RequestContext¶

Instances of this class are passed to some Operations methods to provide information about the caller of the syscall that initiated the request.

pid¶
uid¶
gid¶
umask¶
class pyfuse3.StatvfsData¶

Instances of this class store information about the file system. The attributes correspond to the elements of the statvfs struct, see statvfs(2) for details.

f_bsize¶
f_frsize¶
f_blocks¶
f_bfree¶
f_bavail¶
f_files¶
f_ffree¶
f_favail¶
f_namemax¶
class pyfuse3.EntryAttributes¶

Instances of this class store attributes of directory entries. Most of the attributes correspond to the elements of the stat C struct as returned by e.g. fstat and should be self-explanatory.

st_ino¶
generation¶

The inode generation number

entry_timeout¶

Validity timeout for the name/existence of the directory entry

Floating point numbers may be used. Units are seconds.

attr_timeout¶

Validity timeout for the attributes of the directory entry

Floating point numbers may be used. Units are seconds.

st_mode¶
st_uid¶
st_gid¶
st_rdev¶
st_size¶
st_blksize¶
st_blocks¶
st_atime_ns¶

Time of last access in (integer) nanoseconds

st_ctime_ns¶

Time of last inode modification in (integer) nanoseconds

st_mtime_ns¶

Time of last modification in (integer) nanoseconds

class pyfuse3.FileInfo¶

Instances of this class store options and data that Operations.open returns. The attributes correspond to the elements of the fuse_file_info struct that are relevant to the Operations.open function.

fh¶

This attribute must be set to the file handle to be returned from Operations.open.

direct_io¶

If true, signals to the kernel that this file should not be cached or buffered.

keep_cache¶

If true, signals to the kernel that previously cached data for this inode is still valid, and should not be invalidated.

nonseekable¶

If true, indicates that the file does not support seeking.

class pyfuse3.SetattrFields¶

SetattrFields instances are passed to the setattr handler to specify which attributes should be updated.

update_atime¶

If this attribute is true, it signals the Operations.setattr method that the st_atime_ns field contains an updated value.

update_mtime¶

If this attribute is true, it signals the Operations.setattr method that the st_mtime_ns field contains an updated value.

update_mode¶

If this attribute is true, it signals the Operations.setattr method that the st_mode field contains an updated value.

update_uid¶

If this attribute is true, it signals the Operations.setattr method that the st_uid field contains an updated value.

update_gid¶

If this attribute is true, it signals the Operations.setattr method that the st_gid field contains an updated value.

update_size¶

If this attribute is true, it signals the Operations.setattr method that the st_size field contains an updated value.

class pyfuse3.ReaddirToken¶

An identifier for a particular readdir invocation.

class pyfuse3.PollHandle¶

Opaque handle for delivering poll(2) readiness notifications.

Instances of this class are created by pyfuse3 and passed to Operations.poll. The filesystem may keep a reference and later call PollHandle.notify on the handle to wake up any process currently blocked in poll(2), select(2) or epoll_wait(2) for the corresponding file descriptor.

A single notification is sufficient to clear all pending waiters; filesystems should normally discard the handle after notifying.

The underlying fuse_pollhandle is automatically destroyed when the Python object is garbage collected, so filesystems should simply drop the reference when the notification is no longer needed.

notify()¶

Notify IO readiness for this poll handle.

After this returns, any process waiting in poll(2), select(2) or epoll_wait(2) on the corresponding file descriptor will be woken so it can re-poll the filesystem for the current readiness mask.

Each PollHandle is intended for a single notification. After a successful call, the filesystem should discard the handle and not call this method again.

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677271.0 pyfuse3-3.5.0/doc/html/example.html0000644000175000017500000076260515201073027017446 0ustar00nikrationikratio Example File Systems — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation

Example File Systems¶

pyfuse3 comes with several example file systems in the examples directory of the release tarball. For completeness, these examples are also included here.

Single-file, Read-only File System¶

(shipped as examples/lltest.py)

  1#!/usr/bin/env python3
  2# -*- coding: utf-8 -*-
  3'''
  4hello.py - Example file system for pyfuse3.
  5
  6This program presents a static file system containing a single file.
  7
  8Copyright © 2015 Nikolaus Rath <Nikolaus.org>
  9Copyright © 2015 Gerion Entrup.
 10
 11Permission is hereby granted, free of charge, to any person obtaining a copy of
 12this software and associated documentation files (the "Software"), to deal in
 13the Software without restriction, including without limitation the rights to
 14use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 15the Software, and to permit persons to whom the Software is furnished to do so.
 16
 17THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 18IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 19FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 20COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 21IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 22CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 23'''
 24
 25import errno
 26import logging
 27import os
 28import stat
 29from argparse import ArgumentParser, Namespace
 30from typing import cast
 31
 32import trio
 33
 34import pyfuse3
 35from pyfuse3 import EntryAttributes, FileHandleT, FileInfo, InodeT, ReaddirToken, RequestContext
 36
 37try:
 38    import faulthandler
 39except ImportError:
 40    pass
 41else:
 42    faulthandler.enable()
 43
 44log = logging.getLogger(__name__)
 45
 46
 47class TestFs(pyfuse3.Operations):
 48    def __init__(self) -> None:
 49        super(TestFs, self).__init__()
 50        self.hello_name = b"message"
 51        self.hello_inode = pyfuse3.ROOT_INODE + 1
 52        self.hello_data = b"hello world\n"
 53
 54    async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes:
 55        entry = EntryAttributes()
 56        if inode == pyfuse3.ROOT_INODE:
 57            entry.st_mode = stat.S_IFDIR | 0o755
 58            entry.st_size = 0
 59        elif inode == self.hello_inode:
 60            entry.st_mode = stat.S_IFREG | 0o644
 61            entry.st_size = len(self.hello_data)
 62        else:
 63            raise pyfuse3.FUSEError(errno.ENOENT)
 64
 65        stamp = int(1438467123.985654 * 1e9)
 66        entry.st_atime_ns = stamp
 67        entry.st_ctime_ns = stamp
 68        entry.st_mtime_ns = stamp
 69        entry.st_gid = os.getgid()
 70        entry.st_uid = os.getuid()
 71        entry.st_ino = inode
 72
 73        return entry
 74
 75    async def lookup(
 76        self, parent_inode: InodeT, name: bytes, ctx: RequestContext
 77    ) -> EntryAttributes:
 78        if parent_inode != pyfuse3.ROOT_INODE or name != self.hello_name:
 79            raise pyfuse3.FUSEError(errno.ENOENT)
 80        return await self.getattr(self.hello_inode, ctx)
 81
 82    async def opendir(self, inode: InodeT, ctx: RequestContext) -> FileHandleT:
 83        if inode != pyfuse3.ROOT_INODE:
 84            raise pyfuse3.FUSEError(errno.ENOENT)
 85        # For simplicity, we use the inode as file handle
 86        return FileHandleT(inode)
 87
 88    async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None:
 89        assert fh == pyfuse3.ROOT_INODE
 90
 91        # only one entry
 92        if start_id == 0:
 93            pyfuse3.readdir_reply(token, self.hello_name, await self.getattr(self.hello_inode), 1)
 94        return
 95
 96    async def open(self, inode: InodeT, flags: int, ctx: RequestContext) -> FileInfo:
 97        if inode != self.hello_inode:
 98            raise pyfuse3.FUSEError(errno.ENOENT)
 99        if flags & os.O_RDWR or flags & os.O_WRONLY:
100            raise pyfuse3.FUSEError(errno.EACCES)
101        # For simplicity, we use the inode as file handle
102        return FileInfo(fh=FileHandleT(inode))
103
104    async def read(self, fh: FileHandleT, off: int, size: int) -> bytes:
105        assert fh == self.hello_inode
106        return self.hello_data[off : off + size]
107
108
109def init_logging(debug: bool = False) -> None:
110    formatter = logging.Formatter(
111        '%(asctime)s.%(msecs)03d %(threadName)s: [%(name)s] %(message)s',
112        datefmt="%Y-%m-%d %H:%M:%S",
113    )
114    handler = logging.StreamHandler()
115    handler.setFormatter(formatter)
116    root_logger = logging.getLogger()
117    if debug:
118        handler.setLevel(logging.DEBUG)
119        root_logger.setLevel(logging.DEBUG)
120    else:
121        handler.setLevel(logging.INFO)
122        root_logger.setLevel(logging.INFO)
123    root_logger.addHandler(handler)
124
125
126def parse_args() -> Namespace:
127    '''Parse command line'''
128
129    parser = ArgumentParser()
130
131    parser.add_argument('mountpoint', type=str, help='Where to mount the file system')
132    parser.add_argument(
133        '--debug', action='store_true', default=False, help='Enable debugging output'
134    )
135    parser.add_argument(
136        '--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output'
137    )
138    return parser.parse_args()
139
140
141def main() -> None:
142    options = parse_args()
143    init_logging(options.debug)
144
145    testfs = TestFs()
146    fuse_options = set(pyfuse3.default_options)
147    fuse_options.add('fsname=hello')
148    if options.debug_fuse:
149        fuse_options.add('debug')
150    pyfuse3.init(testfs, options.mountpoint, fuse_options)
151    try:
152        trio.run(pyfuse3.main)
153    except:
154        pyfuse3.close(unmount=False)
155        raise
156
157    pyfuse3.close()
158
159
160if __name__ == '__main__':
161    main()

In-memory File System¶

(shipped as examples/tmpfs.py)

  1#!/usr/bin/env python3
  2# -*- coding: utf-8 -*-
  3'''
  4tmpfs.py - Example file system for pyfuse3.
  5
  6This file system stores all data in memory.
  7
  8Copyright © 2013 Nikolaus Rath <Nikolaus.org>
  9
 10Permission is hereby granted, free of charge, to any person obtaining a copy of
 11this software and associated documentation files (the "Software"), to deal in
 12the Software without restriction, including without limitation the rights to
 13use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 14the Software, and to permit persons to whom the Software is furnished to do so.
 15
 16THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 17IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 18FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 19COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 20IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 21CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 22'''
 23
 24import errno
 25import logging
 26import os
 27import sqlite3
 28import stat
 29from argparse import ArgumentParser, Namespace
 30from collections import defaultdict
 31from time import time
 32from typing import Any, cast
 33
 34import trio
 35
 36import pyfuse3
 37from pyfuse3 import (
 38    EntryAttributes,
 39    FileHandleT,
 40    FileInfo,
 41    FUSEError,
 42    InodeT,
 43    ReaddirToken,
 44    RequestContext,
 45    SetattrFields,
 46    StatvfsData,
 47)
 48
 49try:
 50    import faulthandler
 51except ImportError:
 52    pass
 53else:
 54    faulthandler.enable()
 55
 56log = logging.getLogger()
 57
 58
 59class Operations(pyfuse3.Operations):
 60    '''An example filesystem that stores all data in memory
 61
 62    This is a very simple implementation with terrible performance.
 63    Don't try to store significant amounts of data. Also, there are
 64    some other flaws that have not been fixed to keep the code easier
 65    to understand:
 66
 67    * atime, mtime and ctime are not updated
 68    * generation numbers are not supported
 69    * lookup counts are not maintained
 70    '''
 71
 72    enable_writeback_cache = True
 73
 74    def __init__(self) -> None:
 75        super(Operations, self).__init__()
 76        self.db: sqlite3.Connection = sqlite3.connect(':memory:')
 77        self.db.text_factory = str
 78        self.db.row_factory = sqlite3.Row
 79        self.cursor: sqlite3.Cursor = self.db.cursor()
 80        self.inode_open_count: defaultdict[InodeT, int] = defaultdict(int)
 81        self.init_tables()
 82
 83    def init_tables(self) -> None:
 84        '''Initialize file system tables'''
 85
 86        self.cursor.execute("""
 87        CREATE TABLE inodes (
 88            id        INTEGER PRIMARY KEY,
 89            uid       INT NOT NULL,
 90            gid       INT NOT NULL,
 91            mode      INT NOT NULL,
 92            mtime_ns  INT NOT NULL,
 93            atime_ns  INT NOT NULL,
 94            ctime_ns  INT NOT NULL,
 95            target    BLOB(256) ,
 96            size      INT NOT NULL DEFAULT 0,
 97            rdev      INT NOT NULL DEFAULT 0,
 98            data      BLOB
 99        )
100        """)
101
102        self.cursor.execute("""
103        CREATE TABLE contents (
104            rowid     INTEGER PRIMARY KEY AUTOINCREMENT,
105            name      BLOB(256) NOT NULL,
106            inode     INT NOT NULL REFERENCES inodes(id),
107            parent_inode INT NOT NULL REFERENCES inodes(id),
108
109            UNIQUE (name, parent_inode)
110        )""")
111
112        # Insert root directory
113        now_ns = int(time() * 1e9)
114        self.cursor.execute(
115            "INSERT INTO inodes (id,mode,uid,gid,mtime_ns,atime_ns,ctime_ns) "
116            "VALUES (?,?,?,?,?,?,?)",
117            (
118                pyfuse3.ROOT_INODE,
119                stat.S_IFDIR
120                | stat.S_IRUSR
121                | stat.S_IWUSR
122                | stat.S_IXUSR
123                | stat.S_IRGRP
124                | stat.S_IXGRP
125                | stat.S_IROTH
126                | stat.S_IXOTH,
127                os.getuid(),
128                os.getgid(),
129                now_ns,
130                now_ns,
131                now_ns,
132            ),
133        )
134        self.cursor.execute(
135            "INSERT INTO contents (name, parent_inode, inode) VALUES (?,?,?)",
136            (b'..', pyfuse3.ROOT_INODE, pyfuse3.ROOT_INODE),
137        )
138
139    def get_row(self, *a: Any, **kw: Any) -> sqlite3.Row:
140        self.cursor.execute(*a, **kw)
141        try:
142            row = next(self.cursor)
143        except StopIteration:
144            raise NoSuchRowError()
145        try:
146            next(self.cursor)
147        except StopIteration:
148            pass
149        else:
150            raise NoUniqueValueError()
151
152        return row
153
154    async def lookup(
155        self, parent_inode: InodeT, name: bytes, ctx: RequestContext
156    ) -> EntryAttributes:
157        if name == b'.':
158            inode = parent_inode
159        elif name == b'..':
160            inode = self.get_row("SELECT * FROM contents WHERE inode=?", (parent_inode,))[
161                'parent_inode'
162            ]
163        else:
164            try:
165                inode = self.get_row(
166                    "SELECT * FROM contents WHERE name=? AND parent_inode=?", (name, parent_inode)
167                )['inode']
168            except NoSuchRowError:
169                raise (pyfuse3.FUSEError(errno.ENOENT))
170
171        return await self.getattr(InodeT(inode), ctx)
172
173    async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes:
174        try:
175            row = self.get_row("SELECT * FROM inodes WHERE id=?", (inode,))
176        except NoSuchRowError:
177            raise (pyfuse3.FUSEError(errno.ENOENT))
178
179        entry = EntryAttributes()
180        entry.st_ino = inode
181        entry.generation = 0
182        entry.entry_timeout = 300
183        entry.attr_timeout = 300
184        entry.st_mode = row['mode']
185        entry.st_nlink = self.get_row("SELECT COUNT(inode) FROM contents WHERE inode=?", (inode,))[
186            0
187        ]
188        entry.st_uid = row['uid']
189        entry.st_gid = row['gid']
190        entry.st_rdev = row['rdev']
191        entry.st_size = row['size']
192
193        entry.st_blksize = 512
194        entry.st_blocks = 1
195        entry.st_atime_ns = row['atime_ns']
196        entry.st_mtime_ns = row['mtime_ns']
197        entry.st_ctime_ns = row['ctime_ns']
198
199        return entry
200
201    async def readlink(self, inode: InodeT, ctx: RequestContext) -> bytes:
202        return self.get_row('SELECT * FROM inodes WHERE id=?', (inode,))['target']
203
204    async def opendir(self, inode: InodeT, ctx: RequestContext) -> FileHandleT:
205        # For simplicity, we use the inode as file handle
206        return FileHandleT(inode)
207
208    async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None:
209        if start_id == 0:
210            off = -1
211        else:
212            off = start_id
213
214        cursor2 = self.db.cursor()
215        cursor2.execute(
216            "SELECT * FROM contents WHERE parent_inode=? AND rowid > ? ORDER BY rowid", (fh, off)
217        )
218
219        for row in cursor2:
220            pyfuse3.readdir_reply(
221                token, row['name'], await self.getattr(InodeT(row['inode'])), row['rowid']
222            )
223
224    async def unlink(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None:
225        entry = await self.lookup(parent_inode, name, ctx)
226
227        if stat.S_ISDIR(entry.st_mode):
228            raise pyfuse3.FUSEError(errno.EISDIR)
229
230        self._remove(parent_inode, name, entry)
231
232    async def rmdir(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None:
233        entry = await self.lookup(parent_inode, name, ctx)
234
235        if not stat.S_ISDIR(entry.st_mode):
236            raise pyfuse3.FUSEError(errno.ENOTDIR)
237
238        self._remove(parent_inode, name, entry)
239
240    def _remove(self, parent_inode: InodeT, name: bytes, entry: EntryAttributes) -> None:
241        if (
242            self.get_row("SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry.st_ino,))[
243                0
244            ]
245            > 0
246        ):
247            raise pyfuse3.FUSEError(errno.ENOTEMPTY)
248
249        self.cursor.execute(
250            "DELETE FROM contents WHERE name=? AND parent_inode=?", (name, parent_inode)
251        )
252
253        if entry.st_nlink == 1 and entry.st_ino not in self.inode_open_count:
254            self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry.st_ino,))
255
256    async def symlink(
257        self, parent_inode: InodeT, name: bytes, target: bytes, ctx: RequestContext
258    ) -> EntryAttributes:
259        mode = (
260            stat.S_IFLNK
261            | stat.S_IRUSR
262            | stat.S_IWUSR
263            | stat.S_IXUSR
264            | stat.S_IRGRP
265            | stat.S_IWGRP
266            | stat.S_IXGRP
267            | stat.S_IROTH
268            | stat.S_IWOTH
269            | stat.S_IXOTH
270        )
271        return await self._create(parent_inode, name, mode, ctx, target=target)
272
273    async def rename(
274        self,
275        parent_inode_old: InodeT,
276        name_old: bytes,
277        parent_inode_new: InodeT,
278        name_new: bytes,
279        flags: int,
280        ctx: RequestContext,
281    ) -> None:
282        if flags != 0:
283            raise FUSEError(errno.EINVAL)
284
285        entry_old = await self.lookup(parent_inode_old, name_old, ctx)
286
287        entry_new = None
288        try:
289            entry_new = await self.lookup(
290                parent_inode_new,
291                name_new if isinstance(name_new, bytes) else name_new.encode(),
292                ctx,
293            )
294        except pyfuse3.FUSEError as exc:
295            if exc.errno != errno.ENOENT:
296                raise
297
298        if entry_new is not None:
299            self._replace(
300                parent_inode_old, name_old, parent_inode_new, name_new, entry_old, entry_new
301            )
302        else:
303            self.cursor.execute(
304                "UPDATE contents SET name=?, parent_inode=? WHERE name=? AND parent_inode=?",
305                (name_new, parent_inode_new, name_old, parent_inode_old),
306            )
307
308    def _replace(
309        self,
310        parent_inode_old: InodeT,
311        name_old: bytes,
312        parent_inode_new: InodeT,
313        name_new: bytes,
314        entry_old: EntryAttributes,
315        entry_new: EntryAttributes,
316    ) -> None:
317        if (
318            self.get_row(
319                "SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry_new.st_ino,)
320            )[0]
321            > 0
322        ):
323            raise pyfuse3.FUSEError(errno.ENOTEMPTY)
324
325        self.cursor.execute(
326            "UPDATE contents SET inode=? WHERE name=? AND parent_inode=?",
327            (entry_old.st_ino, name_new, parent_inode_new),
328        )
329        self.db.execute(
330            'DELETE FROM contents WHERE name=? AND parent_inode=?', (name_old, parent_inode_old)
331        )
332
333        if entry_new.st_nlink == 1 and entry_new.st_ino not in self.inode_open_count:
334            self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry_new.st_ino,))
335
336    async def link(
337        self, inode: InodeT, new_parent_inode: InodeT, new_name: bytes, ctx: RequestContext
338    ) -> EntryAttributes:
339        entry_p = await self.getattr(new_parent_inode, ctx)
340        if entry_p.st_nlink == 0:
341            log.warning(
342                'Attempted to create entry %s with unlinked parent %d', new_name, new_parent_inode
343            )
344            raise FUSEError(errno.EINVAL)
345
346        self.cursor.execute(
347            "INSERT INTO contents (name, inode, parent_inode) VALUES(?,?,?)",
348            (new_name, inode, new_parent_inode),
349        )
350
351        return await self.getattr(inode, ctx)
352
353    async def setattr(
354        self,
355        inode: InodeT,
356        attr: EntryAttributes,
357        fields: SetattrFields,
358        fh: FileHandleT | None,
359        ctx: RequestContext,
360    ) -> EntryAttributes:
361        if fields.update_size:
362            data = self.get_row('SELECT data FROM inodes WHERE id=?', (inode,))[0]
363            if data is None:
364                data = b''
365            if len(data) < attr.st_size:
366                data = data + b'\0' * (attr.st_size - len(data))
367            else:
368                data = data[: attr.st_size]
369            self.cursor.execute(
370                'UPDATE inodes SET data=?, size=? WHERE id=?',
371                (memoryview(data), attr.st_size, inode),
372            )
373        if fields.update_mode:
374            self.cursor.execute('UPDATE inodes SET mode=? WHERE id=?', (attr.st_mode, inode))
375
376        if fields.update_uid:
377            self.cursor.execute('UPDATE inodes SET uid=? WHERE id=?', (attr.st_uid, inode))
378
379        if fields.update_gid:
380            self.cursor.execute('UPDATE inodes SET gid=? WHERE id=?', (attr.st_gid, inode))
381
382        if fields.update_atime:
383            self.cursor.execute(
384                'UPDATE inodes SET atime_ns=? WHERE id=?', (attr.st_atime_ns, inode)
385            )
386
387        if fields.update_mtime:
388            self.cursor.execute(
389                'UPDATE inodes SET mtime_ns=? WHERE id=?', (attr.st_mtime_ns, inode)
390            )
391
392        if fields.update_ctime:
393            self.cursor.execute(
394                'UPDATE inodes SET ctime_ns=? WHERE id=?', (attr.st_ctime_ns, inode)
395            )
396        else:
397            self.cursor.execute(
398                'UPDATE inodes SET ctime_ns=? WHERE id=?', (int(time() * 1e9), inode)
399            )
400
401        return await self.getattr(inode, ctx)
402
403    async def mknod(
404        self, parent_inode: InodeT, name: bytes, mode: int, rdev: int, ctx: RequestContext
405    ) -> EntryAttributes:
406        return await self._create(parent_inode, name, mode, ctx, rdev=rdev)
407
408    async def mkdir(
409        self, parent_inode: InodeT, name: bytes, mode: int, ctx: RequestContext
410    ) -> EntryAttributes:
411        return await self._create(parent_inode, name, mode, ctx)
412
413    async def statfs(self, ctx: RequestContext) -> StatvfsData:
414        stat_ = StatvfsData()
415
416        stat_.f_bsize = 512
417        stat_.f_frsize = 512
418
419        size = self.get_row('SELECT SUM(size) FROM inodes')[0]
420        stat_.f_blocks = size // stat_.f_frsize
421        stat_.f_bfree = max(size // stat_.f_frsize, 1024)
422        stat_.f_bavail = stat_.f_bfree
423
424        inodes = self.get_row('SELECT COUNT(id) FROM inodes')[0]
425        stat_.f_files = inodes
426        stat_.f_ffree = max(inodes, 100)
427        stat_.f_favail = stat_.f_ffree
428
429        return stat_
430
431    async def open(self, inode: InodeT, flags: int, ctx: RequestContext) -> FileInfo:
432        self.inode_open_count[inode] += 1
433
434        # For simplicity, we use the inode as file handle
435        return FileInfo(fh=FileHandleT(inode))
436
437    async def access(self, inode: InodeT, mode: int, ctx: RequestContext) -> bool:
438        # Yeah, could be a function and has unused arguments
439        # pylint: disable=R0201,W0613
440        return True
441
442    async def create(
443        self, parent_inode: InodeT, name: bytes, mode: int, flags: int, ctx: RequestContext
444    ) -> tuple[FileInfo, EntryAttributes]:
445        # pylint: disable=W0612
446        entry = await self._create(parent_inode, name, mode, ctx)
447        self.inode_open_count[entry.st_ino] += 1
448        # For simplicity, we use the inode as file handle
449        return (FileInfo(fh=FileHandleT(entry.st_ino)), entry)
450
451    async def _create(
452        self,
453        parent_inode: InodeT,
454        name: bytes,
455        mode: int,
456        ctx: RequestContext,
457        rdev: int = 0,
458        target: bytes | None = None,
459    ) -> EntryAttributes:
460        if (await self.getattr(parent_inode, ctx)).st_nlink == 0:
461            log.warning('Attempted to create entry %s with unlinked parent %d', name, parent_inode)
462            raise FUSEError(errno.EINVAL)
463
464        now_ns = int(time() * 1e9)
465        self.cursor.execute(
466            'INSERT INTO inodes (uid, gid, mode, mtime_ns, atime_ns, '
467            'ctime_ns, target, rdev) VALUES(?, ?, ?, ?, ?, ?, ?, ?)',
468            (ctx.uid, ctx.gid, mode, now_ns, now_ns, now_ns, target, rdev),
469        )
470
471        inode = cast(InodeT, self.cursor.lastrowid)
472        self.db.execute(
473            "INSERT INTO contents(name, inode, parent_inode) VALUES(?,?,?)",
474            (name, inode, parent_inode),
475        )
476        return await self.getattr(inode, ctx)
477
478    async def read(self, fh: FileHandleT, off: int, size: int) -> bytes:
479        data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0]
480        if data is None:
481            data = b''
482        return data[off : off + size]
483
484    async def write(self, fh: FileHandleT, off: int, buf: bytes) -> int:
485        data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0]
486        if data is None:
487            data = b''
488        data = data[:off] + buf + data[off + len(buf) :]
489
490        self.cursor.execute(
491            'UPDATE inodes SET data=?, size=? WHERE id=?', (memoryview(data), len(data), fh)
492        )
493        return len(buf)
494
495    async def release(self, fh: FileHandleT) -> None:
496        inode = fh
497        self.inode_open_count[inode] -= 1
498
499        if self.inode_open_count[inode] == 0:
500            del self.inode_open_count[inode]
501            if (await self.getattr(inode)).st_nlink == 0:
502                self.cursor.execute("DELETE FROM inodes WHERE id=?", (inode,))
503
504
505class NoUniqueValueError(Exception):
506    def __str__(self) -> str:
507        return 'Query generated more than 1 result row'
508
509
510class NoSuchRowError(Exception):
511    def __str__(self) -> str:
512        return 'Query produced 0 result rows'
513
514
515def init_logging(debug: bool = False) -> None:
516    formatter = logging.Formatter(
517        '%(asctime)s.%(msecs)03d %(threadName)s: [%(name)s] %(message)s',
518        datefmt="%Y-%m-%d %H:%M:%S",
519    )
520    handler = logging.StreamHandler()
521    handler.setFormatter(formatter)
522    root_logger = logging.getLogger()
523    if debug:
524        handler.setLevel(logging.DEBUG)
525        root_logger.setLevel(logging.DEBUG)
526    else:
527        handler.setLevel(logging.INFO)
528        root_logger.setLevel(logging.INFO)
529    root_logger.addHandler(handler)
530
531
532def parse_args() -> Namespace:
533    '''Parse command line'''
534
535    parser = ArgumentParser()
536
537    parser.add_argument('mountpoint', type=str, help='Where to mount the file system')
538    parser.add_argument(
539        '--debug', action='store_true', default=False, help='Enable debugging output'
540    )
541    parser.add_argument(
542        '--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output'
543    )
544
545    return parser.parse_args()
546
547
548if __name__ == '__main__':
549    options = parse_args()
550    init_logging(options.debug)
551    operations = Operations()
552
553    fuse_options = set(pyfuse3.default_options)
554    fuse_options.add('fsname=tmpfs')
555    fuse_options.discard('default_permissions')
556    if options.debug_fuse:
557        fuse_options.add('debug')
558    pyfuse3.init(operations, options.mountpoint, fuse_options)
559
560    try:
561        trio.run(pyfuse3.main)
562    except:
563        pyfuse3.close(unmount=False)
564        raise
565
566    pyfuse3.close()

Passthrough / Overlay File System¶

(shipped as examples/passthroughfs.py)

  1#!/usr/bin/env python3
  2'''
  3passthroughfs.py - Example file system for pyfuse3
  4
  5This file system mirrors the contents of a specified directory tree.
  6
  7Caveats:
  8
  9 * Inode generation numbers are not passed through but set to zero.
 10
 11 * Block size (st_blksize) and number of allocated blocks (st_blocks) are not
 12   passed through.
 13
 14 * Performance for large directories is not good, because the directory
 15   is always read completely.
 16
 17 * There may be a way to break-out of the directory tree.
 18
 19 * The readdir implementation is not fully POSIX compliant. If a directory
 20   contains hardlinks and is modified during a readdir call, readdir()
 21   may return some of the hardlinked files twice or omit them completely.
 22
 23 * If you delete or rename files in the underlying file system, the
 24   passthrough file system will get confused.
 25
 26Copyright ©  Nikolaus Rath <Nikolaus.org>
 27
 28Permission is hereby granted, free of charge, to any person obtaining a copy of
 29this software and associated documentation files (the "Software"), to deal in
 30the Software without restriction, including without limitation the rights to
 31use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 32the Software, and to permit persons to whom the Software is furnished to do so.
 33
 34THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 35IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 36FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 37COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 38IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 39CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 40'''
 41
 42import errno
 43import faulthandler
 44import logging
 45import os
 46import stat as stat_m
 47import sys
 48from argparse import ArgumentParser, Namespace
 49from collections import defaultdict
 50from collections.abc import Sequence
 51from os import fsdecode, fsencode
 52
 53import trio
 54
 55import pyfuse3
 56from pyfuse3 import (
 57    EntryAttributes,
 58    FileHandleT,
 59    FileInfo,
 60    FUSEError,
 61    InodeT,
 62    ReaddirToken,
 63    RequestContext,
 64    SetattrFields,
 65    StatvfsData,
 66)
 67
 68faulthandler.enable()
 69
 70log = logging.getLogger(__name__)
 71
 72
 73class Operations(pyfuse3.Operations):
 74    def __init__(self, source: str, enable_writeback_cache: bool = False) -> None:
 75        super().__init__()
 76        self.enable_writeback_cache = enable_writeback_cache
 77        self._inode_path_map: dict[InodeT, str | set[str]] = {pyfuse3.ROOT_INODE: source}
 78        self._lookup_cnt: defaultdict[InodeT, int] = defaultdict(lambda: 0)
 79        self._fd_inode_map: dict[int, InodeT] = dict()
 80        self._inode_fd_map: dict[InodeT, int] = dict()
 81        self._fd_open_count: dict[int, int] = dict()
 82
 83    def _inode_to_path(self, inode: InodeT) -> str:
 84        try:
 85            val = self._inode_path_map[inode]
 86        except KeyError:
 87            raise FUSEError(errno.ENOENT)
 88
 89        if isinstance(val, set):
 90            # In case of hardlinks, pick any path
 91            val = next(iter(val))
 92        return val
 93
 94    def _add_path(self, inode: InodeT, path: str) -> None:
 95        log.debug('_add_path for %d, %s', inode, path)
 96        self._lookup_cnt[inode] += 1
 97
 98        # With hardlinks, one inode may map to multiple paths.
 99        if inode not in self._inode_path_map:
100            self._inode_path_map[inode] = path
101            return
102
103        val = self._inode_path_map[inode]
104        if isinstance(val, set):
105            val.add(path)
106        elif val != path:
107            self._inode_path_map[inode] = {path, val}
108
109    async def forget(self, inode_list: Sequence[tuple[InodeT, int]]) -> None:
110        for inode, nlookup in inode_list:
111            if self._lookup_cnt[inode] > nlookup:
112                self._lookup_cnt[inode] -= nlookup
113                continue
114            log.debug('forgetting about inode %d', inode)
115            assert inode not in self._inode_fd_map
116            del self._lookup_cnt[inode]
117            try:
118                del self._inode_path_map[inode]
119            except KeyError:  # may have been deleted
120                pass
121
122    async def lookup(
123        self, parent_inode: InodeT, name: bytes, ctx: RequestContext
124    ) -> EntryAttributes:
125        name_str = fsdecode(name)
126        log.debug('lookup for %s in %d', name_str, parent_inode)
127        path = os.path.join(self._inode_to_path(parent_inode), name_str)
128        attr = self._getattr(path=path)
129        if name_str != '.' and name_str != '..':
130            self._add_path(InodeT(attr.st_ino), path)
131        return attr
132
133    async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes:
134        if inode in self._inode_fd_map:
135            return self._getattr(fd=self._inode_fd_map[inode])
136        else:
137            return self._getattr(path=self._inode_to_path(inode))
138
139    def _getattr(self, path: str | None = None, fd: int | None = None) -> EntryAttributes:
140        assert fd is None or path is None
141        assert not (fd is None and path is None)
142        try:
143            if fd is None:
144                assert path is not None
145                stat = os.lstat(path)
146            else:
147                stat = os.fstat(fd)
148        except OSError as exc:
149            assert exc.errno is not None
150            raise FUSEError(exc.errno)
151
152        entry = EntryAttributes()
153        for attr in (
154            'st_ino',
155            'st_mode',
156            'st_nlink',
157            'st_uid',
158            'st_gid',
159            'st_rdev',
160            'st_size',
161            'st_atime_ns',
162            'st_mtime_ns',
163            'st_ctime_ns',
164        ):
165            setattr(entry, attr, getattr(stat, attr))
166        entry.generation = 0
167        entry.entry_timeout = 0
168        entry.attr_timeout = 0
169        entry.st_blksize = 512
170        entry.st_blocks = (entry.st_size + entry.st_blksize - 1) // entry.st_blksize
171
172        return entry
173
174    async def readlink(self, inode: InodeT, ctx: RequestContext) -> bytes:
175        path = self._inode_to_path(inode)
176        try:
177            target = os.readlink(path)
178        except OSError as exc:
179            assert exc.errno is not None
180            raise FUSEError(exc.errno)
181        return fsencode(target)
182
183    async def opendir(self, inode: InodeT, ctx: RequestContext) -> FileHandleT:
184        # For simplicity, we use the inode as file handle
185        return FileHandleT(inode)
186
187    async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None:
188        path = self._inode_to_path(InodeT(fh))
189        log.debug('reading %s', path)
190        entries: list[tuple[InodeT, str, EntryAttributes]] = []
191        for name in os.listdir(path):
192            if name == '.' or name == '..':
193                continue
194            attr = self._getattr(path=os.path.join(path, name))
195            entries.append((InodeT(attr.st_ino), name, attr))
196
197        log.debug('read %d entries, starting at %d', len(entries), start_id)
198
199        # This is not fully posix compatible. If there are hardlinks
200        # (two names with the same inode), we don't have a unique
201        # offset to start in between them. Note that we cannot simply
202        # count entries, because then we would skip over entries
203        # (or return them more than once) if the number of directory
204        # entries changes between two calls to readdir().
205        for ino, name, attr in sorted(entries):
206            if ino <= start_id:
207                continue
208            if not pyfuse3.readdir_reply(token, fsencode(name), attr, ino):
209                break
210            self._add_path(attr.st_ino, os.path.join(path, name))
211
212    async def unlink(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None:
213        name_str = fsdecode(name)
214        parent = self._inode_to_path(parent_inode)
215        path = os.path.join(parent, name_str)
216        try:
217            inode = os.lstat(path).st_ino
218            os.unlink(path)
219        except OSError as exc:
220            assert exc.errno is not None
221            raise FUSEError(exc.errno)
222        if inode in self._lookup_cnt:
223            self._forget_path(InodeT(inode), path)
224
225    async def rmdir(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None:
226        name_str = fsdecode(name)
227        parent = self._inode_to_path(parent_inode)
228        path = os.path.join(parent, name_str)
229        try:
230            inode = os.lstat(path).st_ino
231            os.rmdir(path)
232        except OSError as exc:
233            assert exc.errno is not None
234            raise FUSEError(exc.errno)
235        if inode in self._lookup_cnt:
236            self._forget_path(InodeT(inode), path)
237
238    def _forget_path(self, inode: InodeT, path: str) -> None:
239        log.debug('forget %s for %d', path, inode)
240        val = self._inode_path_map[inode]
241        if isinstance(val, set):
242            val.remove(path)
243            if len(val) == 1:
244                self._inode_path_map[inode] = next(iter(val))
245        else:
246            del self._inode_path_map[inode]
247
248    async def symlink(
249        self, parent_inode: InodeT, name: bytes, target: bytes, ctx: RequestContext
250    ) -> EntryAttributes:
251        name_str = fsdecode(name)
252        target_str = fsdecode(target)
253        parent = self._inode_to_path(parent_inode)
254        path = os.path.join(parent, name_str)
255        try:
256            os.symlink(target_str, path)
257            os.lchown(path, ctx.uid, ctx.gid)
258        except OSError as exc:
259            assert exc.errno is not None
260            raise FUSEError(exc.errno)
261        inode = InodeT(os.lstat(path).st_ino)
262        self._add_path(inode, path)
263        return await self.getattr(inode, ctx)
264
265    async def rename(
266        self,
267        parent_inode_old: InodeT,
268        name_old: bytes,
269        parent_inode_new: InodeT,
270        name_new: bytes,
271        flags: int,
272        ctx: RequestContext,
273    ) -> None:
274        if flags != 0:
275            raise FUSEError(errno.EINVAL)
276
277        name_old_str = fsdecode(name_old)
278        name_new_str = fsdecode(name_new)
279        parent_old = self._inode_to_path(parent_inode_old)
280        parent_new = self._inode_to_path(parent_inode_new)
281        path_old = os.path.join(parent_old, name_old_str)
282        path_new = os.path.join(parent_new, name_new_str)
283        try:
284            os.rename(path_old, path_new)
285            inode = os.lstat(path_new).st_ino
286        except OSError as exc:
287            assert exc.errno is not None
288            raise FUSEError(exc.errno)
289        if inode not in self._lookup_cnt:
290            return
291
292        val = self._inode_path_map[inode]
293        if isinstance(val, set):
294            assert len(val) > 1
295            val.add(path_new)
296            val.remove(path_old)
297        else:
298            assert val == path_old
299            self._inode_path_map[inode] = path_new
300
301    async def link(
302        self, inode: InodeT, new_parent_inode: InodeT, new_name: bytes, ctx: RequestContext
303    ) -> EntryAttributes:
304        new_name_str = fsdecode(new_name)
305        parent = self._inode_to_path(new_parent_inode)
306        path = os.path.join(parent, new_name_str)
307        try:
308            os.link(self._inode_to_path(inode), path, follow_symlinks=False)
309        except OSError as exc:
310            assert exc.errno is not None
311            raise FUSEError(exc.errno)
312        self._add_path(inode, path)
313        return await self.getattr(inode, ctx)
314
315    async def setattr(
316        self,
317        inode: InodeT,
318        attr: EntryAttributes,
319        fields: SetattrFields,
320        fh: FileHandleT | None,
321        ctx: RequestContext,
322    ) -> EntryAttributes:
323        try:
324            if fields.update_size:
325                if fh is None:
326                    os.truncate(self._inode_to_path(inode), attr.st_size)
327                else:
328                    os.ftruncate(fh, attr.st_size)
329
330            if fields.update_mode:
331                # Under Linux, chmod always resolves symlinks so we should
332                # actually never get a setattr() request for a symbolic
333                # link.
334                assert not stat_m.S_ISLNK(attr.st_mode)
335                if fh is None:
336                    os.chmod(self._inode_to_path(inode), stat_m.S_IMODE(attr.st_mode))
337                else:
338                    os.fchmod(fh, stat_m.S_IMODE(attr.st_mode))
339
340            if fields.update_uid and fields.update_gid:
341                if fh is None:
342                    os.chown(
343                        self._inode_to_path(inode), attr.st_uid, attr.st_gid, follow_symlinks=False
344                    )
345                else:
346                    os.fchown(fh, attr.st_uid, attr.st_gid)
347
348            elif fields.update_uid:
349                if fh is None:
350                    os.chown(self._inode_to_path(inode), attr.st_uid, -1, follow_symlinks=False)
351                else:
352                    os.fchown(fh, attr.st_uid, -1)
353
354            elif fields.update_gid:
355                if fh is None:
356                    os.chown(self._inode_to_path(inode), -1, attr.st_gid, follow_symlinks=False)
357                else:
358                    os.fchown(fh, -1, attr.st_gid)
359
360            if fields.update_atime and fields.update_mtime:
361                if fh is None:
362                    os.utime(
363                        self._inode_to_path(inode),
364                        None,
365                        follow_symlinks=False,
366                        ns=(attr.st_atime_ns, attr.st_mtime_ns),
367                    )
368                else:
369                    os.utime(fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns))
370            elif fields.update_atime or fields.update_mtime:
371                # We can only set both values, so we first need to retrieve the
372                # one that we shouldn't be changing.
373                if fh is None:
374                    path = self._inode_to_path(inode)
375                    oldstat = os.stat(path, follow_symlinks=False)
376                else:
377                    oldstat = os.fstat(fh)
378                if not fields.update_atime:
379                    attr.st_atime_ns = oldstat.st_atime_ns
380                else:
381                    attr.st_mtime_ns = oldstat.st_mtime_ns
382                if fh is None:
383                    os.utime(
384                        path,  # pyright: ignore[reportPossiblyUnboundVariable]
385                        None,
386                        follow_symlinks=False,
387                        ns=(attr.st_atime_ns, attr.st_mtime_ns),
388                    )
389                else:
390                    os.utime(fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns))
391
392        except OSError as exc:
393            assert exc.errno is not None
394            raise FUSEError(exc.errno)
395
396        return await self.getattr(inode, ctx)
397
398    async def mknod(
399        self, parent_inode: InodeT, name: bytes, mode: int, rdev: int, ctx: RequestContext
400    ) -> EntryAttributes:
401        path = os.path.join(self._inode_to_path(parent_inode), fsdecode(name))
402        try:
403            os.mknod(path, mode=(mode & ~ctx.umask), device=rdev)
404            os.chown(path, ctx.uid, ctx.gid)
405        except OSError as exc:
406            assert exc.errno is not None
407            raise FUSEError(exc.errno)
408        attr = self._getattr(path=path)
409        self._add_path(attr.st_ino, path)
410        return attr
411
412    async def mkdir(
413        self, parent_inode: InodeT, name: bytes, mode: int, ctx: RequestContext
414    ) -> EntryAttributes:
415        path = os.path.join(self._inode_to_path(parent_inode), fsdecode(name))
416        try:
417            os.mkdir(path, mode=(mode & ~ctx.umask))
418            os.chown(path, ctx.uid, ctx.gid)
419        except OSError as exc:
420            assert exc.errno is not None
421            raise FUSEError(exc.errno)
422        attr = self._getattr(path=path)
423        self._add_path(attr.st_ino, path)
424        return attr
425
426    async def statfs(self, ctx: RequestContext) -> StatvfsData:
427        root = self._inode_path_map[pyfuse3.ROOT_INODE]
428        assert isinstance(root, str)
429        stat_ = StatvfsData()
430        try:
431            statfs = os.statvfs(root)
432        except OSError as exc:
433            assert exc.errno is not None
434            raise FUSEError(exc.errno)
435        for attr in (
436            'f_bsize',
437            'f_frsize',
438            'f_blocks',
439            'f_bfree',
440            'f_bavail',
441            'f_files',
442            'f_ffree',
443            'f_favail',
444        ):
445            setattr(stat_, attr, getattr(statfs, attr))
446        stat_.f_namemax = statfs.f_namemax - (len(root) + 1)
447        return stat_
448
449    async def open(self, inode: InodeT, flags: int, ctx: RequestContext) -> FileInfo:
450        if inode in self._inode_fd_map:
451            fd = self._inode_fd_map[inode]
452            self._fd_open_count[fd] += 1
453            return FileInfo(fh=FileHandleT(fd))
454        assert flags & os.O_CREAT == 0
455        try:
456            fd = os.open(self._inode_to_path(inode), flags)
457        except OSError as exc:
458            assert exc.errno is not None
459            raise FUSEError(exc.errno)
460        self._inode_fd_map[inode] = fd
461        self._fd_inode_map[fd] = inode
462        self._fd_open_count[fd] = 1
463        return FileInfo(fh=fd)
464
465    async def create(
466        self, parent_inode: InodeT, name: bytes, mode: int, flags: int, ctx: RequestContext
467    ) -> tuple[FileInfo, EntryAttributes]:
468        path = os.path.join(self._inode_to_path(parent_inode), fsdecode(name))
469        try:
470            fd = os.open(path, flags | os.O_CREAT | os.O_TRUNC)
471        except OSError as exc:
472            assert exc.errno is not None
473            raise FUSEError(exc.errno)
474        attr = self._getattr(fd=fd)
475        self._add_path(attr.st_ino, path)
476        self._inode_fd_map[attr.st_ino] = fd
477        self._fd_inode_map[fd] = attr.st_ino
478        self._fd_open_count[fd] = 1
479        return (FileInfo(fh=fd), attr)
480
481    async def read(self, fh: FileHandleT, off: int, size: int) -> bytes:
482        os.lseek(fh, off, os.SEEK_SET)
483        return os.read(fh, size)
484
485    async def write(self, fh: FileHandleT, off: int, buf: bytes) -> int:
486        os.lseek(fh, off, os.SEEK_SET)
487        return os.write(fh, buf)
488
489    async def release(self, fh: FileHandleT) -> None:
490        if self._fd_open_count[fh] > 1:
491            self._fd_open_count[fh] -= 1
492            return
493
494        del self._fd_open_count[fh]
495        inode = self._fd_inode_map[fh]
496        del self._inode_fd_map[inode]
497        del self._fd_inode_map[fh]
498        try:
499            os.close(fh)
500        except OSError as exc:
501            assert exc.errno is not None
502            raise FUSEError(exc.errno)
503
504
505def init_logging(debug: bool = False) -> None:
506    formatter = logging.Formatter(
507        '%(asctime)s.%(msecs)03d %(threadName)s: [%(name)s] %(message)s',
508        datefmt="%Y-%m-%d %H:%M:%S",
509    )
510    handler = logging.StreamHandler()
511    handler.setFormatter(formatter)
512    root_logger = logging.getLogger()
513    if debug:
514        handler.setLevel(logging.DEBUG)
515        root_logger.setLevel(logging.DEBUG)
516    else:
517        handler.setLevel(logging.INFO)
518        root_logger.setLevel(logging.INFO)
519    root_logger.addHandler(handler)
520
521
522def parse_args(args: list[str]) -> Namespace:
523    '''Parse command line'''
524
525    parser = ArgumentParser()
526
527    parser.add_argument('source', type=str, help='Directory tree to mirror')
528    parser.add_argument('mountpoint', type=str, help='Where to mount the file system')
529    parser.add_argument(
530        '--debug', action='store_true', default=False, help='Enable debugging output'
531    )
532    parser.add_argument(
533        '--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output'
534    )
535    parser.add_argument(
536        '--enable-writeback-cache',
537        action='store_true',
538        default=False,
539        help='Enable writeback cache (default: disabled)',
540    )
541
542    return parser.parse_args(args)
543
544
545def main() -> None:
546    options = parse_args(sys.argv[1:])
547    init_logging(options.debug)
548    operations = Operations(options.source, enable_writeback_cache=options.enable_writeback_cache)
549
550    log.debug('Mounting...')
551    fuse_options = set(pyfuse3.default_options)
552    fuse_options.add('fsname=passthroughfs')
553    if options.debug_fuse:
554        fuse_options.add('debug')
555    pyfuse3.init(operations, options.mountpoint, fuse_options)
556
557    try:
558        log.debug('Entering main loop..')
559        trio.run(pyfuse3.main)
560    except:
561        pyfuse3.close(unmount=False)
562        raise
563
564    log.debug('Unmounting..')
565    pyfuse3.close()
566
567
568if __name__ == '__main__':
569    main()
././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677271.0 pyfuse3-3.5.0/doc/html/fuse_api.html0000644000175000017500000006630015201073027017573 0ustar00nikrationikratio FUSE API Functions — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation

FUSE API Functions¶

pyfuse3.init(ops, mountpoint, options=frozenset({'default_permissions'}))¶

Initialize and mount FUSE file system

ops has to be an instance of the Operations class (or another class defining the same methods).

args has to be a set of strings. default_options provides some reasonable defaults. It is recommended to use these options as a basis and add or remove options as necessary. For example:

my_opts = set(pyfuse3.default_options)
my_opts.add('allow_other')
my_opts.discard('default_permissions')
pyfuse3.init(ops, mountpoint, my_opts)

Valid options are listed under struct fuse_opt fuse_mount_opts[] (in mount.c) and struct fuse_opt fuse_ll_opts[] (in fuse_lowlevel_c).

async pyfuse3.main(min_tasks=1, max_tasks=99)¶

Run FUSE main loop

pyfuse3.terminate()¶

Terminate FUSE main loop.

This function gracefully terminates the FUSE main loop (resulting in the call to main() to return).

When called by a thread different from the one that runs the main loop, the call must be wrapped with trio.from_thread.run_sync. The necessary trio_token argument can (for convenience) be retrieved from the trio_token module attribute.

pyfuse3.close(unmount=True)¶

Clean up and ensure filesystem is unmounted

If unmount is False, only clean up operations are performed, but the file system is not explicitly unmounted.

Normally, the filesystem is unmounted by the user calling umount(8) or fusermount(1), which then terminates the FUSE main loop. However, the loop may also terminate as a result of an exception or a signal. In this case the filesystem remains mounted, but any attempt to access it will block (while the filesystem process is still running) or (after the filesystem process has terminated) return an error. If unmount is True, this function will ensure that the filesystem is properly unmounted.

Note: if the connection to the kernel is terminated via the /sys/fs/fuse/connections/ interface, this function will not unmount the filesystem even if unmount is True.

pyfuse3.invalidate_inode(inode, attr_only=False)¶

Invalidate cache for inode

Instructs the FUSE kernel module to forget cached attributes and data (unless attr_only is True) for inode.

This operation may block if writeback caching is active and there is dirty data for the inode that is to be invalidated. Unfortunately there is no way to return control to the event loop until writeback is complete (leading to a deadlock if the necessary write() requests cannot be processed by the filesystem). Unless writeback caching is disabled, this function should therefore be called from a separate thread.

If the operation is not supported by the kernel, raises OSError with errno ENOSYS.

pyfuse3.invalidate_entry(inode_p, name, deleted=0)¶

Invalidate directory entry

Instructs the FUSE kernel module to forget about the directory entry name in the directory with inode inode_p.

If the inode passed as deleted matches the inode that is currently associated with name by the kernel, any inotify watchers of this inode are informed that the entry has been deleted.

If there is a pending filesystem operation that is related to the parent directory or directory entry, this function will block until that operation has completed. Therefore, to avoid a deadlock this function must not be called while handling a related request, nor while holding a lock that could be needed for handling such a request.

As for kernel 4.18, a “related operation� is a lookup, symlink, mknod, mkdir, unlink, rename, link or create request for the parent, and a setattr, unlink, rmdir, rename, setxattr, removexattr or readdir request for the inode itself.

For technical reasons, this function can also not return control to the main event loop but will actually block. To return control to the event loop while this function is running, call it in a separate thread using trio.run_sync_in_worker_thread. A less complicated alternative is to use the invalidate_entry_async function instead.

pyfuse3.invalidate_entry_async(inode_p, name, deleted=0, ignore_enoent=False)¶

Asynchronously invalidate directory entry

This function performs the same operation as invalidate_entry, but does so asynchronously in a separate thread. This avoids the deadlocks that may occur when using invalidate_entry from within a request handler, but means that the function generally returns before the kernel has actually invalidated the entry, and that no errors can be reported (they will be logged though).

The directory entries that are to be invalidated are put in an unbounded queue which is processed by a single thread. This means that if the entry at the beginning of the queue cannot be invalidated yet because a related file system operation is still in progress, none of the other entries will be processed and repeated calls to this function will result in continued growth of the queue.

If there are errors, an exception is logged using the logging module.

If ignore_enoent is True, ignore ENOENT errors (which occur if the kernel doesn’t actually have knowledge of the entry that is to be removed).

pyfuse3.notify_store(inode, offset, data)¶

Store data in kernel page cache

Sends data for the kernel to store it in the page cache for inode at offset. If this provides data beyond the current file size, the file is automatically extended.

If this function raises an exception, the store may still have completed partially.

If the operation is not supported by the kernel, raises OSError with errno ENOSYS.

pyfuse3.readdir_reply(token, name, attr, next_id)¶

Report a directory entry in response to a readdir request.

This function should be called by the readdir handler to provide the list of directory entries. The function should be called once for each directory entry, until it returns False.

token must be the token received by the readdir handler.

name and must be the name of the directory entry and attr an

EntryAttributes instance holding its attributes.

next_id must be a 64-bit integer value that uniquely identifies the current position in the list of directory entries. It may be passed back to a later readdir call to start another listing at the right position. This value should be robust in the presence of file removals and creations, i.e. if files are created or removed after a call to readdir and readdir is called again with start_id set to any previously supplied next_id values, under no circumstances must any file be reported twice or skipped over.

pyfuse3.trio_token¶

Set to the value returned by trio.lowlevel.current_trio_token while main is running. Can be used by other threads to run code in the main loop through trio.from_thread.run.

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677271.0 pyfuse3-3.5.0/doc/html/general.html0000644000175000017500000003213415201073027017413 0ustar00nikrationikratio General Information — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation

General Information¶

Getting started¶

A file system is implemented by subclassing the pyfuse3.Operations class and implementing the various request handlers. The handlers respond to requests received from the FUSE kernel module and perform functions like looking up the inode given a file name, looking up attributes of an inode, opening a (file) inode for reading or writing or listing the contents of a (directory) inode.

By default, pyfuse3 uses asynchronous I/O using Trio, and most of the documentation assumes that you are using Trio. If you’d rather use asyncio, take a look at asyncio Support. If you would like to use Trio (which is recommended) but you have not yet used Trio before, please read the Trio tutorial first.

An instance of the operations class is passed to pyfuse3.init to mount the file system. To enter the request handling loop, run pyfuse3.main in a trio event loop. This function will return when the file system should be unmounted again, which is done by calling pyfuse3.close.

All character data (directory entry names, extended attribute names and values, symbolic link targets etc) are passed as bytes and must be returned as bytes.

For easier debugging, it is strongly recommended that applications using pyfuse3 also make use of the faulthandler module.

Lookup Counts¶

Most file systems need to keep track which inodes are currently known to the kernel. This is, for example, necessary to correctly implement the unlink system call: when unlinking a directory entry whose associated inode is currently opened, the file system must defer removal of the inode (and thus the file contents) until it is no longer in use by any process.

FUSE file systems achieve this by using “lookup counts�. A lookup count is a number that’s associated with an inode. An inode with a lookup count of zero is currently not known to the kernel. This means that if there are no directory entries referring to such an inode it can be safely removed, or (if a file system implements dynamic inode numbers), the inode number can be safely recycled.

The lookup count of an inode is increased by every operation that could make the inode “known� to the kernel. This includes e.g. lookup, create and readdir (to determine if a given request handler affects the lookup count, please refer to its description in the Operations class). The lookup count is decreased by calls to the forget handler.

FUSE and VFS Locking¶

FUSE and the kernel’s VFS layer provide some basic locking that FUSE file systems automatically take advantage of. Specifically:

  • Calls to rename, create, symlink, mknod, link and mkdir acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename).

  • Calls to lookup acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation).

  • Unless writeback caching is enabled, calls to write for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled).

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/genindex.html0000644000175000017500000005062315201114623017600 0ustar00nikrationikratio Index — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation

Index

A | C | D | E | F | G | I | K | L | M | N | O | P | R | S | T | U | W | X

A

C

D

E

F

G

I

K

L

M

N

O

P

R

S

T

U

W

X

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677272.0 pyfuse3-3.5.0/doc/html/gotchas.html0000644000175000017500000002125315201073030017420 0ustar00nikrationikratio Common Gotchas — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation

Common Gotchas¶

This chapter lists some common gotchas that should be avoided.

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/index.html0000644000175000017500000001504115201114623017101 0ustar00nikrationikratio pyfuse3 Documentation — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677272.0 pyfuse3-3.5.0/doc/html/install.html0000644000175000017500000002075515201073030017444 0ustar00nikrationikratio Installation — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation

Installation¶

Dependencies¶

As usual, Python dependencies are specified in pyproject.toml. However, to build pyfuse3 you also need the following additional dependencies installed on your system:

  • libfuse, version 3.3.0 or newer, including development headers (typically distributions provide them in a libfuse3-devel or libfuse3-dev package).

  • the pkg-config tool

  • the attr library

  • Python development headers (for example, the python3-dev or python3-devel package on many Linux distributions)

  • A C compiler

Stable releases¶

To install a stable pyfuse3 release, ensure you have the non-Python dependencies installed and then use your favorite Python package manager to install pyfuse3 from PyPI (e.g. pip install pyfuse3).

Pyfuse release tarballs are signed with signify. You can validate the signature with:

signify -V -m pyfuse3-A.B.C.tar.gz -p <public-key>

The public key needs to be retrieved from a trustworthy source for the first installation. Afterwards, the trust chain is self-sustaining: each release tarball contains the public key for the release in its signify/ directory. Bugfix releases (A.B.C) will be signed by pyfuse-A.B.pub. New major or minor releases (A.B.0) will be signed by pyfuse-next.pub.

Installing from Git / Developing pyfuse3¶

Clone the pyfuse3 repository and take a look at developer_notes/setup.md.

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/objects.inv0000644000175000017500000000247615201114623017263 0ustar00nikrationikratio# Sphinx inventory version 2 # Project: pyfuse3 # Version: 3.4.3.dev19+g57a14ee07.d20260509 # The remainder of this file is compressed using zlib. xÚ¥™Moã6†ïþÒ«�.zÛ›‘x³;ˆ³ÀÞZÙ„ù¡’T÷×—)[r蘟bQï3~Íh˜úP5þÊêÃw.ˆAögFE ³�áìηMÿȦ“Ú+g‹åjþööꈒ’}ËÜ/è„Q‡¹1ŠnÚé F´NfÄþÌ å ãhÒ½J¶îù6[ ˆ¡RàxmrâÈ…Fذ½¦ÿÁ ¼,öøî‹[ýßÒÍR!ѬݼøIã·ŽZ0*öhZ•ðކoÚ-Mêjýøµ^,”’ÊÉᣀº=&å”ÁO"Jo×c�?‰J¦+g%UPØ “¸_Ž\µ ìê¼ ÅF‚B °'6‚\ž4aŒldOž‰ÝsšlU‡à8ïòØú1#Eº9˜�,ÓÉB1€!+Öè ”j Eêƒ(РÝÕÖúê¶ýÀ²TPÔu¡r<§ñÎ2)÷M�!ù¹,|oÏ´2�å�¾Ö’1 gÏf‰å�®:»…0 n@ÑNsùèÝ«@ØÌ€"9Òc�*ú† ¢ )öF‘�´©PYF8vS5Kþ«èˆÌöbϨÿ¦ºž«OZû!bhuôg^Ëùó"_ü¾ÿ9_>.®Ö|A¿\½.^þžß'«Õ[þ´\=$H}|x“{ ¿í+üÓ€6÷Rø0cõ³ä’匫‘\ƒå8щEÆÚŸÞX™P�䳦¶*ð¥,¢»ŽOžÖ(�^ÏÅñ�O¯ª¢xò¯-ü^éw®/ÓI<«ò y'”�îÆ‘•@�#.ÎÈ:+ô(+ì(+[‰¡Y)ì(]zçä# ýíjøÄR1ÏÝgzž_¾¡›öÑK÷yƒn¢æNÚ˜¡OåÜF'‹˜ˆ¥Æ¨‘ž0b&žu¢†Ò¨©xJº`l Ž˜»Ï£Ö†Ú˜±X̉›ê){†¾º˜~þˆ‰ÈOƈ+|ý=ÎñN:´]¼•.˜ôñU#ŠpåÞ䤦Ÿ�@ i˜Ée}tõËo[纩ó­’M­Ïºi eQäøÅ{UÜÕÍIÎSñNmsJ{Á�sÒ]MŒÅ©©8 tUz(9®Î'T$öß±¹6R¥{êÌ\AÍÒçN�YN7­UÚ61 8á6+É€enºx¶íg9Ù¸ÿy؉ÿ^ÊÂÁ¶¡}ŸÍÝÏIwÌúšÞ)ë²uS×R õŒl€�¶ßs¦Ø±µÉ¢×Ghò}Ü·Ln'í@z²ãAÌÚP³6ª)L£@OlÍÌkzâÐäõ‹ðÞe‡l}Ðø r‰<Ómãp }wáaêÔÓ Žšíæ½ïÌ`-2—ç²ùËSö#,®žøÿ)±>š<òÞ»Ô¦xÓþ[nèt×ê¹'÷Ó*�¡bkOQÊOÀ±Ÿ» œvÊGÿœ…çÉV»XƒÅ Mañ$çv³>ú¶ÉÉ¿ î¹6oö ‹†ÛàãE…튱!Ó6uj¼ØýÈ Ô‡i÷Â3Ï>cø¹8¥�~gÉ( ¹6ó_JOzF¯ôör°õ³vª�¨b7}›gÖþý ÙÂÄ…¾kÇ ‘ý²¿¨9ô¶ÍÿNG…Ó././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677272.0 pyfuse3-3.5.0/doc/html/operations.html0000644000175000017500000031126515201073030020160 0ustar00nikrationikratio Request Handlers — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation

Request Handlers¶

(You can use the Index to directly jump to a specific handler).

class pyfuse3.Operations¶

This class defines the request handler methods that an pyfuse3 file system may implement. If a particular request handler has not been implemented, it must raise FUSEError with an errorcode of errno.ENOSYS. Further requests of this type will then be handled directly by the FUSE kernel module without calling the handler again.

The only exception that request handlers are allowed to raise is FUSEError. This will cause the specified errno to be returned by the syscall that is being handled.

It is recommended that file systems are derived from this class and only overwrite the handlers that they actually implement. (The methods defined in this class all just raise FUSEError(ENOSYS) or do nothing).

supports_dot_lookup = True

If set, indicates that the filesystem supports lookup of the . and .. entries. This is required if the file system will be shared over NFS.

enable_writeback_cache = True

Enables write-caching in the kernel if available. This means that individual write request may be buffered and merged in the kernel before they are send to the filesystem.

enable_acl = False

Enable ACL support. When enabled, the kernel will cache and have responsibility for enforcing ACLs. ACL will be stored as xattrs and passed to userspace, which is responsible for updating the ACLs in the filesystem, keeping the file mode in sync with the ACL, and ensuring inheritance of default ACLs when new filesystem nodes are created. Note that this requires that the file system is able to parse and interpret the xattr representation of ACLs.

Enabling this feature implicitly turns on the default_permissions option.

async access(inode: int, mode: int, ctx: RequestContext) → bool¶

Check if requesting process has mode rights on inode.

ctx will be a RequestContext instance.

The method must return a boolean value.

If the default_permissions mount option is given, this method is not called.

When implementing this method, the get_sup_groups function may be useful.

async create(parent_inode: int, name: bytes, mode: int, flags: int, ctx: RequestContext) → Tuple[FileInfo, EntryAttributes]¶

Create a file with permissions mode and open it with flags.

ctx will be a RequestContext instance.

The method must return a tuple of the form (fi, attr), where fi is a FileInfo instance handle like the one returned by open and attr is an EntryAttributes instance with the attributes of the newly created directory entry.

(Successful) execution of this handler increases the lookup count for the returned inode by one.

async flush(fh: int) → None¶

Handle close() syscall.

fh will be an integer filehandle returned by a prior open or create call.

This method is called whenever a file descriptor is closed. It may be called multiple times for the same open file (e.g. if the file handle has been duplicated).

async forget(inode_list: Sequence[Tuple[int, int]]) → None¶

Decrease lookup counts for inodes in inode_list.

inode_list is a list of (inode, nlookup) tuples. This method should reduce the lookup count for each inode by nlookup.

If the lookup count reaches zero, the inode is currently not known to the kernel. In this case, the file system will typically check if there are still directory entries referring to this inode and, if not, remove the inode.

If the file system is unmounted, it may not have received forget calls to bring all lookup counts to zero. The filesystem needs to take care to clean up inodes that at that point still have non-zero lookup count (e.g. by explicitly calling forget with the current lookup count for every such inode after main has returned).

This method must not raise any exceptions (not even FUSEError), since it is not handling a particular client request.

async fsync(fh: int, datasync: bool) → None¶

Flush buffers for open file fh.

If datasync is true, only the file contents should be flushed (in contrast to the metadata about the file).

fh will be an integer filehandle returned by a prior open or create call.

async fsyncdir(fh: int, datasync: bool) → None¶

Flush buffers for open directory fh.

If datasync is true, only the directory contents should be flushed (in contrast to metadata about the directory itself).

async getattr(inode: int, ctx: RequestContext) → EntryAttributes¶

Get attributes for inode.

ctx will be a RequestContext instance.

This method should return an EntryAttributes instance with the attributes of inode. The entry_timeout attribute is ignored in this context.

async getxattr(inode: int, name: bytes, ctx: RequestContext) → bytes¶

Return extended attribute name of inode.

ctx will be a RequestContext instance.

If the attribute does not exist, the method must raise FUSEError with an error code of ENOATTR. name will be of type bytes, but is guaranteed not to contain zero-bytes (\0).

init() → None¶

Initialize operations.

This method will be called just before the file system starts handling requests. It must not raise any exceptions (not even FUSEError), since it is not handling a particular client request.

Create directory entry name in parent_inode referring to inode.

ctx will be a RequestContext instance.

The method must return an EntryAttributes instance with the attributes of the newly created directory entry.

(Successful) execution of this handler increases the lookup count for the returned inode by one.

async listxattr(inode: int, ctx: RequestContext) → Sequence[bytes]¶

Get list of extended attributes for inode.

ctx will be a RequestContext instance.

This method must return a sequence of bytes objects. The objects must not include zero-bytes (\0).

async lookup(parent_inode: int, name: bytes, ctx: RequestContext) → EntryAttributes¶

Look up a directory entry by name and get its attributes.

This method should return an EntryAttributes instance for the directory entry name in the directory with inode parent_inode.

If there is no such entry, the method should either return an EntryAttributes instance with zero st_ino value (in which case the negative lookup will be cached as specified by entry_timeout), or it should raise FUSEError with an errno of errno.ENOENT (in this case the negative result will not be cached).

ctx will be a RequestContext instance.

The file system must be able to handle lookups for . and .., no matter if these entries are returned by readdir or not.

(Successful) execution of this handler increases the lookup count for the returned inode by one.

async mkdir(parent_inode: int, name: bytes, mode: int, ctx: RequestContext) → EntryAttributes¶

Create a directory.

This method must create a new directory name with mode mode in the directory with inode parent_inode. ctx will be a RequestContext instance.

This method must return an EntryAttributes instance with the attributes of the newly created directory entry.

(Successful) execution of this handler increases the lookup count for the returned inode by one.

async mknod(parent_inode: int, name: bytes, mode: int, rdev: int, ctx: RequestContext) → EntryAttributes¶

Create (possibly special) file.

This method must create a (special or regular) file name in the directory with inode parent_inode. Whether the file is special or regular is determined by its mode. If the file is neither a block nor character device, rdev can be ignored. ctx will be a RequestContext instance.

The method must return an EntryAttributes instance with the attributes of the newly created directory entry.

(Successful) execution of this handler increases the lookup count for the returned inode by one.

async open(inode: int, flags: int, ctx: RequestContext) → FileInfo¶

Open a inode inode with flags.

ctx will be a RequestContext instance.

flags will be a bitwise or of the open flags described in the open(2) manpage and defined in the os module (with the exception of O_CREAT, O_EXCL, O_NOCTTY and O_TRUNC)

This method must return a FileInfo instance. The FileInfo.fh field must contain an integer file handle, which will be passed to the read, write, flush, fsync and release methods to identify the open file. The FileInfo instance may also have relevant configuration attributes set; see the FileInfo documentation for more information.

async opendir(inode: int, ctx: RequestContext) → int¶

Open the directory with inode inode.

ctx will be a RequestContext instance.

This method should return an integer file handle. The file handle will be passed to the readdir, fsyncdir and releasedir methods to identify the directory.

async poll(inode: int, fh: int, poll_handle: PollHandle | None, ctx: RequestContext) → int¶

Check IO readiness on an open file.

This method is called when a process performs poll(2), select(2) or epoll_wait(2) on a file descriptor backed by fh (returned by a prior open or create call). inode identifies the inode that fh refers to.

The method will return the bitwise-or of the currently active poll events, for example select.POLLIN, select.POLLOUT or select.POLLPRI. If no events are currently ready, it will return 0.

If poll_handle is None, the kernel has not provided a notification handle for this request. The filesystem should only return the current readiness mask and must not attempt to store a handle or arrange a later PollHandle.notify call for this poll request.

If poll_handle is not None, the kernel has provided a notification handle that may be used to wake waiters if readiness changes after this method returns. The filesystem may store the handle and later call PollHandle.notify when a relevant event becomes available. Each poll call produces a fresh handle; storing a new handle should replace any previously held one, allowing the old handle to be destroyed.

If this method raises FUSEError(errno.ENOSYS) (the default), the kernel will fall back to a default poll implementation and will not call this handler again for the lifetime of the mount.

async read(fh: int, off: int, size: int) → bytes¶

Read size bytes from fh at position off.

fh will be an integer filehandle returned by a prior open or create call.

This function should return exactly the number of bytes requested except on EOF or error, otherwise the rest of the data will be substituted with zeroes.

async readdir(fh: int, start_id: int, token: ReaddirToken) → None¶

Read entries in open directory fh.

This method should list the contents of directory fh (as returned by a prior opendir call), starting at the entry identified by start_id.

Instead of returning the directory entries directly, the method must call readdir_reply for each directory entry. If readdir_reply returns True, the file system must increase the lookup count for the provided directory entry by one and call readdir_reply again for the next entry (if any). If readdir_reply returns False, the lookup count must not be increased and the method should return without further calls to readdir_reply.

The start_id parameter will be either zero (in which case listing should begin with the first entry) or it will correspond to a value that was previously passed by the file system to the readdir_reply function in the next_id parameter.

If entries are added or removed during a readdir cycle, they may or may not be returned. However, they must not cause other entries to be skipped or returned more than once.

. and .. entries may be included but are not required. However, if they are reported the filesystem must not increase the lookup count for the corresponding inodes (even if readdir_reply returns True).

Return target of symbolic link inode.

ctx will be a RequestContext instance.

async release(fh: int) → None¶

Release open file.

This method will be called when the last file descriptor of fh has been closed, i.e. when the file is no longer opened by any client process.

fh will be an integer filehandle returned by a prior open or create call. Once release has been called, no future requests for fh will be received (until the value is re-used in the return value of another open or create call).

This method may return an error by raising FUSEError, but the error will be discarded because there is no corresponding client request.

async releasedir(fh: int) → None¶

Release open directory.

This method will be called exactly once for each opendir call. After fh has been released, no further readdir requests will be received for it (until it is opened again with opendir).

async removexattr(inode: int, name: bytes, ctx: RequestContext) → None¶

Remove extended attribute name of inode.

ctx will be a RequestContext instance.

If the attribute does not exist, the method must raise FUSEError with an error code of ENOATTR. name will be of type bytes, but is guaranteed not to contain zero-bytes (\0).

async rename(parent_inode_old: int, name_old: bytes, parent_inode_new: int, name_new: bytes, flags: int, ctx: RequestContext) → None¶

Rename a directory entry.

This method must rename name_old in the directory with inode parent_inode_old to name_new in the directory with inode parent_inode_new. If name_new already exists, it should be overwritten.

flags may be RENAME_EXCHANGE or RENAME_NOREPLACE. If RENAME_NOREPLACE is specified, the filesystem must not overwrite name_new if it exists and return an error instead. If RENAME_EXCHANGE is specified, the filesystem must atomically exchange the two files, i.e. both must exist and neither may be deleted.

ctx will be a RequestContext instance.

Let the inode associated with name_old in parent_inode_old be inode_moved, and the inode associated with name_new in parent_inode_new (if it exists) be called inode_deref.

If inode_deref exists and has a non-zero lookup count, or if there are other directory entries referring to inode_deref), the file system must update only the directory entry for name_new to point to inode_moved instead of inode_deref. (Potential) removal of inode_deref (containing the previous contents of name_new) must be deferred to the forget method to be carried out when the lookup count reaches zero (and of course only if at that point there are no more directory entries associated with inode_deref either).

async rmdir(parent_inode: int, name: bytes, ctx: RequestContext) → None¶

Remove directory name.

This method must remove the directory name from the directory with inode parent_inode. ctx will be a RequestContext instance. If there are still entries in the directory, the method should raise FUSEError(errno.ENOTEMPTY).

If the inode associated with name (i.e., not the parent_inode) has a non-zero lookup count, the file system must remove only the directory entry (so that future calls to readdir for parent_inode will no longer include name, but e.g. calls to getattr for file’s inode still succeed). Removal of the associated inode holding the directory contents and metadata must be deferred to the forget method to be carried out when the lookup count reaches zero.

(Since hard links to directories are not allowed by POSIX, this method is not required to check if there are still other directory entries referring to the same inode. This conveniently avoids the ambiguities associated with the . and .. entries).

async setattr(inode: int, attr: EntryAttributes, fields: SetattrFields, fh: int | None, ctx: RequestContext) → EntryAttributes¶

Change attributes of inode.

fields will be an SetattrFields instance that specifies which attributes are to be updated. attr will be an EntryAttributes instance for inode that contains the new values for changed attributes, and undefined values for all other attributes.

Most file systems will additionally set the st_ctime_ns attribute to the current time (to indicate that the inode metadata was changed).

If the syscall that is being processed received a file descriptor argument (like e.g. ftruncate(2) or fchmod(2)), fh will be the file handle returned by the corresponding call to the open handler. If the syscall was path based (like e.g. truncate(2) or chmod(2)), fh will be None.

ctx will be a RequestContext instance.

The method should return an EntryAttributes instance (containing both the changed and unchanged values).

async setxattr(inode: int, name: bytes, value: bytes, ctx: RequestContext) → None¶

Set extended attribute name of inode to value.

ctx will be a RequestContext instance.

The attribute may or may not exist already. Both name and value will be of type bytes. name is guaranteed not to contain zero-bytes (\0).

stacktrace() → None¶

Asynchronous debugging.

This method will be called when the fuse_stacktrace extended attribute is set on the mountpoint. The default implementation logs the current stack trace of every running Python thread. This can be quite useful to debug file system deadlocks.

async statfs(ctx: RequestContext) → StatvfsData¶

Get file system statistics.

ctx will be a RequestContext instance.

The method must return an appropriately filled StatvfsData instance.

Create a symbolic link.

This method must create a symbolink link named name in the directory with inode parent_inode, pointing to target. ctx will be a RequestContext instance.

The method must return an EntryAttributes instance with the attributes of the newly created directory entry.

(Successful) execution of this handler increases the lookup count for the returned inode by one.

Remove a (possibly special) file.

This method must remove the (special or regular) file name from the directory with inode parent_inode. ctx will be a RequestContext instance.

If the inode associated with file (i.e., not the parent_inode) has a non-zero lookup count, or if there are still other directory entries referring to this inode (due to hardlinks), the file system must remove only the directory entry (so that future calls to readdir for parent_inode will no longer include name, but e.g. calls to getattr for file’s inode still succeed). (Potential) removal of the associated inode with the file contents and metadata must be deferred to the forget method to be carried out when the lookup count reaches zero (and of course only if at that point there are no more directory entries associated with the inode either).

async write(fh: int, off: int, buf: bytes) → int¶

Write buf into fh at off.

fh will be an integer filehandle returned by a prior open or create call.

This method must return the number of bytes written. However, unless the file system has been mounted with the direct_io option, the file system must always write all the provided data (i.e., return len(buf)).

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/py-modindex.html0000644000175000017500000001175615201114623020240 0ustar00nikrationikratio Python Module Index — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/search.html0000644000175000017500000001107415201114623017241 0ustar00nikrationikratio Search — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation

Search

Searching for multiple words only shows matches that contain all words.

././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/doc/html/searchindex.js0000644000175000017500000005526115201114623017747 0ustar00nikrationikratioSearch.setIndex({"alltitles":{"About":[[0,null]],"Changelog":[[2,null]],"Common Gotchas":[[7,null]],"Contributing":[[0,"contributing"]],"Data Structures":[[3,null]],"Dependencies":[[9,"dependencies"]],"Development Status":[[0,"development-status"]],"Example File Systems":[[4,null]],"FUSE API Functions":[[5,null]],"FUSE and VFS Locking":[[6,"fuse-and-vfs-locking"]],"General Information":[[6,null]],"Getting Help":[[0,"getting-help"]],"Getting started":[[6,"getting-started"]],"In-memory File System":[[4,"in-memory-file-system"]],"Indices and tables":[[8,"indices-and-tables"]],"Installation":[[9,null]],"Installing from Git / Developing pyfuse3":[[9,"installing-from-git-developing-pyfuse3"]],"Lookup Counts":[[6,"lookup-counts"]],"Passthrough / Overlay File System":[[4,"passthrough-overlay-file-system"]],"Release 0.9 (2018-09-27)":[[2,"release-0-9-2018-09-27"]],"Release 1.0 (2018-10-08)":[[2,"release-1-0-2018-10-08"]],"Release 1.1 (2018-11-02)":[[2,"release-1-1-2018-11-02"]],"Release 1.2 (2018-12-22)":[[2,"release-1-2-2018-12-22"]],"Release 1.3 (2019-06-02)":[[2,"release-1-3-2019-06-02"]],"Release 1.3.1 (2019-07-17)":[[2,"release-1-3-1-2019-07-17"]],"Release 2.0.0":[[2,"release-2-0-0"]],"Release 3.0.0 (2020-05-08)":[[2,"release-3-0-0-2020-05-08"]],"Release 3.1.0 (2020-05-31)":[[2,"release-3-1-0-2020-05-31"]],"Release 3.1.1 (2020-10-06)":[[2,"release-3-1-1-2020-10-06"]],"Release 3.2.0 (2020-12-30)":[[2,"release-3-2-0-2020-12-30"]],"Release 3.2.1 (2021-09-17)":[[2,"release-3-2-1-2021-09-17"]],"Release 3.2.2 (2022-09-28)":[[2,"release-3-2-2-2022-09-28"]],"Release 3.2.3 (2023-05-09)":[[2,"release-3-2-3-2023-05-09"]],"Release 3.3.0 (2023-08-06)":[[2,"release-3-3-0-2023-08-06"]],"Release 3.4.0 (2024-08-28)":[[2,"release-3-4-0-2024-08-28"]],"Release 3.4.1 (2025-12-22)":[[2,"release-3-4-1-2025-12-22"]],"Removing inodes in unlink handler":[[7,"removing-inodes-in-unlink-handler"]],"Request Handlers":[[10,null]],"Single-file, Read-only File System":[[4,"single-file-read-only-file-system"]],"Stable releases":[[9,"stable-releases"]],"Table of Contents":[[8,"module-pyfuse3"]],"Utility Functions":[[11,null]],"asyncio Support":[[1,null]],"pyfuse 3.4.2 (2026-01-06)":[[2,"pyfuse-3-4-2-2026-01-06"]],"pyfuse 3.5.0 (2026-05-13)":[[2,"pyfuse-3-5-0-2026-05-13"]],"pyfuse3 Documentation":[[8,null]]},"docnames":["about","asyncio","changes","data","example","fuse_api","general","gotchas","index","install","operations","util"],"envversion":{"sphinx":66,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1},"filenames":["about.rst","asyncio.rst","changes.rst","data.rst","example.rst","fuse_api.rst","general.rst","gotchas.rst","index.rst","install.rst","operations.rst","util.rst"],"indexentries":{"module":[[8,"module-pyfuse3",false]],"pyfuse3":[[8,"module-pyfuse3",false]]},"objects":{"":[[8,0,0,"-","pyfuse3"]],"pyfuse3":[[3,1,1,"","ENOATTR"],[3,2,1,"","EntryAttributes"],[3,4,1,"","FUSEError"],[3,2,1,"","FileHandleT"],[3,2,1,"","FileInfo"],[3,2,1,"","FileNameT"],[3,2,1,"","FlagT"],[3,2,1,"","InodeT"],[3,2,1,"","ModeT"],[10,2,1,"","Operations"],[3,2,1,"","PollHandle"],[3,1,1,"","RENAME_EXCHANGE"],[3,1,1,"","RENAME_NOREPLACE"],[3,1,1,"","ROOT_INODE"],[3,2,1,"","ReaddirToken"],[3,2,1,"","RequestContext"],[3,2,1,"","SetattrFields"],[3,2,1,"","StatvfsData"],[3,2,1,"","XAttrNameT"],[1,0,0,"-","asyncio"],[5,6,1,"","close"],[3,1,1,"","default_options"],[11,6,1,"","get_sup_groups"],[11,6,1,"","getxattr"],[5,6,1,"","init"],[5,6,1,"","invalidate_entry"],[5,6,1,"","invalidate_entry_async"],[5,6,1,"","invalidate_inode"],[11,6,1,"","listdir"],[5,6,1,"","main"],[5,6,1,"","notify_store"],[5,6,1,"","readdir_reply"],[11,6,1,"","setxattr"],[11,6,1,"","syncfs"],[5,6,1,"","terminate"],[5,1,1,"","trio_token"]],"pyfuse3.EntryAttributes":[[3,3,1,"","attr_timeout"],[3,3,1,"","entry_timeout"],[3,3,1,"","generation"],[3,3,1,"","st_atime_ns"],[3,3,1,"","st_blksize"],[3,3,1,"","st_blocks"],[3,3,1,"","st_ctime_ns"],[3,3,1,"","st_gid"],[3,3,1,"","st_ino"],[3,3,1,"","st_mode"],[3,3,1,"","st_mtime_ns"],[3,3,1,"","st_nlink"],[3,3,1,"","st_rdev"],[3,3,1,"","st_size"],[3,3,1,"","st_uid"]],"pyfuse3.FileInfo":[[3,3,1,"","direct_io"],[3,3,1,"","fh"],[3,3,1,"","keep_cache"],[3,3,1,"","nonseekable"]],"pyfuse3.Operations":[[10,5,1,"","access"],[10,5,1,"","create"],[10,5,1,"","flush"],[10,5,1,"","forget"],[10,5,1,"","fsync"],[10,5,1,"","fsyncdir"],[10,5,1,"","getattr"],[10,5,1,"","getxattr"],[10,5,1,"","init"],[10,5,1,"","link"],[10,5,1,"","listxattr"],[10,5,1,"","lookup"],[10,5,1,"","mkdir"],[10,5,1,"","mknod"],[10,5,1,"","open"],[10,5,1,"","opendir"],[10,5,1,"","poll"],[10,5,1,"","read"],[10,5,1,"","readdir"],[10,5,1,"","readlink"],[10,5,1,"","release"],[10,5,1,"","releasedir"],[10,5,1,"","removexattr"],[10,5,1,"","rename"],[10,5,1,"","rmdir"],[10,5,1,"","setattr"],[10,5,1,"","setxattr"],[10,5,1,"","stacktrace"],[10,5,1,"","statfs"],[10,5,1,"","symlink"],[10,5,1,"","unlink"],[10,5,1,"","write"]],"pyfuse3.PollHandle":[[3,5,1,"","notify"]],"pyfuse3.RequestContext":[[3,3,1,"","gid"],[3,3,1,"","pid"],[3,3,1,"","uid"],[3,3,1,"","umask"]],"pyfuse3.SetattrFields":[[3,3,1,"","update_atime"],[3,3,1,"","update_gid"],[3,3,1,"","update_mode"],[3,3,1,"","update_mtime"],[3,3,1,"","update_size"],[3,3,1,"","update_uid"]],"pyfuse3.StatvfsData":[[3,3,1,"","f_bavail"],[3,3,1,"","f_bfree"],[3,3,1,"","f_blocks"],[3,3,1,"","f_bsize"],[3,3,1,"","f_favail"],[3,3,1,"","f_ffree"],[3,3,1,"","f_files"],[3,3,1,"","f_frsize"],[3,3,1,"","f_namemax"]]},"objnames":{"0":["py","module","Python module"],"1":["py","data","Python data"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"],"4":["py","exception","Python exception"],"5":["py","method","Python method"],"6":["py","function","Python function"]},"objtypes":{"0":"py:module","1":"py:data","2":"py:class","3":"py:attribute","4":"py:exception","5":"py:method","6":"py:function"},"terms":{"03d":4,"0o644":4,"0o755":4,"1e9":4,"A":[3,4,5,6,9],"AN":4,"AND":4,"AS":4,"About":8,"After":[3,10],"All":6,"An":[3,4,6],"As":[5,9],"BE":4,"BUT":4,"BY":4,"Both":10,"By":[1,6],"Each":[3,10],"FOR":4,"FROM":4,"For":[0,1,4,5,6,11],"Further":10,"I":[1,6],"IN":4,"INTO":4,"IS":4,"If":[0,1,2,3,4,5,6,7,10,11],"In":[5,10,11],"It":[0,5,10],"Most":[3,6,10],"NO":4,"NOT":4,"No":2,"OF":4,"OR":4,"OTHER":4,"OUT":4,"THE":4,"TO":4,"The":[0,2,3,4,5,6,9,10,11],"There":[0,2,4,11],"They":11,"This":[2,3,4,5,6,7,10,11],"To":[5,6,9],"Under":[4,11],"WHERE":4,"WITH":4,"We":4,"When":[2,3,5,10],"Where":4,"With":4,"You":[9,10],"__init__":4,"__main__":4,"__name__":4,"__str__":4,"_add_path":4,"_creat":4,"_fd_inode_map":4,"_fd_open_count":4,"_forget_path":4,"_getattr":4,"_inode_fd_map":4,"_inode_path_map":4,"_inode_to_path":4,"_lookup_cnt":4,"_pyfuse3":2,"_remov":4,"_replac":4,"abc":4,"abl":10,"accept":[0,2],"access":[3,4,5,10],"achiev":6,"acl":10,"acquir":6,"action":[2,4],"activ":[5,10],"actual":[2,4,5,10],"add":[0,2,3,4,5,10],"add_argu":4,"addhandl":4,"addit":[2,9,10],"address":0,"advantag":6,"affect":6,"afterward":9,"alia":3,"alias":2,"alloc":4,"allow":[2,10],"allow_oth":5,"alreadi":[2,10],"also":[0,2,4,5,6,9,10,11],"altern":[0,5],"alway":[2,3,4,10],"ambigu":10,"amount":4,"ani":[0,2,3,4,5,6,10],"annot":2,"anoth":[5,10],"api":[0,8],"append":4,"applic":6,"appropri":10,"approxim":11,"arch":2,"arg":[4,5],"argpars":4,"argument":[4,5,10],"argumentpars":4,"argv":4,"aris":4,"around":2,"arrang":10,"asctim":4,"assert":[4,7],"associ":[4,5,6,10],"assum":[1,6],"async":[0,4,5,10],"asynchron":[0,1,5,6,10],"asyncio":[0,2,6,8],"atim":4,"atime_n":4,"atom":[3,10],"attempt":[4,5,10],"attr":[4,5,9,10],"attr_on":5,"attr_timeout":[3,4],"attribut":[2,3,5,6,10,11],"author":4,"autoincr":4,"automat":[3,5,6],"avail":[0,10,11],"avoid":[5,7,10],"await":4,"awar":2,"b":[4,9],"back":[5,10],"backward":2,"bar":7,"base":10,"basedir":2,"basi":5,"basic":6,"becaus":[4,5,10,11],"becom":10,"befor":[1,5,6,10],"begin":[5,10],"behavior":[2,3],"behaviour":2,"beyond":5,"bin":4,"bind":0,"bit":[2,5],"bitwis":10,"blob":4,"block":[2,3,4,5,10],"bool":[4,10],"boolean":10,"break":[2,4],"bring":[2,10],"broken":2,"buf":[4,10],"buffer":[3,10],"bug":[0,2],"bugfix":[0,2,9],"build":[2,9],"byte":[2,3,4,6,10,11],"c":[3,5,9],"cach":[3,4,5,6,10],"call":[1,2,3,4,5,6,10,11],"callback":2,"caller":[3,11],"can":[0,3,4,5,6,9,10],"care":10,"carri":[3,10,11],"case":[4,5,6,10],"cast":4,"catch":2,"caus":10,"caveat":4,"certain":2,"cf":11,"chain":9,"chang":[2,4,10],"changelog":8,"chapter":7,"charact":[6,10],"charg":4,"check":[3,10],"chmod":[4,10],"chown":4,"ci":2,"circumst":[2,5],"claim":4,"clarifi":2,"class":[3,4,5,6,10],"clean":[5,10],"clear":3,"client":10,"clone":9,"close":[4,5,6,7,10],"code":[0,2,3,4,5,7,10,11],"collect":[3,4],"combin":3,"come":4,"command":4,"common":8,"compat":[0,2,3,4],"compil":9,"complet":[4,5,7],"compliant":4,"complic":5,"comput":2,"concurr":6,"config":9,"configur":10,"confus":4,"connect":[4,5],"contain":[3,4,9,10,11],"content":[4,6,7,10],"context":10,"continu":[0,4,5],"contract":4,"contrast":[10,11],"control":5,"conveni":[5,10,11],"copi":4,"copyright":4,"correct":[2,6],"correspond":[3,10],"count":[4,10],"cours":10,"crash":2,"creat":[2,3,4,5,6,10],"create_futur":2,"creation":5,"ctime":4,"ctime_n":4,"ctx":[4,10],"current":[0,3,5,6,10],"current_trio_token":5,"cursor":4,"cursor2":4,"cycl":10,"cython":2,"d":[1,4,6],"damag":4,"data":[4,5,6,8,10],"datasync":10,"date":2,"datefmt":4,"db":4,"deadlock":[5,10],"deal":4,"debug":[4,6,10],"debug_fus":4,"declar":2,"decreas":[6,10],"def":4,"default":[1,3,4,5,6,10],"default_opt":[3,4,5],"default_permiss":[3,4,5,10],"defaultdict":4,"defer":[6,7,10],"defin":[2,5,10],"del":4,"delet":[4,5,10],"deliv":3,"depend":2,"deprec":2,"deriv":10,"describ":10,"descript":6,"descriptor":[3,10],"destroy":[3,10],"detail":3,"determin":[6,10,11],"dev":[2,9],"devel":9,"develop":2,"developer_not":9,"deviat":3,"devic":[4,10],"dict":4,"differ":5,"direct":10,"direct_io":[2,3,10],"directori":[0,3,4,5,6,9,10,11],"dirti":5,"disabl":[4,5],"discard":[3,4,5,10],"discuss":0,"distribut":[4,9],"doc":0,"document":[0,1,4,6,10],"doe":[3,5,10],"doesn":5,"don":4,"done":6,"download":0,"drop":[2,3],"due":[2,10],"dup":7,"duplic":10,"dure":[4,10],"dynam":6,"e":[2,3,5,6,9,10],"eacc":4,"easier":[2,4,6],"easili":0,"effect":3,"einval":4,"eisdir":4,"either":10,"element":3,"elif":4,"els":4,"embed":3,"enabl":[0,1,2,3,4,6,10],"enable_acl":10,"enable_writeback_cach":[4,10],"encod":4,"end":2,"enforc":10,"enoattr":[3,10],"enoent":[2,4,5,10],"enosi":[5,10],"enotdir":4,"enotempti":[4,10],"ensur":[0,5,9,10],"enter":[4,6],"entri":[2,3,4,5,6,10,11],"entrup":4,"entry_new":4,"entry_old":4,"entry_p":4,"entry_timeout":[3,4,10],"entryattribut":[3,4,5,10],"env":4,"eof":10,"epol":2,"epoll_wait":[3,10],"errno":[3,4,5,10],"errno_":3,"error":[2,3,5,7,10],"errorcod":[3,10],"escap":11,"etc":6,"even":[5,6,10],"event":[4,5,6,10],"everi":[6,10],"exact":10,"exampl":[1,2,5,6,8,9,10],"exc":4,"except":[2,3,4,5,10],"exchang":[3,10],"execut":[4,10],"exist":[3,10],"expens":11,"explanatori":3,"explicit":[5,10],"express":4,"extend":[2,3,5,6,10,11],"extern":2,"f_bavail":[3,4],"f_bfree":[3,4],"f_block":[3,4],"f_bsize":[3,4],"f_favail":[3,4],"f_ffree":[3,4],"f_file":[3,4],"f_frsize":[3,4],"f_namemax":[3,4],"fail":[2,3,11],"failur":2,"fall":10,"fals":[4,5,10],"faulthandl":[4,6],"favorit":9,"fchmod":[4,10],"fchown":4,"fd":4,"featur":[0,10],"fh":[3,4,10],"fh1":7,"fh2":7,"fi":10,"field":[3,4,10],"file":[2,3,5,6,7,8,10,11],"file_on":7,"filehandl":10,"filehandlet":[2,3,4],"fileinfo":[2,3,4,10],"filenamet":3,"fileno":7,"filesystem":[0,2,3,4,5,10,11],"fill":10,"final":11,"first":[2,4,6,9,10,11],"fit":4,"fix":[2,4],"fixabl":0,"flag":[3,4,10],"flagt":3,"flaw":4,"float":3,"flush":[7,10],"follow":[7,9,11],"follow_symlink":4,"foo":[3,7],"foobar":7,"forget":[4,5,6,7,10],"fork":2,"form":10,"formatt":4,"free":4,"freebsd":11,"fresh":10,"from_thread":5,"frozenset":5,"fs":5,"fsdecod":4,"fsencod":4,"fsname":[3,4],"fstat":[3,4],"fsync":10,"fsyncdir":10,"ftruncat":[4,10],"full":0,"fulli":4,"function":[1,2,3,4,6,8,10],"furnish":4,"fuse":[0,4,8,10,11],"fuse_file_info":3,"fuse_ll_opt":5,"fuse_lowlevel_c":5,"fuse_mount_opt":5,"fuse_opt":[4,5],"fuse_pollhandl":3,"fuse_stacktrac":10,"fuseerror":[3,4,10],"fusermount":5,"futur":[2,10],"g":[2,3,6,9,10],"garbag":3,"general":[0,5,8],"generat":[3,4],"generic":2,"gerion":4,"get":[3,4,7,10,11],"get_row":4,"get_running_loop":2,"get_sup_group":[10,11],"getattr":[4,10],"getgid":4,"getlogg":4,"getuid":4,"getxattr":[10,11],"gid":[3,4],"gil":11,"github":[0,2],"given":[6,10],"good":[3,4],"gotcha":8,"gpg":2,"grace":[2,5],"grant":4,"group":11,"growth":5,"guarante":[3,10],"guess":11,"gz":9,"h":4,"handl":[2,3,4,5,6,10],"handler":[2,3,4,5,6,8],"hard":10,"hardlink":[4,10],"header":9,"held":10,"hello":[2,4],"hello_asyncio":2,"hello_data":4,"hello_inod":4,"hello_nam":4,"help":4,"herebi":4,"hold":[5,10],"holder":4,"howev":[0,5,9,10],"html":0,"id":[4,11],"identifi":[2,3,5,10],"ignor":[4,5,10,11],"ignore_eno":[2,5],"implement":[0,4,6,7,10,11],"impli":4,"implicit":10,"import":[1,4],"importerror":4,"improv":0,"includ":[0,2,3,4,6,9,10],"increas":[6,10],"index":[8,10],"indic":[3,10],"individu":10,"info":4,"inform":[3,5,8,10],"inherit":10,"init":[2,3,4,5,6,10],"init_log":4,"init_t":4,"initi":[3,4,5,10],"ino":4,"inod":[3,4,5,6,10],"inode_deref":10,"inode_list":[4,10],"inode_mov":10,"inode_open_count":4,"inode_p":5,"inodet":[2,3,4],"inotifi":5,"insert":4,"instal":[2,8],"instanc":[3,5,6,10],"instead":[2,3,5,10],"instruct":5,"int":[2,3,4,10],"integ":[2,3,4,5,10],"intend":3,"interfac":[5,11],"intern":2,"interpret":10,"invalid":[3,5],"invalidate_entri":5,"invalidate_entry_async":[2,5],"invalidate_inod":[2,5],"invoc":3,"io":[3,10],"isinst":4,"issu":[0,2],"iter":[4,11],"join":4,"jump":10,"just":10,"keep":[3,4,6,10],"keep_cach":3,"kernel":[2,3,5,6,10],"key":[2,4,9],"keyerror":4,"kind":4,"know":11,"knowledg":5,"known":[6,10],"kw":4,"lambda":4,"larg":4,"last":[3,10],"lastrowid":4,"later":[3,5,10],"latest":2,"layer":6,"lazi":2,"lchown":4,"lead":5,"len":[4,10],"less":[0,5],"let":10,"lgpl":2,"liabil":4,"liabl":4,"libfus":[0,2,9,11],"libfuse3":9,"librari":[9,11],"licens":2,"lifetim":10,"like":[6,10,11],"limit":4,"line":4,"link":[4,5,6,10],"linux":[0,4,9,11],"list":[0,4,5,6,7,10],"listdir":[4,7,11],"listxattr":10,"llfuse":2,"lltest":4,"lock":[2,5],"log":[2,4,5,10],"long":2,"longer":[2,3,6,10],"look":[2,6,9,10],"lookup":[2,4,5,10],"loop":[2,4,5,6],"lowlevel":5,"lseek":4,"lstat":4,"m":[4,9],"made":2,"mail":0,"main":[2,4,5,6,10],"maintain":[0,4],"mainten":2,"major":[2,9],"make":[2,6],"manag":9,"mani":[2,9],"manpag":10,"map":4,"marker":2,"mask":[3,10],"match":5,"matter":10,"max":4,"max_task":5,"may":[0,2,3,4,5,6,10,11],"md":9,"mean":[5,6,10],"memoryview":4,"merchant":4,"merg":[4,10],"messag":4,"metadata":10,"method":[2,3,5,10,11],"mfusepi":0,"min_task":5,"minim":2,"minor":[2,9],"mirror":4,"misc":2,"miss":3,"mistak":7,"mkdir":[4,5,6,10],"mknod":[4,5,6,10],"mnt":7,"mode":[3,4,10],"modern":2,"modet":3,"modif":[2,3],"modifi":[3,4],"modul":[1,2,3,5,6,10],"mount":[3,4,5,6,7,10,11],"mountpoint":[4,5,10],"move":2,"msec":4,"mtime":4,"mtime_n":4,"multipl":[4,10],"multithread":6,"must":[3,5,6,10],"my_opt":5,"mypi":2,"n":4,"name":[2,3,4,5,6,10,11],"name_new":[4,10],"name_new_str":4,"name_old":[4,10],"name_old_str":4,"name_str":4,"namespac":[4,11],"nanosecond":[2,3],"necessari":[5,6],"necessarili":11,"need":[0,2,3,4,5,6,9,10],"negat":10,"neither":10,"never":[3,4,6],"new":[0,2,9,10],"new_nam":[4,10],"new_name_str":4,"new_parent_inod":[4,10],"newer":9,"newest":2,"newli":10,"newtyp":2,"next":[2,4,9,10],"next_id":[5,10],"nfs":10,"nikolaus":4,"nlookup":[4,10],"node":10,"non":[0,9,10,11],"none":[4,5,10],"noninfring":4,"nonseek":3,"normal":[3,5],"nosuchrowerror":4,"note":[2,4,5,10],"noth":10,"notif":[3,10],"notifi":[3,10],"notify_stor":5,"nouniquevalueerror":4,"now":2,"now_n":4,"ns":4,"null":4,"number":[3,4,6,10],"o":[1,6],"o_creat":[4,10],"o_excl":10,"o_noctti":10,"o_rdwr":4,"o_trunc":[4,10],"o_wron":4,"object":[3,10],"obtain":4,"occur":5,"offset":[4,5],"old":[2,10],"oldstat":4,"omit":4,"onc":[4,5,10],"one":[4,5,10],"onli":[3,5,10],"onlin":0,"op":5,"opaqu":3,"open":[2,3,4,6,7,10],"opendir":[3,4,10],"oper":[2,3,4,5,6,10],"option":[3,4,5,10],"order":4,"org":4,"os":[4,7,10,11],"oserror":[2,4,5],"otherwis":[4,10],"output":4,"overflow":2,"overwrit":10,"overwritten":10,"p":9,"packag":9,"page":[5,8],"paramet":[2,10,11],"parent":[4,5,6],"parent_inod":[4,10],"parent_inode_new":[4,10],"parent_inode_old":[4,10],"parent_new":4,"parent_old":4,"pars":[4,10],"parse_arg":4,"parser":4,"part":2,"partial":5,"particular":[3,4,10,11],"pass":[2,3,4,5,6,10],"passthroughf":[2,4],"path":[3,4,10,11],"path_new":4,"path_old":4,"pend":[3,5],"pep":11,"perform":[3,4,5,6,10],"permiss":[3,4,10],"permit":4,"person":4,"pick":4,"pid":[3,11],"pip":[2,9],"pkg":9,"place":6,"plan":0,"platform":11,"pleas":[0,6],"point":[3,10],"poll":[2,3,10],"poll_handl":10,"pollhandl":[3,10],"pollin":10,"pollout":10,"pollpri":10,"posit":[5,10],"posix":[4,10],"possibl":10,"potenti":[10,11],"presenc":5,"present":4,"previous":[2,3,5,10],"primari":4,"prior":10,"probabl":7,"proc":11,"process":[2,3,5,6,10],"produc":[3,4,10],"program":[2,4],"progress":5,"proper":5,"provid":[0,3,4,5,6,9,10,11],"pub":[2,9],"public":[2,9],"publish":4,"pull":0,"purpos":4,"put":5,"py":[2,4],"pyfus":9,"pyfuse3":[0,1,2,3,4,5,6,10,11],"pyfuse3_asyncio":2,"pylint":4,"pypi":[0,9],"pyproject":[2,9],"pyright":4,"python":[0,2,3,9,10,11],"python3":[4,9],"queri":4,"question":0,"queue":5,"quit":[2,10],"r0201":4,"rais":[2,3,4,5,10],"rath":4,"rather":[0,1,2,6],"rdev":[4,10],"re":[3,7,10,11],"reach":10,"read":[0,6,7,10,11],"readdir":[2,3,4,5,6,10],"readdir_repli":[4,5,10],"readdirtoken":[3,4,10],"readi":[3,10],"readlink":[4,10],"readm":2,"reason":[3,5,11],"receiv":[5,6,10],"recent":2,"recommend":[3,5,6,10],"recycl":6,"reduc":10,"refer":[3,4,6,10],"regener":2,"regular":10,"relat":[2,5,11],"releas":[0,4,10,11],"releasedir":10,"relev":[3,10],"remain":5,"remov":[2,4,5,6,10],"removexattr":[5,10],"renam":[2,3,4,5,6,10],"rename_exchang":[3,10],"rename_noreplac":[3,10],"repeat":5,"replac":[2,3,10],"report":[0,5,10],"reportpossiblyunboundvari":4,"repositori":9,"repres":3,"represent":[10,11],"request":[0,3,4,5,6,8],"requestcontext":[3,4,10],"requir":[2,10],"resolv":4,"respect":6,"respond":[2,6],"respons":[5,10],"rest":10,"restrict":4,"result":[3,4,5,10],"retriev":[4,5,9],"return":[2,3,4,5,6,10,11],"right":[4,5,10],"rmdir":[4,5,10],"robust":5,"root":[3,4],"root_inod":[3,4],"root_logg":4,"round":2,"row":4,"row_factori":4,"rowid":4,"run":[2,4,5,6,10],"run_sync":5,"run_sync_in_worker_thread":5,"s":[4,6,10],"s_ifdir":4,"s_iflnk":4,"s_ifreg":4,"s_imod":4,"s_irgrp":4,"s_iroth":4,"s_irusr":4,"s_isdir":4,"s_islnk":4,"s_iwgrp":4,"s_iwoth":4,"s_iwusr":4,"s_ixgrp":4,"s_ixoth":4,"s_ixusr":4,"safe":[3,6],"search":[2,8],"second":[3,11],"see":[3,10],"seek":[3,7],"seek_set":4,"select":[2,3,4,10,11],"self":[3,4,9],"sell":4,"send":[5,10],"separ":5,"sequenc":[4,10],"serial":6,"set":[0,2,3,4,5,10,11],"setattr":[2,3,4,5,10],"setattrfield":[3,4,10],"setformatt":4,"setlevel":4,"setup":[2,9],"setuptool":2,"setxattr":[2,5,10,11],"sever":4,"shall":4,"share":10,"ship":[2,4],"shouldn":4,"shutil":2,"sign":[2,9],"signal":[3,5],"signatur":[2,9],"signifi":[2,9],"signific":4,"similar":2,"simpl":4,"simpli":[2,3,4],"simplic":4,"sinc":10,"singl":[3,5],"size":[4,5,10,11],"size_guess":11,"skip":[4,5,10],"softwar":4,"sort":4,"sourc":[0,2,4,9],"spdx":2,"special":10,"specif":[6,10],"specifi":[3,4,9,10],"sphinx":2,"sqlite3":4,"st_atime_n":[3,4],"st_blksize":[3,4],"st_block":[3,4],"st_ctime_n":[3,4,10],"st_gid":[3,4],"st_ino":[3,4,10],"st_mode":[3,4],"st_mtime_n":[3,4],"st_nlink":[3,4],"st_rdev":[3,4],"st_size":[3,4],"st_uid":[3,4],"stabl":0,"stack":10,"stacktrac":10,"stamp":4,"stand":2,"standard":11,"start":[4,5,10],"start_id":[4,5,10],"stat":[3,4],"stat_":4,"stat_m":4,"statf":[4,10],"static":4,"statist":10,"status":11,"statvf":[3,4],"statvfsdata":[3,4,10],"still":[2,3,5,10],"stopiter":4,"store":[3,4,5,10],"store_tru":4,"str":[4,11],"strang":2,"streamhandl":4,"string":[5,11],"strong":6,"struct":[2,3,5],"structur":8,"subclass":[2,6],"sublicens":4,"substitut":10,"succeed":10,"success":[3,10],"suffici":3,"sum":4,"super":4,"supplementari":11,"suppli":[5,11],"support":[0,2,3,4,5,6,8,10],"supports_dot_lookup":10,"surrog":11,"sustain":9,"symbol":[4,6,10],"symbolink":10,"symlink":[4,5,6,10],"sync":[10,11],"syncf":[2,11],"synchron":0,"sys":[4,5],"syscal":[3,10],"system":[2,3,5,6,7,8,9,10,11],"t":[4,5],"tabl":4,"take":[2,6,9,10],"tar":9,"tarbal":[0,4,9],"target":[3,4,6,10],"target_str":4,"technic":5,"tell":2,"termin":[2,5],"terribl":4,"test":[0,2],"test_exampl":2,"testf":4,"text":2,"text_factori":4,"thank":2,"therefor":5,"third":11,"though":5,"thread":[5,10],"threadnam":4,"three":11,"thus":6,"time":[2,3,4,6,10,11],"timeout":3,"tmpfs":[2,4],"token":[4,5,10],"toml":[2,9],"tool":9,"tort":4,"trace":10,"track":6,"tracker":0,"translat":11,"travi":2,"tree":4,"tri":4,"trio":[0,1,2,4,5,6],"trio_token":5,"true":[3,4,5,10],"truncat":[4,10],"trust":9,"trustworthi":9,"tupl":[4,10],"turn":[10,11],"tutori":6,"twice":[4,5],"two":[3,4,6,10],"type":[2,3,4,10,11],"typic":[9,10],"ubuntu":2,"uid":[3,4],"umask":[3,4],"umount":5,"unbound":5,"unchang":10,"undefin":10,"underlying":[3,4],"understand":4,"unfortun":[3,5],"uniqu":[4,5],"unit":3,"unless":[5,6,10],"unlink":[2,4,5,6,10],"unmount":[4,5,6,10],"unus":4,"updat":[2,3,4,10],"update_atim":[3,4],"update_ctim":4,"update_gid":[3,4],"update_mod":[3,4],"update_mtim":[3,4],"update_s":[3,4],"update_uid":[3,4],"use":[0,1,2,3,4,5,6,9,10,11],"user":[5,11],"userspac":10,"usr":4,"usual":[1,9],"utf":4,"util":8,"utim":4,"v":9,"v2":2,"val":4,"valid":[3,5,9],"valu":[3,4,5,6,10,11],"various":[2,6],"veri":4,"verifi":2,"version":[0,2,9],"via":5,"w":7,"w0612":4,"w0613":4,"wait":3,"waiter":[3,10],"wake":[3,10],"want":2,"warn":4,"warranti":4,"watcher":5,"way":[4,5],"well":[0,3],"whenev":10,"whether":[4,10],"whose":6,"will":[2,3,4,5,6,9,10,11],"within":5,"without":[3,4,7,10],"woken":3,"work":[0,2,11],"world":4,"wrap":5,"wrapper":2,"write":[0,2,4,5,6,7,10],"writeback":[4,5,6],"written":10,"wrong":11,"x":[2,11],"xattr":10,"xattr_creat":2,"xattr_replac":2,"xattrnamet":[2,3],"y":4,"yeah":4,"yet":[5,6],"zero":[3,4,6,10]},"titles":["About","asyncio Support","Changelog","Data Structures","Example File Systems","FUSE API Functions","General Information","Common Gotchas","pyfuse3 Documentation","Installation","Request Handlers","Utility Functions"],"titleterms":{"About":0,"In":4,"api":5,"asyncio":1,"chang":[],"changelog":2,"common":7,"content":8,"contribut":0,"count":6,"data":3,"depend":9,"develop":[0,9],"document":8,"exampl":4,"file":4,"function":[5,11],"fuse":[5,6],"general":6,"get":[0,6],"git":9,"gotcha":7,"handler":[7,10],"help":0,"indic":8,"inform":6,"inod":7,"instal":9,"lock":6,"lookup":6,"memori":4,"onli":4,"overlay":4,"passthrough":4,"pyfus":2,"pyfuse3":[8,9],"read":4,"releas":[2,9],"remov":7,"request":10,"singl":4,"stabl":9,"start":6,"status":0,"structur":3,"support":1,"system":4,"tabl":8,"unlink":7,"unreleas":[],"util":11,"vfs":6}})././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677272.0 pyfuse3-3.5.0/doc/html/util.html0000644000175000017500000003123215201073030016743 0ustar00nikrationikratio Utility Functions — pyfuse3 3.4.3.dev19+g57a14ee07.d20260509 documentation

Utility Functions¶

The following functions do not necessarily translate to calls to the FUSE library. They are provided because they’re potentially useful when implementing file systems in Python.

pyfuse3.setxattr(path, name, value, namespace='user')¶

Set extended attribute

path and name have to be of type str. In Python 3.x, they may contain surrogates. value has to be of type bytes.

Under FreeBSD, the namespace parameter may be set to system or user to select the namespace for the extended attribute. For other platforms, this parameter is ignored.

In contrast to the os.setxattr function from the standard library, the method provided by pyfuse3 is also available for non-Linux systems.

pyfuse3.getxattr(path, name, size_guess=128, namespace='user')¶

Get extended attribute

path and name have to be of type str. In Python 3.x, they may contain surrogates. Returns a value of type bytes.

If the caller knows the approximate size of the attribute value, it should be supplied in size_guess. If the guess turns out to be wrong, the system call has to be carried out three times (the first call will fail, the second determines the size and the third finally gets the value).

Under FreeBSD, the namespace parameter may be set to system or user to select the namespace for the extended attribute. For other platforms, this parameter is ignored.

In contrast to the os.getxattr function from the standard library, the method provided by pyfuse3 is also available for non-Linux systems.

pyfuse3.listdir(path)¶

Like os.listdir, but releases the GIL.

This function returns an iterator over the directory entries in path.

The returned values are of type str. Surrogate escape coding (cf. PEP 383) is used for directory names that do not have a string representation.

pyfuse3.get_sup_groups(pid)¶

Return supplementary group ids of pid

This function is relatively expensive because it has to read the group ids from /proc/[pid]/status. For the same reason, it will also not work on systems that do not provide a /proc file system.

Returns a set.

pyfuse3.syncfs(path)¶

Sync filesystem mounted at path

This is a Python interface to the syncfs(2) system call. There is no particular relation to libfuse, it is provided by pyfuse3 as a convenience.

././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1778686357.067098 pyfuse3-3.5.0/examples/0000755000175000017500000000000015201114625015212 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778672018.0 pyfuse3-3.5.0/examples/hello.py0000755000175000017500000001230215201060622016665 0ustar00nikrationikratio#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' hello.py - Example file system for pyfuse3. This program presents a static file system containing a single file. Copyright © 2015 Nikolaus Rath Copyright © 2015 Gerion Entrup. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import errno import logging import os import stat from argparse import ArgumentParser, Namespace from typing import cast import trio import pyfuse3 from pyfuse3 import EntryAttributes, FileHandleT, FileInfo, InodeT, ReaddirToken, RequestContext try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger(__name__) class TestFs(pyfuse3.Operations): def __init__(self) -> None: super(TestFs, self).__init__() self.hello_name = b"message" self.hello_inode = pyfuse3.ROOT_INODE + 1 self.hello_data = b"hello world\n" async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes: entry = EntryAttributes() if inode == pyfuse3.ROOT_INODE: entry.st_mode = stat.S_IFDIR | 0o755 entry.st_size = 0 elif inode == self.hello_inode: entry.st_mode = stat.S_IFREG | 0o644 entry.st_size = len(self.hello_data) else: raise pyfuse3.FUSEError(errno.ENOENT) stamp = int(1438467123.985654 * 1e9) entry.st_atime_ns = stamp entry.st_ctime_ns = stamp entry.st_mtime_ns = stamp entry.st_gid = os.getgid() entry.st_uid = os.getuid() entry.st_ino = inode return entry async def lookup( self, parent_inode: InodeT, name: bytes, ctx: RequestContext ) -> EntryAttributes: if parent_inode != pyfuse3.ROOT_INODE or name != self.hello_name: raise pyfuse3.FUSEError(errno.ENOENT) return await self.getattr(self.hello_inode, ctx) async def opendir(self, inode: InodeT, ctx: RequestContext) -> FileHandleT: if inode != pyfuse3.ROOT_INODE: raise pyfuse3.FUSEError(errno.ENOENT) # For simplicity, we use the inode as file handle return FileHandleT(inode) async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None: assert fh == pyfuse3.ROOT_INODE # only one entry if start_id == 0: pyfuse3.readdir_reply(token, self.hello_name, await self.getattr(self.hello_inode), 1) return async def open(self, inode: InodeT, flags: int, ctx: RequestContext) -> FileInfo: if inode != self.hello_inode: raise pyfuse3.FUSEError(errno.ENOENT) if flags & os.O_RDWR or flags & os.O_WRONLY: raise pyfuse3.FUSEError(errno.EACCES) # For simplicity, we use the inode as file handle return FileInfo(fh=FileHandleT(inode)) async def read(self, fh: FileHandleT, off: int, size: int) -> bytes: assert fh == self.hello_inode return self.hello_data[off : off + size] def init_logging(debug: bool = False) -> None: formatter = logging.Formatter( '%(asctime)s.%(msecs)03d %(threadName)s: [%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S", ) handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args() -> Namespace: '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument( '--debug', action='store_true', default=False, help='Enable debugging output' ) parser.add_argument( '--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output' ) return parser.parse_args() def main() -> None: options = parse_args() init_logging(options.debug) testfs = TestFs() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=hello') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(testfs, options.mountpoint, fuse_options) try: trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise pyfuse3.close() if __name__ == '__main__': main() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778672018.0 pyfuse3-3.5.0/examples/hello_asyncio.py0000755000175000017500000001316115201060622020416 0ustar00nikrationikratio#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' hello_asyncio.py - Example file system for pyfuse3 using asyncio. This program presents a static file system containing a single file. Copyright © 2015 Nikolaus Rath Copyright © 2015 Gerion Entrup. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import asyncio import errno import logging import os import stat from argparse import ArgumentParser, Namespace from typing import cast import pyfuse3 import pyfuse3.asyncio from pyfuse3 import EntryAttributes, FileHandleT, FileInfo, InodeT, ReaddirToken, RequestContext try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger(__name__) pyfuse3.asyncio.enable() class TestFs(pyfuse3.Operations): def __init__(self) -> None: super(TestFs, self).__init__() self.hello_name = b"message" self.hello_inode = pyfuse3.ROOT_INODE + 1 self.hello_data = b"hello world\n" async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes: entry = EntryAttributes() if inode == pyfuse3.ROOT_INODE: entry.st_mode = stat.S_IFDIR | 0o755 entry.st_size = 0 elif inode == self.hello_inode: entry.st_mode = stat.S_IFREG | 0o644 entry.st_size = len(self.hello_data) else: raise pyfuse3.FUSEError(errno.ENOENT) stamp = int(1438467123.985654 * 1e9) entry.st_atime_ns = stamp entry.st_ctime_ns = stamp entry.st_mtime_ns = stamp entry.st_gid = os.getgid() entry.st_uid = os.getuid() entry.st_ino = inode return entry async def lookup( self, parent_inode: InodeT, name: bytes, ctx: RequestContext ) -> EntryAttributes: if parent_inode != pyfuse3.ROOT_INODE or name != self.hello_name: raise pyfuse3.FUSEError(errno.ENOENT) return await self.getattr(self.hello_inode, ctx) async def opendir(self, inode: InodeT, ctx: RequestContext) -> FileHandleT: if inode != pyfuse3.ROOT_INODE: raise pyfuse3.FUSEError(errno.ENOENT) # For simplicity, we use the inode as file handle return FileHandleT(inode) async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None: assert fh == pyfuse3.ROOT_INODE # only one entry if start_id == 0: pyfuse3.readdir_reply(token, self.hello_name, await self.getattr(self.hello_inode), 1) return async def setxattr(self, inode: InodeT, name: bytes, value: bytes, ctx: RequestContext) -> None: if inode != pyfuse3.ROOT_INODE or name != b'command': raise pyfuse3.FUSEError(errno.ENOTSUP) if value == b'terminate': pyfuse3.terminate() else: raise pyfuse3.FUSEError(errno.EINVAL) async def open(self, inode: InodeT, flags: int, ctx: RequestContext) -> FileInfo: if inode != self.hello_inode: raise pyfuse3.FUSEError(errno.ENOENT) if flags & os.O_RDWR or flags & os.O_WRONLY: raise pyfuse3.FUSEError(errno.EACCES) # For simplicity, we use the inode as file handle return FileInfo(fh=FileHandleT(inode)) async def read(self, fh: FileHandleT, off: int, size: int) -> bytes: assert fh == self.hello_inode return self.hello_data[off : off + size] def init_logging(debug: bool = False) -> None: formatter = logging.Formatter( '%(asctime)s.%(msecs)03d %(threadName)s: [%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S", ) handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args() -> Namespace: '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument( '--debug', action='store_true', default=False, help='Enable debugging output' ) parser.add_argument( '--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output' ) return parser.parse_args() def main() -> None: options = parse_args() init_logging(options.debug) testfs = TestFs() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=hello_asyncio') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(testfs, options.mountpoint, fuse_options) try: asyncio.run(pyfuse3.main()) except: pyfuse3.close(unmount=False) raise pyfuse3.close() if __name__ == '__main__': main() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778672018.0 pyfuse3-3.5.0/examples/passthroughfs.py0000755000175000017500000004775415201060622020505 0ustar00nikrationikratio#!/usr/bin/env python3 ''' passthroughfs.py - Example file system for pyfuse3 This file system mirrors the contents of a specified directory tree. Caveats: * Inode generation numbers are not passed through but set to zero. * Block size (st_blksize) and number of allocated blocks (st_blocks) are not passed through. * Performance for large directories is not good, because the directory is always read completely. * There may be a way to break-out of the directory tree. * The readdir implementation is not fully POSIX compliant. If a directory contains hardlinks and is modified during a readdir call, readdir() may return some of the hardlinked files twice or omit them completely. * If you delete or rename files in the underlying file system, the passthrough file system will get confused. Copyright © Nikolaus Rath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import errno import faulthandler import logging import os import stat as stat_m import sys from argparse import ArgumentParser, Namespace from collections import defaultdict from collections.abc import Sequence from os import fsdecode, fsencode import trio import pyfuse3 from pyfuse3 import ( EntryAttributes, FileHandleT, FileInfo, FUSEError, InodeT, ReaddirToken, RequestContext, SetattrFields, StatvfsData, ) faulthandler.enable() log = logging.getLogger(__name__) class Operations(pyfuse3.Operations): def __init__(self, source: str, enable_writeback_cache: bool = False) -> None: super().__init__() self.enable_writeback_cache = enable_writeback_cache self._inode_path_map: dict[InodeT, str | set[str]] = {pyfuse3.ROOT_INODE: source} self._lookup_cnt: defaultdict[InodeT, int] = defaultdict(lambda: 0) self._fd_inode_map: dict[int, InodeT] = dict() self._inode_fd_map: dict[InodeT, int] = dict() self._fd_open_count: dict[int, int] = dict() def _inode_to_path(self, inode: InodeT) -> str: try: val = self._inode_path_map[inode] except KeyError: raise FUSEError(errno.ENOENT) if isinstance(val, set): # In case of hardlinks, pick any path val = next(iter(val)) return val def _add_path(self, inode: InodeT, path: str) -> None: log.debug('_add_path for %d, %s', inode, path) self._lookup_cnt[inode] += 1 # With hardlinks, one inode may map to multiple paths. if inode not in self._inode_path_map: self._inode_path_map[inode] = path return val = self._inode_path_map[inode] if isinstance(val, set): val.add(path) elif val != path: self._inode_path_map[inode] = {path, val} async def forget(self, inode_list: Sequence[tuple[InodeT, int]]) -> None: for inode, nlookup in inode_list: if self._lookup_cnt[inode] > nlookup: self._lookup_cnt[inode] -= nlookup continue log.debug('forgetting about inode %d', inode) assert inode not in self._inode_fd_map del self._lookup_cnt[inode] try: del self._inode_path_map[inode] except KeyError: # may have been deleted pass async def lookup( self, parent_inode: InodeT, name: bytes, ctx: RequestContext ) -> EntryAttributes: name_str = fsdecode(name) log.debug('lookup for %s in %d', name_str, parent_inode) path = os.path.join(self._inode_to_path(parent_inode), name_str) attr = self._getattr(path=path) if name_str != '.' and name_str != '..': self._add_path(InodeT(attr.st_ino), path) return attr async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes: if inode in self._inode_fd_map: return self._getattr(fd=self._inode_fd_map[inode]) else: return self._getattr(path=self._inode_to_path(inode)) def _getattr(self, path: str | None = None, fd: int | None = None) -> EntryAttributes: assert fd is None or path is None assert not (fd is None and path is None) try: if fd is None: assert path is not None stat = os.lstat(path) else: stat = os.fstat(fd) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) entry = EntryAttributes() for attr in ( 'st_ino', 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', 'st_size', 'st_atime_ns', 'st_mtime_ns', 'st_ctime_ns', ): setattr(entry, attr, getattr(stat, attr)) entry.generation = 0 entry.entry_timeout = 0 entry.attr_timeout = 0 entry.st_blksize = 512 entry.st_blocks = (entry.st_size + entry.st_blksize - 1) // entry.st_blksize return entry async def readlink(self, inode: InodeT, ctx: RequestContext) -> bytes: path = self._inode_to_path(inode) try: target = os.readlink(path) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) return fsencode(target) async def opendir(self, inode: InodeT, ctx: RequestContext) -> FileHandleT: # For simplicity, we use the inode as file handle return FileHandleT(inode) async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None: path = self._inode_to_path(InodeT(fh)) log.debug('reading %s', path) entries: list[tuple[InodeT, str, EntryAttributes]] = [] for name in os.listdir(path): if name == '.' or name == '..': continue attr = self._getattr(path=os.path.join(path, name)) entries.append((InodeT(attr.st_ino), name, attr)) log.debug('read %d entries, starting at %d', len(entries), start_id) # This is not fully posix compatible. If there are hardlinks # (two names with the same inode), we don't have a unique # offset to start in between them. Note that we cannot simply # count entries, because then we would skip over entries # (or return them more than once) if the number of directory # entries changes between two calls to readdir(). for ino, name, attr in sorted(entries): if ino <= start_id: continue if not pyfuse3.readdir_reply(token, fsencode(name), attr, ino): break self._add_path(attr.st_ino, os.path.join(path, name)) async def unlink(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None: name_str = fsdecode(name) parent = self._inode_to_path(parent_inode) path = os.path.join(parent, name_str) try: inode = os.lstat(path).st_ino os.unlink(path) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) if inode in self._lookup_cnt: self._forget_path(InodeT(inode), path) async def rmdir(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None: name_str = fsdecode(name) parent = self._inode_to_path(parent_inode) path = os.path.join(parent, name_str) try: inode = os.lstat(path).st_ino os.rmdir(path) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) if inode in self._lookup_cnt: self._forget_path(InodeT(inode), path) def _forget_path(self, inode: InodeT, path: str) -> None: log.debug('forget %s for %d', path, inode) val = self._inode_path_map[inode] if isinstance(val, set): val.remove(path) if len(val) == 1: self._inode_path_map[inode] = next(iter(val)) else: del self._inode_path_map[inode] async def symlink( self, parent_inode: InodeT, name: bytes, target: bytes, ctx: RequestContext ) -> EntryAttributes: name_str = fsdecode(name) target_str = fsdecode(target) parent = self._inode_to_path(parent_inode) path = os.path.join(parent, name_str) try: os.symlink(target_str, path) os.lchown(path, ctx.uid, ctx.gid) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) inode = InodeT(os.lstat(path).st_ino) self._add_path(inode, path) return await self.getattr(inode, ctx) async def rename( self, parent_inode_old: InodeT, name_old: bytes, parent_inode_new: InodeT, name_new: bytes, flags: int, ctx: RequestContext, ) -> None: if flags != 0: raise FUSEError(errno.EINVAL) name_old_str = fsdecode(name_old) name_new_str = fsdecode(name_new) parent_old = self._inode_to_path(parent_inode_old) parent_new = self._inode_to_path(parent_inode_new) path_old = os.path.join(parent_old, name_old_str) path_new = os.path.join(parent_new, name_new_str) try: os.rename(path_old, path_new) inode = os.lstat(path_new).st_ino except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) if inode not in self._lookup_cnt: return val = self._inode_path_map[inode] if isinstance(val, set): assert len(val) > 1 val.add(path_new) val.remove(path_old) else: assert val == path_old self._inode_path_map[inode] = path_new async def link( self, inode: InodeT, new_parent_inode: InodeT, new_name: bytes, ctx: RequestContext ) -> EntryAttributes: new_name_str = fsdecode(new_name) parent = self._inode_to_path(new_parent_inode) path = os.path.join(parent, new_name_str) try: os.link(self._inode_to_path(inode), path, follow_symlinks=False) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) self._add_path(inode, path) return await self.getattr(inode, ctx) async def setattr( self, inode: InodeT, attr: EntryAttributes, fields: SetattrFields, fh: FileHandleT | None, ctx: RequestContext, ) -> EntryAttributes: try: if fields.update_size: if fh is None: os.truncate(self._inode_to_path(inode), attr.st_size) else: os.ftruncate(fh, attr.st_size) if fields.update_mode: # Under Linux, chmod always resolves symlinks so we should # actually never get a setattr() request for a symbolic # link. assert not stat_m.S_ISLNK(attr.st_mode) if fh is None: os.chmod(self._inode_to_path(inode), stat_m.S_IMODE(attr.st_mode)) else: os.fchmod(fh, stat_m.S_IMODE(attr.st_mode)) if fields.update_uid and fields.update_gid: if fh is None: os.chown( self._inode_to_path(inode), attr.st_uid, attr.st_gid, follow_symlinks=False ) else: os.fchown(fh, attr.st_uid, attr.st_gid) elif fields.update_uid: if fh is None: os.chown(self._inode_to_path(inode), attr.st_uid, -1, follow_symlinks=False) else: os.fchown(fh, attr.st_uid, -1) elif fields.update_gid: if fh is None: os.chown(self._inode_to_path(inode), -1, attr.st_gid, follow_symlinks=False) else: os.fchown(fh, -1, attr.st_gid) if fields.update_atime and fields.update_mtime: if fh is None: os.utime( self._inode_to_path(inode), None, follow_symlinks=False, ns=(attr.st_atime_ns, attr.st_mtime_ns), ) else: os.utime(fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns)) elif fields.update_atime or fields.update_mtime: # We can only set both values, so we first need to retrieve the # one that we shouldn't be changing. if fh is None: path = self._inode_to_path(inode) oldstat = os.stat(path, follow_symlinks=False) else: oldstat = os.fstat(fh) if not fields.update_atime: attr.st_atime_ns = oldstat.st_atime_ns else: attr.st_mtime_ns = oldstat.st_mtime_ns if fh is None: os.utime( path, # pyright: ignore[reportPossiblyUnboundVariable] None, follow_symlinks=False, ns=(attr.st_atime_ns, attr.st_mtime_ns), ) else: os.utime(fh, None, ns=(attr.st_atime_ns, attr.st_mtime_ns)) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) return await self.getattr(inode, ctx) async def mknod( self, parent_inode: InodeT, name: bytes, mode: int, rdev: int, ctx: RequestContext ) -> EntryAttributes: path = os.path.join(self._inode_to_path(parent_inode), fsdecode(name)) try: os.mknod(path, mode=(mode & ~ctx.umask), device=rdev) os.chown(path, ctx.uid, ctx.gid) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) attr = self._getattr(path=path) self._add_path(attr.st_ino, path) return attr async def mkdir( self, parent_inode: InodeT, name: bytes, mode: int, ctx: RequestContext ) -> EntryAttributes: path = os.path.join(self._inode_to_path(parent_inode), fsdecode(name)) try: os.mkdir(path, mode=(mode & ~ctx.umask)) os.chown(path, ctx.uid, ctx.gid) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) attr = self._getattr(path=path) self._add_path(attr.st_ino, path) return attr async def statfs(self, ctx: RequestContext) -> StatvfsData: root = self._inode_path_map[pyfuse3.ROOT_INODE] assert isinstance(root, str) stat_ = StatvfsData() try: statfs = os.statvfs(root) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) for attr in ( 'f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', 'f_bavail', 'f_files', 'f_ffree', 'f_favail', ): setattr(stat_, attr, getattr(statfs, attr)) stat_.f_namemax = statfs.f_namemax - (len(root) + 1) return stat_ async def open(self, inode: InodeT, flags: int, ctx: RequestContext) -> FileInfo: if inode in self._inode_fd_map: fd = self._inode_fd_map[inode] self._fd_open_count[fd] += 1 return FileInfo(fh=FileHandleT(fd)) assert flags & os.O_CREAT == 0 try: fd = os.open(self._inode_to_path(inode), flags) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) self._inode_fd_map[inode] = fd self._fd_inode_map[fd] = inode self._fd_open_count[fd] = 1 return FileInfo(fh=fd) async def create( self, parent_inode: InodeT, name: bytes, mode: int, flags: int, ctx: RequestContext ) -> tuple[FileInfo, EntryAttributes]: path = os.path.join(self._inode_to_path(parent_inode), fsdecode(name)) try: fd = os.open(path, flags | os.O_CREAT | os.O_TRUNC) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) attr = self._getattr(fd=fd) self._add_path(attr.st_ino, path) self._inode_fd_map[attr.st_ino] = fd self._fd_inode_map[fd] = attr.st_ino self._fd_open_count[fd] = 1 return (FileInfo(fh=fd), attr) async def read(self, fh: FileHandleT, off: int, size: int) -> bytes: os.lseek(fh, off, os.SEEK_SET) return os.read(fh, size) async def write(self, fh: FileHandleT, off: int, buf: bytes) -> int: os.lseek(fh, off, os.SEEK_SET) return os.write(fh, buf) async def release(self, fh: FileHandleT) -> None: if self._fd_open_count[fh] > 1: self._fd_open_count[fh] -= 1 return del self._fd_open_count[fh] inode = self._fd_inode_map[fh] del self._inode_fd_map[inode] del self._fd_inode_map[fh] try: os.close(fh) except OSError as exc: assert exc.errno is not None raise FUSEError(exc.errno) def init_logging(debug: bool = False) -> None: formatter = logging.Formatter( '%(asctime)s.%(msecs)03d %(threadName)s: [%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S", ) handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args(args: list[str]) -> Namespace: '''Parse command line''' parser = ArgumentParser() parser.add_argument('source', type=str, help='Directory tree to mirror') parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument( '--debug', action='store_true', default=False, help='Enable debugging output' ) parser.add_argument( '--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output' ) parser.add_argument( '--enable-writeback-cache', action='store_true', default=False, help='Enable writeback cache (default: disabled)', ) return parser.parse_args(args) def main() -> None: options = parse_args(sys.argv[1:]) init_logging(options.debug) operations = Operations(options.source, enable_writeback_cache=options.enable_writeback_cache) log.debug('Mounting...') fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=passthroughfs') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(operations, options.mountpoint, fuse_options) try: log.debug('Entering main loop..') trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise log.debug('Unmounting..') pyfuse3.close() if __name__ == '__main__': main() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778672018.0 pyfuse3-3.5.0/examples/tmpfs.py0000755000175000017500000004446015201060622016725 0ustar00nikrationikratio#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' tmpfs.py - Example file system for pyfuse3. This file system stores all data in memory. Copyright © 2013 Nikolaus Rath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ''' import errno import logging import os import sqlite3 import stat from argparse import ArgumentParser, Namespace from collections import defaultdict from time import time from typing import Any, cast import trio import pyfuse3 from pyfuse3 import ( EntryAttributes, FileHandleT, FileInfo, FUSEError, InodeT, ReaddirToken, RequestContext, SetattrFields, StatvfsData, ) try: import faulthandler except ImportError: pass else: faulthandler.enable() log = logging.getLogger() class Operations(pyfuse3.Operations): '''An example filesystem that stores all data in memory This is a very simple implementation with terrible performance. Don't try to store significant amounts of data. Also, there are some other flaws that have not been fixed to keep the code easier to understand: * atime, mtime and ctime are not updated * generation numbers are not supported * lookup counts are not maintained ''' enable_writeback_cache = True def __init__(self) -> None: super(Operations, self).__init__() self.db: sqlite3.Connection = sqlite3.connect(':memory:') self.db.text_factory = str self.db.row_factory = sqlite3.Row self.cursor: sqlite3.Cursor = self.db.cursor() self.inode_open_count: defaultdict[InodeT, int] = defaultdict(int) self.init_tables() def init_tables(self) -> None: '''Initialize file system tables''' self.cursor.execute(""" CREATE TABLE inodes ( id INTEGER PRIMARY KEY, uid INT NOT NULL, gid INT NOT NULL, mode INT NOT NULL, mtime_ns INT NOT NULL, atime_ns INT NOT NULL, ctime_ns INT NOT NULL, target BLOB(256) , size INT NOT NULL DEFAULT 0, rdev INT NOT NULL DEFAULT 0, data BLOB ) """) self.cursor.execute(""" CREATE TABLE contents ( rowid INTEGER PRIMARY KEY AUTOINCREMENT, name BLOB(256) NOT NULL, inode INT NOT NULL REFERENCES inodes(id), parent_inode INT NOT NULL REFERENCES inodes(id), UNIQUE (name, parent_inode) )""") # Insert root directory now_ns = int(time() * 1e9) self.cursor.execute( "INSERT INTO inodes (id,mode,uid,gid,mtime_ns,atime_ns,ctime_ns) " "VALUES (?,?,?,?,?,?,?)", ( pyfuse3.ROOT_INODE, stat.S_IFDIR | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH, os.getuid(), os.getgid(), now_ns, now_ns, now_ns, ), ) self.cursor.execute( "INSERT INTO contents (name, parent_inode, inode) VALUES (?,?,?)", (b'..', pyfuse3.ROOT_INODE, pyfuse3.ROOT_INODE), ) def get_row(self, *a: Any, **kw: Any) -> sqlite3.Row: self.cursor.execute(*a, **kw) try: row = next(self.cursor) except StopIteration: raise NoSuchRowError() try: next(self.cursor) except StopIteration: pass else: raise NoUniqueValueError() return row async def lookup( self, parent_inode: InodeT, name: bytes, ctx: RequestContext ) -> EntryAttributes: if name == b'.': inode = parent_inode elif name == b'..': inode = self.get_row("SELECT * FROM contents WHERE inode=?", (parent_inode,))[ 'parent_inode' ] else: try: inode = self.get_row( "SELECT * FROM contents WHERE name=? AND parent_inode=?", (name, parent_inode) )['inode'] except NoSuchRowError: raise (pyfuse3.FUSEError(errno.ENOENT)) return await self.getattr(InodeT(inode), ctx) async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes: try: row = self.get_row("SELECT * FROM inodes WHERE id=?", (inode,)) except NoSuchRowError: raise (pyfuse3.FUSEError(errno.ENOENT)) entry = EntryAttributes() entry.st_ino = inode entry.generation = 0 entry.entry_timeout = 300 entry.attr_timeout = 300 entry.st_mode = row['mode'] entry.st_nlink = self.get_row("SELECT COUNT(inode) FROM contents WHERE inode=?", (inode,))[ 0 ] entry.st_uid = row['uid'] entry.st_gid = row['gid'] entry.st_rdev = row['rdev'] entry.st_size = row['size'] entry.st_blksize = 512 entry.st_blocks = 1 entry.st_atime_ns = row['atime_ns'] entry.st_mtime_ns = row['mtime_ns'] entry.st_ctime_ns = row['ctime_ns'] return entry async def readlink(self, inode: InodeT, ctx: RequestContext) -> bytes: return self.get_row('SELECT * FROM inodes WHERE id=?', (inode,))['target'] async def opendir(self, inode: InodeT, ctx: RequestContext) -> FileHandleT: # For simplicity, we use the inode as file handle return FileHandleT(inode) async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None: if start_id == 0: off = -1 else: off = start_id cursor2 = self.db.cursor() cursor2.execute( "SELECT * FROM contents WHERE parent_inode=? AND rowid > ? ORDER BY rowid", (fh, off) ) for row in cursor2: pyfuse3.readdir_reply( token, row['name'], await self.getattr(InodeT(row['inode'])), row['rowid'] ) async def unlink(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None: entry = await self.lookup(parent_inode, name, ctx) if stat.S_ISDIR(entry.st_mode): raise pyfuse3.FUSEError(errno.EISDIR) self._remove(parent_inode, name, entry) async def rmdir(self, parent_inode: InodeT, name: bytes, ctx: RequestContext) -> None: entry = await self.lookup(parent_inode, name, ctx) if not stat.S_ISDIR(entry.st_mode): raise pyfuse3.FUSEError(errno.ENOTDIR) self._remove(parent_inode, name, entry) def _remove(self, parent_inode: InodeT, name: bytes, entry: EntryAttributes) -> None: if ( self.get_row("SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry.st_ino,))[ 0 ] > 0 ): raise pyfuse3.FUSEError(errno.ENOTEMPTY) self.cursor.execute( "DELETE FROM contents WHERE name=? AND parent_inode=?", (name, parent_inode) ) if entry.st_nlink == 1 and entry.st_ino not in self.inode_open_count: self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry.st_ino,)) async def symlink( self, parent_inode: InodeT, name: bytes, target: bytes, ctx: RequestContext ) -> EntryAttributes: mode = ( stat.S_IFLNK | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IWOTH | stat.S_IXOTH ) return await self._create(parent_inode, name, mode, ctx, target=target) async def rename( self, parent_inode_old: InodeT, name_old: bytes, parent_inode_new: InodeT, name_new: bytes, flags: int, ctx: RequestContext, ) -> None: if flags != 0: raise FUSEError(errno.EINVAL) entry_old = await self.lookup(parent_inode_old, name_old, ctx) entry_new = None try: entry_new = await self.lookup( parent_inode_new, name_new if isinstance(name_new, bytes) else name_new.encode(), ctx, ) except pyfuse3.FUSEError as exc: if exc.errno != errno.ENOENT: raise if entry_new is not None: self._replace( parent_inode_old, name_old, parent_inode_new, name_new, entry_old, entry_new ) else: self.cursor.execute( "UPDATE contents SET name=?, parent_inode=? WHERE name=? AND parent_inode=?", (name_new, parent_inode_new, name_old, parent_inode_old), ) def _replace( self, parent_inode_old: InodeT, name_old: bytes, parent_inode_new: InodeT, name_new: bytes, entry_old: EntryAttributes, entry_new: EntryAttributes, ) -> None: if ( self.get_row( "SELECT COUNT(inode) FROM contents WHERE parent_inode=?", (entry_new.st_ino,) )[0] > 0 ): raise pyfuse3.FUSEError(errno.ENOTEMPTY) self.cursor.execute( "UPDATE contents SET inode=? WHERE name=? AND parent_inode=?", (entry_old.st_ino, name_new, parent_inode_new), ) self.db.execute( 'DELETE FROM contents WHERE name=? AND parent_inode=?', (name_old, parent_inode_old) ) if entry_new.st_nlink == 1 and entry_new.st_ino not in self.inode_open_count: self.cursor.execute("DELETE FROM inodes WHERE id=?", (entry_new.st_ino,)) async def link( self, inode: InodeT, new_parent_inode: InodeT, new_name: bytes, ctx: RequestContext ) -> EntryAttributes: entry_p = await self.getattr(new_parent_inode, ctx) if entry_p.st_nlink == 0: log.warning( 'Attempted to create entry %s with unlinked parent %d', new_name, new_parent_inode ) raise FUSEError(errno.EINVAL) self.cursor.execute( "INSERT INTO contents (name, inode, parent_inode) VALUES(?,?,?)", (new_name, inode, new_parent_inode), ) return await self.getattr(inode, ctx) async def setattr( self, inode: InodeT, attr: EntryAttributes, fields: SetattrFields, fh: FileHandleT | None, ctx: RequestContext, ) -> EntryAttributes: if fields.update_size: data = self.get_row('SELECT data FROM inodes WHERE id=?', (inode,))[0] if data is None: data = b'' if len(data) < attr.st_size: data = data + b'\0' * (attr.st_size - len(data)) else: data = data[: attr.st_size] self.cursor.execute( 'UPDATE inodes SET data=?, size=? WHERE id=?', (memoryview(data), attr.st_size, inode), ) if fields.update_mode: self.cursor.execute('UPDATE inodes SET mode=? WHERE id=?', (attr.st_mode, inode)) if fields.update_uid: self.cursor.execute('UPDATE inodes SET uid=? WHERE id=?', (attr.st_uid, inode)) if fields.update_gid: self.cursor.execute('UPDATE inodes SET gid=? WHERE id=?', (attr.st_gid, inode)) if fields.update_atime: self.cursor.execute( 'UPDATE inodes SET atime_ns=? WHERE id=?', (attr.st_atime_ns, inode) ) if fields.update_mtime: self.cursor.execute( 'UPDATE inodes SET mtime_ns=? WHERE id=?', (attr.st_mtime_ns, inode) ) if fields.update_ctime: self.cursor.execute( 'UPDATE inodes SET ctime_ns=? WHERE id=?', (attr.st_ctime_ns, inode) ) else: self.cursor.execute( 'UPDATE inodes SET ctime_ns=? WHERE id=?', (int(time() * 1e9), inode) ) return await self.getattr(inode, ctx) async def mknod( self, parent_inode: InodeT, name: bytes, mode: int, rdev: int, ctx: RequestContext ) -> EntryAttributes: return await self._create(parent_inode, name, mode, ctx, rdev=rdev) async def mkdir( self, parent_inode: InodeT, name: bytes, mode: int, ctx: RequestContext ) -> EntryAttributes: return await self._create(parent_inode, name, mode, ctx) async def statfs(self, ctx: RequestContext) -> StatvfsData: stat_ = StatvfsData() stat_.f_bsize = 512 stat_.f_frsize = 512 size = self.get_row('SELECT SUM(size) FROM inodes')[0] stat_.f_blocks = size // stat_.f_frsize stat_.f_bfree = max(size // stat_.f_frsize, 1024) stat_.f_bavail = stat_.f_bfree inodes = self.get_row('SELECT COUNT(id) FROM inodes')[0] stat_.f_files = inodes stat_.f_ffree = max(inodes, 100) stat_.f_favail = stat_.f_ffree return stat_ async def open(self, inode: InodeT, flags: int, ctx: RequestContext) -> FileInfo: self.inode_open_count[inode] += 1 # For simplicity, we use the inode as file handle return FileInfo(fh=FileHandleT(inode)) async def access(self, inode: InodeT, mode: int, ctx: RequestContext) -> bool: # Yeah, could be a function and has unused arguments # pylint: disable=R0201,W0613 return True async def create( self, parent_inode: InodeT, name: bytes, mode: int, flags: int, ctx: RequestContext ) -> tuple[FileInfo, EntryAttributes]: # pylint: disable=W0612 entry = await self._create(parent_inode, name, mode, ctx) self.inode_open_count[entry.st_ino] += 1 # For simplicity, we use the inode as file handle return (FileInfo(fh=FileHandleT(entry.st_ino)), entry) async def _create( self, parent_inode: InodeT, name: bytes, mode: int, ctx: RequestContext, rdev: int = 0, target: bytes | None = None, ) -> EntryAttributes: if (await self.getattr(parent_inode, ctx)).st_nlink == 0: log.warning('Attempted to create entry %s with unlinked parent %d', name, parent_inode) raise FUSEError(errno.EINVAL) now_ns = int(time() * 1e9) self.cursor.execute( 'INSERT INTO inodes (uid, gid, mode, mtime_ns, atime_ns, ' 'ctime_ns, target, rdev) VALUES(?, ?, ?, ?, ?, ?, ?, ?)', (ctx.uid, ctx.gid, mode, now_ns, now_ns, now_ns, target, rdev), ) inode = cast(InodeT, self.cursor.lastrowid) self.db.execute( "INSERT INTO contents(name, inode, parent_inode) VALUES(?,?,?)", (name, inode, parent_inode), ) return await self.getattr(inode, ctx) async def read(self, fh: FileHandleT, off: int, size: int) -> bytes: data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0] if data is None: data = b'' return data[off : off + size] async def write(self, fh: FileHandleT, off: int, buf: bytes) -> int: data = self.get_row('SELECT data FROM inodes WHERE id=?', (fh,))[0] if data is None: data = b'' data = data[:off] + buf + data[off + len(buf) :] self.cursor.execute( 'UPDATE inodes SET data=?, size=? WHERE id=?', (memoryview(data), len(data), fh) ) return len(buf) async def release(self, fh: FileHandleT) -> None: inode = fh self.inode_open_count[inode] -= 1 if self.inode_open_count[inode] == 0: del self.inode_open_count[inode] if (await self.getattr(inode)).st_nlink == 0: self.cursor.execute("DELETE FROM inodes WHERE id=?", (inode,)) class NoUniqueValueError(Exception): def __str__(self) -> str: return 'Query generated more than 1 result row' class NoSuchRowError(Exception): def __str__(self) -> str: return 'Query produced 0 result rows' def init_logging(debug: bool = False) -> None: formatter = logging.Formatter( '%(asctime)s.%(msecs)03d %(threadName)s: [%(name)s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S", ) handler = logging.StreamHandler() handler.setFormatter(formatter) root_logger = logging.getLogger() if debug: handler.setLevel(logging.DEBUG) root_logger.setLevel(logging.DEBUG) else: handler.setLevel(logging.INFO) root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) def parse_args() -> Namespace: '''Parse command line''' parser = ArgumentParser() parser.add_argument('mountpoint', type=str, help='Where to mount the file system') parser.add_argument( '--debug', action='store_true', default=False, help='Enable debugging output' ) parser.add_argument( '--debug-fuse', action='store_true', default=False, help='Enable FUSE debugging output' ) return parser.parse_args() if __name__ == '__main__': options = parse_args() init_logging(options.debug) operations = Operations() fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=tmpfs') fuse_options.discard('default_permissions') if options.debug_fuse: fuse_options.add('debug') pyfuse3.init(operations, options.mountpoint, fuse_options) try: trio.run(pyfuse3.main) except: pyfuse3.close(unmount=False) raise pyfuse3.close() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778335858.0 pyfuse3-3.5.0/pyproject.toml0000644000175000017500000000416115177640162016326 0ustar00nikrationikratio[build-system] requires = ["setuptools>=78.1.1", "setuptools_scm>=8.0", "Cython"] build-backend = "build_backend" backend-path = ["util"] [project] name = "pyfuse3" dynamic = ["version"] description = "Python 3 bindings for libfuse 3 with async I/O support" readme = "README.rst" requires-python = ">=3.10" license = "LGPL-2.1-or-later" authors = [ {name = "Nikolaus Rath", email = "Nikolaus@rath.org"} ] keywords = ["FUSE", "python"] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Filesystems", "Operating System :: POSIX :: Linux", "Typing :: Typed", ] dependencies = [ "trio >= 0.15", ] [project.urls] Homepage = "https://github.com/libfuse/pyfuse3" [dependency-groups] dev = [ "pyright>=1.1.407", "mypy>=1.19.1", "pytest >= 3.4.0", "pytest-trio", "ruff>=0.14.10", "sphinx", "twine", ] [tool.setuptools_scm] [tool.setuptools] include-package-data = true [tool.setuptools.packages.find] where = ["src"] [tool.setuptools.package-data] pyfuse3 = ["py.typed"] [tool.ruff] line-length = 100 extend-exclude = [ "developer-notes/", ] [tool.ruff.lint.isort] combine-as-imports = true case-sensitive = false [tool.ruff.lint] ignore = [ "E731", # Do not assign a lambda expression, use a def ] extend-select = [ 'RUF100', # Warn about unused suppressions 'I', # Import ordering ] [tool.mypy] exclude = [ "^util/.+", "^rst/conf.py$" ] warn_unused_configs = true disallow_untyped_defs = false check_untyped_defs = true warn_redundant_casts = true warn_unused_ignores = true [tool.pyright] typeCheckingMode = "standard" exclude = [ "**/__pycache__", "**/.*", "util/", "rst/conf.py" ] # Need for pyright to resolve tests importing tests/util.py (when pytest runs the # test, it adds the tests/ directory to sys.path) extraPaths = ['test'] [tool.codespell] skip = '.git,*.html,developer-notes/' ignore-words-list = 're-use,re-used' [tool.ruff.format] quote-style = "preserve" ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0680978 pyfuse3-3.5.0/rst/0000755000175000017500000000000015201114625014204 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0680978 pyfuse3-3.5.0/rst/_static/0000755000175000017500000000000015201114625015632 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/rst/_static/.placeholder0000644000175000017500000000000015124221126020102 0ustar00nikrationikratio././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0680978 pyfuse3-3.5.0/rst/_templates/0000755000175000017500000000000015201114625016341 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/rst/_templates/localtoc.html0000644000175000017500000000013515124221126021025 0ustar00nikrationikratio

{{ _('Table Of Contents') }}

{{ toctree() }} ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/rst/about.rst0000644000175000017500000000012015124221126016040 0ustar00nikrationikratio======= About ======= .. include:: ../README.rst :start-after: start-intro ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778671834.0 pyfuse3-3.5.0/rst/asyncio.rst0000644000175000017500000000100615201060332016373 0ustar00nikrationikratio.. _asyncio: .. py:module:: pyfuse3.asyncio ================= asyncio Support ================= By default, pyfuse3 uses asynchronous I/O using Trio_ (and most of the documentation assumes that you are using Trio). If you'd rather use asyncio, import the *pyfuse3.asyncio* module and call its *enable()* function before using *pyfuse3*. For example:: import pyfuse3 import pyfuse3.asyncio pyfuse3.asyncio.enable() # Use pyfuse3 as usual from here on. .. _Trio: https://github.com/python-trio/trio ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/rst/changes.rst0000644000175000017500000000003415124221126016342 0ustar00nikrationikratio.. include:: ../Changes.rst ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778675866.0 pyfuse3-3.5.0/rst/conf.py0000644000175000017500000001404715201070232015504 0ustar00nikrationikratio# -*- coding: utf-8 -*- # # pyfuse3 documentation build configuration file, created by # sphinx-quickstart on Sat Oct 16 14:14:40 2010. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # -- General configuration ----------------------------------------------------- import os # Sphinx 9 autodoc otherwise tries to execute src/pyfuse3/__init__.pyi as a # module, which fails on its standard relative imports. Load the real # (compiled) module instead -- it also carries the docstrings autodoc needs. os.environ.setdefault('SPHINX_AUTODOC_IGNORE_NATIVE_MODULE_TYPE_STUBS', '1') # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx'] # Link to Python standard library intersphinx_mapping = { 'python': ('https://docs.python.org/3/', None), 'trio': ('https://trio.readthedocs.io/en/stable/', None), } # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' autodoc_docstring_signature = True # The encoding of source files. source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # Warn about unresolved references nitpicky = True # General information about the project. project = 'pyfuse3' copyright = '2010-2025, Nikolaus Rath' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. try: from importlib.metadata import version version = version('pyfuse3') except Exception: # Fallback version if package is not installed version = 'dev' # The full version, including alpha/beta/rc tags. release = version # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: # today = '' # Else, today_fmt is used as the format for a strftime call. # today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = [] # The reST default role (used for this markup: `text`) to use for all documents. default_role = 'py:obj' primary_domain = 'py' # If true, '()' will be appended to :func: etc. cross-reference text. add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # pygments_style = 'colorful' highlight_language = 'python' # A list of ignored prefixes for module index sorting. # modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. # html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". # html_title = None # A shorter title for the navigation bar. Default is the same as html_title. # html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. # html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. # html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. # html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. # html_use_smartypants = True # Custom sidebar templates, maps document names to template names. # html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. # html_additional_pages = {} # If false, no module index is generated. html_use_modindex = False # If false, no index is generated. html_use_index = True # If true, the index is split into individual pages for each letter. html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = False # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. # html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). # html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'pyfuse3doc' ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778672018.0 pyfuse3-3.5.0/rst/data.rst0000644000175000017500000001127215201060622015647 0ustar00nikrationikratio================= Data Structures ================= .. currentmodule:: pyfuse3 .. py:data:: ENOATTR This errorcode is unfortunately missing in the `errno` module, so it is provided by pyfuse3 instead. .. py:data:: ROOT_INODE The inode of the root directory, i.e. the mount point of the file system. .. py:data:: RENAME_EXCHANGE A flag that may be passed to the `~Operations.rename` handler. When passed, the handler must atomically exchange the two paths (which must both exist). .. py:data:: RENAME_NOREPLACE A flag that may be passed to the `~Operations.rename` handler. When passed, the handler must not replace an existing target. .. py:data:: default_options This is a recommended set of options that should be passed to `pyfuse3.init` to get reasonable behavior and performance. pyfuse3 is compatible with any other combination of options as well, but you should only deviate from the defaults with good reason. (The :samp:`fsname=` option is guaranteed never to be included in the default options, so you can always safely add it to the set). The default options are: * ``default_permissions`` enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect. .. autoexception:: FUSEError .. class:: FileHandleT A type alias for `int`, representing an integer file handle produced by a `~Operations.create`, `~Operations.open`, or `~Operations.opendir` call. .. class:: FileNameT A type alias for `bytes`, representing a file name, with no embedded zero-bytes (``\0``). .. class:: FlagT A type alias for `int`, representing flags modifying the behavior of an operation. .. class:: InodeT A type alias for `int`, representing an inode number. .. class:: ModeT A type alias for `int`, representing a file mode. .. class:: XAttrNameT A type alias for `bytes`, representing an extended attribute name, with no embedded zero-bytes (``\0``). .. autoclass:: RequestContext .. attribute:: pid .. attribute:: uid .. attribute:: gid .. attribute:: umask .. autoclass:: StatvfsData .. attribute:: f_bsize .. attribute:: f_frsize .. attribute:: f_blocks .. attribute:: f_bfree .. attribute:: f_bavail .. attribute:: f_files .. attribute:: f_ffree .. attribute:: f_favail .. attribute:: f_namemax .. autoclass:: EntryAttributes .. autoattribute:: st_ino .. autoattribute:: generation .. autoattribute:: entry_timeout .. autoattribute:: attr_timeout .. autoattribute:: st_mode .. autoattribute:: st_nlink .. autoattribute:: st_uid .. autoattribute:: st_gid .. autoattribute:: st_rdev .. autoattribute:: st_size .. autoattribute:: st_blksize .. autoattribute:: st_blocks .. autoattribute:: st_atime_ns .. autoattribute:: st_ctime_ns .. autoattribute:: st_mtime_ns .. autoclass:: FileInfo .. autoattribute:: fh This attribute must be set to the file handle to be returned from `Operations.open`. .. autoattribute:: direct_io If true, signals to the kernel that this file should not be cached or buffered. .. autoattribute:: keep_cache If true, signals to the kernel that previously cached data for this inode is still valid, and should not be invalidated. .. autoattribute:: nonseekable If true, indicates that the file does not support seeking. .. autoclass:: SetattrFields .. attribute:: update_atime If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_atime_ns` field contains an updated value. .. attribute:: update_mtime If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_mtime_ns` field contains an updated value. .. attribute:: update_mode If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_mode` field contains an updated value. .. attribute:: update_uid If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_uid` field contains an updated value. .. attribute:: update_gid If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_gid` field contains an updated value. .. attribute:: update_size If this attribute is true, it signals the `Operations.setattr` method that the `~EntryAttributes.st_size` field contains an updated value. .. autoclass:: ReaddirToken An identifier for a particular `~Operations.readdir` invocation. .. autoclass:: PollHandle .. automethod:: notify ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/rst/example.rst0000644000175000017500000000145115124221126016371 0ustar00nikrationikratio.. _example file system: ====================== Example File Systems ====================== pyfuse3 comes with several example file systems in the :file:`examples` directory of the release tarball. For completeness, these examples are also included here. Single-file, Read-only File System ================================== (shipped as :file:`examples/lltest.py`) .. literalinclude:: ../examples/hello.py :linenos: :language: python In-memory File System ===================== (shipped as :file:`examples/tmpfs.py`) .. literalinclude:: ../examples/tmpfs.py :linenos: :language: python Passthrough / Overlay File System ================================= (shipped as :file:`examples/passthroughfs.py`) .. literalinclude:: ../examples/passthroughfs.py :linenos: :language: python ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/rst/fuse_api.rst0000644000175000017500000000110115124221126016521 0ustar00nikrationikratio==================== FUSE API Functions ==================== .. currentmodule:: pyfuse3 .. autofunction:: init .. autofunction:: main .. autofunction:: terminate .. autofunction:: close .. autofunction:: invalidate_inode .. autofunction:: invalidate_entry .. autofunction:: invalidate_entry_async .. autofunction:: notify_store .. autofunction:: readdir_reply .. py:data:: trio_token Set to the value returned by `trio.lowlevel.current_trio_token` while `main` is running. Can be used by other threads to run code in the main loop through `trio.from_thread.run`. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/rst/general.rst0000644000175000017500000000717615124221126016365 0ustar00nikrationikratio===================== General Information ===================== .. currentmodule:: pyfuse3 .. _getting_started: Getting started =============== A file system is implemented by subclassing the `pyfuse3.Operations` class and implementing the various request handlers. The handlers respond to requests received from the FUSE kernel module and perform functions like looking up the inode given a file name, looking up attributes of an inode, opening a (file) inode for reading or writing or listing the contents of a (directory) inode. By default, pyfuse3 uses asynchronous I/O using Trio_, and most of the documentation assumes that you are using Trio. If you'd rather use asyncio, take a look at :ref:`asyncio Support `. If you would like to use Trio (which is recommended) but you have not yet used Trio before, please read the `Trio tutorial`_ first. An instance of the operations class is passed to `pyfuse3.init` to mount the file system. To enter the request handling loop, run `pyfuse3.main` in a trio event loop. This function will return when the file system should be unmounted again, which is done by calling `pyfuse3.close`. All character data (directory entry names, extended attribute names and values, symbolic link targets etc) are passed as `bytes` and must be returned as `bytes`. For easier debugging, it is strongly recommended that applications using pyfuse3 also make use of the faulthandler_ module. .. _faulthandler: http://docs.python.org/3/library/faulthandler.html .. _Trio tutorial: https://trio.readthedocs.io/en/latest/tutorial.html .. _Trio: https://github.com/python-trio/trio Lookup Counts ============= Most file systems need to keep track which inodes are currently known to the kernel. This is, for example, necessary to correctly implement the *unlink* system call: when unlinking a directory entry whose associated inode is currently opened, the file system must defer removal of the inode (and thus the file contents) until it is no longer in use by any process. FUSE file systems achieve this by using "lookup counts". A lookup count is a number that's associated with an inode. An inode with a lookup count of zero is currently not known to the kernel. This means that if there are no directory entries referring to such an inode it can be safely removed, or (if a file system implements dynamic inode numbers), the inode number can be safely recycled. The lookup count of an inode is increased by every operation that could make the inode "known" to the kernel. This includes e.g. `~Operations.lookup`, `~Operations.create` and `~Operations.readdir` (to determine if a given request handler affects the lookup count, please refer to its description in the `Operations` class). The lookup count is decreased by calls to the `~Operations.forget` handler. FUSE and VFS Locking ==================== FUSE and the kernel's VFS layer provide some basic locking that FUSE file systems automatically take advantage of. Specifically: * Calls to `~Operations.rename`, `~Operations.create`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.link` and `~Operations.mkdir` acquire a write-lock on the inode of the directory in which the respective operation takes place (two in case of rename). * Calls to `~Operations.lookup` acquire a read-lock on the inode of the parent directory (meaning that lookups in the same directory may run concurrently, but never at the same time as e.g. a rename or mkdir operation). * Unless writeback caching is enabled, calls to `~Operations.write` for the same inode are automatically serialized (i.e., there are never concurrent calls for the same inode even when multithreading is enabled). ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/rst/gotchas.rst0000644000175000017500000000154515124221126016372 0ustar00nikrationikratio================ Common Gotchas ================ .. currentmodule:: pyfuse3 This chapter lists some common gotchas that should be avoided. Removing inodes in unlink handler ================================= If your file system is mounted at :file:`mnt`, the following code should complete without errors:: with open('mnt/file_one', 'w+') as fh1: fh1.write('foo') fh1.flush() with open('mnt/file_one', 'a') as fh2: os.unlink('mnt/file_one') assert 'file_one' not in os.listdir('mnt') fh2.write('bar') os.close(os.dup(fh1.fileno())) fh1.seek(0) assert fh1.read() == 'foobar' If you're getting an error, then you probably did a mistake when implementing the `~Operations.unlink` handler and are removing the file contents when you should be deferring removal to the `~Operations.forget` handler. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/rst/index.rst0000644000175000017500000000062715124221126016051 0ustar00nikrationikratio============================= pyfuse3 Documentation ============================= Table of Contents ----------------- .. module:: pyfuse3 .. toctree:: :maxdepth: 1 about.rst install.rst general.rst asyncio.rst fuse_api.rst data.rst operations.rst util.rst gotchas.rst example.rst changes.rst Indices and tables ------------------ * :ref:`genindex` * :ref:`search` ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778677036.0 pyfuse3-3.5.0/rst/install.rst0000644000175000017500000000341115201072454016406 0ustar00nikrationikratio============== Installation ============== .. highlight:: sh Dependencies ============ As usual, Python dependencies are specified in :file:`pyproject.toml`. However, to build pyfuse3 you also need the following additional dependencies installed on your system: * libfuse_, version 3.3.0 or newer, including development headers (typically distributions provide them in a *libfuse3-devel* or *libfuse3-dev* package). * the `pkg-config`_ tool * the `attr`_ library * Python development headers (for example, the *python3-dev* or *python3-devel* package on many Linux distributions) * A C compiler Stable releases =============== To install a stable pyfuse3 release, ensure you have the non-Python dependencies installed and then use your favorite Python package manager to install pyfuse3 from PyPI (e.g. ``pip install pyfuse3``). Pyfuse release tarballs are signed with `signify `_. You can validate the signature with:: signify -V -m pyfuse3-A.B.C.tar.gz -p The public key needs to be retrieved from a trustworthy source for the first installation. Afterwards, the trust chain is self-sustaining: each release tarball contains the public key for the release in its ``signify/`` directory. Bugfix releases (``A.B.C``) will be signed by :file:`pyfuse-A.B.pub`. New major or minor releases (``A.B.0``) will be signed by :file:`pyfuse-next.pub`. Installing from Git / Developing pyfuse3 ======================================== Clone the pyfuse3_ repository and take a look at :file:`developer_notes/setup.md`. .. _libfuse: http://github.com/libfuse/libfuse .. _attr: http://savannah.nongnu.org/projects/attr/ .. _`pkg-config`: http://www.freedesktop.org/wiki/Software/pkg-config .. _pyfuse3: https://github.com/libfuse/pyfuse3/ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/rst/operations.rst0000644000175000017500000000235115124221126017121 0ustar00nikrationikratio================== Request Handlers ================== (You can use the :ref:`genindex` to directly jump to a specific handler). .. currentmodule:: pyfuse3 .. autoclass:: Operations :members: .. attribute:: supports_dot_lookup = True If set, indicates that the filesystem supports lookup of the ``.`` and ``..`` entries. This is required if the file system will be shared over NFS. .. attribute:: enable_writeback_cache = True Enables write-caching in the kernel if available. This means that individual write request may be buffered and merged in the kernel before they are send to the filesystem. .. attribute:: enable_acl = False Enable ACL support. When enabled, the kernel will cache and have responsibility for enforcing ACLs. ACL will be stored as xattrs and passed to userspace, which is responsible for updating the ACLs in the filesystem, keeping the file mode in sync with the ACL, and ensuring inheritance of default ACLs when new filesystem nodes are created. Note that this requires that the file system is able to parse and interpret the xattr representation of ACLs. Enabling this feature implicitly turns on the ``default_permissions`` option. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/rst/util.rst0000644000175000017500000000062715124221126015717 0ustar00nikrationikratio==================== Utility Functions ==================== The following functions do not necessarily translate to calls to the FUSE library. They are provided because they're potentially useful when implementing file systems in Python. .. currentmodule:: pyfuse3 .. autofunction:: setxattr .. autofunction:: getxattr .. autofunction:: listdir .. autofunction:: get_sup_groups .. autofunction:: syncfs ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0750976 pyfuse3-3.5.0/setup.cfg0000644000175000017500000000004615201114625015215 0ustar00nikrationikratio[egg_info] tag_build = tag_date = 0 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0690978 pyfuse3-3.5.0/signify/0000755000175000017500000000000015201114625015044 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778675953.0 pyfuse3-3.5.0/signify/pyfuse-3.5.pub0000644000175000017500000000013715201070361017371 0ustar00nikrationikratiountrusted comment: signify public key RWRG/YQ2UU1hBSZ3luZACw3C3WHm2RJBSixJ7sPgh15PBsH0A5BPzchZ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686355.0 pyfuse3-3.5.0/signify/pyfuse-next.pub0000644000175000017500000000013715201114623020042 0ustar00nikrationikratiountrusted comment: signify public key RWRgb6pjsYNpVyBcU5GeQAk26bgTfT89QjbsOs/l83jX6QTShcvD+CkV ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1778686357.058098 pyfuse3-3.5.0/src/0000755000175000017500000000000015201114625014163 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0720975 pyfuse3-3.5.0/src/pyfuse3/0000755000175000017500000000000015201114625015561 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778675894.0 pyfuse3-3.5.0/src/pyfuse3/__init__.c0000644000175000017500001352040015201070266017473 0ustar00nikrationikratio/* Generated by Cython 3.2.4 */ /* BEGIN: Cython Metadata { "distutils": { "depends": [ "src/pyfuse3/gettime.h", "src/pyfuse3/macros.c", "src/pyfuse3/pyfuse3.h", "src/pyfuse3/xattr.h" ], "extra_compile_args": [ "-I/usr/include/fuse3", "-DFUSE_USE_VERSION=32", "-Wall", "-Wextra", "-Wconversion", "-Wsign-compare", "-Wno-unused-function", "-Wno-implicit-fallthrough", "-Wno-unused-parameter" ], "extra_link_args": [ "-lfuse3", "-lpthread", "-lpthread", "-lrt" ], "include_dirs": [ "src/pyfuse3", "Include" ], "name": "pyfuse3.__init__", "sources": [ "src/pyfuse3/__init__.pyx" ] }, "module_name": "pyfuse3.__init__" } END: Cython Metadata */ #ifndef PY_SSIZE_T_CLEAN #define PY_SSIZE_T_CLEAN #endif /* PY_SSIZE_T_CLEAN */ /* InitLimitedAPI */ #if defined(Py_LIMITED_API) #if !defined(CYTHON_LIMITED_API) #define CYTHON_LIMITED_API 1 #endif #elif defined(CYTHON_LIMITED_API) #ifdef _MSC_VER #pragma message ("Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead.") #else #warning Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead. #endif #endif #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x03080000 #error Cython requires Python 3.8+. #else #define __PYX_ABI_VERSION "3_2_4" #define CYTHON_HEX_VERSION 0x030204F0 #define CYTHON_FUTURE_DIVISION 1 /* CModulePreamble */ #include #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) #endif #if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS) #ifndef __stdcall #define __stdcall #endif #ifndef __cdecl #define __cdecl #endif #ifndef __fastcall #define __fastcall #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(t) t #endif #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif #define __PYX_COMMA , #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #ifndef Py_HUGE_VAL #define Py_HUGE_VAL HUGE_VAL #endif #define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX #if defined(GRAALVM_PYTHON) /* For very preliminary testing purposes. Most variables are set the same as PyPy. The existence of this section does not imply that anything works or is even tested */ #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 0 #define CYTHON_COMPILING_IN_LIMITED_API 0 #define CYTHON_COMPILING_IN_GRAAL 1 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_TYPE_SPECS #define CYTHON_USE_TYPE_SPECS 0 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #undef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 1 #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0 #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #undef CYTHON_ASSUME_SAFE_SIZE #define CYTHON_ASSUME_SAFE_SIZE 0 #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_GIL #define CYTHON_FAST_GIL 0 #undef CYTHON_METH_FASTCALL #define CYTHON_METH_FASTCALL 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #ifndef CYTHON_PEP487_INIT_SUBCLASS #define CYTHON_PEP487_INIT_SUBCLASS 1 #endif #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 1 #undef CYTHON_USE_MODULE_STATE #define CYTHON_USE_MODULE_STATE 0 #undef CYTHON_USE_SYS_MONITORING #define CYTHON_USE_SYS_MONITORING 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_AM_SEND #define CYTHON_USE_AM_SEND 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 1 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 #endif #undef CYTHON_USE_FREELISTS #define CYTHON_USE_FREELISTS 0 #undef CYTHON_IMMORTAL_CONSTANTS #define CYTHON_IMMORTAL_CONSTANTS 0 #elif defined(PYPY_VERSION) #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_CPYTHON 0 #define CYTHON_COMPILING_IN_LIMITED_API 0 #define CYTHON_COMPILING_IN_GRAAL 0 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #ifndef CYTHON_USE_TYPE_SPECS #define CYTHON_USE_TYPE_SPECS 0 #endif #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #undef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 1 #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1 #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #ifndef CYTHON_ASSUME_SAFE_SIZE #define CYTHON_ASSUME_SAFE_SIZE 1 #endif #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_GIL #define CYTHON_FAST_GIL 0 #undef CYTHON_METH_FASTCALL #define CYTHON_METH_FASTCALL 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #ifndef CYTHON_PEP487_INIT_SUBCLASS #define CYTHON_PEP487_INIT_SUBCLASS 1 #endif #if PY_VERSION_HEX < 0x03090000 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT) #define CYTHON_PEP489_MULTI_PHASE_INIT 1 #endif #undef CYTHON_USE_MODULE_STATE #define CYTHON_USE_MODULE_STATE 0 #undef CYTHON_USE_SYS_MONITORING #define CYTHON_USE_SYS_MONITORING 0 #ifndef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE (PYPY_VERSION_NUM >= 0x07030C00) #endif #undef CYTHON_USE_AM_SEND #define CYTHON_USE_AM_SEND 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_NUM >= 0x07031100) #endif #undef CYTHON_USE_FREELISTS #define CYTHON_USE_FREELISTS 0 #undef CYTHON_IMMORTAL_CONSTANTS #define CYTHON_IMMORTAL_CONSTANTS 0 #elif defined(CYTHON_LIMITED_API) #ifdef Py_LIMITED_API #undef __PYX_LIMITED_VERSION_HEX #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API #endif #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 0 #define CYTHON_COMPILING_IN_LIMITED_API 1 #define CYTHON_COMPILING_IN_GRAAL 0 #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_TYPE_SPECS #define CYTHON_USE_TYPE_SPECS 1 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #ifndef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #endif #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0 #endif #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #undef CYTHON_ASSUME_SAFE_SIZE #define CYTHON_ASSUME_SAFE_SIZE 0 #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_GIL #define CYTHON_FAST_GIL 0 #undef CYTHON_METH_FASTCALL #define CYTHON_METH_FASTCALL (__PYX_LIMITED_VERSION_HEX >= 0x030C0000) #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #ifndef CYTHON_PEP487_INIT_SUBCLASS #define CYTHON_PEP487_INIT_SUBCLASS 1 #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 1 #endif #ifndef CYTHON_USE_MODULE_STATE #define CYTHON_USE_MODULE_STATE 0 #endif #undef CYTHON_USE_SYS_MONITORING #define CYTHON_USE_SYS_MONITORING 0 #ifndef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #endif #ifndef CYTHON_USE_AM_SEND #define CYTHON_USE_AM_SEND (__PYX_LIMITED_VERSION_HEX >= 0x030A0000) #endif #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 #endif #ifndef CYTHON_USE_FREELISTS #define CYTHON_USE_FREELISTS 1 #endif #undef CYTHON_IMMORTAL_CONSTANTS #define CYTHON_IMMORTAL_CONSTANTS 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 1 #define CYTHON_COMPILING_IN_LIMITED_API 0 #define CYTHON_COMPILING_IN_GRAAL 0 #ifdef Py_GIL_DISABLED #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 1 #else #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0 #endif #if PY_VERSION_HEX < 0x030A0000 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #elif !defined(CYTHON_USE_TYPE_SLOTS) #define CYTHON_USE_TYPE_SLOTS 1 #endif #ifndef CYTHON_USE_TYPE_SPECS #define CYTHON_USE_TYPE_SPECS 0 #endif #ifndef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 1 #endif #ifndef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 1 #endif #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #elif !defined(CYTHON_USE_PYLIST_INTERNALS) #define CYTHON_USE_PYLIST_INTERNALS 1 #endif #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING || PY_VERSION_HEX >= 0x030B00A2 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #elif !defined(CYTHON_USE_UNICODE_WRITER) #define CYTHON_USE_UNICODE_WRITER 1 #endif #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1 #elif !defined(CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS) #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_ASSUME_SAFE_SIZE #define CYTHON_ASSUME_SAFE_SIZE 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #ifndef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 1 #endif #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #undef CYTHON_FAST_GIL #define CYTHON_FAST_GIL 0 #elif !defined(CYTHON_FAST_GIL) #define CYTHON_FAST_GIL (PY_VERSION_HEX < 0x030C00A6) #endif #ifndef CYTHON_METH_FASTCALL #define CYTHON_METH_FASTCALL 1 #endif #ifndef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 1 #endif #ifndef CYTHON_PEP487_INIT_SUBCLASS #define CYTHON_PEP487_INIT_SUBCLASS 1 #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 1 #endif #ifndef CYTHON_USE_MODULE_STATE #define CYTHON_USE_MODULE_STATE 0 #endif #ifndef CYTHON_USE_SYS_MONITORING #define CYTHON_USE_SYS_MONITORING (PY_VERSION_HEX >= 0x030d00B1) #endif #ifndef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 1 #endif #ifndef CYTHON_USE_AM_SEND #define CYTHON_USE_AM_SEND 1 #endif #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #elif !defined(CYTHON_USE_DICT_VERSIONS) #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX < 0x030C00A5 && !CYTHON_USE_MODULE_STATE) #endif #ifndef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 1 #endif #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC #define CYTHON_UPDATE_DESCRIPTOR_DOC 1 #endif #ifndef CYTHON_USE_FREELISTS #define CYTHON_USE_FREELISTS (!CYTHON_COMPILING_IN_CPYTHON_FREETHREADING) #endif #if defined(CYTHON_IMMORTAL_CONSTANTS) && PY_VERSION_HEX < 0x030C0000 #undef CYTHON_IMMORTAL_CONSTANTS #define CYTHON_IMMORTAL_CONSTANTS 0 // definitely won't work #elif !defined(CYTHON_IMMORTAL_CONSTANTS) #define CYTHON_IMMORTAL_CONSTANTS (PY_VERSION_HEX >= 0x030C0000 && !CYTHON_USE_MODULE_STATE && CYTHON_COMPILING_IN_CPYTHON_FREETHREADING) #endif #endif #ifndef CYTHON_COMPRESS_STRINGS #define CYTHON_COMPRESS_STRINGS 1 #endif #ifndef CYTHON_FAST_PYCCALL #define CYTHON_FAST_PYCCALL CYTHON_FAST_PYCALL #endif #ifndef CYTHON_VECTORCALL #if CYTHON_COMPILING_IN_LIMITED_API #define CYTHON_VECTORCALL (__PYX_LIMITED_VERSION_HEX >= 0x030C0000) #else #define CYTHON_VECTORCALL (CYTHON_FAST_PYCCALL) #endif #endif #if CYTHON_USE_PYLONG_INTERNALS #undef SHIFT #undef BASE #undef MASK #ifdef SIZEOF_VOID_P enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; #endif #endif #ifndef __has_attribute #define __has_attribute(x) 0 #endif #ifndef __has_cpp_attribute #define __has_cpp_attribute(x) 0 #endif #ifndef CYTHON_RESTRICT #if defined(__GNUC__) #define CYTHON_RESTRICT __restrict__ #elif defined(_MSC_VER) && _MSC_VER >= 1400 #define CYTHON_RESTRICT __restrict #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_RESTRICT restrict #else #define CYTHON_RESTRICT #endif #endif #ifndef CYTHON_UNUSED #if defined(__cplusplus) /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17 * but leads to warnings with -pedantic, since it is a C++17 feature */ #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L) #if __has_cpp_attribute(maybe_unused) #define CYTHON_UNUSED [[maybe_unused]] #endif #endif #endif #endif #ifndef CYTHON_UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif #endif #ifndef CYTHON_UNUSED_VAR # if defined(__cplusplus) template void CYTHON_UNUSED_VAR( const T& ) { } # else # define CYTHON_UNUSED_VAR(x) (void)(x) # endif #endif #ifndef CYTHON_MAYBE_UNUSED_VAR #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x) #endif #ifndef CYTHON_NCP_UNUSED # if CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING # define CYTHON_NCP_UNUSED # else # define CYTHON_NCP_UNUSED CYTHON_UNUSED # endif #endif #ifndef CYTHON_USE_CPP_STD_MOVE #if defined(__cplusplus) && (\ __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600)) #define CYTHON_USE_CPP_STD_MOVE 1 #else #define CYTHON_USE_CPP_STD_MOVE 0 #endif #endif #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) #include typedef uintptr_t __pyx_uintptr_t; #ifndef CYTHON_FALLTHROUGH #if defined(__cplusplus) /* for clang __has_cpp_attribute(fallthrough) is true even before C++17 * but leads to warnings with -pedantic, since it is a C++17 feature */ #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L) #if __has_cpp_attribute(fallthrough) #define CYTHON_FALLTHROUGH [[fallthrough]] #endif #endif #ifndef CYTHON_FALLTHROUGH #if __has_cpp_attribute(clang::fallthrough) #define CYTHON_FALLTHROUGH [[clang::fallthrough]] #elif __has_cpp_attribute(gnu::fallthrough) #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] #endif #endif #endif #ifndef CYTHON_FALLTHROUGH #if __has_attribute(fallthrough) #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) #else #define CYTHON_FALLTHROUGH #endif #endif #if defined(__clang__) && defined(__apple_build_version__) #if __apple_build_version__ < 7000000 #undef CYTHON_FALLTHROUGH #define CYTHON_FALLTHROUGH #endif #endif #endif #ifndef Py_UNREACHABLE #define Py_UNREACHABLE() assert(0); abort() #endif #ifdef __cplusplus template struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);}; #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL::value) #else #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0) #endif #if CYTHON_COMPILING_IN_PYPY == 1 #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX < 0x030A0000) #else #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX < 0x03090000) #endif #define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer)) /* CInitCode */ #ifndef CYTHON_INLINE #if defined(__clang__) #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) #elif defined(__GNUC__) #define CYTHON_INLINE __inline__ #elif defined(_MSC_VER) #define CYTHON_INLINE __inline #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_INLINE inline #else #define CYTHON_INLINE #endif #endif /* PythonCompatibility */ #define __PYX_BUILD_PY_SSIZE_T "n" #define CYTHON_FORMAT_SSIZE_T "z" #define __Pyx_BUILTIN_MODULE_NAME "builtins" #define __Pyx_DefaultClassType PyType_Type #if CYTHON_COMPILING_IN_LIMITED_API #ifndef CO_OPTIMIZED static int CO_OPTIMIZED; #endif #ifndef CO_NEWLOCALS static int CO_NEWLOCALS; #endif #ifndef CO_VARARGS static int CO_VARARGS; #endif #ifndef CO_VARKEYWORDS static int CO_VARKEYWORDS; #endif #ifndef CO_ASYNC_GENERATOR static int CO_ASYNC_GENERATOR; #endif #ifndef CO_GENERATOR static int CO_GENERATOR; #endif #ifndef CO_COROUTINE static int CO_COROUTINE; #endif #else #ifndef CO_COROUTINE #define CO_COROUTINE 0x80 #endif #ifndef CO_ASYNC_GENERATOR #define CO_ASYNC_GENERATOR 0x200 #endif #endif static int __Pyx_init_co_variables(void); #if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE) #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type) #else #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type)) #endif #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is) #define __Pyx_Py_Is(x, y) Py_Is(x, y) #else #define __Pyx_Py_Is(x, y) ((x) == (y)) #endif #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone) #define __Pyx_Py_IsNone(ob) Py_IsNone(ob) #else #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None) #endif #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue) #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob) #else #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True) #endif #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse) #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob) #else #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False) #endif #define __Pyx_NoneAsNull(obj) (__Pyx_Py_IsNone(obj) ? NULL : (obj)) #if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o) #else #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o) #endif #ifndef Py_TPFLAGS_CHECKTYPES #define Py_TPFLAGS_CHECKTYPES 0 #endif #ifndef Py_TPFLAGS_HAVE_INDEX #define Py_TPFLAGS_HAVE_INDEX 0 #endif #ifndef Py_TPFLAGS_HAVE_NEWBUFFER #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif #ifndef Py_TPFLAGS_SEQUENCE #define Py_TPFLAGS_SEQUENCE 0 #endif #ifndef Py_TPFLAGS_MAPPING #define Py_TPFLAGS_MAPPING 0 #endif #ifndef Py_TPFLAGS_IMMUTABLETYPE #define Py_TPFLAGS_IMMUTABLETYPE (1UL << 8) #endif #ifndef Py_TPFLAGS_DISALLOW_INSTANTIATION #define Py_TPFLAGS_DISALLOW_INSTANTIATION (1UL << 7) #endif #ifndef METH_STACKLESS #define METH_STACKLESS 0 #endif #ifndef METH_FASTCALL #ifndef METH_FASTCALL #define METH_FASTCALL 0x80 #endif typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames); #else #if PY_VERSION_HEX >= 0x030d00A4 # define __Pyx_PyCFunctionFast PyCFunctionFast # define __Pyx_PyCFunctionFastWithKeywords PyCFunctionFastWithKeywords #else # define __Pyx_PyCFunctionFast _PyCFunctionFast # define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords #endif #endif #if CYTHON_METH_FASTCALL #define __Pyx_METH_FASTCALL METH_FASTCALL #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords #else #define __Pyx_METH_FASTCALL METH_VARARGS #define __Pyx_PyCFunction_FastCall PyCFunction #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords #endif #if CYTHON_VECTORCALL #define __pyx_vectorcallfunc vectorcallfunc #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET PY_VECTORCALL_ARGUMENTS_OFFSET #define __Pyx_PyVectorcall_NARGS(n) PyVectorcall_NARGS((size_t)(n)) #else #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET 0 #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(n)) #endif #if PY_VERSION_HEX >= 0x030900B1 #define __Pyx_PyCFunction_CheckExact(func) PyCFunction_CheckExact(func) #else #define __Pyx_PyCFunction_CheckExact(func) PyCFunction_Check(func) #endif #define __Pyx_CyOrPyCFunction_Check(func) PyCFunction_Check(func) #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) (((PyCFunctionObject*)(func))->m_ml->ml_meth) #elif !CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(func) #endif #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_CyOrPyCFunction_GET_FLAGS(func) (((PyCFunctionObject*)(func))->m_ml->ml_flags) static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) { return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self; } #endif static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void (*cfunc)(void)) { #if CYTHON_COMPILING_IN_LIMITED_API return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc; #else return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc; #endif } #define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCFunction(func, cfunc) #if PY_VERSION_HEX < 0x03090000 || (CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000) #define __Pyx_PyType_FromModuleAndSpec(m, s, b) ((void)m, PyType_FromSpecWithBases(s, b)) typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *); #else #define __Pyx_PyType_FromModuleAndSpec(m, s, b) PyType_FromModuleAndSpec(m, s, b) #define __Pyx_PyCMethod PyCMethod #endif #ifndef METH_METHOD #define METH_METHOD 0x200 #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) #define PyObject_Malloc(s) PyMem_Malloc(s) #define PyObject_Free(p) PyMem_Free(p) #define PyObject_Realloc(p) PyMem_Realloc(p) #endif #if CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_PyFrame_SetLineNumber(frame, lineno) #elif CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000 #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) GraalPyFrame_SetLineNumber((frame), (lineno)) #elif CYTHON_COMPILING_IN_GRAAL #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) _PyFrame_SetLineNumber((frame), (lineno)) #else #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) #endif #if CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_PyThreadState_Current PyThreadState_Get() #elif !CYTHON_FAST_THREAD_STATE #define __Pyx_PyThreadState_Current PyThreadState_GET() #elif PY_VERSION_HEX >= 0x030d00A1 #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked() #else #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() #endif #if CYTHON_USE_MODULE_STATE static CYTHON_INLINE void *__Pyx__PyModule_GetState(PyObject *op) { void *result; result = PyModule_GetState(op); if (!result) Py_FatalError("Couldn't find the module state"); return result; } #define __Pyx_PyModule_GetState(o) (__pyx_mstatetype *)__Pyx__PyModule_GetState(o) #else #define __Pyx_PyModule_GetState(op) ((void)op,__pyx_mstate_global) #endif #define __Pyx_PyObject_GetSlot(obj, name, func_ctype) __Pyx_PyType_GetSlot(Py_TYPE((PyObject *) obj), name, func_ctype) #define __Pyx_PyObject_TryGetSlot(obj, name, func_ctype) __Pyx_PyType_TryGetSlot(Py_TYPE(obj), name, func_ctype) #define __Pyx_PyObject_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(Py_TYPE(obj), sub, name, func_ctype) #define __Pyx_PyObject_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSubSlot(Py_TYPE(obj), sub, name, func_ctype) #if CYTHON_USE_TYPE_SLOTS #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((type)->name) #define __Pyx_PyType_TryGetSlot(type, name, func_ctype) __Pyx_PyType_GetSlot(type, name, func_ctype) #define __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype) (((type)->sub) ? ((type)->sub->name) : NULL) #define __Pyx_PyType_TryGetSubSlot(type, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype) #else #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((func_ctype) PyType_GetSlot((type), Py_##name)) #define __Pyx_PyType_TryGetSlot(type, name, func_ctype)\ ((__PYX_LIMITED_VERSION_HEX >= 0x030A0000 ||\ (PyType_GetFlags(type) & Py_TPFLAGS_HEAPTYPE) || __Pyx_get_runtime_version() >= 0x030A0000) ?\ __Pyx_PyType_GetSlot(type, name, func_ctype) : NULL) #define __Pyx_PyType_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSlot(obj, name, func_ctype) #define __Pyx_PyType_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSlot(obj, name, func_ctype) #endif #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) #else #define __Pyx_PyDict_NewPresized(n) PyDict_New() #endif #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_UNICODE_INTERNALS #define __Pyx_PyDict_GetItemStrWithError(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) { PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name); if (res == NULL) PyErr_Clear(); return res; } #elif !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000 #define __Pyx_PyDict_GetItemStrWithError PyDict_GetItemWithError #define __Pyx_PyDict_GetItemStr PyDict_GetItem #else static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) { #if CYTHON_COMPILING_IN_PYPY return PyDict_GetItem(dict, name); #else PyDictEntry *ep; PyDictObject *mp = (PyDictObject*) dict; long hash = ((PyStringObject *) name)->ob_shash; assert(hash != -1); ep = (mp->ma_lookup)(mp, name, hash); if (ep == NULL) { return NULL; } return ep->me_value; #endif } #define __Pyx_PyDict_GetItemStr PyDict_GetItem #endif #if CYTHON_USE_TYPE_SLOTS #define __Pyx_PyType_GetFlags(tp) (((PyTypeObject *)tp)->tp_flags) #define __Pyx_PyType_HasFeature(type, feature) ((__Pyx_PyType_GetFlags(type) & (feature)) != 0) #else #define __Pyx_PyType_GetFlags(tp) (PyType_GetFlags((PyTypeObject *)tp)) #define __Pyx_PyType_HasFeature(type, feature) PyType_HasFeature(type, feature) #endif #define __Pyx_PyObject_GetIterNextFunc(iterator) __Pyx_PyObject_GetSlot(iterator, tp_iternext, iternextfunc) #if CYTHON_USE_TYPE_SPECS #define __Pyx_PyHeapTypeObject_GC_Del(obj) {\ PyTypeObject *type = Py_TYPE((PyObject*)obj);\ assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\ PyObject_GC_Del(obj);\ Py_DECREF(type);\ } #else #define __Pyx_PyHeapTypeObject_GC_Del(obj) PyObject_GC_Del(obj) #endif #if CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((void)u, 1114111U) #define __Pyx_PyUnicode_KIND(u) ((void)u, (0)) #define __Pyx_PyUnicode_DATA(u) ((void*)u) #define __Pyx_PyUnicode_READ(k, d, i) ((void)k, PyUnicode_ReadChar((PyObject*)(d), i)) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GetLength(u)) #else #if PY_VERSION_HEX >= 0x030C0000 #define __Pyx_PyUnicode_READY(op) (0) #else #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) #endif #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) #define __Pyx_PyUnicode_KIND(u) ((int)PyUnicode_KIND(u)) #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, (Py_UCS4) ch) #if PY_VERSION_HEX >= 0x030C0000 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) #else #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length)) #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) #endif #endif #endif #if CYTHON_COMPILING_IN_PYPY #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) #else #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) #endif #if CYTHON_COMPILING_IN_PYPY #if !defined(PyUnicode_DecodeUnicodeEscape) #define PyUnicode_DecodeUnicodeEscape(s, size, errors) PyUnicode_Decode(s, size, "unicode_escape", errors) #endif #if !defined(PyUnicode_Contains) #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) #endif #if !defined(PyByteArray_Check) #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) #endif #if !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #endif #endif #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 #define __Pyx_PySequence_ListKeepNew(obj)\ (likely(PyList_CheckExact(obj) && PyUnstable_Object_IsUniquelyReferenced(obj)) ? __Pyx_NewRef(obj) : PySequence_List(obj)) #elif CYTHON_COMPILING_IN_CPYTHON #define __Pyx_PySequence_ListKeepNew(obj)\ (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj)) #else #define __Pyx_PySequence_ListKeepNew(obj) PySequence_List(obj) #endif #ifndef PySet_CheckExact #define PySet_CheckExact(obj) __Pyx_IS_TYPE(obj, &PySet_Type) #endif #if PY_VERSION_HEX >= 0x030900A4 #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) #else #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) #endif enum __Pyx_ReferenceSharing { __Pyx_ReferenceSharing_DefinitelyUnique, // We created it so we know it's unshared - no need to check __Pyx_ReferenceSharing_OwnStrongReference, __Pyx_ReferenceSharing_FunctionArgument, __Pyx_ReferenceSharing_SharedReference, // Never trust it to be unshared because it's a global or similar }; #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX >= 0x030E0000 #define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing)\ (sharing == __Pyx_ReferenceSharing_DefinitelyUnique ? 1 :\ (sharing == __Pyx_ReferenceSharing_FunctionArgument ? PyUnstable_Object_IsUniqueReferencedTemporary(o) :\ (sharing == __Pyx_ReferenceSharing_OwnStrongReference ? PyUnstable_Object_IsUniquelyReferenced(o) : 0))) #elif (CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING) || CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)sharing), Py_REFCNT(o) == 1) #else #define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)o), ((void)sharing), 0) #endif #if CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000 #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i) #elif CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS #define __Pyx_PyList_GetItemRef(o, i) (likely((i) >= 0) ? PySequence_GetItem(o, i) : (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) #else #define __Pyx_PyList_GetItemRef(o, i) PySequence_ITEM(o, i) #endif #elif CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000 #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i) #else #define __Pyx_PyList_GetItemRef(o, i) __Pyx_XNewRef(PyList_GetItem(o, i)) #endif #else #define __Pyx_PyList_GetItemRef(o, i) __Pyx_NewRef(PyList_GET_ITEM(o, i)) #endif #if CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS && !CYTHON_COMPILING_IN_LIMITED_API && CYTHON_ASSUME_SAFE_MACROS #define __Pyx_PyList_GetItemRefFast(o, i, unsafe_shared) (__Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared) ?\ __Pyx_NewRef(PyList_GET_ITEM(o, i)) : __Pyx_PyList_GetItemRef(o, i)) #else #define __Pyx_PyList_GetItemRefFast(o, i, unsafe_shared) __Pyx_PyList_GetItemRef(o, i) #endif #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000 #define __Pyx_PyDict_GetItemRef(dict, key, result) PyDict_GetItemRef(dict, key, result) #elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) { *result = PyObject_GetItem(dict, key); if (*result == NULL) { if (PyErr_ExceptionMatches(PyExc_KeyError)) { PyErr_Clear(); return 0; } return -1; } return 1; } #else static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) { *result = PyDict_GetItemWithError(dict, key); if (*result == NULL) { return PyErr_Occurred() ? -1 : 0; } Py_INCREF(*result); return 1; } #endif #if defined(CYTHON_DEBUG_VISIT_CONST) && CYTHON_DEBUG_VISIT_CONST #define __Pyx_VISIT_CONST(obj) Py_VISIT(obj) #else #define __Pyx_VISIT_CONST(obj) #endif #if CYTHON_ASSUME_SAFE_MACROS #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i) #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0)) #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GET_ITEM(o, i) #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0)) #define __Pyx_PyList_GET_ITEM(o, i) PyList_GET_ITEM(o, i) #else #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i) #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v) #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GetItem(o, i) #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v) #define __Pyx_PyList_GET_ITEM(o, i) PyList_GetItem(o, i) #endif #if CYTHON_ASSUME_SAFE_SIZE #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o) #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o) #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o) #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o) #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o) #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GET_LENGTH(o) #else #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o) #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o) #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o) #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o) #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o) #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GetLength(o) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_InternFromString) #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) #endif #define __Pyx_PyLong_FromHash_t PyLong_FromSsize_t #define __Pyx_PyLong_AsHash_t __Pyx_PyIndex_AsSsize_t #if __PYX_LIMITED_VERSION_HEX >= 0x030A0000 #define __Pyx_PySendResult PySendResult #else typedef enum { PYGEN_RETURN = 0, PYGEN_ERROR = -1, PYGEN_NEXT = 1, } __Pyx_PySendResult; #endif #if CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX < 0x030A00A3 typedef __Pyx_PySendResult (*__Pyx_pyiter_sendfunc)(PyObject *iter, PyObject *value, PyObject **result); #else #define __Pyx_pyiter_sendfunc sendfunc #endif #if !CYTHON_USE_AM_SEND #define __PYX_HAS_PY_AM_SEND 0 #elif __PYX_LIMITED_VERSION_HEX >= 0x030A0000 #define __PYX_HAS_PY_AM_SEND 1 #else #define __PYX_HAS_PY_AM_SEND 2 // our own backported implementation #endif #if __PYX_HAS_PY_AM_SEND < 2 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods #else typedef struct { unaryfunc am_await; unaryfunc am_aiter; unaryfunc am_anext; __Pyx_pyiter_sendfunc am_send; } __Pyx_PyAsyncMethodsStruct; #define __Pyx_SlotTpAsAsync(s) ((PyAsyncMethods*)(s)) #endif #if CYTHON_USE_AM_SEND && PY_VERSION_HEX < 0x030A00F0 #define __Pyx_TPFLAGS_HAVE_AM_SEND (1UL << 21) #else #define __Pyx_TPFLAGS_HAVE_AM_SEND (0) #endif #if PY_VERSION_HEX >= 0x03090000 #define __Pyx_PyInterpreterState_Get() PyInterpreterState_Get() #else #define __Pyx_PyInterpreterState_Get() PyThreadState_Get()->interp #endif #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030A0000 #ifdef __cplusplus extern "C" #endif PyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize); #endif #if CYTHON_COMPILING_IN_LIMITED_API static int __Pyx_init_co_variable(PyObject *inspect, const char* name, int *write_to) { int value; PyObject *py_value = PyObject_GetAttrString(inspect, name); if (!py_value) return 0; value = (int) PyLong_AsLong(py_value); Py_DECREF(py_value); *write_to = value; return value != -1 || !PyErr_Occurred(); } static int __Pyx_init_co_variables(void) { PyObject *inspect; int result; inspect = PyImport_ImportModule("inspect"); result = #if !defined(CO_OPTIMIZED) __Pyx_init_co_variable(inspect, "CO_OPTIMIZED", &CO_OPTIMIZED) && #endif #if !defined(CO_NEWLOCALS) __Pyx_init_co_variable(inspect, "CO_NEWLOCALS", &CO_NEWLOCALS) && #endif #if !defined(CO_VARARGS) __Pyx_init_co_variable(inspect, "CO_VARARGS", &CO_VARARGS) && #endif #if !defined(CO_VARKEYWORDS) __Pyx_init_co_variable(inspect, "CO_VARKEYWORDS", &CO_VARKEYWORDS) && #endif #if !defined(CO_ASYNC_GENERATOR) __Pyx_init_co_variable(inspect, "CO_ASYNC_GENERATOR", &CO_ASYNC_GENERATOR) && #endif #if !defined(CO_GENERATOR) __Pyx_init_co_variable(inspect, "CO_GENERATOR", &CO_GENERATOR) && #endif #if !defined(CO_COROUTINE) __Pyx_init_co_variable(inspect, "CO_COROUTINE", &CO_COROUTINE) && #endif 1; Py_DECREF(inspect); return result ? 0 : -1; } #else static int __Pyx_init_co_variables(void) { return 0; // It's a limited API-only feature } #endif /* MathInitCode */ #if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS) #ifndef _USE_MATH_DEFINES #define _USE_MATH_DEFINES #endif #endif #include #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) #define __Pyx_truncl trunc #else #define __Pyx_truncl truncl #endif #ifndef CYTHON_CLINE_IN_TRACEBACK_RUNTIME #define CYTHON_CLINE_IN_TRACEBACK_RUNTIME 0 #endif #ifndef CYTHON_CLINE_IN_TRACEBACK #define CYTHON_CLINE_IN_TRACEBACK CYTHON_CLINE_IN_TRACEBACK_RUNTIME #endif #if CYTHON_CLINE_IN_TRACEBACK #define __PYX_MARK_ERR_POS(f_index, lineno) { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; __pyx_clineno = __LINE__; (void) __pyx_clineno; } #else #define __PYX_MARK_ERR_POS(f_index, lineno) { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; (void) __pyx_clineno; } #endif #define __PYX_ERR(f_index, lineno, Ln_error) \ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } #ifdef CYTHON_EXTERN_C #undef __PYX_EXTERN_C #define __PYX_EXTERN_C CYTHON_EXTERN_C #elif defined(__PYX_EXTERN_C) #ifdef _MSC_VER #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.") #else #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead. #endif #else #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #define __PYX_HAVE__pyfuse3 #define __PYX_HAVE_API__pyfuse3 /* Early includes */ #include "pyfuse3.h" #include #include #include #include #include #include #include #include #include #include "xattr.h" #include "gettime.h" #include #include #include #include "macros.c" #include #include #include #ifdef _OPENMP #include #endif /* _OPENMP */ #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) #define CYTHON_WITHOUT_ASSERTIONS #endif #ifdef CYTHON_FREETHREADING_COMPATIBLE #if CYTHON_FREETHREADING_COMPATIBLE #define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_NOT_USED #else #define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED #endif #else #define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED #endif #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 #define __PYX_DEFAULT_STRING_ENCODING "" #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #define __Pyx_uchar_cast(c) ((unsigned char)c) #define __Pyx_long_cast(x) ((long)x) #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ (sizeof(type) < sizeof(Py_ssize_t)) ||\ (sizeof(type) > sizeof(Py_ssize_t) &&\ likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX) &&\ (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ v == (type)PY_SSIZE_T_MIN))) ||\ (sizeof(type) == sizeof(Py_ssize_t) &&\ (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX))) ) static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { return (size_t) i < (size_t) limit; } #if defined (__cplusplus) && __cplusplus >= 201103L #include #define __Pyx_sst_abs(value) std::abs(value) #elif SIZEOF_INT >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) abs(value) #elif SIZEOF_LONG >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) labs(value) #elif defined (_MSC_VER) #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define __Pyx_sst_abs(value) llabs(value) #elif defined (__GNUC__) #define __Pyx_sst_abs(value) __builtin_llabs(value) #else #define __Pyx_sst_abs(value) ((value<0) ? -value : value) #endif static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s); static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*); #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) #define __Pyx_PyBytes_FromString PyBytes_FromString #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); #if CYTHON_ASSUME_SAFE_MACROS #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyByteArray_AsString(s) PyByteArray_AS_STRING(s) #else #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AsString(s)) #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AsString(s)) #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AsString(s)) #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AsString(s)) #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AsString(s)) #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AsString(s)) #define __Pyx_PyByteArray_AsString(s) PyByteArray_AsString(s) #endif #define __Pyx_PyObject_AsWritableString(s) ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableSString(s) ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) #define __Pyx_PyUnicode_FromOrdinal(o) PyUnicode_FromOrdinal((int)o) #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode static CYTHON_INLINE PyObject *__Pyx_NewRef(PyObject *obj) { #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_NewRef) return Py_NewRef(obj); #else Py_INCREF(obj); return obj; #endif } static CYTHON_INLINE PyObject *__Pyx_XNewRef(PyObject *obj) { #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_XNewRef) return Py_XNewRef(obj); #else Py_XINCREF(obj); return obj; #endif } static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b); static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t); static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*); #if CYTHON_ASSUME_SAFE_MACROS #define __Pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AS_DOUBLE(x) #else #define __Pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) #define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AsDouble(x) #endif #define __Pyx_PyFloat_AsFloat(x) ((float) __Pyx_PyFloat_AsDouble(x)) #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) #if CYTHON_USE_PYLONG_INTERNALS #if PY_VERSION_HEX >= 0x030C00A7 #ifndef _PyLong_SIGN_MASK #define _PyLong_SIGN_MASK 3 #endif #ifndef _PyLong_NON_SIZE_BITS #define _PyLong_NON_SIZE_BITS 3 #endif #define __Pyx_PyLong_Sign(x) (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK) #define __Pyx_PyLong_IsNeg(x) ((__Pyx_PyLong_Sign(x) & 2) != 0) #define __Pyx_PyLong_IsNonNeg(x) (!__Pyx_PyLong_IsNeg(x)) #define __Pyx_PyLong_IsZero(x) (__Pyx_PyLong_Sign(x) & 1) #define __Pyx_PyLong_IsPos(x) (__Pyx_PyLong_Sign(x) == 0) #define __Pyx_PyLong_CompactValueUnsigned(x) (__Pyx_PyLong_Digits(x)[0]) #define __Pyx_PyLong_DigitCount(x) ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS)) #define __Pyx_PyLong_SignedDigitCount(x)\ ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x)) #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue) #define __Pyx_PyLong_IsCompact(x) PyUnstable_Long_IsCompact((PyLongObject*) x) #define __Pyx_PyLong_CompactValue(x) PyUnstable_Long_CompactValue((PyLongObject*) x) #else #define __Pyx_PyLong_IsCompact(x) (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS)) #define __Pyx_PyLong_CompactValue(x) ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0]) #endif typedef Py_ssize_t __Pyx_compact_pylong; typedef size_t __Pyx_compact_upylong; #else #define __Pyx_PyLong_IsNeg(x) (Py_SIZE(x) < 0) #define __Pyx_PyLong_IsNonNeg(x) (Py_SIZE(x) >= 0) #define __Pyx_PyLong_IsZero(x) (Py_SIZE(x) == 0) #define __Pyx_PyLong_IsPos(x) (Py_SIZE(x) > 0) #define __Pyx_PyLong_CompactValueUnsigned(x) ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0]) #define __Pyx_PyLong_DigitCount(x) __Pyx_sst_abs(Py_SIZE(x)) #define __Pyx_PyLong_SignedDigitCount(x) Py_SIZE(x) #define __Pyx_PyLong_IsCompact(x) (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1) #define __Pyx_PyLong_CompactValue(x)\ ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0])) typedef sdigit __Pyx_compact_pylong; typedef digit __Pyx_compact_upylong; #endif #if PY_VERSION_HEX >= 0x030C00A5 #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->long_value.ob_digit) #else #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->ob_digit) #endif #endif #if __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) #elif __PYX_DEFAULT_STRING_ENCODING_IS_ASCII #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeASCII(c_str, size, NULL) #else #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) #endif /* Test for GCC > 2.95 */ #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else /* !__GNUC__ or GCC < 2.95 */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ */ /* PretendToInitialize */ #ifdef __cplusplus #if __cplusplus > 201103L #include #endif template static void __Pyx_pretend_to_initialize(T* ptr) { #if __cplusplus > 201103L if ((std::is_trivially_default_constructible::value)) #endif *ptr = T(); (void)ptr; } #else static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } #endif #if !CYTHON_USE_MODULE_STATE static PyObject *__pyx_m = NULL; #endif static int __pyx_lineno; static int __pyx_clineno = 0; static const char * const __pyx_cfilenm = __FILE__; static const char *__pyx_filename; /* #### Code section: filename_table ### */ static const char* const __pyx_f[] = { "src/pyfuse3/__init__.pyx", "src/pyfuse3/internal.pxi", "", "src/pyfuse3/handlers.pxi", "cpython/type.pxd", }; /* #### Code section: utility_code_proto_before_types ### */ /* Atomics.proto (used by UnpackUnboundCMethod) */ #include #ifndef CYTHON_ATOMICS #define CYTHON_ATOMICS 1 #endif #define __PYX_CYTHON_ATOMICS_ENABLED() CYTHON_ATOMICS #define __PYX_GET_CYTHON_COMPILING_IN_CPYTHON_FREETHREADING() CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #define __pyx_atomic_int_type int #define __pyx_nonatomic_int_type int #if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\ (__STDC_VERSION__ >= 201112L) &&\ !defined(__STDC_NO_ATOMICS__)) #include #elif CYTHON_ATOMICS && (defined(__cplusplus) && (\ (__cplusplus >= 201103L) ||\ (defined(_MSC_VER) && _MSC_VER >= 1700))) #include #endif #if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\ (__STDC_VERSION__ >= 201112L) &&\ !defined(__STDC_NO_ATOMICS__) &&\ ATOMIC_INT_LOCK_FREE == 2) #undef __pyx_atomic_int_type #define __pyx_atomic_int_type atomic_int #define __pyx_atomic_ptr_type atomic_uintptr_t #define __pyx_nonatomic_ptr_type uintptr_t #define __pyx_atomic_incr_relaxed(value) atomic_fetch_add_explicit(value, 1, memory_order_relaxed) #define __pyx_atomic_incr_acq_rel(value) atomic_fetch_add_explicit(value, 1, memory_order_acq_rel) #define __pyx_atomic_decr_acq_rel(value) atomic_fetch_sub_explicit(value, 1, memory_order_acq_rel) #define __pyx_atomic_sub(value, arg) atomic_fetch_sub(value, arg) #define __pyx_atomic_int_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired) #define __pyx_atomic_load(value) atomic_load(value) #define __pyx_atomic_store(value, new_value) atomic_store(value, new_value) #define __pyx_atomic_pointer_load_relaxed(value) atomic_load_explicit(value, memory_order_relaxed) #define __pyx_atomic_pointer_load_acquire(value) atomic_load_explicit(value, memory_order_acquire) #define __pyx_atomic_pointer_exchange(value, new_value) atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value) #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired) #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER) #pragma message ("Using standard C atomics") #elif defined(__PYX_DEBUG_ATOMICS) #warning "Using standard C atomics" #endif #elif CYTHON_ATOMICS && (defined(__cplusplus) && (\ (__cplusplus >= 201103L) ||\ \ (defined(_MSC_VER) && _MSC_VER >= 1700)) &&\ ATOMIC_INT_LOCK_FREE == 2) #undef __pyx_atomic_int_type #define __pyx_atomic_int_type std::atomic_int #define __pyx_atomic_ptr_type std::atomic_uintptr_t #define __pyx_nonatomic_ptr_type uintptr_t #define __pyx_atomic_incr_relaxed(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_relaxed) #define __pyx_atomic_incr_acq_rel(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_acq_rel) #define __pyx_atomic_decr_acq_rel(value) std::atomic_fetch_sub_explicit(value, 1, std::memory_order_acq_rel) #define __pyx_atomic_sub(value, arg) std::atomic_fetch_sub(value, arg) #define __pyx_atomic_int_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired) #define __pyx_atomic_load(value) std::atomic_load(value) #define __pyx_atomic_store(value, new_value) std::atomic_store(value, new_value) #define __pyx_atomic_pointer_load_relaxed(value) std::atomic_load_explicit(value, std::memory_order_relaxed) #define __pyx_atomic_pointer_load_acquire(value) std::atomic_load_explicit(value, std::memory_order_acquire) #define __pyx_atomic_pointer_exchange(value, new_value) std::atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value) #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired) #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER) #pragma message ("Using standard C++ atomics") #elif defined(__PYX_DEBUG_ATOMICS) #warning "Using standard C++ atomics" #endif #elif CYTHON_ATOMICS && (__GNUC__ >= 5 || (__GNUC__ == 4 &&\ (__GNUC_MINOR__ > 1 ||\ (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 2)))) #define __pyx_atomic_ptr_type void* #define __pyx_nonatomic_ptr_type void* #define __pyx_atomic_incr_relaxed(value) __sync_fetch_and_add(value, 1) #define __pyx_atomic_incr_acq_rel(value) __sync_fetch_and_add(value, 1) #define __pyx_atomic_decr_acq_rel(value) __sync_fetch_and_sub(value, 1) #define __pyx_atomic_sub(value, arg) __sync_fetch_and_sub(value, arg) static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) { __pyx_nonatomic_int_type old = __sync_val_compare_and_swap(value, *expected, desired); int result = old == *expected; *expected = old; return result; } #define __pyx_atomic_load(value) __sync_fetch_and_add(value, 0) #define __pyx_atomic_store(value, new_value) __sync_lock_test_and_set(value, new_value) #define __pyx_atomic_pointer_load_relaxed(value) __sync_fetch_and_add(value, 0) #define __pyx_atomic_pointer_load_acquire(value) __sync_fetch_and_add(value, 0) #define __pyx_atomic_pointer_exchange(value, new_value) __sync_lock_test_and_set(value, (__pyx_atomic_ptr_type)new_value) static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) { __pyx_nonatomic_ptr_type old = __sync_val_compare_and_swap(value, *expected, desired); int result = old == *expected; *expected = old; return result; } #ifdef __PYX_DEBUG_ATOMICS #warning "Using GNU atomics" #endif #elif CYTHON_ATOMICS && defined(_MSC_VER) #include #undef __pyx_atomic_int_type #define __pyx_atomic_int_type long #define __pyx_atomic_ptr_type void* #undef __pyx_nonatomic_int_type #define __pyx_nonatomic_int_type long #define __pyx_nonatomic_ptr_type void* #pragma intrinsic (_InterlockedExchangeAdd, _InterlockedExchange, _InterlockedCompareExchange, _InterlockedCompareExchangePointer, _InterlockedExchangePointer) #define __pyx_atomic_incr_relaxed(value) _InterlockedExchangeAdd(value, 1) #define __pyx_atomic_incr_acq_rel(value) _InterlockedExchangeAdd(value, 1) #define __pyx_atomic_decr_acq_rel(value) _InterlockedExchangeAdd(value, -1) #define __pyx_atomic_sub(value, arg) _InterlockedExchangeAdd(value, -arg) static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) { __pyx_nonatomic_int_type old = _InterlockedCompareExchange(value, desired, *expected); int result = old == *expected; *expected = old; return result; } #define __pyx_atomic_load(value) _InterlockedExchangeAdd(value, 0) #define __pyx_atomic_store(value, new_value) _InterlockedExchange(value, new_value) #define __pyx_atomic_pointer_load_relaxed(value) *(void * volatile *)value #define __pyx_atomic_pointer_load_acquire(value) _InterlockedCompareExchangePointer(value, 0, 0) #define __pyx_atomic_pointer_exchange(value, new_value) _InterlockedExchangePointer(value, (__pyx_atomic_ptr_type)new_value) static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) { __pyx_atomic_ptr_type old = _InterlockedCompareExchangePointer(value, desired, *expected); int result = old == *expected; *expected = old; return result; } #ifdef __PYX_DEBUG_ATOMICS #pragma message ("Using MSVC atomics") #endif #else #undef CYTHON_ATOMICS #define CYTHON_ATOMICS 0 #ifdef __PYX_DEBUG_ATOMICS #warning "Not using atomics" #endif #endif /* CriticalSectionsDefinition.proto (used by CriticalSections) */ #if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #define __Pyx_PyCriticalSection void* #define __Pyx_PyCriticalSection2 void* #define __Pyx_PyCriticalSection_End(cs) #define __Pyx_PyCriticalSection2_End(cs) #else #define __Pyx_PyCriticalSection PyCriticalSection #define __Pyx_PyCriticalSection2 PyCriticalSection2 #define __Pyx_PyCriticalSection_End PyCriticalSection_End #define __Pyx_PyCriticalSection2_End PyCriticalSection2_End #endif /* CriticalSections.proto (used by ParseKeywordsImpl) */ #if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #define __Pyx_PyCriticalSection_Begin(cs, arg) (void)(cs) #define __Pyx_PyCriticalSection2_Begin(cs, arg1, arg2) (void)(cs) #else #define __Pyx_PyCriticalSection_Begin PyCriticalSection_Begin #define __Pyx_PyCriticalSection2_Begin PyCriticalSection2_Begin #endif #if PY_VERSION_HEX < 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_BEGIN_CRITICAL_SECTION(o) { #define __Pyx_END_CRITICAL_SECTION() } #else #define __Pyx_BEGIN_CRITICAL_SECTION Py_BEGIN_CRITICAL_SECTION #define __Pyx_END_CRITICAL_SECTION Py_END_CRITICAL_SECTION #endif /* IncludeStructmemberH.proto (used by FixUpExtensionType) */ #include /* NoFastGil.proto */ #define __Pyx_PyGILState_Ensure PyGILState_Ensure #define __Pyx_PyGILState_Release PyGILState_Release #define __Pyx_FastGIL_Remember() #define __Pyx_FastGIL_Forget() #define __Pyx_FastGilFuncInit() /* ForceInitThreads.proto */ #ifndef __PYX_FORCE_INIT_THREADS #define __PYX_FORCE_INIT_THREADS 0 #endif /* #### Code section: numeric_typedefs ### */ /* #### Code section: complex_type_declarations ### */ /* #### Code section: type_declarations ### */ /*--- Type declarations ---*/ struct __pyx_obj_7pyfuse3__Container; struct __pyx_obj_7pyfuse3_ReaddirToken; struct __pyx_obj_7pyfuse3__WorkerData; struct __pyx_obj_7pyfuse3_RequestContext; struct __pyx_obj_7pyfuse3_SetattrFields; struct __pyx_obj_7pyfuse3_EntryAttributes; struct __pyx_obj_7pyfuse3_FileInfo; struct __pyx_obj_7pyfuse3_StatvfsData; struct __pyx_obj_7pyfuse3_FUSEError; struct __pyx_obj_7pyfuse3_PollHandle; struct __pyx_defaults; struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async; struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable; struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop; struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main; /* "src/pyfuse3/handlers.pxi":13 * ''' * * @cython.freelist(60) # <<<<<<<<<<<<<< * cdef class _Container: * """For internal use by pyfuse3 only.""" */ struct __pyx_obj_7pyfuse3__Container { PyObject_HEAD dev_t rdev; struct fuse_file_info fi; fuse_ino_t ino; fuse_ino_t parent; fuse_req_t req; int flags; mode_t mode; off_t off; size_t size; struct stat stat; uint64_t fh; }; /* "src/pyfuse3/handlers.pxi":561 * * * @cython.freelist(10) # <<<<<<<<<<<<<< * cdef class ReaddirToken: * cdef fuse_req_t req */ struct __pyx_obj_7pyfuse3_ReaddirToken { PyObject_HEAD fuse_req_t req; char *buf_start; char *buf; size_t size; }; /* "src/pyfuse3/internal.pxi":182 * return mem * * cdef class _WorkerData: # <<<<<<<<<<<<<< * """For internal use by pyfuse3 only.""" * */ struct __pyx_obj_7pyfuse3__WorkerData { PyObject_HEAD struct __pyx_vtabstruct_7pyfuse3__WorkerData *__pyx_vtab; int task_count; int task_serial; PyObject *read_lock; int active_readers; }; /* "pyfuse3/__init__.pyx":124 * ###################### * * @cython.freelist(10) # <<<<<<<<<<<<<< * cdef class RequestContext: * ''' */ struct __pyx_obj_7pyfuse3_RequestContext { PyObject_HEAD uid_t uid; pid_t pid; gid_t gid; mode_t umask; }; /* "pyfuse3/__init__.pyx":141 * * * @cython.freelist(10) # <<<<<<<<<<<<<< * cdef class SetattrFields: * ''' */ struct __pyx_obj_7pyfuse3_SetattrFields { PyObject_HEAD PyObject *update_atime; PyObject *update_mtime; PyObject *update_ctime; PyObject *update_mode; PyObject *update_uid; PyObject *update_gid; PyObject *update_size; }; /* "pyfuse3/__init__.pyx":169 * * * @cython.freelist(30) # <<<<<<<<<<<<<< * cdef class EntryAttributes: * ''' */ struct __pyx_obj_7pyfuse3_EntryAttributes { PyObject_HEAD struct fuse_entry_param fuse_param; struct stat *attr; }; /* "pyfuse3/__init__.pyx":349 * * * @cython.freelist(10) # <<<<<<<<<<<<<< * cdef class FileInfo: * ''' */ struct __pyx_obj_7pyfuse3_FileInfo { PyObject_HEAD struct __pyx_vtabstruct_7pyfuse3_FileInfo *__pyx_vtab; uint64_t fh; int direct_io; int keep_cache; int nonseekable; }; /* "pyfuse3/__init__.pyx":390 * * * @cython.freelist(1) # <<<<<<<<<<<<<< * cdef class StatvfsData: * ''' */ struct __pyx_obj_7pyfuse3_StatvfsData { PyObject_HEAD struct statvfs stat; }; /* "pyfuse3/__init__.pyx":482 * # As of Cython 0.28.1, @cython.freelist cannot be used for * # classes that derive from a builtin type. * cdef class FUSEError(Exception): # <<<<<<<<<<<<<< * ''' * This exception may be raised by request handlers to indicate that */ struct __pyx_obj_7pyfuse3_FUSEError { PyBaseExceptionObject __pyx_base; int errno_; }; /* "pyfuse3/__init__.pyx":507 * * * @cython.freelist(10) # <<<<<<<<<<<<<< * cdef class PollHandle: * ''' */ struct __pyx_obj_7pyfuse3_PollHandle { PyObject_HEAD struct __pyx_vtabstruct_7pyfuse3_PollHandle *__pyx_vtab; struct fuse_pollhandle *_ph; }; /* "pyfuse3/__init__.pyx":780 * default_options = frozenset(('default_permissions',)) * * def init(ops, mountpoint, options=default_options): # <<<<<<<<<<<<<< * '''Initialize and mount FUSE file system * */ struct __pyx_defaults { PyObject_HEAD PyObject *arg0; }; /* "src/pyfuse3/handlers.pxi":59 * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) * * async def fuse_lookup_async (_Container c, name): # <<<<<<<<<<<<<< * cdef EntryAttributes entry * cdef int ret */ struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":98 * save_retval(fuse_getattr_async(c)) * * async def fuse_getattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":127 * save_retval(fuse_setattr_async(c, fh)) * * async def fuse_setattr_async (_Container c, fh): # <<<<<<<<<<<<<< * cdef int ret * cdef timespec now */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async { PyObject_HEAD struct stat *__pyx_v_attr; struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; PyObject *__pyx_v_fh; struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_fields; struct timespec __pyx_v_now; int __pyx_v_ret; int __pyx_v_to_set; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":184 * save_retval(fuse_readlink_async(c)) * * async def fuse_readlink_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef char* name */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; char *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_v_target; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":209 * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) * * async def fuse_mknod_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":234 * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) * * async def fuse_mkdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":260 * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) * * async def fuse_unlink_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":281 * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) * * async def fuse_rmdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":304 * c, PyBytes_FromString(name), PyBytes_FromString(link))) * * async def fuse_symlink_async (_Container c, name, link): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; PyObject *__pyx_v_link; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":332 * * * async def fuse_rename_async (_Container c, name, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef unsigned flags = c.flags */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; unsigned int __pyx_v_flags; PyObject *__pyx_v_name; PyObject *__pyx_v_newname; fuse_ino_t __pyx_v_newparent; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":357 * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) * * async def fuse_link_async (_Container c, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; PyObject *__pyx_v_newname; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":381 * save_retval(fuse_open_async(c)) * * async def fuse_open_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef FileInfo fi */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_fi; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":408 * save_retval(fuse_read_async(c)) * * async def fuse_read_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef Py_buffer pybuf */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async { PyObject_HEAD PyObject *__pyx_v_buf; struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; Py_buffer __pyx_v_pybuf; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":438 * save_retval(fuse_write_async(c, pbuf)) * * async def fuse_write_async (_Container c, pbuf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; size_t __pyx_v_len_; PyObject *__pyx_v_pbuf; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":462 * save_retval(fuse_write_buf_async(c, buf)) * * async def fuse_write_buf_async (_Container c, buf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async { PyObject_HEAD PyObject *__pyx_v_buf; struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; size_t __pyx_v_len_; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":483 * save_retval(fuse_flush_async(c)) * * async def fuse_flush_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":503 * save_retval(fuse_release_async(c)) * * async def fuse_release_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":525 * save_retval(fuse_fsync_async(c)) * * async def fuse_fsync_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":546 * save_retval(fuse_opendir_async(c)) * * async def fuse_opendir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":578 * save_retval(fuse_readdirplus_async(c)) * * async def fuse_readdirplus_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ReaddirToken token = ReaddirToken() */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; int __pyx_v_ret; struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_token; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":607 * save_retval(fuse_releasedir_async(c)) * * async def fuse_releasedir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":630 * save_retval(fuse_fsyncdir_async(c)) * * async def fuse_fsyncdir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_e; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":650 * save_retval(fuse_statfs_async(c)) * * async def fuse_statfs_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef StatvfsData stats */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; int __pyx_v_ret; struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_stats; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":681 * save_retval(fuse_setxattr_async(c, name, value)) * * async def fuse_setxattr_async (_Container c, name, value): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_v_value; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; PyObject *__pyx_t_3; PyObject *__pyx_t_4; PyObject *__pyx_t_5; }; /* "src/pyfuse3/handlers.pxi":726 * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) * * async def fuse_getxattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async { PyObject_HEAD PyObject *__pyx_v_buf; struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; char *__pyx_v_cbuf; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; size_t __pyx_v_len_; Py_ssize_t __pyx_v_len_s; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":759 * save_retval(fuse_listxattr_async(c)) * * async def fuse_listxattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async { PyObject_HEAD PyObject *__pyx_v_buf; struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; char *__pyx_v_cbuf; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; size_t __pyx_v_len_; Py_ssize_t __pyx_v_len_s; PyObject *__pyx_v_res; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":797 * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) * * async def fuse_removexattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":819 * save_retval(fuse_access_async(c)) * * async def fuse_access_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef int mask = c.flags */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async { PyObject_HEAD PyObject *__pyx_v_allowed; struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; int __pyx_v_mask; int __pyx_v_ret; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":855 * save_retval(fuse_poll_async(c, py_ph)) * * async def fuse_poll_async (_Container c, object py_ph): # <<<<<<<<<<<<<< * cdef int ret * cdef unsigned revents */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; PyObject *__pyx_v_py_ph; PyObject *__pyx_v_result; int __pyx_v_ret; unsigned int __pyx_v_revents; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/handlers.pxi":881 * save_retval(fuse_create_async(c, PyBytes_FromString(name))) * * async def fuse_create_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async { PyObject_HEAD struct __pyx_obj_7pyfuse3__Container *__pyx_v_c; PyObject *__pyx_v_ctx; PyObject *__pyx_v_e; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_entry; struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_fi; PyObject *__pyx_v_name; int __pyx_v_ret; PyObject *__pyx_v_tmp; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; }; /* "src/pyfuse3/internal.pxi":202 * cdef _WorkerData worker_data * * async def _wait_fuse_readable(): # <<<<<<<<<<<<<< * '''Wait for FUSE fd to become readable * */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable { PyObject_HEAD PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; PyObject *__pyx_t_3; PyObject *__pyx_t_4; PyObject *__pyx_t_5; PyObject *__pyx_t_6; PyObject *__pyx_t_7; PyObject *__pyx_t_8; PyObject *__pyx_t_9; PyObject *__pyx_t_10; }; /* "src/pyfuse3/internal.pxi":233 * return True * * @async_wrapper # <<<<<<<<<<<<<< * async def _session_loop(nursery, int min_tasks, int max_tasks): * cdef int res */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop { PyObject_HEAD struct fuse_buf __pyx_v_buf; int __pyx_v_max_tasks; int __pyx_v_min_tasks; PyObject *__pyx_v_name; PyObject *__pyx_v_nursery; int __pyx_v_res; }; /* "pyfuse3/__init__.pyx":836 * * * @async_wrapper # <<<<<<<<<<<<<< * async def main(int min_tasks=1, int max_tasks=99): * '''Run FUSE main loop''' */ struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main { PyObject_HEAD int __pyx_v_max_tasks; int __pyx_v_min_tasks; PyObject *__pyx_v_nursery; PyObject *__pyx_t_0; PyObject *__pyx_t_1; PyObject *__pyx_t_2; PyObject *__pyx_t_3; PyObject *__pyx_t_4; PyObject *__pyx_t_5; PyObject *__pyx_t_6; PyObject *__pyx_t_7; }; /* "src/pyfuse3/internal.pxi":182 * return mem * * cdef class _WorkerData: # <<<<<<<<<<<<<< * """For internal use by pyfuse3 only.""" * */ struct __pyx_vtabstruct_7pyfuse3__WorkerData { PyObject *(*get_name)(struct __pyx_obj_7pyfuse3__WorkerData *); }; static struct __pyx_vtabstruct_7pyfuse3__WorkerData *__pyx_vtabptr_7pyfuse3__WorkerData; /* "pyfuse3/__init__.pyx":349 * * * @cython.freelist(10) # <<<<<<<<<<<<<< * cdef class FileInfo: * ''' */ struct __pyx_vtabstruct_7pyfuse3_FileInfo { PyObject *(*_copy_to_fuse)(struct __pyx_obj_7pyfuse3_FileInfo *, struct fuse_file_info *); }; static struct __pyx_vtabstruct_7pyfuse3_FileInfo *__pyx_vtabptr_7pyfuse3_FileInfo; /* "pyfuse3/__init__.pyx":507 * * * @cython.freelist(10) # <<<<<<<<<<<<<< * cdef class PollHandle: * ''' */ struct __pyx_vtabstruct_7pyfuse3_PollHandle { struct __pyx_obj_7pyfuse3_PollHandle *(*from_ptr)(struct fuse_pollhandle *); }; static struct __pyx_vtabstruct_7pyfuse3_PollHandle *__pyx_vtabptr_7pyfuse3_PollHandle; /* #### Code section: utility_code_proto ### */ /* --- Runtime support code (head) --- */ /* Refnanny.proto */ #ifndef CYTHON_REFNANNY #define CYTHON_REFNANNY 0 #endif #if CYTHON_REFNANNY typedef struct { void (*INCREF)(void*, PyObject*, Py_ssize_t); void (*DECREF)(void*, PyObject*, Py_ssize_t); void (*GOTREF)(void*, PyObject*, Py_ssize_t); void (*GIVEREF)(void*, PyObject*, Py_ssize_t); void* (*SetupContext)(const char*, Py_ssize_t, const char*); void (*FinishContext)(void**); } __Pyx_RefNannyAPIStruct; static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; #define __Pyx_RefNannySetupContext(name, acquire_gil)\ if (acquire_gil) {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\ PyGILState_Release(__pyx_gilstate_save);\ } else {\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\ } #define __Pyx_RefNannyFinishContextNogil() {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __Pyx_RefNannyFinishContext();\ PyGILState_Release(__pyx_gilstate_save);\ } #define __Pyx_RefNannyFinishContextNogil() {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __Pyx_RefNannyFinishContext();\ PyGILState_Release(__pyx_gilstate_save);\ } #define __Pyx_RefNannyFinishContext()\ __Pyx_RefNanny->FinishContext(&__pyx_refnanny) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) #define __Pyx_XINCREF(r) do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0) #define __Pyx_XDECREF(r) do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0) #define __Pyx_XGOTREF(r) do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0) #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0) #else #define __Pyx_RefNannyDeclarations #define __Pyx_RefNannySetupContext(name, acquire_gil) #define __Pyx_RefNannyFinishContextNogil() #define __Pyx_RefNannyFinishContext() #define __Pyx_INCREF(r) Py_INCREF(r) #define __Pyx_DECREF(r) Py_DECREF(r) #define __Pyx_GOTREF(r) #define __Pyx_GIVEREF(r) #define __Pyx_XINCREF(r) Py_XINCREF(r) #define __Pyx_XDECREF(r) Py_XDECREF(r) #define __Pyx_XGOTREF(r) #define __Pyx_XGIVEREF(r) #endif #define __Pyx_Py_XDECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; Py_XDECREF(tmp);\ } while (0) #define __Pyx_XDECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_XDECREF(tmp);\ } while (0) #define __Pyx_DECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_DECREF(tmp);\ } while (0) #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) /* PyErrExceptionMatches.proto (used by PyObjectGetAttrStrNoError) */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); #else #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) #endif /* PyThreadStateGet.proto (used by PyErrFetchRestore) */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; #if PY_VERSION_HEX >= 0x030C00A6 #define __Pyx_PyErr_Occurred() (__pyx_tstate->current_exception != NULL) #define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL) #else #define __Pyx_PyErr_Occurred() (__pyx_tstate->curexc_type != NULL) #define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->curexc_type) #endif #else #define __Pyx_PyThreadState_declare #define __Pyx_PyThreadState_assign #define __Pyx_PyErr_Occurred() (PyErr_Occurred() != NULL) #define __Pyx_PyErr_CurrentExceptionType() PyErr_Occurred() #endif /* PyErrFetchRestore.proto (used by PyObjectGetAttrStrNoError) */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6 #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) #else #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #endif #else #define __Pyx_PyErr_Clear() PyErr_Clear() #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) #endif /* PyObjectGetAttrStr.proto (used by PyObjectGetAttrStrNoError) */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif /* PyObjectGetAttrStrNoError.proto (used by GetBuiltinName) */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); /* GetBuiltinName.proto */ static PyObject *__Pyx_GetBuiltinName(PyObject *name); /* TupleAndListFromArray.proto (used by fastcall) */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n); #endif #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_METH_FASTCALL static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n); #endif /* IncludeStringH.proto (used by BytesEquals) */ #include /* BytesEquals.proto (used by UnicodeEquals) */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /* UnicodeEquals.proto (used by fastcall) */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /* fastcall.proto */ #if CYTHON_AVOID_BORROWED_REFS #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_PySequence_ITEM(args, i) #elif CYTHON_ASSUME_SAFE_MACROS #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_NewRef(__Pyx_PyTuple_GET_ITEM(args, i)) #else #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_XNewRef(PyTuple_GetItem(args, i)) #endif #define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds) #define __Pyx_KwValues_VARARGS(args, nargs) NULL #define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s) #define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw) #if CYTHON_METH_FASTCALL #define __Pyx_ArgRef_FASTCALL(args, i) __Pyx_NewRef(args[i]) #define __Pyx_NumKwargs_FASTCALL(kwds) __Pyx_PyTuple_GET_SIZE(kwds) #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs)) static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues); #else #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw) #endif #else #define __Pyx_ArgRef_FASTCALL __Pyx_ArgRef_VARARGS #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS #endif #define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop) #if CYTHON_METH_FASTCALL || (CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) #define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(args + start, stop - start) #else #define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop) #endif /* RaiseArgTupleInvalid.proto */ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /* py_dict_items.proto (used by OwnedDictNext) */ static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d); /* CallCFunction.proto (used by CallUnboundCMethod0) */ #define __Pyx_CallCFunction(cfunc, self, args)\ ((PyCFunction)(void(*)(void))(cfunc)->func)(self, args) #define __Pyx_CallCFunctionWithKeywords(cfunc, self, args, kwargs)\ ((PyCFunctionWithKeywords)(void(*)(void))(cfunc)->func)(self, args, kwargs) #define __Pyx_CallCFunctionFast(cfunc, self, args, nargs)\ ((__Pyx_PyCFunctionFast)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs) #define __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, nargs, kwnames)\ ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs, kwnames) /* PyObjectCall.proto (used by PyObjectFastCall) */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); #else #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) #endif /* PyObjectCallMethO.proto (used by PyObjectFastCall) */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); #endif /* PyObjectFastCall.proto (used by PyObjectCallOneArg) */ #define __Pyx_PyObject_FastCall(func, args, nargs) __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL) static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs); /* PyObjectCallOneArg.proto (used by CallUnboundCMethod0) */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); /* UnpackUnboundCMethod.proto (used by CallUnboundCMethod0) */ typedef struct { PyObject *type; PyObject **method_name; #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && CYTHON_ATOMICS __pyx_atomic_int_type initialized; #endif PyCFunction func; PyObject *method; int flag; } __Pyx_CachedCFunction; #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING static CYTHON_INLINE int __Pyx_CachedCFunction_GetAndSetInitializing(__Pyx_CachedCFunction *cfunc) { #if !CYTHON_ATOMICS return 1; #else __pyx_nonatomic_int_type expected = 0; if (__pyx_atomic_int_cmp_exchange(&cfunc->initialized, &expected, 1)) { return 0; } return expected; #endif } static CYTHON_INLINE void __Pyx_CachedCFunction_SetFinishedInitializing(__Pyx_CachedCFunction *cfunc) { #if CYTHON_ATOMICS __pyx_atomic_store(&cfunc->initialized, 2); #endif } #else #define __Pyx_CachedCFunction_GetAndSetInitializing(cfunc) 2 #define __Pyx_CachedCFunction_SetFinishedInitializing(cfunc) #endif /* CallUnboundCMethod0.proto */ CYTHON_UNUSED static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self); #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self); #else #define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self) #endif /* py_dict_values.proto (used by OwnedDictNext) */ static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d); /* OwnedDictNext.proto (used by RejectKeywords) */ #if CYTHON_AVOID_BORROWED_REFS static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue); #else CYTHON_INLINE static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue); #endif /* RejectKeywords.export */ static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds); /* PyTypeError_Check.proto */ #define __Pyx_PyExc_TypeError_Check(obj) __Pyx_TypeCheck(obj, PyExc_TypeError) /* RaiseException.export */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /* RaiseDoubleKeywords.proto (used by ParseKeywordsImpl) */ static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /* ParseKeywordsImpl.export */ static int __Pyx_ParseKeywordsTuple( PyObject *kwds, PyObject * const *kwvalues, PyObject ** const argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, Py_ssize_t num_kwargs, const char* function_name, int ignore_unknown_kwargs ); static int __Pyx_ParseKeywordDictToDict( PyObject *kwds, PyObject ** const argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name ); static int __Pyx_ParseKeywordDict( PyObject *kwds, PyObject ** const argnames[], PyObject *values[], Py_ssize_t num_pos_args, Py_ssize_t num_kwargs, const char* function_name, int ignore_unknown_kwargs ); /* CallUnboundCMethod2.proto */ CYTHON_UNUSED static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2); #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2); #else #define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2) __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2) #endif /* ParseKeywords.proto */ static CYTHON_INLINE int __Pyx_ParseKeywords( PyObject *kwds, PyObject *const *kwvalues, PyObject ** const argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, Py_ssize_t num_kwargs, const char* function_name, int ignore_unknown_kwargs ); /* PyRuntimeError_Check.proto */ #define __Pyx_PyExc_RuntimeError_Check(obj) __Pyx_TypeCheck(obj, PyExc_RuntimeError) /* PyObjectFastCallMethod.proto */ #if CYTHON_VECTORCALL && PY_VERSION_HEX >= 0x03090000 #define __Pyx_PyObject_FastCallMethod(name, args, nargsf) PyObject_VectorcallMethod(name, args, nargsf, NULL) #else static PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf); #endif /* PyDictVersioning.proto (used by GetModuleGlobalName) */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ (version_var) = __PYX_GET_DICT_VERSION(dict);\ (cache_var) = (value); #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ (VAR) = __Pyx_XNewRef(__pyx_dict_cached_value);\ } else {\ (VAR) = __pyx_dict_cached_value = (LOOKUP);\ __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ }\ } static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); #else #define __PYX_GET_DICT_VERSION(dict) (0) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); #endif /* GetModuleGlobalName.proto */ #if CYTHON_USE_DICT_VERSIONS #define __Pyx_GetModuleGlobalName(var, name) do {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_mstate_global->__pyx_d))) ?\ (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } while(0) #define __Pyx_GetModuleGlobalNameUncached(var, name) do {\ PY_UINT64_T __pyx_dict_version;\ PyObject *__pyx_dict_cached_value;\ (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } while(0) static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); #else #define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) #define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); #endif /* ArgTypeTestFunc.export */ static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact); /* ArgTypeTest.proto */ #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\ ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\ __Pyx__ArgTypeTest(obj, type, name, exact)) /* dict_setdefault.proto (used by FetchCommonType) */ static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value); /* LimitedApiGetTypeDict.proto (used by SetItemOnTypeDict) */ #if CYTHON_COMPILING_IN_LIMITED_API static PyObject *__Pyx_GetTypeDict(PyTypeObject *tp); #endif /* SetItemOnTypeDict.proto (used by FixUpExtensionType) */ static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v); #define __Pyx_SetItemOnTypeDict(tp, k, v) __Pyx__SetItemOnTypeDict((PyTypeObject*)tp, k, v) /* FixUpExtensionType.proto (used by FetchCommonType) */ static CYTHON_INLINE int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type); /* AddModuleRef.proto (used by FetchSharedCythonModule) */ #if ((CYTHON_COMPILING_IN_CPYTHON_FREETHREADING ) ||\ __PYX_LIMITED_VERSION_HEX < 0x030d0000) static PyObject *__Pyx_PyImport_AddModuleRef(const char *name); #else #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name) #endif /* FetchSharedCythonModule.proto (used by FetchCommonType) */ static PyObject *__Pyx_FetchSharedCythonABIModule(void); /* FetchCommonType.proto (used by CommonTypesMetaclass) */ static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases); /* CommonTypesMetaclass.proto (used by CoroutineBase) */ static int __pyx_CommonTypesMetaclass_init(PyObject *module); #define __Pyx_CommonTypesMetaclass_USED /* GetTopmostException.proto (used by SaveResetException) */ #if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); #endif /* SaveResetException.proto (used by CoroutineBase) */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); #else #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) #endif /* SwapException.proto (used by CoroutineBase) */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); #endif /* CallTypeTraverse.proto (used by CoroutineBase) */ #if !CYTHON_USE_TYPE_SPECS || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x03090000) #define __Pyx_call_type_traverse(o, always_call, visit, arg) 0 #else static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg); #endif /* IterNextPlain.proto (used by CoroutineBase) */ static CYTHON_INLINE PyObject *__Pyx_PyIter_Next_Plain(PyObject *iterator); #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000 static PyObject *__Pyx_GetBuiltinNext_LimitedAPI(void); #endif /* PyObjectCall2Args.proto (used by PyObjectCallMethod1) */ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); /* PyObjectGetMethod.proto (used by PyObjectCallMethod1) */ #if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))) static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); #endif /* PyObjectCallMethod1.proto (used by CoroutineBase) */ static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg); /* PyObjectCallNoArg.proto (used by CoroutineBase) */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); /* ReturnWithStopIteration.proto (used by CoroutineBase) */ static CYTHON_INLINE void __Pyx_ReturnWithStopIteration(PyObject* value, int async, int iternext); /* CoroutineBase.proto (used by Coroutine) */ struct __pyx_CoroutineObject; typedef PyObject *(*__pyx_coroutine_body_t)(struct __pyx_CoroutineObject *, PyThreadState *, PyObject *); #if CYTHON_USE_EXC_INFO_STACK #define __Pyx_ExcInfoStruct _PyErr_StackItem #else typedef struct { PyObject *exc_type; PyObject *exc_value; PyObject *exc_traceback; } __Pyx_ExcInfoStruct; #endif typedef struct __pyx_CoroutineObject { PyObject_HEAD __pyx_coroutine_body_t body; PyObject *closure; __Pyx_ExcInfoStruct gi_exc_state; #if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API PyObject *gi_weakreflist; #endif PyObject *classobj; PyObject *yieldfrom; __Pyx_pyiter_sendfunc yieldfrom_am_send; PyObject *gi_name; PyObject *gi_qualname; PyObject *gi_modulename; PyObject *gi_code; PyObject *gi_frame; #if CYTHON_USE_SYS_MONITORING && (CYTHON_PROFILE || CYTHON_TRACE) PyMonitoringState __pyx_pymonitoring_state[__Pyx_MonitoringEventTypes_CyGen_count]; uint64_t __pyx_pymonitoring_version; #endif int resume_label; char is_running; } __pyx_CoroutineObject; static __pyx_CoroutineObject *__Pyx__Coroutine_New( PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, PyObject *name, PyObject *qualname, PyObject *module_name); static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit( __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, PyObject *name, PyObject *qualname, PyObject *module_name); static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self); static int __Pyx_Coroutine_clear(PyObject *self); static __Pyx_PySendResult __Pyx_Coroutine_AmSend(PyObject *self, PyObject *value, PyObject **retval); static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value); static __Pyx_PySendResult __Pyx_Coroutine_Close(PyObject *self, PyObject **retval); static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args); #if CYTHON_USE_EXC_INFO_STACK #define __Pyx_Coroutine_SwapException(self) #define __Pyx_Coroutine_ResetAndClearException(self) __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state) #else #define __Pyx_Coroutine_SwapException(self) {\ __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\ __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\ } #define __Pyx_Coroutine_ResetAndClearException(self) {\ __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\ (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\ } #endif #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyGen_FetchStopIterationValue(pvalue)\ __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue) #else #define __Pyx_PyGen_FetchStopIterationValue(pvalue)\ __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue) #endif static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue); static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state); static char __Pyx_Coroutine_test_and_set_is_running(__pyx_CoroutineObject *gen); static void __Pyx_Coroutine_unset_is_running(__pyx_CoroutineObject *gen); static char __Pyx_Coroutine_get_is_running(__pyx_CoroutineObject *gen); static PyObject *__Pyx_Coroutine_get_is_running_getter(PyObject *gen, void *closure); #if __PYX_HAS_PY_AM_SEND == 2 static void __Pyx_SetBackportTypeAmSend(PyTypeObject *type, __Pyx_PyAsyncMethodsStruct *static_amsend_methods, __Pyx_pyiter_sendfunc am_send); #endif static PyObject *__Pyx_Coroutine_fail_reduce_ex(PyObject *self, PyObject *arg); /* Coroutine.proto (used by CoroutineYieldFrom) */ #define __Pyx_Coroutine_USED #define __Pyx_Coroutine_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_CoroutineType) #define __Pyx_Coroutine_Check(obj) __Pyx_Coroutine_CheckExact(obj) #define __Pyx_CoroutineAwait_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_CoroutineAwaitType) #define __Pyx_Coroutine_New(body, code, closure, name, qualname, module_name)\ __Pyx__Coroutine_New(__pyx_mstate_global->__pyx_CoroutineType, body, code, closure, name, qualname, module_name) static int __pyx_Coroutine_init(PyObject *module); static PyObject *__Pyx__Coroutine_await(PyObject *coroutine); typedef struct { PyObject_HEAD PyObject *coroutine; } __pyx_CoroutineAwaitObject; static __Pyx_PySendResult __Pyx_CoroutineAwait_Close(__pyx_CoroutineAwaitObject *self); /* Coro_CheckExact.proto (used by GetAwaitIter) */ #if CYTHON_COMPILING_IN_LIMITED_API static int __Pyx_PyCoro_CheckExact(PyObject *o); #else #define __Pyx_PyCoro_CheckExact PyCoro_CheckExact #endif /* GetAwaitIter.proto (used by CoroutineYieldFrom) */ static CYTHON_INLINE PyObject *__Pyx_Coroutine_GetAwaitableIter(PyObject *o); static PyObject *__Pyx__Coroutine_GetAwaitableIter(PyObject *o); /* CoroutineYieldFrom.proto */ static CYTHON_INLINE __Pyx_PySendResult __Pyx_Coroutine_Yield_From(__pyx_CoroutineObject *gen, PyObject *source, PyObject **retval); /* ExtTypeTest.proto */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /* GetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); #endif /* pep479.proto */ static void __Pyx_Generator_Replace_StopIteration(int in_async_gen); /* ListAppend.proto */ #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { Py_INCREF(x); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 L->ob_item[len] = x; #else PyList_SET_ITEM(list, len, x); #endif __Pyx_SET_SIZE(list, len + 1); return 0; } return PyList_Append(list, x); } #else #define __Pyx_PyList_Append(L,x) PyList_Append(L,x) #endif /* PyOverflowError_Check.proto */ #define __Pyx_PyExc_OverflowError_Check(obj) __Pyx_TypeCheck(obj, PyExc_OverflowError) /* PyValueError_Check.proto */ #define __Pyx_PyExc_ValueError_Check(obj) __Pyx_TypeCheck(obj, PyExc_ValueError) /* StringJoin.proto */ static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values); /* GetItemInt.proto */ #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck, unsafe_shared) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ __Pyx_GetItemInt_Generic(o, to_py_func(i)))) #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\ (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck, int unsafe_shared); #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\ (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck, int unsafe_shared); static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, int wraparound, int boundscheck, int unsafe_shared); /* RaiseTooManyValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); /* RaiseNeedMoreValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); /* IterFinish.proto */ static CYTHON_INLINE int __Pyx_IterFinish(void); /* UnpackItemEndCheck.proto */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /* PyFileNotFoundError_Check.proto */ #define __Pyx_PyExc_FileNotFoundError_Check(obj) __Pyx_TypeCheck(obj, PyExc_FileNotFoundError) /* PyOSError_Check.proto */ #define __Pyx_PyExc_OSError_Check(obj) __Pyx_TypeCheck(obj, PyExc_OSError) /* GetAttr3.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); /* RaiseUnexpectedTypeError.proto */ static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj); /* PyObjectLookupSpecial.proto */ #if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS #define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 0) #define __Pyx_PyObject_LookupSpecial(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 1) static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error); #else #define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n) #define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n) #endif /* FastTypeChecks.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) #define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2) static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); #else #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) #define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2)) #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2) { return PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2); } #endif #define __Pyx_PyErr_ExceptionMatches2(err1, err2) __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2) #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) #ifdef PyExceptionInstance_Check #define __Pyx_PyBaseException_Check(obj) PyExceptionInstance_Check(obj) #else #define __Pyx_PyBaseException_Check(obj) __Pyx_TypeCheck(obj, PyExc_BaseException) #endif /* PyObjectVectorCallKwBuilder.proto (used by PyObjectVectorCallMethodKwBuilder) */ CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n); #if CYTHON_VECTORCALL #if PY_VERSION_HEX >= 0x03090000 #define __Pyx_Object_Vectorcall_CallFromBuilder PyObject_Vectorcall #else #define __Pyx_Object_Vectorcall_CallFromBuilder _PyObject_Vectorcall #endif #define __Pyx_MakeVectorcallBuilderKwds(n) PyTuple_New(n) static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n); static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n); #else #define __Pyx_Object_Vectorcall_CallFromBuilder __Pyx_PyObject_FastCallDict #define __Pyx_MakeVectorcallBuilderKwds(n) __Pyx_PyDict_NewPresized(n) #define __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n) PyDict_SetItem(builder, key, value) #define __Pyx_VectorcallBuilder_AddArgStr(key, value, builder, args, n) PyDict_SetItemString(builder, key, value) #endif /* PyObjectVectorCallMethodKwBuilder.proto */ #if CYTHON_VECTORCALL && PY_VERSION_HEX >= 0x03090000 #define __Pyx_Object_VectorcallMethod_CallFromBuilder PyObject_VectorcallMethod #else static PyObject *__Pyx_Object_VectorcallMethod_CallFromBuilder(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames); #endif /* GetAttr.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /* PyObjectCallMethod0.proto (used by dict_iter) */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); /* RaiseNoneIterError.proto (used by UnpackTupleError) */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); /* UnpackTupleError.proto (used by UnpackTuple2) */ static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /* UnpackTuple2.proto (used by dict_iter) */ static CYTHON_INLINE int __Pyx_unpack_tuple2( PyObject* tuple, PyObject** value1, PyObject** value2, int is_tuple, int has_known_size, int decref_tuple); static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple); static int __Pyx_unpack_tuple2_generic( PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple); /* dict_iter.proto */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_is_dict); static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict); /* PyObjectDelAttr.proto (used by PyObjectSetAttrStr) */ #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000 #define __Pyx_PyObject_DelAttr(o, n) PyObject_SetAttr(o, n, NULL) #else #define __Pyx_PyObject_DelAttr(o, n) PyObject_DelAttr(o, n) #endif /* PyObjectSetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS #define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL) static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value); #else #define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_DelAttr(o,n) #define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v) #endif /* RaiseUnboundLocalError.proto */ static void __Pyx_RaiseUnboundLocalError(const char *varname); /* SliceObject.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice( PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, PyObject** py_start, PyObject** py_stop, PyObject** py_slice, int has_cstart, int has_cstop, int wraparound); /* CheckTypeForFreelists.proto */ #if CYTHON_USE_FREELISTS #if CYTHON_USE_TYPE_SPECS #define __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, expected_tp, expected_size) ((int) ((t) == (expected_tp))) #define __PYX_CHECK_TYPE_FOR_FREELIST_FLAGS Py_TPFLAGS_IS_ABSTRACT #else #define __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, expected_tp, expected_size) ((int) ((t)->tp_basicsize == (expected_size))) #define __PYX_CHECK_TYPE_FOR_FREELIST_FLAGS (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE) #endif #define __PYX_CHECK_TYPE_FOR_FREELISTS(t, expected_tp, expected_size)\ (__PYX_CHECK_FINAL_TYPE_FOR_FREELISTS((t), (expected_tp), (expected_size)) &\ (int) (!__Pyx_PyType_HasFeature((t), __PYX_CHECK_TYPE_FOR_FREELIST_FLAGS))) #endif /* AllocateExtensionType.proto */ static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final); /* SetPackagePathFromImportLib.proto */ #if !CYTHON_PEP489_MULTI_PHASE_INIT static int __Pyx_SetPackagePathFromImportLib(PyObject *module_name); #else #define __Pyx_SetPackagePathFromImportLib(a) 0 #endif /* ValidateBasesTuple.proto (used by PyType_Ready) */ #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases); #endif /* PyType_Ready.proto */ CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t); /* DelItemOnTypeDict.proto (used by SetupReduce) */ static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k); #define __Pyx_DelItemOnTypeDict(tp, k) __Pyx__DelItemOnTypeDict((PyTypeObject*)tp, k) /* SetupReduce.proto */ static int __Pyx_setup_reduce(PyObject* type_obj); /* SetVTable.proto */ static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable); /* GetVTable.proto (used by MergeVTables) */ static void* __Pyx_GetVtable(PyTypeObject *type); /* MergeVTables.proto */ static int __Pyx_MergeVtables(PyTypeObject *type); /* FormatTypeName.proto (used by ValidateExternBase) */ #if CYTHON_COMPILING_IN_LIMITED_API typedef PyObject *__Pyx_TypeName; #define __Pyx_FMT_TYPENAME "%U" #define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj) #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000 #define __Pyx_PyType_GetFullyQualifiedName PyType_GetFullyQualifiedName #else static __Pyx_TypeName __Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp); #endif #else // !LIMITED_API typedef const char *__Pyx_TypeName; #define __Pyx_FMT_TYPENAME "%.200s" #define __Pyx_PyType_GetFullyQualifiedName(tp) ((tp)->tp_name) #define __Pyx_DECREF_TypeName(obj) #endif /* ValidateExternBase.proto */ static int __Pyx_validate_extern_base(PyTypeObject *base); /* TypeImport.proto */ #ifndef __PYX_HAVE_RT_ImportType_proto_3_2_4 #define __PYX_HAVE_RT_ImportType_proto_3_2_4 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L #include #endif #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L #define __PYX_GET_STRUCT_ALIGNMENT_3_2_4(s) alignof(s) #else #define __PYX_GET_STRUCT_ALIGNMENT_3_2_4(s) sizeof(void*) #endif enum __Pyx_ImportType_CheckSize_3_2_4 { __Pyx_ImportType_CheckSize_Error_3_2_4 = 0, __Pyx_ImportType_CheckSize_Warn_3_2_4 = 1, __Pyx_ImportType_CheckSize_Ignore_3_2_4 = 2 }; static PyTypeObject *__Pyx_ImportType_3_2_4(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_2_4 check_size); #endif /* HasAttr.proto (used by ImportImpl) */ #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000 #define __Pyx_HasAttr(o, n) PyObject_HasAttrWithError(o, n) #else static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); #endif /* ImportImpl.export */ static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level); /* Import.proto */ static CYTHON_INLINE PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level); /* ImportFrom.proto */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); /* Globals.proto */ static PyObject* __Pyx_Globals(void); /* PyMethodNew.proto (used by CythonFunctionShared) */ static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ); /* PyVectorcallFastCallDict.proto (used by CythonFunctionShared) */ #if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw); #endif /* CythonFunctionShared.proto (used by CythonFunction) */ #define __Pyx_CyFunction_USED #define __Pyx_CYFUNCTION_STATICMETHOD 0x01 #define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 #define __Pyx_CYFUNCTION_CCLASS 0x04 #define __Pyx_CYFUNCTION_COROUTINE 0x08 #define __Pyx_CyFunction_GetClosure(f)\ (((__pyx_CyFunctionObject *) (f))->func_closure) #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_CyFunction_GetClassObj(f)\ (((__pyx_CyFunctionObject *) (f))->func_classobj) #else #define __Pyx_CyFunction_GetClassObj(f)\ ((PyObject*) ((PyCMethodObject *) (f))->mm_class) #endif #define __Pyx_CyFunction_SetClassObj(f, classobj)\ __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj)) #define __Pyx_CyFunction_Defaults(type, f)\ ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) typedef struct { #if CYTHON_COMPILING_IN_LIMITED_API PyObject_HEAD PyObject *func; #elif PY_VERSION_HEX < 0x030900B1 PyCFunctionObject func; #else PyCMethodObject func; #endif #if CYTHON_COMPILING_IN_LIMITED_API && CYTHON_METH_FASTCALL __pyx_vectorcallfunc func_vectorcall; #endif #if CYTHON_COMPILING_IN_LIMITED_API PyObject *func_weakreflist; #endif #if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API PyObject *func_dict; #endif PyObject *func_name; PyObject *func_qualname; PyObject *func_doc; PyObject *func_globals; PyObject *func_code; PyObject *func_closure; #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API PyObject *func_classobj; #endif PyObject *defaults; int flags; PyObject *defaults_tuple; PyObject *defaults_kwdict; PyObject *(*defaults_getter)(PyObject *); PyObject *func_annotations; PyObject *func_is_coroutine; } __pyx_CyFunctionObject; #undef __Pyx_CyOrPyCFunction_Check #define __Pyx_CyFunction_Check(obj) __Pyx_TypeCheck(obj, __pyx_mstate_global->__pyx_CyFunctionType) #define __Pyx_CyOrPyCFunction_Check(obj) __Pyx_TypeCheck2(obj, __pyx_mstate_global->__pyx_CyFunctionType, &PyCFunction_Type) #define __Pyx_CyFunction_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_CyFunctionType) static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)); #undef __Pyx_IsSameCFunction #define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCyOrCFunction(func, cfunc) static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject *globals, PyObject* code); static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj); static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func, PyTypeObject *defaults_type); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, PyObject *tuple); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, PyObject *dict); static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, PyObject *dict); static int __pyx_CyFunction_init(PyObject *module); #if CYTHON_METH_FASTCALL static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); #if CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall) #else #define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall) #endif #endif /* CythonFunction.proto */ static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject *globals, PyObject* code); /* pyfrozenset_new.proto */ static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it); /* CLineInTraceback.proto (used by AddTraceback) */ #if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); #else #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) #endif /* CodeObjectCache.proto (used by AddTraceback) */ #if CYTHON_COMPILING_IN_LIMITED_API typedef PyObject __Pyx_CachedCodeObjectType; #else typedef PyCodeObject __Pyx_CachedCodeObjectType; #endif typedef struct { __Pyx_CachedCodeObjectType* code_object; int code_line; } __Pyx_CodeObjectCacheEntry; struct __Pyx_CodeObjectCache { int count; int max_count; __Pyx_CodeObjectCacheEntry* entries; #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING __pyx_atomic_int_type accessor_count; #endif }; static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line); static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object); /* AddTraceback.proto */ static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); /* GCCDiagnostics.proto */ #if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) #define __Pyx_HAS_GCC_DIAGNOSTIC #endif /* CheckUnpickleChecksum.proto */ static CYTHON_INLINE int __Pyx_CheckUnpickleChecksum(long checksum, long checksum1, long checksum2, long checksum3, const char *members); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value); /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_gid_t(gid_t value); /* CIntFromPy.proto */ static CYTHON_INLINE gid_t __Pyx_PyLong_As_gid_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_pid_t(pid_t value); /* CIntFromPy.proto */ static CYTHON_INLINE pid_t __Pyx_PyLong_As_pid_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_uid_t(uid_t value); /* CIntFromPy.proto */ static CYTHON_INLINE uid_t __Pyx_PyLong_As_uid_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_mode_t(mode_t value); /* CIntFromPy.proto */ static CYTHON_INLINE mode_t __Pyx_PyLong_As_mode_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From___pyx_anon_enum(int value); /* CIntFromPy.proto */ static CYTHON_INLINE size_t __Pyx_PyLong_As_size_t(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE fuse_ino_t __Pyx_PyLong_As_fuse_ino_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_fuse_ino_t(fuse_ino_t value); /* CIntFromPy.proto */ static CYTHON_INLINE off_t __Pyx_PyLong_As_off_t(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_uint64_t(uint64_t value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_dev_t(dev_t value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_off_t(off_t value); /* CIntFromPy.proto */ static CYTHON_INLINE uint64_t __Pyx_PyLong_As_uint64_t(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE unsigned int __Pyx_PyLong_As_unsigned_int(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value); /* CIntFromPy.proto */ static CYTHON_INLINE ino_t __Pyx_PyLong_As_ino_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_nlink_t(nlink_t value); /* CIntFromPy.proto */ static CYTHON_INLINE nlink_t __Pyx_PyLong_As_nlink_t(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE dev_t __Pyx_PyLong_As_dev_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_blkcnt_t(blkcnt_t value); /* CIntFromPy.proto */ static CYTHON_INLINE blkcnt_t __Pyx_PyLong_As_blkcnt_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_blksize_t(blksize_t value); /* CIntFromPy.proto */ static CYTHON_INLINE blksize_t __Pyx_PyLong_As_blksize_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_time_t(time_t value); /* CIntFromPy.proto */ static CYTHON_INLINE time_t __Pyx_PyLong_As_time_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_long(unsigned long value); /* CIntFromPy.proto */ static CYTHON_INLINE unsigned long __Pyx_PyLong_As_unsigned_long(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_fsblkcnt_t(fsblkcnt_t value); /* CIntFromPy.proto */ static CYTHON_INLINE fsblkcnt_t __Pyx_PyLong_As_fsblkcnt_t(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_fsfilcnt_t(fsfilcnt_t value); /* CIntFromPy.proto */ static CYTHON_INLINE fsfilcnt_t __Pyx_PyLong_As_fsfilcnt_t(PyObject *); /* UpdateUnpickledDict.proto */ static int __Pyx_UpdateUnpickledDict(PyObject *obj, PyObject *state, Py_ssize_t index); /* GetRuntimeVersion.proto */ #if __PYX_LIMITED_VERSION_HEX < 0x030b0000 static unsigned long __Pyx_cached_runtime_version = 0; static void __Pyx_init_runtime_version(void); #else #define __Pyx_init_runtime_version() #endif static unsigned long __Pyx_get_runtime_version(void); /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer); /* DecompressString.proto */ static PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo); /* MultiPhaseInitModuleState.proto */ #if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE static PyObject *__Pyx_State_FindModule(void*); static int __Pyx_State_AddModule(PyObject* module, void*); static int __Pyx_State_RemoveModule(void*); #elif CYTHON_USE_MODULE_STATE #define __Pyx_State_FindModule PyState_FindModule #define __Pyx_State_AddModule PyState_AddModule #define __Pyx_State_RemoveModule PyState_RemoveModule #endif /* #### Code section: module_declarations ### */ /* CythonABIVersion.proto */ #if CYTHON_COMPILING_IN_LIMITED_API #if CYTHON_METH_FASTCALL #define __PYX_FASTCALL_ABI_SUFFIX "_fastcall" #else #define __PYX_FASTCALL_ABI_SUFFIX #endif #define __PYX_LIMITED_ABI_SUFFIX "limited" __PYX_FASTCALL_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX #else #define __PYX_LIMITED_ABI_SUFFIX #endif #if __PYX_HAS_PY_AM_SEND == 1 #define __PYX_AM_SEND_ABI_SUFFIX #elif __PYX_HAS_PY_AM_SEND == 2 #define __PYX_AM_SEND_ABI_SUFFIX "amsendbackport" #else #define __PYX_AM_SEND_ABI_SUFFIX "noamsend" #endif #ifndef __PYX_MONITORING_ABI_SUFFIX #define __PYX_MONITORING_ABI_SUFFIX #endif #if CYTHON_USE_TP_FINALIZE #define __PYX_TP_FINALIZE_ABI_SUFFIX #else #define __PYX_TP_FINALIZE_ABI_SUFFIX "nofinalize" #endif #if CYTHON_USE_FREELISTS || !defined(__Pyx_AsyncGen_USED) #define __PYX_FREELISTS_ABI_SUFFIX #else #define __PYX_FREELISTS_ABI_SUFFIX "nofreelists" #endif #define CYTHON_ABI __PYX_ABI_VERSION __PYX_LIMITED_ABI_SUFFIX __PYX_MONITORING_ABI_SUFFIX __PYX_TP_FINALIZE_ABI_SUFFIX __PYX_FREELISTS_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX #define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI #define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "." static PyObject *__pyx_f_7pyfuse3_11_WorkerData_get_name(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self); /* proto*/ static PyObject *__pyx_f_7pyfuse3_8FileInfo__copy_to_fuse(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, struct fuse_file_info *__pyx_v_out); /* proto*/ static struct __pyx_obj_7pyfuse3_PollHandle *__pyx_f_7pyfuse3_10PollHandle_from_ptr(struct fuse_pollhandle *__pyx_v_ph); /* proto*/ /* Module declarations from "fuse_opt" */ /* Module declarations from "posix.types" */ /* Module declarations from "libc.stdint" */ /* Module declarations from "fuse_common" */ /* Module declarations from "posix.signal" */ /* Module declarations from "posix.time" */ /* Module declarations from "posix.stat" */ /* Module declarations from "libc_extra" */ /* Module declarations from "libc.string" */ /* Module declarations from "libc.stdlib" */ /* Module declarations from "fuse_lowlevel" */ /* Module declarations from "pyfuse3.macros" */ /* Module declarations from "libc" */ /* Module declarations from "libc.errno" */ /* Module declarations from "posix" */ /* Module declarations from "posix.unistd" */ /* Module declarations from "libc.stdio" */ /* Module declarations from "__builtin__" */ /* Module declarations from "cpython.type" */ /* Module declarations from "cpython.exc" */ /* Module declarations from "cpython" */ /* Module declarations from "cpython.object" */ /* Module declarations from "cpython.bytes" */ /* Module declarations from "cpython.buffer" */ /* Module declarations from "cython" */ /* Module declarations from "pyfuse3" */ static PyObject *__pyx_v_7pyfuse3_operations = 0; static PyObject *__pyx_v_7pyfuse3_mountpoint_b = 0; static struct fuse_session *__pyx_v_7pyfuse3_session; static struct fuse_lowlevel_ops __pyx_v_7pyfuse3_fuse_ops; static int __pyx_v_7pyfuse3_session_fd; static PyObject *__pyx_v_7pyfuse3_py_retval = 0; static PyObject *__pyx_v_7pyfuse3__notify_queue = 0; static struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_7pyfuse3_worker_data = 0; static void __pyx_f_7pyfuse3_fuse_init(void *, struct fuse_conn_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_lookup(fuse_req_t, fuse_ino_t, const char *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_forget(fuse_req_t, fuse_ino_t, uint64_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_forget_multi(fuse_req_t, size_t, struct fuse_forget_data *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_getattr(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_setattr(fuse_req_t, fuse_ino_t, struct stat *, int, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_readlink(fuse_req_t, fuse_ino_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_mknod(fuse_req_t, fuse_ino_t, const char *, mode_t, dev_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_mkdir(fuse_req_t, fuse_ino_t, const char *, mode_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_unlink(fuse_req_t, fuse_ino_t, const char *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_rmdir(fuse_req_t, fuse_ino_t, const char *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_symlink(fuse_req_t, const char *, fuse_ino_t, const char *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_rename(fuse_req_t, fuse_ino_t, const char *, fuse_ino_t, const char *, unsigned int); /*proto*/ static void __pyx_f_7pyfuse3_fuse_link(fuse_req_t, fuse_ino_t, fuse_ino_t, const char *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_open(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_read(fuse_req_t, fuse_ino_t, size_t, off_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_write(fuse_req_t, fuse_ino_t, const char *, size_t, off_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_write_buf(fuse_req_t, fuse_ino_t, struct fuse_bufvec *, off_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_flush(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_release(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_fsync(fuse_req_t, fuse_ino_t, int, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_opendir(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_readdirplus(fuse_req_t, fuse_ino_t, size_t, off_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_releasedir(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_fsyncdir(fuse_req_t, fuse_ino_t, int, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_statfs(fuse_req_t, fuse_ino_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_setxattr(fuse_req_t, fuse_ino_t, const char *, const char *, size_t, int); /*proto*/ static void __pyx_f_7pyfuse3_fuse_getxattr(fuse_req_t, fuse_ino_t, const char *, size_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_listxattr(fuse_req_t, fuse_ino_t, size_t); /*proto*/ static void __pyx_f_7pyfuse3_fuse_removexattr(fuse_req_t, fuse_ino_t, const char *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_access(fuse_req_t, fuse_ino_t, int); /*proto*/ static void __pyx_f_7pyfuse3_fuse_poll(fuse_req_t, fuse_ino_t, struct fuse_file_info *, struct fuse_pollhandle *); /*proto*/ static void __pyx_f_7pyfuse3_fuse_create(fuse_req_t, fuse_ino_t, const char *, mode_t, struct fuse_file_info *); /*proto*/ static void __pyx_f_7pyfuse3_save_retval(PyObject *); /*proto*/ static PyObject *__pyx_f_7pyfuse3_get_request_context(fuse_req_t); /*proto*/ static void __pyx_f_7pyfuse3_init_fuse_ops(void); /*proto*/ static PyObject *__pyx_f_7pyfuse3_make_fuse_args(PyObject *, struct fuse_args *); /*proto*/ static PyObject *__pyx_f_7pyfuse3_str2bytes(PyObject *); /*proto*/ static PyObject *__pyx_f_7pyfuse3_bytes2str(PyObject *); /*proto*/ static PyObject *__pyx_f_7pyfuse3_strerror(int); /*proto*/ static PyObject *__pyx_f_7pyfuse3_PyBytes_from_bufvec(struct fuse_bufvec *); /*proto*/ static void *__pyx_f_7pyfuse3_calloc_or_raise(size_t, size_t); /*proto*/ static PyObject *__pyx_f_7pyfuse3___pyx_unpickle__WorkerData__set_state(struct __pyx_obj_7pyfuse3__WorkerData *, PyObject *); /*proto*/ static PyObject *__pyx_f_7pyfuse3___pyx_unpickle_RequestContext__set_state(struct __pyx_obj_7pyfuse3_RequestContext *, PyObject *); /*proto*/ /* #### Code section: typeinfo ### */ /* #### Code section: before_global_var ### */ #define __Pyx_MODULE_NAME "pyfuse3.__init__" extern int __pyx_module_is_main_pyfuse3____init__; int __pyx_module_is_main_pyfuse3____init__ = 0; /* Implementation of "pyfuse3" */ /* #### Code section: global_var ### */ static PyObject *__pyx_builtin_enumerate; static PyObject *__pyx_builtin_open; /* #### Code section: string_decls ### */ static const char __pyx_k__2[] = "."; static const char __pyx_k__3[] = ".."; static const char __pyx_k_gid_pid_uid_umask[] = "gid, pid, uid, umask"; static const char __pyx_k_init___pyx_Copyright_2013_Nik[] = "\n__init__.pyx\n\nCopyright \302\251 2013 Nikolaus Rath \n\nThis file is part of pyfuse3. This work may be distributed under\nthe terms of the GNU LGPL.\n"; static const char __pyx_k_active_readers_read_lock_task_co[] = "active_readers, read_lock, task_count, task_serial"; /* #### Code section: decls ### */ static PyObject *__pyx_pf_7pyfuse3_10_Container___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3__Container *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_10_Container_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3__Container *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_fuse_lookup_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_3fuse_getattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_6fuse_setattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_fh); /* proto */ static PyObject *__pyx_pf_7pyfuse3_9fuse_readlink_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_12fuse_mknod_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15fuse_mkdir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_18fuse_unlink_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_21fuse_rmdir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_24fuse_symlink_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name, PyObject *__pyx_v_link); /* proto */ static PyObject *__pyx_pf_7pyfuse3_27fuse_rename_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name, PyObject *__pyx_v_newname); /* proto */ static PyObject *__pyx_pf_7pyfuse3_30fuse_link_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_newname); /* proto */ static PyObject *__pyx_pf_7pyfuse3_33fuse_open_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_36fuse_read_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_39fuse_write_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_pbuf); /* proto */ static PyObject *__pyx_pf_7pyfuse3_42fuse_write_buf_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_buf); /* proto */ static PyObject *__pyx_pf_7pyfuse3_45fuse_flush_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_48fuse_release_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_51fuse_fsync_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_54fuse_opendir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_12ReaddirToken___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_12ReaddirToken_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_57fuse_readdirplus_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_60fuse_releasedir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_63fuse_fsyncdir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_66fuse_statfs_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_69fuse_setxattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf_7pyfuse3_72fuse_getxattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_75fuse_listxattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_78fuse_removexattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_81fuse_access_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_7pyfuse3_84fuse_poll_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_py_ph); /* proto */ static PyObject *__pyx_pf_7pyfuse3_87fuse_create_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_pf_7pyfuse3_90_notify_loop(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static int __pyx_pf_7pyfuse3_11_WorkerData___init__(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11_WorkerData_2__reduce_cython__(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11_WorkerData_4__setstate_cython__(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_92_wait_fuse_readable(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_95_session_loop(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_nursery, int __pyx_v_min_tasks, int __pyx_v_max_tasks); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext___getstate__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext_3uid___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext_3pid___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext_3gid___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext_5umask___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext_2__reduce_cython__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_14RequestContext_4__setstate_cython__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_7pyfuse3_13SetattrFields___cinit__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_2__getstate__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_12update_atime___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_12update_mtime___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_12update_ctime___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_11update_mode___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_10update_uid___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_10update_gid___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_11update_size___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes___cinit__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6st_ino___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_6st_ino_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_10generation___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_10generation_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_12attr_timeout___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_12attr_timeout_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_13entry_timeout___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_13entry_timeout_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_7st_mode___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_7st_mode_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_8st_nlink___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_8st_nlink_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6st_uid___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_6st_uid_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6st_gid___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_6st_gid_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_7st_rdev___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_7st_rdev_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_7st_size___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_7st_size_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_9st_blocks___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_9st_blocks_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_10st_blksize___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_10st_blksize_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_11st_atime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_11st_atime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_11st_mtime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_11st_mtime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_11st_ctime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_11st_ctime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_15st_birthtime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_15EntryAttributes_15st_birthtime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_2__getstate__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_4__setstate__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_7pyfuse3_8FileInfo___cinit__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_fh, PyObject *__pyx_v_direct_io, PyObject *__pyx_v_keep_cache, PyObject *__pyx_v_nonseekable); /* proto */ static PyObject *__pyx_pf_7pyfuse3_8FileInfo_2fh___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_8FileInfo_2fh_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf_7pyfuse3_8FileInfo_9direct_io___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_8FileInfo_9direct_io_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf_7pyfuse3_8FileInfo_10keep_cache___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_8FileInfo_10keep_cache_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf_7pyfuse3_8FileInfo_11nonseekable___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_8FileInfo_11nonseekable_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf_7pyfuse3_8FileInfo_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_8FileInfo_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData___cinit__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_bsize___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_7f_bsize_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_frsize___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_8f_frsize_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_blocks___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_8f_blocks_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_bfree___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_7f_bfree_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_bavail___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_8f_bavail_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_files___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_7f_files_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_ffree___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_7f_ffree_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_favail___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_8f_favail_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_9f_namemax___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_11StatvfsData_9f_namemax_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_2__getstate__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_4__setstate__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_9FUSEError_5errno___get__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_9FUSEError___cinit__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self, PyObject *__pyx_v_errno); /* proto */ static PyObject *__pyx_pf_7pyfuse3_9FUSEError_2__str__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_9FUSEError_6errno____get__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_9FUSEError_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_9FUSEError_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_7pyfuse3_10PollHandle___cinit__(struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self); /* proto */ static int __pyx_pf_7pyfuse3_10PollHandle_2__init__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self); /* proto */ static void __pyx_pf_7pyfuse3_10PollHandle_4__dealloc__(struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_10PollHandle_6__getstate__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_10PollHandle_8notify(struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_10PollHandle_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_10PollHandle_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_98listdir(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path); /* proto */ static PyObject *__pyx_pf_7pyfuse3_100syncfs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path); /* proto */ static PyObject *__pyx_pf_7pyfuse3_102setxattr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path, PyObject *__pyx_v_name, PyObject *__pyx_v_value, PyObject *__pyx_v_namespace); /* proto */ static PyObject *__pyx_pf_7pyfuse3_104getxattr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path, PyObject *__pyx_v_name, size_t __pyx_v_size_guess, PyObject *__pyx_v_namespace); /* proto */ static PyObject *__pyx_pf_7pyfuse3_131__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_106init(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_ops, PyObject *__pyx_v_mountpoint, PyObject *__pyx_v_options); /* proto */ static PyObject *__pyx_pf_7pyfuse3_108main(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_min_tasks, int __pyx_v_max_tasks); /* proto */ static PyObject *__pyx_pf_7pyfuse3_111terminate(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_7pyfuse3_113close(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_unmount); /* proto */ static PyObject *__pyx_pf_7pyfuse3_115invalidate_inode(CYTHON_UNUSED PyObject *__pyx_self, fuse_ino_t __pyx_v_inode, PyObject *__pyx_v_attr_only); /* proto */ static PyObject *__pyx_pf_7pyfuse3_117invalidate_entry(CYTHON_UNUSED PyObject *__pyx_self, fuse_ino_t __pyx_v_inode_p, PyObject *__pyx_v_name, fuse_ino_t __pyx_v_deleted); /* proto */ static PyObject *__pyx_pf_7pyfuse3_119invalidate_entry_async(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_inode_p, PyObject *__pyx_v_name, PyObject *__pyx_v_deleted, PyObject *__pyx_v_ignore_enoent); /* proto */ static PyObject *__pyx_pf_7pyfuse3_121notify_store(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_inode, PyObject *__pyx_v_offset, PyObject *__pyx_v_data); /* proto */ static PyObject *__pyx_pf_7pyfuse3_123get_sup_groups(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pid); /* proto */ static PyObject *__pyx_pf_7pyfuse3_125readdir_reply(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_token, PyObject *__pyx_v_name, struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_attr, off_t __pyx_v_next_id); /* proto */ static PyObject *__pyx_pf_7pyfuse3_127__pyx_unpickle__WorkerData(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_7pyfuse3_129__pyx_unpickle_RequestContext(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_tp_new_7pyfuse3__Container(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_ReaddirToken(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3__WorkerData(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_RequestContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_SetattrFields(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_EntryAttributes(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_FileInfo(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_StatvfsData(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_FUSEError(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3_PollHandle(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_defaults(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct__fuse_lookup_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_9_fuse_rename_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_10_fuse_link_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_11_fuse_open_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_12_fuse_read_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_13_fuse_write_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_15_fuse_flush_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_16_fuse_release_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_27_fuse_access_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_28_fuse_poll_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_29_fuse_create_async(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_31__session_loop(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_32_main(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ /* #### Code section: late_includes ### */ /* #### Code section: module_state ### */ /* SmallCodeConfig */ #ifndef CYTHON_SMALL_CODE #if defined(__clang__) #define CYTHON_SMALL_CODE #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) #define CYTHON_SMALL_CODE __attribute__((cold)) #else #define CYTHON_SMALL_CODE #endif #endif typedef struct { PyObject *__pyx_d; PyObject *__pyx_b; PyObject *__pyx_cython_runtime; PyObject *__pyx_empty_tuple; PyObject *__pyx_empty_bytes; PyObject *__pyx_empty_unicode; PyTypeObject *__pyx_ptype_7cpython_4type_type; PyObject *__pyx_type_7pyfuse3__Container; PyObject *__pyx_type_7pyfuse3_ReaddirToken; PyObject *__pyx_type_7pyfuse3__WorkerData; PyObject *__pyx_type_7pyfuse3_RequestContext; PyObject *__pyx_type_7pyfuse3_SetattrFields; PyObject *__pyx_type_7pyfuse3_EntryAttributes; PyObject *__pyx_type_7pyfuse3_FileInfo; PyObject *__pyx_type_7pyfuse3_StatvfsData; PyObject *__pyx_type_7pyfuse3_FUSEError; PyObject *__pyx_type_7pyfuse3_PollHandle; PyObject *__pyx_type_7pyfuse3___pyx_defaults; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_poll_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_29_fuse_create_async; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_31__session_loop; PyObject *__pyx_type_7pyfuse3___pyx_scope_struct_32_main; PyTypeObject *__pyx_ptype_7pyfuse3__Container; PyTypeObject *__pyx_ptype_7pyfuse3_ReaddirToken; PyTypeObject *__pyx_ptype_7pyfuse3__WorkerData; PyTypeObject *__pyx_ptype_7pyfuse3_RequestContext; PyTypeObject *__pyx_ptype_7pyfuse3_SetattrFields; PyTypeObject *__pyx_ptype_7pyfuse3_EntryAttributes; PyTypeObject *__pyx_ptype_7pyfuse3_FileInfo; PyTypeObject *__pyx_ptype_7pyfuse3_StatvfsData; PyTypeObject *__pyx_ptype_7pyfuse3_FUSEError; PyTypeObject *__pyx_ptype_7pyfuse3_PollHandle; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_defaults; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop; PyTypeObject *__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main; __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items; __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop; __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values; PyObject *__pyx_slice[1]; PyObject *__pyx_tuple[8]; PyObject *__pyx_codeobj_tab[77]; PyObject *__pyx_string_tab[452]; PyObject *__pyx_number_tab[5]; /* #### Code section: module_state_contents ### */ /* CommonTypesMetaclass.module_state_decls */ PyTypeObject *__pyx_CommonTypesMetaclassType; /* IterNextPlain.module_state_decls */ #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000 PyObject *__Pyx_GetBuiltinNext_LimitedAPI_cache; #endif /* Coroutine.module_state_decls */ PyTypeObject *__pyx_CoroutineType; PyTypeObject *__pyx_CoroutineAwaitType; /* Coro_CheckExact.module_state_decls */ #if CYTHON_COMPILING_IN_LIMITED_API PyObject *__Pyx_CachedCoroType; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3__Container *__pyx_freelist_7pyfuse3__Container[60]; int __pyx_freecount_7pyfuse3__Container; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_freelist_7pyfuse3_ReaddirToken[10]; int __pyx_freecount_7pyfuse3_ReaddirToken; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3_RequestContext *__pyx_freelist_7pyfuse3_RequestContext[10]; int __pyx_freecount_7pyfuse3_RequestContext; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_freelist_7pyfuse3_SetattrFields[10]; int __pyx_freecount_7pyfuse3_SetattrFields; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_freelist_7pyfuse3_EntryAttributes[30]; int __pyx_freecount_7pyfuse3_EntryAttributes; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3_FileInfo *__pyx_freelist_7pyfuse3_FileInfo[10]; int __pyx_freecount_7pyfuse3_FileInfo; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_freelist_7pyfuse3_StatvfsData[1]; int __pyx_freecount_7pyfuse3_StatvfsData; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3_PollHandle *__pyx_freelist_7pyfuse3_PollHandle[10]; int __pyx_freecount_7pyfuse3_PollHandle; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *__pyx_freelist_7pyfuse3___pyx_scope_struct__fuse_lookup_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct__fuse_lookup_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_9_fuse_rename_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_9_fuse_rename_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_10_fuse_link_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_10_fuse_link_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_11_fuse_open_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_11_fuse_open_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_12_fuse_read_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_12_fuse_read_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_13_fuse_write_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_13_fuse_write_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_15_fuse_flush_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_15_fuse_flush_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_16_fuse_release_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_16_fuse_release_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_27_fuse_access_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_27_fuse_access_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_28_fuse_poll_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_28_fuse_poll_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async *__pyx_freelist_7pyfuse3___pyx_scope_struct_29_fuse_create_async[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_29_fuse_create_async; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable *__pyx_freelist_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop *__pyx_freelist_7pyfuse3___pyx_scope_struct_31__session_loop[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_31__session_loop; #endif #if CYTHON_USE_FREELISTS struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main *__pyx_freelist_7pyfuse3___pyx_scope_struct_32_main[8]; int __pyx_freecount_7pyfuse3___pyx_scope_struct_32_main; #endif /* CachedMethodType.module_state_decls */ #if CYTHON_COMPILING_IN_LIMITED_API PyObject *__Pyx_CachedMethodType; #endif /* CythonFunctionShared.module_state_decls */ PyTypeObject *__pyx_CyFunctionType; /* CodeObjectCache.module_state_decls */ struct __Pyx_CodeObjectCache __pyx_code_cache; /* #### Code section: module_state_end ### */ } __pyx_mstatetype; #if CYTHON_USE_MODULE_STATE #ifdef __cplusplus namespace { extern struct PyModuleDef __pyx_moduledef; } /* anonymous namespace */ #else static struct PyModuleDef __pyx_moduledef; #endif #define __pyx_mstate_global (__Pyx_PyModule_GetState(__Pyx_State_FindModule(&__pyx_moduledef))) #define __pyx_m (__Pyx_State_FindModule(&__pyx_moduledef)) #else static __pyx_mstatetype __pyx_mstate_global_static = #ifdef __cplusplus {}; #else {0}; #endif static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_static; #endif /* #### Code section: constant_name_defines ### */ #define __pyx_kp_u_Calling_fuse_session_destroy __pyx_string_tab[0] #define __pyx_kp_u_Calling_fuse_session_mount __pyx_string_tab[1] #define __pyx_kp_u_Calling_fuse_session_new __pyx_string_tab[2] #define __pyx_kp_u_Calling_fuse_session_unmount __pyx_string_tab[3] #define __pyx_kp_u_FUSE_fd_about_to_be_closed __pyx_string_tab[4] #define __pyx_kp_u_FUSE_session_exit_flag_set_while __pyx_string_tab[5] #define __pyx_kp_u_Failed_to_submit_invalidate_entr __pyx_string_tab[6] #define __pyx_kp_u_Groups __pyx_string_tab[7] #define __pyx_kp_u_Initializing_pyfuse3 __pyx_string_tab[8] #define __pyx_kp_u_Kernel_too_old_pyfuse3_requires __pyx_string_tab[9] #define __pyx_kp_u_NULL_fuse_pollhandle __pyx_string_tab[10] #define __pyx_kp_u_Need_to_call_init_before_main __pyx_string_tab[11] #define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[12] #define __pyx_kp_u_PollHandle_cannot_be_instantiate __pyx_string_tab[13] #define __pyx_kp_u_PollHandle_instances_can_t_be_pi __pyx_string_tab[14] #define __pyx_kp_u_PollHandle_is_no_longer_valid __pyx_string_tab[15] #define __pyx_kp_u_RequestContext_instances_can_t_b __pyx_string_tab[16] #define __pyx_kp_u_SetattrFields_instances_can_t_be __pyx_string_tab[17] #define __pyx_kp_u_Starting_notify_worker __pyx_string_tab[18] #define __pyx_kp_u_Unable_to_parse_s __pyx_string_tab[19] #define __pyx_kp_u_Value_too_long_to_convert_to_Pyt __pyx_string_tab[20] #define __pyx_kp_u__2 __pyx_string_tab[21] #define __pyx_kp_u__4 __pyx_string_tab[22] #define __pyx_kp_u_add_note __pyx_string_tab[23] #define __pyx_kp_u_disable __pyx_string_tab[24] #define __pyx_kp_u_enable __pyx_string_tab[25] #define __pyx_kp_u_errno_d __pyx_string_tab[26] #define __pyx_kp_u_fuse_access_fuse_reply__failed_w __pyx_string_tab[27] #define __pyx_kp_u_fuse_buf_copy_failed_with __pyx_string_tab[28] #define __pyx_kp_u_fuse_create_fuse_reply__failed_w __pyx_string_tab[29] #define __pyx_kp_u_fuse_flush_fuse_reply__failed_wi __pyx_string_tab[30] #define __pyx_kp_u_fuse_fsync_fuse_reply__failed_wi __pyx_string_tab[31] #define __pyx_kp_u_fuse_fsyncdir_fuse_reply__failed __pyx_string_tab[32] #define __pyx_kp_u_fuse_getattr_fuse_reply__failed __pyx_string_tab[33] #define __pyx_kp_u_fuse_getxattr_fuse_reply__failed __pyx_string_tab[34] #define __pyx_kp_u_fuse_link_fuse_reply__failed_wit __pyx_string_tab[35] #define __pyx_kp_u_fuse_listxattr_fuse_reply__faile __pyx_string_tab[36] #define __pyx_kp_u_fuse_lookup_fuse_reply__failed_w __pyx_string_tab[37] #define __pyx_kp_u_fuse_lowlevel_notify_delete_retu __pyx_string_tab[38] #define __pyx_kp_u_fuse_lowlevel_notify_inval_entry __pyx_string_tab[39] #define __pyx_kp_u_fuse_lowlevel_notify_inval_inode __pyx_string_tab[40] #define __pyx_kp_u_fuse_lowlevel_notify_poll_return __pyx_string_tab[41] #define __pyx_kp_u_fuse_lowlevel_notify_store_retur __pyx_string_tab[42] #define __pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi __pyx_string_tab[43] #define __pyx_kp_u_fuse_mknod_fuse_reply__failed_wi __pyx_string_tab[44] #define __pyx_kp_u_fuse_opendir_fuse_reply__failed __pyx_string_tab[45] #define __pyx_kp_u_fuse_poll_fuse_reply__failed_wit __pyx_string_tab[46] #define __pyx_kp_u_fuse_read_fuse_reply__failed_wit __pyx_string_tab[47] #define __pyx_kp_u_fuse_readdirplus_fuse_reply__fai __pyx_string_tab[48] #define __pyx_kp_u_fuse_readlink_fuse_reply__failed __pyx_string_tab[49] #define __pyx_kp_u_fuse_release_fuse_reply__failed __pyx_string_tab[50] #define __pyx_kp_u_fuse_releasedir_fuse_reply__fail __pyx_string_tab[51] #define __pyx_kp_u_fuse_removexattr_fuse_reply__fai __pyx_string_tab[52] #define __pyx_kp_u_fuse_rename_fuse_reply__failed_w __pyx_string_tab[53] #define __pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi __pyx_string_tab[54] #define __pyx_kp_u_fuse_session_mount_failed __pyx_string_tab[55] #define __pyx_kp_u_fuse_session_new_failed __pyx_string_tab[56] #define __pyx_kp_u_fuse_session_receive_buf_failed __pyx_string_tab[57] #define __pyx_kp_u_fuse_setattr_clock_gettime_CLOCK __pyx_string_tab[58] #define __pyx_kp_u_fuse_setattr_fuse_reply__failed __pyx_string_tab[59] #define __pyx_kp_u_fuse_setxattr_fuse_reply__failed __pyx_string_tab[60] #define __pyx_kp_u_fuse_statfs_fuse_reply__failed_w __pyx_string_tab[61] #define __pyx_kp_u_fuse_symlink_fuse_reply__failed __pyx_string_tab[62] #define __pyx_kp_u_fuse_unlink_fuse_reply__failed_w __pyx_string_tab[63] #define __pyx_kp_u_fuse_write_buf_fuse_reply__faile __pyx_string_tab[64] #define __pyx_kp_u_fuse_write_fuse_reply__failed_wi __pyx_string_tab[65] #define __pyx_kp_u_gc __pyx_string_tab[66] #define __pyx_kp_u_isenabled __pyx_string_tab[67] #define __pyx_kp_u_mountpoint__argument_must_be_of __pyx_string_tab[68] #define __pyx_kp_u_name_argument_must_be_of_type_s __pyx_string_tab[69] #define __pyx_kp_u_namespace_parameter_must_be_sys __pyx_string_tab[70] #define __pyx_kp_u_no_default___reduce___due_to_non __pyx_string_tab[71] #define __pyx_kp_u_path_argument_must_be_of_type_s __pyx_string_tab[72] #define __pyx_kp_u_proc_d_status __pyx_string_tab[73] #define __pyx_kp_u_py_retval_was_not_awaited_please __pyx_string_tab[74] #define __pyx_kp_u_pyfuse3_3 __pyx_string_tab[75] #define __pyx_kp_u_pyfuse3___init __pyx_string_tab[76] #define __pyx_kp_u_pyfuse_02d __pyx_string_tab[77] #define __pyx_kp_u_s_No_tasks_waiting_starting_ano __pyx_string_tab[78] #define __pyx_kp_u_s_terminated __pyx_string_tab[79] #define __pyx_kp_u_s_too_many_idle_tasks_d_total_d __pyx_string_tab[80] #define __pyx_kp_u_self_req_cannot_be_converted_to __pyx_string_tab[81] #define __pyx_kp_u_src_pyfuse3___init___pyx __pyx_string_tab[82] #define __pyx_kp_u_src_pyfuse3_handlers_pxi __pyx_string_tab[83] #define __pyx_kp_u_src_pyfuse3_internal_pxi __pyx_string_tab[84] #define __pyx_kp_u_stringsource __pyx_string_tab[85] #define __pyx_kp_u_terminating_notify_thread __pyx_string_tab[86] #define __pyx_kp_u_unknown_flag_s_o __pyx_string_tab[87] #define __pyx_kp_u_us_ascii __pyx_string_tab[88] #define __pyx_n_u_ClosedResourceError __pyx_string_tab[89] #define __pyx_n_u_Container __pyx_string_tab[90] #define __pyx_n_u_Container___reduce_cython __pyx_string_tab[91] #define __pyx_n_u_Container___setstate_cython __pyx_string_tab[92] #define __pyx_n_u_ENOATTR __pyx_string_tab[93] #define __pyx_n_u_EntryAttributes __pyx_string_tab[94] #define __pyx_n_u_EntryAttributes___getstate __pyx_string_tab[95] #define __pyx_n_u_EntryAttributes___reduce_cython __pyx_string_tab[96] #define __pyx_n_u_EntryAttributes___setstate __pyx_string_tab[97] #define __pyx_n_u_EntryAttributes___setstate_cytho __pyx_string_tab[98] #define __pyx_n_u_FUSEError __pyx_string_tab[99] #define __pyx_n_u_FUSEError___reduce_cython __pyx_string_tab[100] #define __pyx_n_u_FUSEError___setstate_cython __pyx_string_tab[101] #define __pyx_n_u_FileHandleT __pyx_string_tab[102] #define __pyx_n_u_FileInfo __pyx_string_tab[103] #define __pyx_n_u_FileInfo___reduce_cython __pyx_string_tab[104] #define __pyx_n_u_FileInfo___setstate_cython __pyx_string_tab[105] #define __pyx_n_u_FileNameT __pyx_string_tab[106] #define __pyx_n_u_FlagT __pyx_string_tab[107] #define __pyx_n_u_InodeT __pyx_string_tab[108] #define __pyx_n_u_Lock __pyx_string_tab[109] #define __pyx_n_u_ModeT __pyx_string_tab[110] #define __pyx_n_u_NANOS_PER_SEC __pyx_string_tab[111] #define __pyx_n_u_O_DIRECTORY __pyx_string_tab[112] #define __pyx_n_u_Operations __pyx_string_tab[113] #define __pyx_n_u_PicklingError __pyx_string_tab[114] #define __pyx_n_u_PollHandle __pyx_string_tab[115] #define __pyx_n_u_PollHandle___getstate __pyx_string_tab[116] #define __pyx_n_u_PollHandle___reduce_cython __pyx_string_tab[117] #define __pyx_n_u_PollHandle___setstate_cython __pyx_string_tab[118] #define __pyx_n_u_PollHandle_notify __pyx_string_tab[119] #define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[120] #define __pyx_n_u_Queue __pyx_string_tab[121] #define __pyx_n_u_RENAME_EXCHANGE __pyx_string_tab[122] #define __pyx_n_u_RENAME_NOREPLACE __pyx_string_tab[123] #define __pyx_n_u_ROOT_INODE __pyx_string_tab[124] #define __pyx_n_u_ReaddirToken __pyx_string_tab[125] #define __pyx_n_u_ReaddirToken___reduce_cython __pyx_string_tab[126] #define __pyx_n_u_ReaddirToken___setstate_cython __pyx_string_tab[127] #define __pyx_n_u_RequestContext __pyx_string_tab[128] #define __pyx_n_u_RequestContext___getstate __pyx_string_tab[129] #define __pyx_n_u_RequestContext___reduce_cython __pyx_string_tab[130] #define __pyx_n_u_RequestContext___setstate_cython __pyx_string_tab[131] #define __pyx_n_u_SetattrFields __pyx_string_tab[132] #define __pyx_n_u_SetattrFields___getstate __pyx_string_tab[133] #define __pyx_n_u_SetattrFields___reduce_cython __pyx_string_tab[134] #define __pyx_n_u_SetattrFields___setstate_cython __pyx_string_tab[135] #define __pyx_n_u_StatvfsData __pyx_string_tab[136] #define __pyx_n_u_StatvfsData___getstate __pyx_string_tab[137] #define __pyx_n_u_StatvfsData___reduce_cython __pyx_string_tab[138] #define __pyx_n_u_StatvfsData___setstate __pyx_string_tab[139] #define __pyx_n_u_StatvfsData___setstate_cython __pyx_string_tab[140] #define __pyx_n_u_Thread __pyx_string_tab[141] #define __pyx_n_u_WorkerData __pyx_string_tab[142] #define __pyx_n_u_WorkerData___reduce_cython __pyx_string_tab[143] #define __pyx_n_u_WorkerData___setstate_cython __pyx_string_tab[144] #define __pyx_n_u_XAttrNameT __pyx_string_tab[145] #define __pyx_n_u__5 __pyx_string_tab[146] #define __pyx_n_u_abspath __pyx_string_tab[147] #define __pyx_n_u_access __pyx_string_tab[148] #define __pyx_n_u_aenter __pyx_string_tab[149] #define __pyx_n_u_aexit __pyx_string_tab[150] #define __pyx_n_u_allowed __pyx_string_tab[151] #define __pyx_n_u_async_wrapper __pyx_string_tab[152] #define __pyx_n_u_asyncio_coroutines __pyx_string_tab[153] #define __pyx_n_u_attr __pyx_string_tab[154] #define __pyx_n_u_attr_only __pyx_string_tab[155] #define __pyx_n_u_attr_timeout __pyx_string_tab[156] #define __pyx_n_u_await __pyx_string_tab[157] #define __pyx_n_u_buf __pyx_string_tab[158] #define __pyx_n_u_bufsize __pyx_string_tab[159] #define __pyx_n_u_bufvec __pyx_string_tab[160] #define __pyx_n_u_c __pyx_string_tab[161] #define __pyx_n_u_cbuf __pyx_string_tab[162] #define __pyx_n_u_cline_in_traceback __pyx_string_tab[163] #define __pyx_n_u_close __pyx_string_tab[164] #define __pyx_n_u_cname __pyx_string_tab[165] #define __pyx_n_u_cnamespace __pyx_string_tab[166] #define __pyx_n_u_cpath __pyx_string_tab[167] #define __pyx_n_u_create __pyx_string_tab[168] #define __pyx_n_u_ctx __pyx_string_tab[169] #define __pyx_n_u_current_task __pyx_string_tab[170] #define __pyx_n_u_current_trio_token __pyx_string_tab[171] #define __pyx_n_u_cvalue __pyx_string_tab[172] #define __pyx_n_u_daemon __pyx_string_tab[173] #define __pyx_n_u_data __pyx_string_tab[174] #define __pyx_n_u_debug __pyx_string_tab[175] #define __pyx_n_u_decode __pyx_string_tab[176] #define __pyx_n_u_default_options __pyx_string_tab[177] #define __pyx_n_u_default_permissions __pyx_string_tab[178] #define __pyx_n_u_deleted __pyx_string_tab[179] #define __pyx_n_u_dict __pyx_string_tab[180] #define __pyx_n_u_dict_2 __pyx_string_tab[181] #define __pyx_n_u_direct_io __pyx_string_tab[182] #define __pyx_n_u_dirp __pyx_string_tab[183] #define __pyx_n_u_e __pyx_string_tab[184] #define __pyx_n_u_enable_acl __pyx_string_tab[185] #define __pyx_n_u_enable_writeback_cache __pyx_string_tab[186] #define __pyx_n_u_encode __pyx_string_tab[187] #define __pyx_n_u_enter __pyx_string_tab[188] #define __pyx_n_u_entry __pyx_string_tab[189] #define __pyx_n_u_entry_timeout __pyx_string_tab[190] #define __pyx_n_u_enumerate __pyx_string_tab[191] #define __pyx_n_u_errno __pyx_string_tab[192] #define __pyx_n_u_error __pyx_string_tab[193] #define __pyx_n_u_exc __pyx_string_tab[194] #define __pyx_n_u_exception __pyx_string_tab[195] #define __pyx_n_u_exit __pyx_string_tab[196] #define __pyx_n_u_f_args __pyx_string_tab[197] #define __pyx_n_u_f_bavail __pyx_string_tab[198] #define __pyx_n_u_f_bfree __pyx_string_tab[199] #define __pyx_n_u_f_blocks __pyx_string_tab[200] #define __pyx_n_u_f_bsize __pyx_string_tab[201] #define __pyx_n_u_f_favail __pyx_string_tab[202] #define __pyx_n_u_f_ffree __pyx_string_tab[203] #define __pyx_n_u_f_files __pyx_string_tab[204] #define __pyx_n_u_f_frsize __pyx_string_tab[205] #define __pyx_n_u_f_namemax __pyx_string_tab[206] #define __pyx_n_u_fd __pyx_string_tab[207] #define __pyx_n_u_fh __pyx_string_tab[208] #define __pyx_n_u_fi __pyx_string_tab[209] #define __pyx_n_u_fields __pyx_string_tab[210] #define __pyx_n_u_flags __pyx_string_tab[211] #define __pyx_n_u_flush __pyx_string_tab[212] #define __pyx_n_u_forget __pyx_string_tab[213] #define __pyx_n_u_fse __pyx_string_tab[214] #define __pyx_n_u_fsync __pyx_string_tab[215] #define __pyx_n_u_fsyncdir __pyx_string_tab[216] #define __pyx_n_u_func __pyx_string_tab[217] #define __pyx_n_u_fuse_access_async __pyx_string_tab[218] #define __pyx_n_u_fuse_create_async __pyx_string_tab[219] #define __pyx_n_u_fuse_flush_async __pyx_string_tab[220] #define __pyx_n_u_fuse_fsync_async __pyx_string_tab[221] #define __pyx_n_u_fuse_fsyncdir_async __pyx_string_tab[222] #define __pyx_n_u_fuse_getattr_async __pyx_string_tab[223] #define __pyx_n_u_fuse_getxattr_async __pyx_string_tab[224] #define __pyx_n_u_fuse_link_async __pyx_string_tab[225] #define __pyx_n_u_fuse_listxattr_async __pyx_string_tab[226] #define __pyx_n_u_fuse_lookup_async __pyx_string_tab[227] #define __pyx_n_u_fuse_mkdir_async __pyx_string_tab[228] #define __pyx_n_u_fuse_mknod_async __pyx_string_tab[229] #define __pyx_n_u_fuse_open_async __pyx_string_tab[230] #define __pyx_n_u_fuse_opendir_async __pyx_string_tab[231] #define __pyx_n_u_fuse_poll_async __pyx_string_tab[232] #define __pyx_n_u_fuse_read_async __pyx_string_tab[233] #define __pyx_n_u_fuse_readdirplus_async __pyx_string_tab[234] #define __pyx_n_u_fuse_readlink_async __pyx_string_tab[235] #define __pyx_n_u_fuse_release_async __pyx_string_tab[236] #define __pyx_n_u_fuse_releasedir_async __pyx_string_tab[237] #define __pyx_n_u_fuse_removexattr_async __pyx_string_tab[238] #define __pyx_n_u_fuse_rename_async __pyx_string_tab[239] #define __pyx_n_u_fuse_rmdir_async __pyx_string_tab[240] #define __pyx_n_u_fuse_setattr_async __pyx_string_tab[241] #define __pyx_n_u_fuse_setxattr_async __pyx_string_tab[242] #define __pyx_n_u_fuse_stacktrace __pyx_string_tab[243] #define __pyx_n_u_fuse_statfs_async __pyx_string_tab[244] #define __pyx_n_u_fuse_symlink_async __pyx_string_tab[245] #define __pyx_n_u_fuse_unlink_async __pyx_string_tab[246] #define __pyx_n_u_fuse_write_async __pyx_string_tab[247] #define __pyx_n_u_fuse_write_buf_async __pyx_string_tab[248] #define __pyx_n_u_g __pyx_string_tab[249] #define __pyx_n_u_generation __pyx_string_tab[250] #define __pyx_n_u_get __pyx_string_tab[251] #define __pyx_n_u_getLogger __pyx_string_tab[252] #define __pyx_n_u_get_sup_groups __pyx_string_tab[253] #define __pyx_n_u_getattr __pyx_string_tab[254] #define __pyx_n_u_getfilesystemencoding __pyx_string_tab[255] #define __pyx_n_u_getstate __pyx_string_tab[256] #define __pyx_n_u_getxattr __pyx_string_tab[257] #define __pyx_n_u_gids __pyx_string_tab[258] #define __pyx_n_u_ignore_enoent __pyx_string_tab[259] #define __pyx_n_u_init __pyx_string_tab[260] #define __pyx_n_u_ino __pyx_string_tab[261] #define __pyx_n_u_inode __pyx_string_tab[262] #define __pyx_n_u_inode_p __pyx_string_tab[263] #define __pyx_n_u_invalidate_entry __pyx_string_tab[264] #define __pyx_n_u_invalidate_entry_async __pyx_string_tab[265] #define __pyx_n_u_invalidate_inode __pyx_string_tab[266] #define __pyx_n_u_is_coroutine __pyx_string_tab[267] #define __pyx_n_u_items __pyx_string_tab[268] #define __pyx_n_u_join __pyx_string_tab[269] #define __pyx_n_u_k __pyx_string_tab[270] #define __pyx_n_u_keep_cache __pyx_string_tab[271] #define __pyx_n_u_len __pyx_string_tab[272] #define __pyx_n_u_len_s __pyx_string_tab[273] #define __pyx_n_u_line __pyx_string_tab[274] #define __pyx_n_u_link __pyx_string_tab[275] #define __pyx_n_u_listdir __pyx_string_tab[276] #define __pyx_n_u_listxattr __pyx_string_tab[277] #define __pyx_n_u_log __pyx_string_tab[278] #define __pyx_n_u_logging __pyx_string_tab[279] #define __pyx_n_u_lookup __pyx_string_tab[280] #define __pyx_n_u_lowlevel __pyx_string_tab[281] #define __pyx_n_u_main __pyx_string_tab[282] #define __pyx_n_u_main_2 __pyx_string_tab[283] #define __pyx_n_u_mask __pyx_string_tab[284] #define __pyx_n_u_max_tasks __pyx_string_tab[285] #define __pyx_n_u_min_tasks __pyx_string_tab[286] #define __pyx_n_u_mkdir __pyx_string_tab[287] #define __pyx_n_u_mknod __pyx_string_tab[288] #define __pyx_n_u_module __pyx_string_tab[289] #define __pyx_n_u_mountpoint __pyx_string_tab[290] #define __pyx_n_u_name __pyx_string_tab[291] #define __pyx_n_u_name_2 __pyx_string_tab[292] #define __pyx_n_u_name_b __pyx_string_tab[293] #define __pyx_n_u_names __pyx_string_tab[294] #define __pyx_n_u_namespace __pyx_string_tab[295] #define __pyx_n_u_new __pyx_string_tab[296] #define __pyx_n_u_newname __pyx_string_tab[297] #define __pyx_n_u_newparent __pyx_string_tab[298] #define __pyx_n_u_next __pyx_string_tab[299] #define __pyx_n_u_next_id __pyx_string_tab[300] #define __pyx_n_u_nonseekable __pyx_string_tab[301] #define __pyx_n_u_notify __pyx_string_tab[302] #define __pyx_n_u_notify_closing __pyx_string_tab[303] #define __pyx_n_u_notify_loop __pyx_string_tab[304] #define __pyx_n_u_notify_store __pyx_string_tab[305] #define __pyx_n_u_now __pyx_string_tab[306] #define __pyx_n_u_nursery __pyx_string_tab[307] #define __pyx_n_u_off __pyx_string_tab[308] #define __pyx_n_u_offset __pyx_string_tab[309] #define __pyx_n_u_open __pyx_string_tab[310] #define __pyx_n_u_open_nursery __pyx_string_tab[311] #define __pyx_n_u_opendir __pyx_string_tab[312] #define __pyx_n_u_ops __pyx_string_tab[313] #define __pyx_n_u_options __pyx_string_tab[314] #define __pyx_n_u_os __pyx_string_tab[315] #define __pyx_n_u_os_path __pyx_string_tab[316] #define __pyx_n_u_path __pyx_string_tab[317] #define __pyx_n_u_path_b __pyx_string_tab[318] #define __pyx_n_u_pbuf __pyx_string_tab[319] #define __pyx_n_u_pickle __pyx_string_tab[320] #define __pyx_n_u_pid __pyx_string_tab[321] #define __pyx_n_u_poll __pyx_string_tab[322] #define __pyx_n_u_pop __pyx_string_tab[323] #define __pyx_n_u_put __pyx_string_tab[324] #define __pyx_n_u_py_ph __pyx_string_tab[325] #define __pyx_n_u_pybuf __pyx_string_tab[326] #define __pyx_n_u_pyfuse3 __pyx_string_tab[327] #define __pyx_n_u_pyfuse3_2 __pyx_string_tab[328] #define __pyx_n_u_pyx_checksum __pyx_string_tab[329] #define __pyx_n_u_pyx_result __pyx_string_tab[330] #define __pyx_n_u_pyx_state __pyx_string_tab[331] #define __pyx_n_u_pyx_type __pyx_string_tab[332] #define __pyx_n_u_pyx_unpickle_RequestContext __pyx_string_tab[333] #define __pyx_n_u_pyx_unpickle__WorkerData __pyx_string_tab[334] #define __pyx_n_u_pyx_vtable __pyx_string_tab[335] #define __pyx_n_u_qualname __pyx_string_tab[336] #define __pyx_n_u_queue __pyx_string_tab[337] #define __pyx_n_u_r __pyx_string_tab[338] #define __pyx_n_u_read __pyx_string_tab[339] #define __pyx_n_u_readdir __pyx_string_tab[340] #define __pyx_n_u_readdir_reply __pyx_string_tab[341] #define __pyx_n_u_readlink __pyx_string_tab[342] #define __pyx_n_u_reduce __pyx_string_tab[343] #define __pyx_n_u_reduce_cython __pyx_string_tab[344] #define __pyx_n_u_reduce_ex __pyx_string_tab[345] #define __pyx_n_u_release __pyx_string_tab[346] #define __pyx_n_u_releasedir __pyx_string_tab[347] #define __pyx_n_u_removexattr __pyx_string_tab[348] #define __pyx_n_u_rename __pyx_string_tab[349] #define __pyx_n_u_req __pyx_string_tab[350] #define __pyx_n_u_res __pyx_string_tab[351] #define __pyx_n_u_result __pyx_string_tab[352] #define __pyx_n_u_ret __pyx_string_tab[353] #define __pyx_n_u_revents __pyx_string_tab[354] #define __pyx_n_u_rmdir __pyx_string_tab[355] #define __pyx_n_u_self __pyx_string_tab[356] #define __pyx_n_u_send __pyx_string_tab[357] #define __pyx_n_u_session_loop __pyx_string_tab[358] #define __pyx_n_u_set_name __pyx_string_tab[359] #define __pyx_n_u_setattr __pyx_string_tab[360] #define __pyx_n_u_setdefault __pyx_string_tab[361] #define __pyx_n_u_setstate __pyx_string_tab[362] #define __pyx_n_u_setstate_cython __pyx_string_tab[363] #define __pyx_n_u_setxattr __pyx_string_tab[364] #define __pyx_n_u_size_guess __pyx_string_tab[365] #define __pyx_n_u_slen __pyx_string_tab[366] #define __pyx_n_u_split __pyx_string_tab[367] #define __pyx_n_u_st_atime_ns __pyx_string_tab[368] #define __pyx_n_u_st_birthtime_ns __pyx_string_tab[369] #define __pyx_n_u_st_blksize __pyx_string_tab[370] #define __pyx_n_u_st_blocks __pyx_string_tab[371] #define __pyx_n_u_st_ctime_ns __pyx_string_tab[372] #define __pyx_n_u_st_gid __pyx_string_tab[373] #define __pyx_n_u_st_ino __pyx_string_tab[374] #define __pyx_n_u_st_mode __pyx_string_tab[375] #define __pyx_n_u_st_mtime_ns __pyx_string_tab[376] #define __pyx_n_u_st_nlink __pyx_string_tab[377] #define __pyx_n_u_st_rdev __pyx_string_tab[378] #define __pyx_n_u_st_size __pyx_string_tab[379] #define __pyx_n_u_st_uid __pyx_string_tab[380] #define __pyx_n_u_stacktrace __pyx_string_tab[381] #define __pyx_n_u_start __pyx_string_tab[382] #define __pyx_n_u_start_soon __pyx_string_tab[383] #define __pyx_n_u_startswith __pyx_string_tab[384] #define __pyx_n_u_state __pyx_string_tab[385] #define __pyx_n_u_statfs __pyx_string_tab[386] #define __pyx_n_u_stats __pyx_string_tab[387] #define __pyx_n_u_strerror __pyx_string_tab[388] #define __pyx_n_u_supports_dot_lookup __pyx_string_tab[389] #define __pyx_n_u_surrogateescape __pyx_string_tab[390] #define __pyx_n_u_symlink __pyx_string_tab[391] #define __pyx_n_u_syncfs __pyx_string_tab[392] #define __pyx_n_u_sys __pyx_string_tab[393] #define __pyx_n_u_system __pyx_string_tab[394] #define __pyx_n_u_t __pyx_string_tab[395] #define __pyx_n_u_target __pyx_string_tab[396] #define __pyx_n_u_terminate __pyx_string_tab[397] #define __pyx_n_u_test __pyx_string_tab[398] #define __pyx_n_u_threading __pyx_string_tab[399] #define __pyx_n_u_throw __pyx_string_tab[400] #define __pyx_n_u_tmp __pyx_string_tab[401] #define __pyx_n_u_to_set __pyx_string_tab[402] #define __pyx_n_u_token __pyx_string_tab[403] #define __pyx_n_u_trio __pyx_string_tab[404] #define __pyx_n_u_trio_token __pyx_string_tab[405] #define __pyx_n_u_typing __pyx_string_tab[406] #define __pyx_n_u_unlink __pyx_string_tab[407] #define __pyx_n_u_unmount __pyx_string_tab[408] #define __pyx_n_u_update __pyx_string_tab[409] #define __pyx_n_u_use_setstate __pyx_string_tab[410] #define __pyx_n_u_user __pyx_string_tab[411] #define __pyx_n_u_v __pyx_string_tab[412] #define __pyx_n_u_value __pyx_string_tab[413] #define __pyx_n_u_values __pyx_string_tab[414] #define __pyx_n_u_version __pyx_string_tab[415] #define __pyx_n_u_wait_fuse_readable __pyx_string_tab[416] #define __pyx_n_u_wait_readable __pyx_string_tab[417] #define __pyx_n_u_write __pyx_string_tab[418] #define __pyx_n_u_x __pyx_string_tab[419] #define __pyx_kp_b_ __pyx_string_tab[420] #define __pyx_kp_b_iso88591_0_avQgQ_1_q_1_q_a_q_5_uAXQ_AQa __pyx_string_tab[421] #define __pyx_kp_b_iso88591_0_t_QfA_iq_t_QfA_iq_z_1_j_1_z_A __pyx_string_tab[422] #define __pyx_kp_b_iso88591_0_uKs_wa_WE_AQ_vU_Q_m1_uBe1_q_d __pyx_string_tab[423] #define __pyx_kp_b_iso88591_5QL_1F_7_1_9A_q_Qiy_PQ_4s_5_HAQ __pyx_string_tab[424] #define __pyx_kp_b_iso88591_5_vRq_q_4s_xxvYa __pyx_string_tab[425] #define __pyx_kp_b_iso88591_AV1 __pyx_string_tab[426] #define __pyx_kp_b_iso88591_A_4uCq_aq_1D_4s_5_Gr_QRRSST __pyx_string_tab[427] #define __pyx_kp_b_iso88591_A_A_E_N_1_Q_wavQ_q __pyx_string_tab[428] #define __pyx_kp_b_iso88591_A_A_E_Q_k_A_wavQ_q __pyx_string_tab[429] #define __pyx_kp_b_iso88591_A_RvU_1F_Q __pyx_string_tab[430] #define __pyx_kp_b_iso88591_A_m1A __pyx_string_tab[431] #define __pyx_kp_b_iso88591_Q __pyx_string_tab[432] #define __pyx_kp_b_iso88591_Q0_S_6_Q_IWAWA_1_q_Ry_iq __pyx_string_tab[433] #define __pyx_kp_b_iso88591_Q_xq_HA_t_aq_a_4Bb_a_T_r_D_AQ_1 __pyx_string_tab[434] #define __pyx_kp_b_iso88591_Qa __pyx_string_tab[435] #define __pyx_kp_b_iso88591_T_l_m4q_G1F_a_vWE_Q_q_t_gQ_q_D __pyx_string_tab[436] #define __pyx_kp_b_iso88591_T_t6_V4q_G1F_a_vWE_Q_q_q_q_t1G __pyx_string_tab[437] #define __pyx_kp_b_iso88591__6 __pyx_string_tab[438] #define __pyx_kp_b_iso88591__7 __pyx_string_tab[439] #define __pyx_kp_b_iso88591__8 __pyx_string_tab[440] #define __pyx_kp_b_iso88591_a __pyx_string_tab[441] #define __pyx_kp_b_iso88591_a_t_QfA_iq_t_QfA_iq_z_1_j_1_z_A __pyx_string_tab[442] #define __pyx_kp_b_iso88591_m4q_4s_vQa_2_AYfA_A_T_1E_Qa_Qd __pyx_string_tab[443] #define __pyx_kp_b_iso88591_q_0_kQR_7_0_1B_PQ_1 __pyx_string_tab[444] #define __pyx_kp_b_iso88591_q_0_kQR_haq_7_QnN_1 __pyx_string_tab[445] #define __pyx_kp_b_iso88591_q_6_AQ_vQa_1_a __pyx_string_tab[446] #define __pyx_kp_b_iso88591_q_q_2_9HCq_2_9G3a_t3a_gQau_J_HT __pyx_string_tab[447] #define __pyx_kp_b_iso88591_t_QfA_iq_Yaq_uCq_gV886_a_HAQ_4s __pyx_string_tab[448] #define __pyx_kp_b_iso88591_vQa_t_Ql_iq_Q_9ARuHAQ_9AQ_vQa_a __pyx_string_tab[449] #define __pyx_kp_b_o __pyx_string_tab[450] #define __pyx_n_b_pyfuse3 __pyx_string_tab[451] #define __pyx_int_0 __pyx_number_tab[0] #define __pyx_int_1 __pyx_number_tab[1] #define __pyx_int_44617694 __pyx_number_tab[2] #define __pyx_int_240542287 __pyx_number_tab[3] #define __pyx_int_1000000000 __pyx_number_tab[4] /* #### Code section: module_state_clear ### */ #if CYTHON_USE_MODULE_STATE static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { __pyx_mstatetype *clear_module_state = __Pyx_PyModule_GetState(m); if (!clear_module_state) return 0; Py_CLEAR(clear_module_state->__pyx_d); Py_CLEAR(clear_module_state->__pyx_b); Py_CLEAR(clear_module_state->__pyx_cython_runtime); Py_CLEAR(clear_module_state->__pyx_empty_tuple); Py_CLEAR(clear_module_state->__pyx_empty_bytes); Py_CLEAR(clear_module_state->__pyx_empty_unicode); #if CYTHON_PEP489_MULTI_PHASE_INIT __Pyx_State_RemoveModule(NULL); #endif Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3__Container); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3__Container); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_ReaddirToken); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_ReaddirToken); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3__WorkerData); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3__WorkerData); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_RequestContext); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_RequestContext); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_SetattrFields); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_SetattrFields); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_EntryAttributes); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_EntryAttributes); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_FileInfo); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_FileInfo); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_StatvfsData); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_StatvfsData); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_FUSEError); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_FUSEError); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3_PollHandle); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3_PollHandle); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_defaults); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_defaults); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_poll_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_29_fuse_create_async); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_31__session_loop); Py_CLEAR(clear_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main); Py_CLEAR(clear_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_32_main); for (int i=0; i<1; ++i) { Py_CLEAR(clear_module_state->__pyx_slice[i]); } for (int i=0; i<8; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); } for (int i=0; i<77; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } for (int i=0; i<452; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } for (int i=0; i<5; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_clear_contents ### */ /* CommonTypesMetaclass.module_state_clear */ Py_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType); /* Coroutine.module_state_clear */ Py_CLEAR(clear_module_state->__pyx_CoroutineType); Py_CLEAR(clear_module_state->__pyx_CoroutineAwaitType); /* CythonFunctionShared.module_state_clear */ Py_CLEAR(clear_module_state->__pyx_CyFunctionType); /* #### Code section: module_state_clear_end ### */ return 0; } #endif /* #### Code section: module_state_traverse ### */ #if CYTHON_USE_MODULE_STATE static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { __pyx_mstatetype *traverse_module_state = __Pyx_PyModule_GetState(m); if (!traverse_module_state) return 0; Py_VISIT(traverse_module_state->__pyx_d); Py_VISIT(traverse_module_state->__pyx_b); Py_VISIT(traverse_module_state->__pyx_cython_runtime); __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_tuple); __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_bytes); __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_unicode); Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3__Container); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3__Container); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_ReaddirToken); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_ReaddirToken); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3__WorkerData); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3__WorkerData); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_RequestContext); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_RequestContext); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_SetattrFields); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_SetattrFields); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_EntryAttributes); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_EntryAttributes); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_FileInfo); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_FileInfo); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_StatvfsData); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_StatvfsData); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_FUSEError); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_FUSEError); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3_PollHandle); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3_PollHandle); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_defaults); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_defaults); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_poll_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_29_fuse_create_async); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_31__session_loop); Py_VISIT(traverse_module_state->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main); Py_VISIT(traverse_module_state->__pyx_type_7pyfuse3___pyx_scope_struct_32_main); for (int i=0; i<1; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_slice[i]); } for (int i=0; i<8; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); } for (int i=0; i<77; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } for (int i=0; i<452; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } for (int i=0; i<5; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_traverse_contents ### */ /* CommonTypesMetaclass.module_state_traverse */ Py_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType); /* Coroutine.module_state_traverse */ Py_VISIT(traverse_module_state->__pyx_CoroutineType); Py_VISIT(traverse_module_state->__pyx_CoroutineAwaitType); /* CythonFunctionShared.module_state_traverse */ Py_VISIT(traverse_module_state->__pyx_CyFunctionType); /* #### Code section: module_state_traverse_end ### */ return 0; } #endif /* #### Code section: module_code ### */ /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_10_Container_1__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_10_Container_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10_Container_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_10_Container_1__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_10_Container___reduce_cython__(((struct __pyx_obj_7pyfuse3__Container *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_10_Container___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3__Container *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_req_cannot_be_converted_to, 0, 0); __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3._Container.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_10_Container_3__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_10_Container_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10_Container_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_10_Container_3__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 3, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 3, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 3, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) } __pyx_v___pyx_state = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 3, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3._Container.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_10_Container_2__setstate_cython__(((struct __pyx_obj_7pyfuse3__Container *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_10_Container_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3__Container *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "self.req cannot be converted to a Python object for pickling" # <<<<<<<<<<<<<< */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_req_cannot_be_converted_to, 0, 0); __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3._Container.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":33 * cdef uint64_t fh * * cdef void fuse_init (void *userdata, fuse_conn_info *conn): # <<<<<<<<<<<<<< * if not conn.capable & FUSE_CAP_READDIRPLUS: * raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') */ static void __pyx_f_7pyfuse3_fuse_init(CYTHON_UNUSED void *__pyx_v_userdata, struct fuse_conn_info *__pyx_v_conn) { __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_init", 0); /* "src/pyfuse3/handlers.pxi":34 * * cdef void fuse_init (void *userdata, fuse_conn_info *conn): * if not conn.capable & FUSE_CAP_READDIRPLUS: # <<<<<<<<<<<<<< * raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) */ __pyx_t_1 = (!((__pyx_v_conn->capable & FUSE_CAP_READDIRPLUS) != 0)); if (unlikely(__pyx_t_1)) { /* "src/pyfuse3/handlers.pxi":35 * cdef void fuse_init (void *userdata, fuse_conn_info *conn): * if not conn.capable & FUSE_CAP_READDIRPLUS: * raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') # <<<<<<<<<<<<<< * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) * */ __pyx_t_3 = NULL; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Kernel_too_old_pyfuse3_requires}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(3, 35, __pyx_L1_error) /* "src/pyfuse3/handlers.pxi":34 * * cdef void fuse_init (void *userdata, fuse_conn_info *conn): * if not conn.capable & FUSE_CAP_READDIRPLUS: # <<<<<<<<<<<<<< * raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) */ } /* "src/pyfuse3/handlers.pxi":36 * if not conn.capable & FUSE_CAP_READDIRPLUS: * raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) # <<<<<<<<<<<<<< * * if (operations.supports_dot_lookup and */ __pyx_v_conn->want = (__pyx_v_conn->want & (~((unsigned int)FUSE_CAP_READDIRPLUS_AUTO))); /* "src/pyfuse3/handlers.pxi":38 * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) * * if (operations.supports_dot_lookup and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_mstate_global->__pyx_n_u_supports_dot_lookup); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(3, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { } else { __pyx_t_1 = __pyx_t_5; goto __pyx_L5_bool_binop_done; } /* "src/pyfuse3/handlers.pxi":39 * * if (operations.supports_dot_lookup and * conn.capable & FUSE_CAP_EXPORT_SUPPORT): # <<<<<<<<<<<<<< * conn.want |= FUSE_CAP_EXPORT_SUPPORT * if (operations.enable_writeback_cache and */ __pyx_t_5 = ((__pyx_v_conn->capable & FUSE_CAP_EXPORT_SUPPORT) != 0); __pyx_t_1 = __pyx_t_5; __pyx_L5_bool_binop_done:; /* "src/pyfuse3/handlers.pxi":38 * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) * * if (operations.supports_dot_lookup and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT */ if (__pyx_t_1) { /* "src/pyfuse3/handlers.pxi":40 * if (operations.supports_dot_lookup and * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT # <<<<<<<<<<<<<< * if (operations.enable_writeback_cache and * conn.capable & FUSE_CAP_WRITEBACK_CACHE): */ __pyx_v_conn->want = (__pyx_v_conn->want | FUSE_CAP_EXPORT_SUPPORT); /* "src/pyfuse3/handlers.pxi":38 * conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) * * if (operations.supports_dot_lookup and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT */ } /* "src/pyfuse3/handlers.pxi":41 * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT * if (operations.enable_writeback_cache and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_mstate_global->__pyx_n_u_enable_writeback_cache); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(3, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { } else { __pyx_t_1 = __pyx_t_5; goto __pyx_L8_bool_binop_done; } /* "src/pyfuse3/handlers.pxi":42 * conn.want |= FUSE_CAP_EXPORT_SUPPORT * if (operations.enable_writeback_cache and * conn.capable & FUSE_CAP_WRITEBACK_CACHE): # <<<<<<<<<<<<<< * conn.want |= FUSE_CAP_WRITEBACK_CACHE * if (operations.enable_acl and */ __pyx_t_5 = ((__pyx_v_conn->capable & FUSE_CAP_WRITEBACK_CACHE) != 0); __pyx_t_1 = __pyx_t_5; __pyx_L8_bool_binop_done:; /* "src/pyfuse3/handlers.pxi":41 * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT * if (operations.enable_writeback_cache and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE */ if (__pyx_t_1) { /* "src/pyfuse3/handlers.pxi":43 * if (operations.enable_writeback_cache and * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE # <<<<<<<<<<<<<< * if (operations.enable_acl and * conn.capable & FUSE_CAP_POSIX_ACL): */ __pyx_v_conn->want = (__pyx_v_conn->want | FUSE_CAP_WRITEBACK_CACHE); /* "src/pyfuse3/handlers.pxi":41 * conn.capable & FUSE_CAP_EXPORT_SUPPORT): * conn.want |= FUSE_CAP_EXPORT_SUPPORT * if (operations.enable_writeback_cache and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE */ } /* "src/pyfuse3/handlers.pxi":44 * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE * if (operations.enable_acl and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_POSIX_ACL): * conn.want |= FUSE_CAP_POSIX_ACL */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_7pyfuse3_operations, __pyx_mstate_global->__pyx_n_u_enable_acl); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(3, 44, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { } else { __pyx_t_1 = __pyx_t_5; goto __pyx_L11_bool_binop_done; } /* "src/pyfuse3/handlers.pxi":45 * conn.want |= FUSE_CAP_WRITEBACK_CACHE * if (operations.enable_acl and * conn.capable & FUSE_CAP_POSIX_ACL): # <<<<<<<<<<<<<< * conn.want |= FUSE_CAP_POSIX_ACL * */ __pyx_t_5 = ((__pyx_v_conn->capable & FUSE_CAP_POSIX_ACL) != 0); __pyx_t_1 = __pyx_t_5; __pyx_L11_bool_binop_done:; /* "src/pyfuse3/handlers.pxi":44 * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE * if (operations.enable_acl and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_POSIX_ACL): * conn.want |= FUSE_CAP_POSIX_ACL */ if (__pyx_t_1) { /* "src/pyfuse3/handlers.pxi":46 * if (operations.enable_acl and * conn.capable & FUSE_CAP_POSIX_ACL): * conn.want |= FUSE_CAP_POSIX_ACL # <<<<<<<<<<<<<< * * # Blocking rather than async, in case we decide to let the */ __pyx_v_conn->want = (__pyx_v_conn->want | FUSE_CAP_POSIX_ACL); /* "src/pyfuse3/handlers.pxi":44 * conn.capable & FUSE_CAP_WRITEBACK_CACHE): * conn.want |= FUSE_CAP_WRITEBACK_CACHE * if (operations.enable_acl and # <<<<<<<<<<<<<< * conn.capable & FUSE_CAP_POSIX_ACL): * conn.want |= FUSE_CAP_POSIX_ACL */ } /* "src/pyfuse3/handlers.pxi":50 * # Blocking rather than async, in case we decide to let the * # init handler modify `conn` in the future. * operations.init() # <<<<<<<<<<<<<< * * cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent, */ __pyx_t_3 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_init, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "src/pyfuse3/handlers.pxi":33 * cdef uint64_t fh * * cdef void fuse_init (void *userdata, fuse_conn_info *conn): # <<<<<<<<<<<<<< * if not conn.capable & FUSE_CAP_READDIRPLUS: * raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.fuse_init", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_RefNannyFinishContext(); } /* "src/pyfuse3/handlers.pxi":52 * operations.init() * * cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent, # <<<<<<<<<<<<<< * const_char *name): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_lookup(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_lookup", 0); /* "src/pyfuse3/handlers.pxi":54 * cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent, * const_char *name): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 54, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":55 * const_char *name): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":56 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->parent = __pyx_v_parent; /* "src/pyfuse3/handlers.pxi":57 * c.req = req * c.parent = parent * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_lookup_async (_Container c, name): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_lookup_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_t_5}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 57, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":52 * operations.init() * * cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent, # <<<<<<<<<<<<<< * const_char *name): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":59 * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) * * async def fuse_lookup_async (_Container c, name): # <<<<<<<<<<<<<< * cdef EntryAttributes entry * cdef int ret */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_1fuse_lookup_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_1fuse_lookup_async = {"fuse_lookup_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_1fuse_lookup_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_1fuse_lookup_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_lookup_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 59, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 59, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 59, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_lookup_async", 0) < (0)) __PYX_ERR(3, 59, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_lookup_async", 1, 2, 2, i); __PYX_ERR(3, 59, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 59, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 59, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_lookup_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 59, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_lookup_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 59, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_fuse_lookup_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_fuse_lookup_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_lookup_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct__fuse_lookup_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 59, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_2generator, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_lookup_async, __pyx_mstate_global->__pyx_n_u_fuse_lookup_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 59, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_lookup_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; __Pyx_PySendResult __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_lookup_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 59, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":63 * cdef int ret * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * entry = await operations.lookup( */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":64 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.lookup( * c.parent, name, ctx) */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":65 * ctx = get_request_context(c.req) * try: * entry = await operations.lookup( # <<<<<<<<<<<<<< * c.parent, name, ctx) * except FUSEError as e: */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); /* "src/pyfuse3/handlers.pxi":66 * try: * entry = await operations.lookup( * c.parent, name, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 66, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lookup, __pyx_callargs+__pyx_t_7, (4-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 65, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 65, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 65, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":65 * ctx = get_request_context(c.req) * try: * entry = await operations.lookup( # <<<<<<<<<<<<<< * c.parent, name, ctx) * except FUSEError as e: */ if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(3, 65, __pyx_L4_error) __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":64 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.lookup( * c.parent, name, ctx) */ } /* "src/pyfuse3/handlers.pxi":70 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_entry(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_entry->fuse_param)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":67 * entry = await operations.lookup( * c.parent, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_lookup_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(3, 67, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/pyfuse3/handlers.pxi":68 * c.parent, name, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) */ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 68, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = __Pyx_PyLong_As_int(__pyx_t_10); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 68, __pyx_L16_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/pyfuse3/handlers.pxi":67 * entry = await operations.lookup( * c.parent, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":64 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.lookup( * c.parent, name, ctx) */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":72 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_lookup(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":73 * * if ret != 0: * log.error('fuse_lookup(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_1 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10); assert(__pyx_t_1); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_fuse_lookup_fuse_reply__failed_w, __pyx_t_6}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":72 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_lookup(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":59 * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) * * async def fuse_lookup_async (_Container c, name): # <<<<<<<<<<<<<< * cdef EntryAttributes entry * cdef int ret */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_lookup_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":76 * * * cdef void fuse_forget (fuse_req_t req, fuse_ino_t ino, # <<<<<<<<<<<<<< * uint64_t nlookup): * save_retval(operations.forget([(ino, nlookup)])) */ static void __pyx_f_7pyfuse3_fuse_forget(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, uint64_t __pyx_v_nlookup) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; size_t __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_forget", 0); /* "src/pyfuse3/handlers.pxi":78 * cdef void fuse_forget (fuse_req_t req, fuse_ino_t ino, * uint64_t nlookup): * save_retval(operations.forget([(ino, nlookup)])) # <<<<<<<<<<<<<< * fuse_reply_none(req) * */ __pyx_t_2 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyLong_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyLong_From_uint64_t(__pyx_v_nlookup); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3) != (0)) __PYX_ERR(3, 78, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(3, 78, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 78, __pyx_L1_error); __pyx_t_5 = 0; __pyx_t_6 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_forget, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":79 * uint64_t nlookup): * save_retval(operations.forget([(ino, nlookup)])) * fuse_reply_none(req) # <<<<<<<<<<<<<< * * */ fuse_reply_none(__pyx_v_req); /* "src/pyfuse3/handlers.pxi":76 * * * cdef void fuse_forget (fuse_req_t req, fuse_ino_t ino, # <<<<<<<<<<<<<< * uint64_t nlookup): * save_retval(operations.forget([(ino, nlookup)])) */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_forget", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_RefNannyFinishContext(); } /* "src/pyfuse3/handlers.pxi":82 * * * cdef void fuse_forget_multi(fuse_req_t req, size_t count, # <<<<<<<<<<<<<< * fuse_forget_data *forgets): * forget_list = list() */ static void __pyx_f_7pyfuse3_fuse_forget_multi(fuse_req_t __pyx_v_req, size_t __pyx_v_count, struct fuse_forget_data *__pyx_v_forgets) { PyObject *__pyx_v_forget_list = NULL; struct fuse_forget_data __pyx_v_el; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; struct fuse_forget_data *__pyx_t_2; struct fuse_forget_data *__pyx_t_3; struct fuse_forget_data *__pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_forget_multi", 0); /* "src/pyfuse3/handlers.pxi":84 * cdef void fuse_forget_multi(fuse_req_t req, size_t count, * fuse_forget_data *forgets): * forget_list = list() # <<<<<<<<<<<<<< * for el in forgets[:count]: * forget_list.append((el.ino, el.nlookup)) */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_forget_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":85 * fuse_forget_data *forgets): * forget_list = list() * for el in forgets[:count]: # <<<<<<<<<<<<<< * forget_list.append((el.ino, el.nlookup)) * save_retval(operations.forget(forget_list)) */ __pyx_t_3 = (__pyx_v_forgets + __pyx_v_count); for (__pyx_t_4 = __pyx_v_forgets; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { __pyx_t_2 = __pyx_t_4; __pyx_v_el = (__pyx_t_2[0]); /* "src/pyfuse3/handlers.pxi":86 * forget_list = list() * for el in forgets[:count]: * forget_list.append((el.ino, el.nlookup)) # <<<<<<<<<<<<<< * save_retval(operations.forget(forget_list)) * fuse_reply_none(req) */ __pyx_t_1 = __Pyx_PyLong_From_fuse_ino_t(__pyx_v_el.ino); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyLong_From_uint64_t(__pyx_v_el.nlookup); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(3, 86, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 86, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_forget_list, __pyx_t_6); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(3, 86, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } /* "src/pyfuse3/handlers.pxi":87 * for el in forgets[:count]: * forget_list.append((el.ino, el.nlookup)) * save_retval(operations.forget(forget_list)) # <<<<<<<<<<<<<< * fuse_reply_none(req) * */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_8 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_forget_list}; __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_forget, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __pyx_f_7pyfuse3_save_retval(__pyx_t_6); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":88 * forget_list.append((el.ino, el.nlookup)) * save_retval(operations.forget(forget_list)) * fuse_reply_none(req) # <<<<<<<<<<<<<< * * */ fuse_reply_none(__pyx_v_req); /* "src/pyfuse3/handlers.pxi":82 * * * cdef void fuse_forget_multi(fuse_req_t req, size_t count, # <<<<<<<<<<<<<< * fuse_forget_data *forgets): * forget_list = list() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.fuse_forget_multi", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_v_forget_list); __Pyx_RefNannyFinishContext(); } /* "src/pyfuse3/handlers.pxi":91 * * * cdef void fuse_getattr (fuse_req_t req, fuse_ino_t ino, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_getattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, CYTHON_UNUSED struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_getattr", 0); /* "src/pyfuse3/handlers.pxi":93 * cdef void fuse_getattr (fuse_req_t req, fuse_ino_t ino, * fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 93, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":94 * fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * save_retval(fuse_getattr_async(c)) */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":95 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * save_retval(fuse_getattr_async(c)) * */ __pyx_v_c->ino = __pyx_v_ino; /* "src/pyfuse3/handlers.pxi":96 * c.req = req * c.ino = ino * save_retval(fuse_getattr_async(c)) # <<<<<<<<<<<<<< * * async def fuse_getattr_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_getattr_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 96, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":91 * * * cdef void fuse_getattr (fuse_req_t req, fuse_ino_t ino, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_getattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_5generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":98 * save_retval(fuse_getattr_async(c)) * * async def fuse_getattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_4fuse_getattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_4fuse_getattr_async = {"fuse_getattr_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_4fuse_getattr_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_4fuse_getattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_getattr_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 98, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 98, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_getattr_async", 0) < (0)) __PYX_ERR(3, 98, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_getattr_async", 1, 1, 1, i); __PYX_ERR(3, 98, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 98, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_getattr_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 98, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_getattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 98, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_3fuse_getattr_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_3fuse_getattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_getattr_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 98, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_5generator1, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_getattr_async, __pyx_mstate_global->__pyx_n_u_fuse_getattr_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 98, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_getattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_5generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; __Pyx_PySendResult __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_getattr_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 98, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":102 * cdef EntryAttributes entry * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * entry = await operations.getattr(c.ino, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":103 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.getattr(c.ino, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":104 * ctx = get_request_context(c.req) * try: * entry = await operations.getattr(c.ino, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 104, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_getattr, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 104, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 104, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 104, __pyx_L4_error) } if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(3, 104, __pyx_L4_error) __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":103 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.getattr(c.ino, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":108 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_attr(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_entry->attr, __pyx_cur_scope->__pyx_v_entry->fuse_param.attr_timeout); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":105 * try: * entry = await operations.getattr(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_getattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(3, 105, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/pyfuse3/handlers.pxi":106 * entry = await operations.getattr(c.ino, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) */ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 106, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = __Pyx_PyLong_As_int(__pyx_t_10); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 106, __pyx_L16_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/pyfuse3/handlers.pxi":105 * try: * entry = await operations.getattr(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":103 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.getattr(c.ino, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":110 * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_getattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":111 * * if ret != 0: * log.error('fuse_getattr(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_1 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10); assert(__pyx_t_1); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_fuse_getattr_fuse_reply__failed, __pyx_t_6}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":110 * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_getattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":98 * save_retval(fuse_getattr_async(c)) * * async def fuse_getattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_getattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":114 * * * cdef void fuse_setattr (fuse_req_t req, fuse_ino_t ino, struct_stat *stat, # <<<<<<<<<<<<<< * int to_set, fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_setattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, struct stat *__pyx_v_stat, int __pyx_v_to_set, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_fh = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_setattr", 0); /* "src/pyfuse3/handlers.pxi":116 * cdef void fuse_setattr (fuse_req_t req, fuse_ino_t ino, struct_stat *stat, * int to_set, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 116, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":117 * int to_set, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.stat = stat[0] */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":118 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.stat = stat[0] * c.flags = to_set */ __pyx_v_c->ino = __pyx_v_ino; /* "src/pyfuse3/handlers.pxi":119 * c.req = req * c.ino = ino * c.stat = stat[0] # <<<<<<<<<<<<<< * c.flags = to_set * if fi is NULL: */ __pyx_v_c->stat = (__pyx_v_stat[0]); /* "src/pyfuse3/handlers.pxi":120 * c.ino = ino * c.stat = stat[0] * c.flags = to_set # <<<<<<<<<<<<<< * if fi is NULL: * fh = None */ __pyx_v_c->flags = __pyx_v_to_set; /* "src/pyfuse3/handlers.pxi":121 * c.stat = stat[0] * c.flags = to_set * if fi is NULL: # <<<<<<<<<<<<<< * fh = None * else: */ __pyx_t_4 = (__pyx_v_fi == NULL); if (__pyx_t_4) { /* "src/pyfuse3/handlers.pxi":122 * c.flags = to_set * if fi is NULL: * fh = None # <<<<<<<<<<<<<< * else: * fh = fi.fh */ __Pyx_INCREF(Py_None); __pyx_v_fh = Py_None; /* "src/pyfuse3/handlers.pxi":121 * c.stat = stat[0] * c.flags = to_set * if fi is NULL: # <<<<<<<<<<<<<< * fh = None * else: */ goto __pyx_L3; } /* "src/pyfuse3/handlers.pxi":124 * fh = None * else: * fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_setattr_async(c, fh)) * */ /*else*/ { __pyx_t_1 = __Pyx_PyLong_From_uint64_t(__pyx_v_fi->fh); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_fh = __pyx_t_1; __pyx_t_1 = 0; } __pyx_L3:; /* "src/pyfuse3/handlers.pxi":125 * else: * fh = fi.fh * save_retval(fuse_setattr_async(c, fh)) # <<<<<<<<<<<<<< * * async def fuse_setattr_async (_Container c, fh): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_fuse_setattr_async); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_v_fh}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 125, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":114 * * * cdef void fuse_setattr (fuse_req_t req, fuse_ino_t ino, struct_stat *stat, # <<<<<<<<<<<<<< * int to_set, fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_setattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_XDECREF(__pyx_v_fh); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_8generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":127 * save_retval(fuse_setattr_async(c, fh)) * * async def fuse_setattr_async (_Container c, fh): # <<<<<<<<<<<<<< * cdef int ret * cdef timespec now */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_7fuse_setattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_7fuse_setattr_async = {"fuse_setattr_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_7fuse_setattr_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_7fuse_setattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_fh = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_setattr_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_fh,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 127, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 127, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 127, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_setattr_async", 0) < (0)) __PYX_ERR(3, 127, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_setattr_async", 1, 2, 2, i); __PYX_ERR(3, 127, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 127, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 127, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_fh = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_setattr_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 127, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_setattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 127, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_6fuse_setattr_async(__pyx_self, __pyx_v_c, __pyx_v_fh); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_6fuse_setattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_fh) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_setattr_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 127, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_fh = __pyx_v_fh; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_fh); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_fh); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_8generator2, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_setattr_async, __pyx_mstate_global->__pyx_n_u_fuse_setattr_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 127, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_setattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_8generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; struct stat *__pyx_t_5; int __pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; time_t __pyx_t_9; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; __Pyx_PySendResult __pyx_t_13; int __pyx_t_14; char const *__pyx_t_15; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; PyObject *__pyx_t_20 = NULL; PyObject *__pyx_t_21 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_setattr_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L14_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 127, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":133 * cdef SetattrFields fields * cdef struct_stat *attr * cdef int to_set = c.flags # <<<<<<<<<<<<<< * * ctx = get_request_context(c.req) */ __pyx_t_1 = __pyx_cur_scope->__pyx_v_c->flags; __pyx_cur_scope->__pyx_v_to_set = __pyx_t_1; /* "src/pyfuse3/handlers.pxi":135 * cdef int to_set = c.flags * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * entry = EntryAttributes() * fields = SetattrFields.__new__(SetattrFields) */ __pyx_t_2 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_2; __pyx_t_2 = 0; /* "src/pyfuse3/handlers.pxi":136 * * ctx = get_request_context(c.req) * entry = EntryAttributes() # <<<<<<<<<<<<<< * fields = SetattrFields.__new__(SetattrFields) * string.memcpy(entry.attr, &c.stat, sizeof(struct_stat)) */ __pyx_t_3 = NULL; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 136, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_2); } __Pyx_GIVEREF((PyObject *)__pyx_t_2); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_2); __pyx_t_2 = 0; /* "src/pyfuse3/handlers.pxi":137 * ctx = get_request_context(c.req) * entry = EntryAttributes() * fields = SetattrFields.__new__(SetattrFields) # <<<<<<<<<<<<<< * string.memcpy(entry.attr, &c.stat, sizeof(struct_stat)) * */ __pyx_t_2 = ((PyObject *)__pyx_tp_new_7pyfuse3_SetattrFields(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_SetattrFields), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 137, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_2); __Pyx_GIVEREF((PyObject *)__pyx_t_2); __pyx_cur_scope->__pyx_v_fields = ((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_t_2); __pyx_t_2 = 0; /* "src/pyfuse3/handlers.pxi":138 * entry = EntryAttributes() * fields = SetattrFields.__new__(SetattrFields) * string.memcpy(entry.attr, &c.stat, sizeof(struct_stat)) # <<<<<<<<<<<<<< * * attr = entry.attr */ (void)(memcpy(__pyx_cur_scope->__pyx_v_entry->attr, (&__pyx_cur_scope->__pyx_v_c->stat), (sizeof(struct stat)))); /* "src/pyfuse3/handlers.pxi":140 * string.memcpy(entry.attr, &c.stat, sizeof(struct_stat)) * * attr = entry.attr # <<<<<<<<<<<<<< * if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): * ret = libc_extra.gettime_realtime(&now) */ __pyx_t_5 = __pyx_cur_scope->__pyx_v_entry->attr; __pyx_cur_scope->__pyx_v_attr = __pyx_t_5; /* "src/pyfuse3/handlers.pxi":141 * * attr = entry.attr * if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): # <<<<<<<<<<<<<< * ret = libc_extra.gettime_realtime(&now) * if ret != 0: */ __pyx_t_6 = ((__pyx_cur_scope->__pyx_v_to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW)) != 0); if (__pyx_t_6) { /* "src/pyfuse3/handlers.pxi":142 * attr = entry.attr * if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): * ret = libc_extra.gettime_realtime(&now) # <<<<<<<<<<<<<< * if ret != 0: * log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s', */ __pyx_cur_scope->__pyx_v_ret = gettime_realtime((&__pyx_cur_scope->__pyx_v_now)); /* "src/pyfuse3/handlers.pxi":143 * if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): * ret = libc_extra.gettime_realtime(&now) * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s', * strerror(errno.errno)) */ __pyx_t_6 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_6) { /* "src/pyfuse3/handlers.pxi":144 * ret = libc_extra.gettime_realtime(&now) * if ret != 0: * log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s', # <<<<<<<<<<<<<< * strerror(errno.errno)) * */ __pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":145 * if ret != 0: * log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s', * strerror(errno.errno)) # <<<<<<<<<<<<<< * * if to_set & FUSE_SET_ATTR_ATIME: */ __pyx_t_7 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8); assert(__pyx_t_3); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); __pyx_t_4 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_fuse_setattr_clock_gettime_CLOCK, __pyx_t_7}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "src/pyfuse3/handlers.pxi":143 * if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): * ret = libc_extra.gettime_realtime(&now) * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s', * strerror(errno.errno)) */ } /* "src/pyfuse3/handlers.pxi":141 * * attr = entry.attr * if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): # <<<<<<<<<<<<<< * ret = libc_extra.gettime_realtime(&now) * if ret != 0: */ } /* "src/pyfuse3/handlers.pxi":147 * strerror(errno.errno)) * * if to_set & FUSE_SET_ATTR_ATIME: # <<<<<<<<<<<<<< * fields.update_atime = True * elif to_set & FUSE_SET_ATTR_ATIME_NOW: */ __pyx_t_6 = ((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_ATIME) != 0); if (__pyx_t_6) { /* "src/pyfuse3/handlers.pxi":148 * * if to_set & FUSE_SET_ATTR_ATIME: * fields.update_atime = True # <<<<<<<<<<<<<< * elif to_set & FUSE_SET_ATTR_ATIME_NOW: * fields.update_atime = True */ __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_atime); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_atime); __pyx_cur_scope->__pyx_v_fields->update_atime = Py_True; /* "src/pyfuse3/handlers.pxi":147 * strerror(errno.errno)) * * if to_set & FUSE_SET_ATTR_ATIME: # <<<<<<<<<<<<<< * fields.update_atime = True * elif to_set & FUSE_SET_ATTR_ATIME_NOW: */ goto __pyx_L6; } /* "src/pyfuse3/handlers.pxi":149 * if to_set & FUSE_SET_ATTR_ATIME: * fields.update_atime = True * elif to_set & FUSE_SET_ATTR_ATIME_NOW: # <<<<<<<<<<<<<< * fields.update_atime = True * attr.st_atime = now.tv_sec */ __pyx_t_6 = ((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_ATIME_NOW) != 0); if (__pyx_t_6) { /* "src/pyfuse3/handlers.pxi":150 * fields.update_atime = True * elif to_set & FUSE_SET_ATTR_ATIME_NOW: * fields.update_atime = True # <<<<<<<<<<<<<< * attr.st_atime = now.tv_sec * SET_ATIME_NS(attr, now.tv_nsec) */ __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_atime); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_atime); __pyx_cur_scope->__pyx_v_fields->update_atime = Py_True; /* "src/pyfuse3/handlers.pxi":151 * elif to_set & FUSE_SET_ATTR_ATIME_NOW: * fields.update_atime = True * attr.st_atime = now.tv_sec # <<<<<<<<<<<<<< * SET_ATIME_NS(attr, now.tv_nsec) * */ __pyx_t_9 = __pyx_cur_scope->__pyx_v_now.tv_sec; __pyx_cur_scope->__pyx_v_attr->st_atime = __pyx_t_9; /* "src/pyfuse3/handlers.pxi":152 * fields.update_atime = True * attr.st_atime = now.tv_sec * SET_ATIME_NS(attr, now.tv_nsec) # <<<<<<<<<<<<<< * * if to_set & FUSE_SET_ATTR_MTIME: */ SET_ATIME_NS(__pyx_cur_scope->__pyx_v_attr, __pyx_cur_scope->__pyx_v_now.tv_nsec); /* "src/pyfuse3/handlers.pxi":149 * if to_set & FUSE_SET_ATTR_ATIME: * fields.update_atime = True * elif to_set & FUSE_SET_ATTR_ATIME_NOW: # <<<<<<<<<<<<<< * fields.update_atime = True * attr.st_atime = now.tv_sec */ } __pyx_L6:; /* "src/pyfuse3/handlers.pxi":154 * SET_ATIME_NS(attr, now.tv_nsec) * * if to_set & FUSE_SET_ATTR_MTIME: # <<<<<<<<<<<<<< * fields.update_mtime = True * elif to_set & FUSE_SET_ATTR_MTIME_NOW: */ __pyx_t_6 = ((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_MTIME) != 0); if (__pyx_t_6) { /* "src/pyfuse3/handlers.pxi":155 * * if to_set & FUSE_SET_ATTR_MTIME: * fields.update_mtime = True # <<<<<<<<<<<<<< * elif to_set & FUSE_SET_ATTR_MTIME_NOW: * fields.update_mtime = True */ __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_mtime); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_mtime); __pyx_cur_scope->__pyx_v_fields->update_mtime = Py_True; /* "src/pyfuse3/handlers.pxi":154 * SET_ATIME_NS(attr, now.tv_nsec) * * if to_set & FUSE_SET_ATTR_MTIME: # <<<<<<<<<<<<<< * fields.update_mtime = True * elif to_set & FUSE_SET_ATTR_MTIME_NOW: */ goto __pyx_L7; } /* "src/pyfuse3/handlers.pxi":156 * if to_set & FUSE_SET_ATTR_MTIME: * fields.update_mtime = True * elif to_set & FUSE_SET_ATTR_MTIME_NOW: # <<<<<<<<<<<<<< * fields.update_mtime = True * attr.st_mtime = now.tv_sec */ __pyx_t_6 = ((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_MTIME_NOW) != 0); if (__pyx_t_6) { /* "src/pyfuse3/handlers.pxi":157 * fields.update_mtime = True * elif to_set & FUSE_SET_ATTR_MTIME_NOW: * fields.update_mtime = True # <<<<<<<<<<<<<< * attr.st_mtime = now.tv_sec * SET_MTIME_NS(attr, now.tv_nsec) */ __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_mtime); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_mtime); __pyx_cur_scope->__pyx_v_fields->update_mtime = Py_True; /* "src/pyfuse3/handlers.pxi":158 * elif to_set & FUSE_SET_ATTR_MTIME_NOW: * fields.update_mtime = True * attr.st_mtime = now.tv_sec # <<<<<<<<<<<<<< * SET_MTIME_NS(attr, now.tv_nsec) * */ __pyx_t_9 = __pyx_cur_scope->__pyx_v_now.tv_sec; __pyx_cur_scope->__pyx_v_attr->st_mtime = __pyx_t_9; /* "src/pyfuse3/handlers.pxi":159 * fields.update_mtime = True * attr.st_mtime = now.tv_sec * SET_MTIME_NS(attr, now.tv_nsec) # <<<<<<<<<<<<<< * * fields.update_ctime = bool(to_set & FUSE_SET_ATTR_CTIME) */ SET_MTIME_NS(__pyx_cur_scope->__pyx_v_attr, __pyx_cur_scope->__pyx_v_now.tv_nsec); /* "src/pyfuse3/handlers.pxi":156 * if to_set & FUSE_SET_ATTR_MTIME: * fields.update_mtime = True * elif to_set & FUSE_SET_ATTR_MTIME_NOW: # <<<<<<<<<<<<<< * fields.update_mtime = True * attr.st_mtime = now.tv_sec */ } __pyx_L7:; /* "src/pyfuse3/handlers.pxi":161 * SET_MTIME_NS(attr, now.tv_nsec) * * fields.update_ctime = bool(to_set & FUSE_SET_ATTR_CTIME) # <<<<<<<<<<<<<< * fields.update_mode = bool(to_set & FUSE_SET_ATTR_MODE) * fields.update_uid = bool(to_set & FUSE_SET_ATTR_UID) */ __pyx_t_2 = __Pyx_PyBool_FromLong((!(!((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_CTIME) != 0)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_ctime); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_ctime); __pyx_cur_scope->__pyx_v_fields->update_ctime = __pyx_t_2; __pyx_t_2 = 0; /* "src/pyfuse3/handlers.pxi":162 * * fields.update_ctime = bool(to_set & FUSE_SET_ATTR_CTIME) * fields.update_mode = bool(to_set & FUSE_SET_ATTR_MODE) # <<<<<<<<<<<<<< * fields.update_uid = bool(to_set & FUSE_SET_ATTR_UID) * fields.update_gid = bool(to_set & FUSE_SET_ATTR_GID) */ __pyx_t_2 = __Pyx_PyBool_FromLong((!(!((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_MODE) != 0)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_mode); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_mode); __pyx_cur_scope->__pyx_v_fields->update_mode = __pyx_t_2; __pyx_t_2 = 0; /* "src/pyfuse3/handlers.pxi":163 * fields.update_ctime = bool(to_set & FUSE_SET_ATTR_CTIME) * fields.update_mode = bool(to_set & FUSE_SET_ATTR_MODE) * fields.update_uid = bool(to_set & FUSE_SET_ATTR_UID) # <<<<<<<<<<<<<< * fields.update_gid = bool(to_set & FUSE_SET_ATTR_GID) * fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) */ __pyx_t_2 = __Pyx_PyBool_FromLong((!(!((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_UID) != 0)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_uid); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_uid); __pyx_cur_scope->__pyx_v_fields->update_uid = __pyx_t_2; __pyx_t_2 = 0; /* "src/pyfuse3/handlers.pxi":164 * fields.update_mode = bool(to_set & FUSE_SET_ATTR_MODE) * fields.update_uid = bool(to_set & FUSE_SET_ATTR_UID) * fields.update_gid = bool(to_set & FUSE_SET_ATTR_GID) # <<<<<<<<<<<<<< * fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) * */ __pyx_t_2 = __Pyx_PyBool_FromLong((!(!((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_GID) != 0)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_gid); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_gid); __pyx_cur_scope->__pyx_v_fields->update_gid = __pyx_t_2; __pyx_t_2 = 0; /* "src/pyfuse3/handlers.pxi":165 * fields.update_uid = bool(to_set & FUSE_SET_ATTR_UID) * fields.update_gid = bool(to_set & FUSE_SET_ATTR_GID) * fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) # <<<<<<<<<<<<<< * * try: */ __pyx_t_2 = __Pyx_PyBool_FromLong((!(!((__pyx_cur_scope->__pyx_v_to_set & FUSE_SET_ATTR_SIZE) != 0)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_fields->update_size); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_fields->update_size); __pyx_cur_scope->__pyx_v_fields->update_size = __pyx_t_2; __pyx_t_2 = 0; /* "src/pyfuse3/handlers.pxi":167 * fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) * * try: # <<<<<<<<<<<<<< * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); /*try:*/ { /* "src/pyfuse3/handlers.pxi":168 * * try: * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_8 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_8); __pyx_t_7 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 168, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = 0; { PyObject *__pyx_callargs[6] = {__pyx_t_8, __pyx_t_7, ((PyObject *)__pyx_cur_scope->__pyx_v_entry), ((PyObject *)__pyx_cur_scope->__pyx_v_fields), __pyx_cur_scope->__pyx_v_fh, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_setattr, __pyx_callargs+__pyx_t_4, (6-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 168, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_t_13 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2, &__pyx_r); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(__pyx_t_13 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_0 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_1 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_2 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L14_resume_from_await:; __pyx_t_10 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 168, __pyx_L8_error) __pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2); } else if (likely(__pyx_t_13 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_2 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 168, __pyx_L8_error) } if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(3, 168, __pyx_L8_error) __pyx_t_7 = __pyx_t_2; __Pyx_INCREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF((PyObject *)__pyx_cur_scope->__pyx_v_entry); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_entry, ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_7)); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":167 * fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) * * try: # <<<<<<<<<<<<<< * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":172 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_attr(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_entry->attr, __pyx_cur_scope->__pyx_v_entry->fuse_param.attr_timeout); } __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L13_try_end; __pyx_L8_error:; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/pyfuse3/handlers.pxi":169 * try: * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_1 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_1) { __Pyx_AddTraceback("pyfuse3.fuse_setattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_2, &__pyx_t_8) < 0) __PYX_ERR(3, 169, __pyx_L10_except_error) __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_e = __pyx_t_2; /*try:*/ { /* "src/pyfuse3/handlers.pxi":170 * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 170, __pyx_L20_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_t_3); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 170, __pyx_L20_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_1); } /* "src/pyfuse3/handlers.pxi":169 * try: * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L21; } __pyx_L20_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); if ( unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __pyx_t_1 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18); __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_lineno = __pyx_t_1; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15; goto __pyx_L10_except_error; } __pyx_L21:; } __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L9_exception_handled; } goto __pyx_L10_except_error; /* "src/pyfuse3/handlers.pxi":167 * fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) * * try: # <<<<<<<<<<<<<< * entry = await operations.setattr(c.ino, entry, fields, fh, ctx) * except FUSEError as e: */ __pyx_L10_except_error:; __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); goto __pyx_L1_error; __pyx_L9_exception_handled:; __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); __pyx_L13_try_end:; } /* "src/pyfuse3/handlers.pxi":174 * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_setattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_6 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_6) { /* "src/pyfuse3/handlers.pxi":175 * * if ret != 0: * log.error('fuse_setattr(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); __pyx_t_4 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_fuse_setattr_fuse_reply__failed, __pyx_t_7}; __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/pyfuse3/handlers.pxi":174 * ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_setattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":127 * save_retval(fuse_setattr_async(c, fh)) * * async def fuse_setattr_async (_Container c, fh): # <<<<<<<<<<<<<< * cdef int ret * cdef timespec now */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_setattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":178 * * * cdef void fuse_readlink (fuse_req_t req, fuse_ino_t ino): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_readlink(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_readlink", 0); /* "src/pyfuse3/handlers.pxi":179 * * cdef void fuse_readlink (fuse_req_t req, fuse_ino_t ino): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 179, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":180 * cdef void fuse_readlink (fuse_req_t req, fuse_ino_t ino): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * save_retval(fuse_readlink_async(c)) */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":181 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * save_retval(fuse_readlink_async(c)) * */ __pyx_v_c->ino = __pyx_v_ino; /* "src/pyfuse3/handlers.pxi":182 * c.req = req * c.ino = ino * save_retval(fuse_readlink_async(c)) # <<<<<<<<<<<<<< * * async def fuse_readlink_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_readlink_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 182, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":178 * * * cdef void fuse_readlink (fuse_req_t req, fuse_ino_t ino): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_readlink", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_11generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":184 * save_retval(fuse_readlink_async(c)) * * async def fuse_readlink_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef char* name */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_10fuse_readlink_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_10fuse_readlink_async = {"fuse_readlink_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10fuse_readlink_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_10fuse_readlink_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_readlink_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 184, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 184, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_readlink_async", 0) < (0)) __PYX_ERR(3, 184, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_readlink_async", 1, 1, 1, i); __PYX_ERR(3, 184, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 184, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_readlink_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 184, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_readlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 184, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_9fuse_readlink_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_9fuse_readlink_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_readlink_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 184, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_11generator3, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_readlink_async, __pyx_mstate_global->__pyx_n_u_fuse_readlink_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_readlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_11generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; __Pyx_PySendResult __pyx_t_8; char *__pyx_t_9; int __pyx_t_10; PyObject *__pyx_t_11 = NULL; int __pyx_t_12; char const *__pyx_t_13; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; int __pyx_t_20; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_readlink_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 184, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":187 * cdef int ret * cdef char* name * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * target = await operations.readlink(c.ino, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":188 * cdef char* name * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * target = await operations.readlink(c.ino, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":189 * ctx = get_request_context(c.req) * try: * target = await operations.readlink(c.ino, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 189, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_readlink, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 189, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 189, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 189, __pyx_L4_error) } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_target = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":188 * cdef char* name * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * target = await operations.readlink(c.ino, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":193 * ret = fuse_reply_err(c.req, e.errno) * else: * name = PyBytes_AsString(target) # <<<<<<<<<<<<<< * ret = fuse_reply_readlink(c.req, name) * */ /*else:*/ { __pyx_t_9 = PyBytes_AsString(__pyx_cur_scope->__pyx_v_target); if (unlikely(__pyx_t_9 == ((void *)NULL))) __PYX_ERR(3, 193, __pyx_L6_except_error) __pyx_cur_scope->__pyx_v_name = __pyx_t_9; /* "src/pyfuse3/handlers.pxi":194 * else: * name = PyBytes_AsString(target) * ret = fuse_reply_readlink(c.req, name) # <<<<<<<<<<<<<< * * if ret != 0: */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_readlink(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_name); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":190 * try: * target = await operations.readlink(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_10) { __Pyx_AddTraceback("pyfuse3.fuse_readlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(3, 190, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_e = __pyx_t_6; /*try:*/ { /* "src/pyfuse3/handlers.pxi":191 * target = await operations.readlink(c.ino, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * name = PyBytes_AsString(target) */ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 191, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_10 = __Pyx_PyLong_As_int(__pyx_t_11); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 191, __pyx_L16_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_10); } /* "src/pyfuse3/handlers.pxi":190 * try: * target = await operations.readlink(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); if ( unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __pyx_t_10 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16); __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":188 * cdef char* name * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * target = await operations.readlink(c.ino, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":196 * ret = fuse_reply_readlink(c.req, name) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_readlink(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_20 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_20) { /* "src/pyfuse3/handlers.pxi":197 * * if ret != 0: * log.error('fuse_readlink(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_fuse_readlink_fuse_reply__failed, __pyx_t_1}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":196 * ret = fuse_reply_readlink(c.req, name) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_readlink(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":184 * save_retval(fuse_readlink_async(c)) * * async def fuse_readlink_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef char* name */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_11); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_readlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":200 * * * cdef void fuse_mknod (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * mode_t mode, dev_t rdev): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_mknod(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name, mode_t __pyx_v_mode, dev_t __pyx_v_rdev) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_mknod", 0); /* "src/pyfuse3/handlers.pxi":202 * cdef void fuse_mknod (fuse_req_t req, fuse_ino_t parent, const_char *name, * mode_t mode, dev_t rdev): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 202, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":203 * mode_t mode, dev_t rdev): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * c.mode = mode */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":204 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * c.mode = mode * c.rdev = rdev */ __pyx_v_c->parent = __pyx_v_parent; /* "src/pyfuse3/handlers.pxi":205 * c.req = req * c.parent = parent * c.mode = mode # <<<<<<<<<<<<<< * c.rdev = rdev * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) */ __pyx_v_c->mode = __pyx_v_mode; /* "src/pyfuse3/handlers.pxi":206 * c.parent = parent * c.mode = mode * c.rdev = rdev # <<<<<<<<<<<<<< * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->rdev = __pyx_v_rdev; /* "src/pyfuse3/handlers.pxi":207 * c.mode = mode * c.rdev = rdev * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_mknod_async (_Container c, name): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_mknod_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_t_5}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":200 * * * cdef void fuse_mknod (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * mode_t mode, dev_t rdev): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_mknod", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_14generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":209 * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) * * async def fuse_mknod_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13fuse_mknod_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_13fuse_mknod_async = {"fuse_mknod_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13fuse_mknod_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_13fuse_mknod_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_mknod_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 209, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 209, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 209, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_mknod_async", 0) < (0)) __PYX_ERR(3, 209, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_mknod_async", 1, 2, 2, i); __PYX_ERR(3, 209, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 209, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 209, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_mknod_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 209, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_mknod_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 209, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_12fuse_mknod_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_12fuse_mknod_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_mknod_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 209, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_14generator4, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_mknod_async, __pyx_mstate_global->__pyx_n_u_fuse_mknod_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_mknod_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_14generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; size_t __pyx_t_9; __Pyx_PySendResult __pyx_t_10; int __pyx_t_11; int __pyx_t_12; char const *__pyx_t_13; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; int __pyx_t_20; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_mknod_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 209, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":213 * cdef EntryAttributes entry * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * entry = await operations.mknod( */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":214 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.mknod( * c.parent, name, c.mode, c.rdev, ctx) */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":215 * ctx = get_request_context(c.req) * try: * entry = await operations.mknod( # <<<<<<<<<<<<<< * c.parent, name, c.mode, c.rdev, ctx) * except FUSEError as e: */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); /* "src/pyfuse3/handlers.pxi":216 * try: * entry = await operations.mknod( * c.parent, name, c.mode, c.rdev, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 216, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyLong_From_mode_t(__pyx_cur_scope->__pyx_v_c->mode); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 216, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyLong_From_dev_t(__pyx_cur_scope->__pyx_v_c->rdev); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 216, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = 0; { PyObject *__pyx_callargs[6] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_t_7, __pyx_t_8, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_mknod, __pyx_callargs+__pyx_t_9, (6-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 215, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_10 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_10 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 215, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_10 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 215, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":215 * ctx = get_request_context(c.req) * try: * entry = await operations.mknod( # <<<<<<<<<<<<<< * c.parent, name, c.mode, c.rdev, ctx) * except FUSEError as e: */ if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(3, 215, __pyx_L4_error) __pyx_t_8 = __pyx_t_1; __Pyx_INCREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_8); __pyx_t_8 = 0; /* "src/pyfuse3/handlers.pxi":214 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.mknod( * c.parent, name, c.mode, c.rdev, ctx) */ } /* "src/pyfuse3/handlers.pxi":220 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_entry(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_entry->fuse_param)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/pyfuse3/handlers.pxi":217 * entry = await operations.mknod( * c.parent, name, c.mode, c.rdev, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_11) { __Pyx_AddTraceback("pyfuse3.fuse_mknod_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_1, &__pyx_t_7) < 0) __PYX_ERR(3, 217, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/pyfuse3/handlers.pxi":218 * c.parent, name, c.mode, c.rdev, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 218, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = __Pyx_PyLong_As_int(__pyx_t_6); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 218, __pyx_L16_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_11); } /* "src/pyfuse3/handlers.pxi":217 * entry = await operations.mknod( * c.parent, name, c.mode, c.rdev, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); if ( unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16); __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":214 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.mknod( * c.parent, name, c.mode, c.rdev, ctx) */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":222 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_mknod(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_20 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_20) { /* "src/pyfuse3/handlers.pxi":223 * * if ret != 0: * log.error('fuse_mknod(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_1 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); assert(__pyx_t_1); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); __pyx_t_9 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_fuse_mknod_fuse_reply__failed_wi, __pyx_t_8}; __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":222 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_mknod(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":209 * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) * * async def fuse_mknod_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_mknod_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":226 * * * cdef void fuse_mkdir (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * mode_t mode): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_mkdir(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name, mode_t __pyx_v_mode) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_mkdir", 0); /* "src/pyfuse3/handlers.pxi":228 * cdef void fuse_mkdir (fuse_req_t req, fuse_ino_t parent, const_char *name, * mode_t mode): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 228, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":229 * mode_t mode): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * c.mode = mode */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":230 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * c.mode = mode * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) */ __pyx_v_c->parent = __pyx_v_parent; /* "src/pyfuse3/handlers.pxi":231 * c.req = req * c.parent = parent * c.mode = mode # <<<<<<<<<<<<<< * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->mode = __pyx_v_mode; /* "src/pyfuse3/handlers.pxi":232 * c.parent = parent * c.mode = mode * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_mkdir_async (_Container c, name): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_mkdir_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_t_5}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 232, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":226 * * * cdef void fuse_mkdir (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * mode_t mode): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_mkdir", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_17generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":234 * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) * * async def fuse_mkdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_16fuse_mkdir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_16fuse_mkdir_async = {"fuse_mkdir_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_16fuse_mkdir_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_16fuse_mkdir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_mkdir_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 234, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 234, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 234, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_mkdir_async", 0) < (0)) __PYX_ERR(3, 234, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_mkdir_async", 1, 2, 2, i); __PYX_ERR(3, 234, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 234, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 234, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_mkdir_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 234, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_mkdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 234, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_15fuse_mkdir_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15fuse_mkdir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_mkdir_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 234, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_17generator5, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_mkdir_async, __pyx_mstate_global->__pyx_n_u_fuse_mkdir_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 234, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_mkdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_17generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; size_t __pyx_t_8; __Pyx_PySendResult __pyx_t_9; int __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_mkdir_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 234, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":240 * # Force the entry type to directory. We need to explicitly cast, * # because on BSD the S_* are not of type mode_t. * c.mode = (c.mode & ~ S_IFMT) | S_IFDIR # <<<<<<<<<<<<<< * ctx = get_request_context(c.req) * try: */ __pyx_cur_scope->__pyx_v_c->mode = ((__pyx_cur_scope->__pyx_v_c->mode & (~((mode_t)S_IFMT))) | ((mode_t)S_IFDIR)); /* "src/pyfuse3/handlers.pxi":241 * # because on BSD the S_* are not of type mode_t. * c.mode = (c.mode & ~ S_IFMT) | S_IFDIR * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * entry = await operations.mkdir( */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":242 * c.mode = (c.mode & ~ S_IFMT) | S_IFDIR * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.mkdir( * c.parent, name, c.mode, ctx) */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":243 * ctx = get_request_context(c.req) * try: * entry = await operations.mkdir( # <<<<<<<<<<<<<< * c.parent, name, c.mode, ctx) * except FUSEError as e: */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); /* "src/pyfuse3/handlers.pxi":244 * try: * entry = await operations.mkdir( * c.parent, name, c.mode, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 244, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyLong_From_mode_t(__pyx_cur_scope->__pyx_v_c->mode); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 244, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 0; { PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_t_7, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_mkdir, __pyx_callargs+__pyx_t_8, (5-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 243, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_9 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 243, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_9 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 243, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":243 * ctx = get_request_context(c.req) * try: * entry = await operations.mkdir( # <<<<<<<<<<<<<< * c.parent, name, c.mode, ctx) * except FUSEError as e: */ if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(3, 243, __pyx_L4_error) __pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":242 * c.mode = (c.mode & ~ S_IFMT) | S_IFDIR * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.mkdir( * c.parent, name, c.mode, ctx) */ } /* "src/pyfuse3/handlers.pxi":248 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_entry(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_entry->fuse_param)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":245 * entry = await operations.mkdir( * c.parent, name, c.mode, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_10) { __Pyx_AddTraceback("pyfuse3.fuse_mkdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_1, &__pyx_t_6) < 0) __PYX_ERR(3, 245, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/pyfuse3/handlers.pxi":246 * c.parent, name, c.mode, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 246, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = __Pyx_PyLong_As_int(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 246, __pyx_L16_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_10); } /* "src/pyfuse3/handlers.pxi":245 * entry = await operations.mkdir( * c.parent, name, c.mode, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":242 * c.mode = (c.mode & ~ S_IFMT) | S_IFDIR * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.mkdir( * c.parent, name, c.mode, ctx) */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":250 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_mkdir(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":251 * * if ret != 0: * log.error('fuse_mkdir(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_1 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_1); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_8 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi, __pyx_t_7}; __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":250 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_mkdir(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":234 * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) * * async def fuse_mkdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_mkdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":254 * * * cdef void fuse_unlink (fuse_req_t req, fuse_ino_t parent, const_char *name): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_unlink(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_unlink", 0); /* "src/pyfuse3/handlers.pxi":255 * * cdef void fuse_unlink (fuse_req_t req, fuse_ino_t parent, const_char *name): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 255, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":256 * cdef void fuse_unlink (fuse_req_t req, fuse_ino_t parent, const_char *name): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":257 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->parent = __pyx_v_parent; /* "src/pyfuse3/handlers.pxi":258 * c.req = req * c.parent = parent * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_unlink_async (_Container c, name): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_unlink_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_t_5}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 258, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":254 * * * cdef void fuse_unlink (fuse_req_t req, fuse_ino_t parent, const_char *name): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_unlink", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_20generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":260 * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) * * async def fuse_unlink_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_19fuse_unlink_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_19fuse_unlink_async = {"fuse_unlink_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_19fuse_unlink_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_19fuse_unlink_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_unlink_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 260, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 260, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 260, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_unlink_async", 0) < (0)) __PYX_ERR(3, 260, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_unlink_async", 1, 2, 2, i); __PYX_ERR(3, 260, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 260, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 260, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_unlink_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 260, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_unlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 260, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_18fuse_unlink_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_18fuse_unlink_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_unlink_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 260, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_20generator6, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_unlink_async, __pyx_mstate_global->__pyx_n_u_fuse_unlink_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 260, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_unlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_20generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; __Pyx_PySendResult __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_unlink_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 260, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":263 * cdef int ret * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * await operations.unlink(c.parent, name, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":264 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.unlink(c.parent, name, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":265 * ctx = get_request_context(c.req) * try: * await operations.unlink(c.parent, name, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 265, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_unlink, __pyx_callargs+__pyx_t_7, (4-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 265, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 265, __pyx_L4_error) } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 265, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":264 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.unlink(c.parent, name, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":269 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":266 * try: * await operations.unlink(c.parent, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_unlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(3, 266, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_e = __pyx_t_6; /*try:*/ { /* "src/pyfuse3/handlers.pxi":267 * await operations.unlink(c.parent, name, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 267, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = __Pyx_PyLong_As_int(__pyx_t_10); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 267, __pyx_L16_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/pyfuse3/handlers.pxi":266 * try: * await operations.unlink(c.parent, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":264 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.unlink(c.parent, name, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":271 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_unlink(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":272 * * if ret != 0: * log.error('fuse_unlink(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_fuse_unlink_fuse_reply__failed_w, __pyx_t_1}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":271 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_unlink(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":260 * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) * * async def fuse_unlink_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_unlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":275 * * * cdef void fuse_rmdir (fuse_req_t req, fuse_ino_t parent, const_char *name): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_rmdir(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_rmdir", 0); /* "src/pyfuse3/handlers.pxi":276 * * cdef void fuse_rmdir (fuse_req_t req, fuse_ino_t parent, const_char *name): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 276, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":277 * cdef void fuse_rmdir (fuse_req_t req, fuse_ino_t parent, const_char *name): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":278 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->parent = __pyx_v_parent; /* "src/pyfuse3/handlers.pxi":279 * c.req = req * c.parent = parent * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_rmdir_async (_Container c, name): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_rmdir_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_t_5}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 279, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":275 * * * cdef void fuse_rmdir (fuse_req_t req, fuse_ino_t parent, const_char *name): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_rmdir", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_23generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":281 * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) * * async def fuse_rmdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_22fuse_rmdir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_22fuse_rmdir_async = {"fuse_rmdir_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_22fuse_rmdir_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_22fuse_rmdir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_rmdir_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 281, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 281, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 281, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_rmdir_async", 0) < (0)) __PYX_ERR(3, 281, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_rmdir_async", 1, 2, 2, i); __PYX_ERR(3, 281, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 281, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 281, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_rmdir_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 281, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_rmdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 281, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_21fuse_rmdir_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_21fuse_rmdir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_rmdir_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 281, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_23generator7, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_rmdir_async, __pyx_mstate_global->__pyx_n_u_fuse_rmdir_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 281, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_rmdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_23generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; __Pyx_PySendResult __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_rmdir_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 281, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":284 * cdef int ret * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * await operations.rmdir(c.parent, name, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":285 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.rmdir(c.parent, name, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":286 * ctx = get_request_context(c.req) * try: * await operations.rmdir(c.parent, name, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 286, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_rmdir, __pyx_callargs+__pyx_t_7, (4-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 286, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 286, __pyx_L4_error) } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 286, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":285 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.rmdir(c.parent, name, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":290 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":287 * try: * await operations.rmdir(c.parent, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_rmdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(3, 287, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_e = __pyx_t_6; /*try:*/ { /* "src/pyfuse3/handlers.pxi":288 * await operations.rmdir(c.parent, name, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 288, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = __Pyx_PyLong_As_int(__pyx_t_10); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 288, __pyx_L16_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/pyfuse3/handlers.pxi":287 * try: * await operations.rmdir(c.parent, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":285 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.rmdir(c.parent, name, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":292 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_rmdir(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":293 * * if ret != 0: * log.error('fuse_rmdir(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi, __pyx_t_1}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":292 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_rmdir(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":281 * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) * * async def fuse_rmdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_rmdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":296 * * * cdef void fuse_symlink (fuse_req_t req, const_char *link, fuse_ino_t parent, # <<<<<<<<<<<<<< * const_char *name): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_symlink(fuse_req_t __pyx_v_req, const char *__pyx_v_link, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_symlink", 0); /* "src/pyfuse3/handlers.pxi":298 * cdef void fuse_symlink (fuse_req_t req, const_char *link, fuse_ino_t parent, * const_char *name): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 298, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":299 * const_char *name): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * save_retval(fuse_symlink_async( */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":300 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * save_retval(fuse_symlink_async( * c, PyBytes_FromString(name), PyBytes_FromString(link))) */ __pyx_v_c->parent = __pyx_v_parent; /* "src/pyfuse3/handlers.pxi":301 * c.req = req * c.parent = parent * save_retval(fuse_symlink_async( # <<<<<<<<<<<<<< * c, PyBytes_FromString(name), PyBytes_FromString(link))) * */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_symlink_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); /* "src/pyfuse3/handlers.pxi":302 * c.parent = parent * save_retval(fuse_symlink_async( * c, PyBytes_FromString(name), PyBytes_FromString(link))) # <<<<<<<<<<<<<< * * async def fuse_symlink_async (_Container c, name, link): */ __pyx_t_5 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyBytes_FromString(__pyx_v_link); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[4] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_t_5, __pyx_t_6}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } /* "src/pyfuse3/handlers.pxi":301 * c.req = req * c.parent = parent * save_retval(fuse_symlink_async( # <<<<<<<<<<<<<< * c, PyBytes_FromString(name), PyBytes_FromString(link))) * */ __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 301, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":296 * * * cdef void fuse_symlink (fuse_req_t req, const_char *link, fuse_ino_t parent, # <<<<<<<<<<<<<< * const_char *name): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.fuse_symlink", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_26generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":304 * c, PyBytes_FromString(name), PyBytes_FromString(link))) * * async def fuse_symlink_async (_Container c, name, link): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_25fuse_symlink_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_25fuse_symlink_async = {"fuse_symlink_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_25fuse_symlink_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_25fuse_symlink_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; PyObject *__pyx_v_link = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_symlink_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_link,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 304, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 304, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 304, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 304, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_symlink_async", 0) < (0)) __PYX_ERR(3, 304, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_symlink_async", 1, 3, 3, i); __PYX_ERR(3, 304, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 304, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 304, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 304, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; __pyx_v_link = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_symlink_async", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 304, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_symlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 304, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_24fuse_symlink_async(__pyx_self, __pyx_v_c, __pyx_v_name, __pyx_v_link); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_24fuse_symlink_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name, PyObject *__pyx_v_link) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_symlink_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 304, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); __pyx_cur_scope->__pyx_v_link = __pyx_v_link; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_link); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_link); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_26generator8, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_symlink_async, __pyx_mstate_global->__pyx_n_u_fuse_symlink_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 304, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_symlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_26generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; __Pyx_PySendResult __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_symlink_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 304, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":308 * cdef EntryAttributes entry * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * entry = await operations.symlink( */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":309 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.symlink( * c.parent, name, link, ctx) */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":310 * ctx = get_request_context(c.req) * try: * entry = await operations.symlink( # <<<<<<<<<<<<<< * c.parent, name, link, ctx) * except FUSEError as e: */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); /* "src/pyfuse3/handlers.pxi":311 * try: * entry = await operations.symlink( * c.parent, name, link, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 311, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_link, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_symlink, __pyx_callargs+__pyx_t_7, (5-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 310, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 310, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 310, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":310 * ctx = get_request_context(c.req) * try: * entry = await operations.symlink( # <<<<<<<<<<<<<< * c.parent, name, link, ctx) * except FUSEError as e: */ if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(3, 310, __pyx_L4_error) __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":309 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.symlink( * c.parent, name, link, ctx) */ } /* "src/pyfuse3/handlers.pxi":315 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_entry(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_entry->fuse_param)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":312 * entry = await operations.symlink( * c.parent, name, link, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_symlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(3, 312, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/pyfuse3/handlers.pxi":313 * c.parent, name, link, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) */ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 313, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = __Pyx_PyLong_As_int(__pyx_t_10); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 313, __pyx_L16_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/pyfuse3/handlers.pxi":312 * entry = await operations.symlink( * c.parent, name, link, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":309 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.symlink( * c.parent, name, link, ctx) */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":317 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_symlink(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":318 * * if ret != 0: * log.error('fuse_symlink(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_1 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10); assert(__pyx_t_1); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_fuse_symlink_fuse_reply__failed, __pyx_t_6}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":317 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_symlink(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":304 * c, PyBytes_FromString(name), PyBytes_FromString(link))) * * async def fuse_symlink_async (_Container c, name, link): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_symlink_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":321 * * * cdef void fuse_rename (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * fuse_ino_t newparent, const_char *newname, unsigned flags): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_rename(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name, fuse_ino_t __pyx_v_newparent, const char *__pyx_v_newname, unsigned int __pyx_v_flags) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_rename", 0); /* "src/pyfuse3/handlers.pxi":323 * cdef void fuse_rename (fuse_req_t req, fuse_ino_t parent, const_char *name, * fuse_ino_t newparent, const_char *newname, unsigned flags): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 323, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":324 * fuse_ino_t newparent, const_char *newname, unsigned flags): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * c.ino = newparent */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":325 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * c.ino = newparent * c.flags = flags */ __pyx_v_c->parent = __pyx_v_parent; /* "src/pyfuse3/handlers.pxi":326 * c.req = req * c.parent = parent * c.ino = newparent # <<<<<<<<<<<<<< * c.flags = flags * save_retval(fuse_rename_async( */ __pyx_v_c->ino = __pyx_v_newparent; /* "src/pyfuse3/handlers.pxi":327 * c.parent = parent * c.ino = newparent * c.flags = flags # <<<<<<<<<<<<<< * save_retval(fuse_rename_async( * c, PyBytes_FromString(name), PyBytes_FromString(newname))) */ __pyx_v_c->flags = ((int)__pyx_v_flags); /* "src/pyfuse3/handlers.pxi":328 * c.ino = newparent * c.flags = flags * save_retval(fuse_rename_async( # <<<<<<<<<<<<<< * c, PyBytes_FromString(name), PyBytes_FromString(newname))) * */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_rename_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); /* "src/pyfuse3/handlers.pxi":329 * c.flags = flags * save_retval(fuse_rename_async( * c, PyBytes_FromString(name), PyBytes_FromString(newname))) # <<<<<<<<<<<<<< * * */ __pyx_t_5 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyBytes_FromString(__pyx_v_newname); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[4] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_t_5, __pyx_t_6}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } /* "src/pyfuse3/handlers.pxi":328 * c.ino = newparent * c.flags = flags * save_retval(fuse_rename_async( # <<<<<<<<<<<<<< * c, PyBytes_FromString(name), PyBytes_FromString(newname))) * */ __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 328, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":321 * * * cdef void fuse_rename (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * fuse_ino_t newparent, const_char *newname, unsigned flags): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.fuse_rename", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_29generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":332 * * * async def fuse_rename_async (_Container c, name, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef unsigned flags = c.flags */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_28fuse_rename_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_28fuse_rename_async = {"fuse_rename_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_28fuse_rename_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_28fuse_rename_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; PyObject *__pyx_v_newname = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_rename_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_newname,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 332, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_rename_async", 0) < (0)) __PYX_ERR(3, 332, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_rename_async", 1, 3, 3, i); __PYX_ERR(3, 332, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 332, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 332, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 332, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; __pyx_v_newname = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_rename_async", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 332, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_rename_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 332, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_27fuse_rename_async(__pyx_self, __pyx_v_c, __pyx_v_name, __pyx_v_newname); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_27fuse_rename_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name, PyObject *__pyx_v_newname) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_rename_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_9_fuse_rename_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 332, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); __pyx_cur_scope->__pyx_v_newname = __pyx_v_newname; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_newname); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_newname); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_29generator9, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_rename_async, __pyx_mstate_global->__pyx_n_u_fuse_rename_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 332, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_rename_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_29generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; fuse_ino_t __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; size_t __pyx_t_10; __Pyx_PySendResult __pyx_t_11; int __pyx_t_12; int __pyx_t_13; char const *__pyx_t_14; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; PyObject *__pyx_t_20 = NULL; int __pyx_t_21; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_rename_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 332, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":334 * async def fuse_rename_async (_Container c, name, newname): * cdef int ret * cdef unsigned flags = c.flags # <<<<<<<<<<<<<< * cdef fuse_ino_t newparent = c.ino * */ __pyx_cur_scope->__pyx_v_flags = ((unsigned int)__pyx_cur_scope->__pyx_v_c->flags); /* "src/pyfuse3/handlers.pxi":335 * cdef int ret * cdef unsigned flags = c.flags * cdef fuse_ino_t newparent = c.ino # <<<<<<<<<<<<<< * * ctx = get_request_context(c.req) */ __pyx_t_1 = __pyx_cur_scope->__pyx_v_c->ino; __pyx_cur_scope->__pyx_v_newparent = __pyx_t_1; /* "src/pyfuse3/handlers.pxi":337 * cdef fuse_ino_t newparent = c.ino * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * await operations.rename(c.parent, name, newparent, newname, flags, ctx) */ __pyx_t_2 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_2; __pyx_t_2 = 0; /* "src/pyfuse3/handlers.pxi":338 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.rename(c.parent, name, newparent, newname, flags, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { /* "src/pyfuse3/handlers.pxi":339 * ctx = get_request_context(c.req) * try: * await operations.rename(c.parent, name, newparent, newname, flags, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 339, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_newparent); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 339, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyLong_From_unsigned_int(__pyx_cur_scope->__pyx_v_flags); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 339, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = 0; { PyObject *__pyx_callargs[7] = {__pyx_t_6, __pyx_t_7, __pyx_cur_scope->__pyx_v_name, __pyx_t_8, __pyx_cur_scope->__pyx_v_newname, __pyx_t_9, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_rename, __pyx_callargs+__pyx_t_10, (7-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 339, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_t_11 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2, &__pyx_r); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(__pyx_t_11 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_0 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_1 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_2 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_3 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_5 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 339, __pyx_L4_error) } else if (likely(__pyx_t_11 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 339, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":338 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.rename(c.parent, name, newparent, newname, flags, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":343 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "src/pyfuse3/handlers.pxi":340 * try: * await operations.rename(c.parent, name, newparent, newname, flags, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_12 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_12) { __Pyx_AddTraceback("pyfuse3.fuse_rename_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_9, &__pyx_t_8) < 0) __PYX_ERR(3, 340, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_v_e = __pyx_t_9; /*try:*/ { /* "src/pyfuse3/handlers.pxi":341 * await operations.rename(c.parent, name, newparent, newname, flags, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 341, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_t_7); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 341, __pyx_L16_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_12); } /* "src/pyfuse3/handlers.pxi":340 * try: * await operations.rename(c.parent, name, newparent, newname, flags, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if ( unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __pyx_t_12 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17); __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":338 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.rename(c.parent, name, newparent, newname, flags, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":345 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_rename(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_21 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_21) { /* "src/pyfuse3/handlers.pxi":346 * * if ret != 0: * log.error('fuse_rename(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_9 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7); assert(__pyx_t_9); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); __pyx_t_10 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_fuse_rename_fuse_reply__failed_w, __pyx_t_2}; __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/pyfuse3/handlers.pxi":345 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_rename(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":332 * * * async def fuse_rename_async (_Container c, name, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef unsigned flags = c.flags */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_rename_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":349 * * * cdef void fuse_link (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent, # <<<<<<<<<<<<<< * const_char *newname): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_link(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, fuse_ino_t __pyx_v_newparent, const char *__pyx_v_newname) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_link", 0); /* "src/pyfuse3/handlers.pxi":351 * cdef void fuse_link (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent, * const_char *newname): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 351, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":352 * const_char *newname): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.parent = newparent */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":353 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.parent = newparent * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) */ __pyx_v_c->ino = __pyx_v_ino; /* "src/pyfuse3/handlers.pxi":354 * c.req = req * c.ino = ino * c.parent = newparent # <<<<<<<<<<<<<< * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) * */ __pyx_v_c->parent = __pyx_v_newparent; /* "src/pyfuse3/handlers.pxi":355 * c.ino = ino * c.parent = newparent * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) # <<<<<<<<<<<<<< * * async def fuse_link_async (_Container c, newname): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_link_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyBytes_FromString(__pyx_v_newname); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_t_5}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 355, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":349 * * * cdef void fuse_link (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent, # <<<<<<<<<<<<<< * const_char *newname): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_link", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_32generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":357 * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) * * async def fuse_link_async (_Container c, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_31fuse_link_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_31fuse_link_async = {"fuse_link_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_31fuse_link_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_31fuse_link_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_newname = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_link_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_newname,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 357, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 357, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 357, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_link_async", 0) < (0)) __PYX_ERR(3, 357, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_link_async", 1, 2, 2, i); __PYX_ERR(3, 357, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 357, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 357, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_newname = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_link_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 357, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_link_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 357, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_30fuse_link_async(__pyx_self, __pyx_v_c, __pyx_v_newname); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_30fuse_link_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_newname) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_link_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_10_fuse_link_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 357, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_newname = __pyx_v_newname; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_newname); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_newname); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_32generator10, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_link_async, __pyx_mstate_global->__pyx_n_u_fuse_link_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 357, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_link_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_32generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; size_t __pyx_t_8; __Pyx_PySendResult __pyx_t_9; int __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_link_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 357, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":361 * cdef EntryAttributes entry * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * entry = await operations.link( */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":362 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.link( * c.ino, c.parent, newname, ctx) */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":363 * ctx = get_request_context(c.req) * try: * entry = await operations.link( # <<<<<<<<<<<<<< * c.ino, c.parent, newname, ctx) * except FUSEError as e: */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); /* "src/pyfuse3/handlers.pxi":364 * try: * entry = await operations.link( * c.ino, c.parent, newname, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 364, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 364, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 0; { PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_cur_scope->__pyx_v_newname, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_link, __pyx_callargs+__pyx_t_8, (5-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 363, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_9 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 363, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_9 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 363, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":363 * ctx = get_request_context(c.req) * try: * entry = await operations.link( # <<<<<<<<<<<<<< * c.ino, c.parent, newname, ctx) * except FUSEError as e: */ if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(3, 363, __pyx_L4_error) __pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":362 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.link( * c.ino, c.parent, newname, ctx) */ } /* "src/pyfuse3/handlers.pxi":368 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_entry(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_entry->fuse_param)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":365 * entry = await operations.link( * c.ino, c.parent, newname, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_10) { __Pyx_AddTraceback("pyfuse3.fuse_link_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_1, &__pyx_t_6) < 0) __PYX_ERR(3, 365, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/pyfuse3/handlers.pxi":366 * c.ino, c.parent, newname, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_entry(c.req, &entry.fuse_param) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 366, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = __Pyx_PyLong_As_int(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 366, __pyx_L16_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_10); } /* "src/pyfuse3/handlers.pxi":365 * entry = await operations.link( * c.ino, c.parent, newname, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":362 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * entry = await operations.link( * c.ino, c.parent, newname, ctx) */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":370 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":371 * * if ret != 0: * log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_1 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_1); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_8 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_fuse_link_fuse_reply__failed_wit, __pyx_t_7}; __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":370 * ret = fuse_reply_entry(c.req, &entry.fuse_param) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":357 * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) * * async def fuse_link_async (_Container c, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_link_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":374 * * * cdef void fuse_open (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_open(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_open", 0); /* "src/pyfuse3/handlers.pxi":375 * * cdef void fuse_open (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 375, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":376 * cdef void fuse_open (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.fi = fi[0] */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":377 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.fi = fi[0] * save_retval(fuse_open_async(c)) */ __pyx_v_c->ino = __pyx_v_ino; /* "src/pyfuse3/handlers.pxi":378 * c.req = req * c.ino = ino * c.fi = fi[0] # <<<<<<<<<<<<<< * save_retval(fuse_open_async(c)) * */ __pyx_v_c->fi = (__pyx_v_fi[0]); /* "src/pyfuse3/handlers.pxi":379 * c.ino = ino * c.fi = fi[0] * save_retval(fuse_open_async(c)) # <<<<<<<<<<<<<< * * async def fuse_open_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_open_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 379, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":374 * * * cdef void fuse_open (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_open", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_35generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":381 * save_retval(fuse_open_async(c)) * * async def fuse_open_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef FileInfo fi */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_34fuse_open_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_34fuse_open_async = {"fuse_open_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_34fuse_open_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_34fuse_open_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_open_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 381, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 381, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_open_async", 0) < (0)) __PYX_ERR(3, 381, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_open_async", 1, 1, 1, i); __PYX_ERR(3, 381, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 381, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_open_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 381, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_open_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 381, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_33fuse_open_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_33fuse_open_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_open_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_11_fuse_open_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 381, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_35generator11, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_open_async, __pyx_mstate_global->__pyx_n_u_fuse_open_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 381, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_open_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_35generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; size_t __pyx_t_8; __Pyx_PySendResult __pyx_t_9; int __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_open_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 381, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":385 * cdef FileInfo fi * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * * try: */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":387 * ctx = get_request_context(c.req) * * try: # <<<<<<<<<<<<<< * fi = await operations.open(c.ino, c.fi.flags, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":388 * * try: * fi = await operations.open(c.ino, c.fi.flags, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 388, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_c->fi.flags); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 388, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 0; { PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_open, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 388, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_9 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 388, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_9 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 388, __pyx_L4_error) } if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7pyfuse3_FileInfo)))) __PYX_ERR(3, 388, __pyx_L4_error) __pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_v_fi = ((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":387 * ctx = get_request_context(c.req) * * try: # <<<<<<<<<<<<<< * fi = await operations.open(c.ino, c.fi.flags, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":392 * ret = fuse_reply_err(c.req, e.errno) * else: * fi._copy_to_fuse(&c.fi) # <<<<<<<<<<<<<< * ret = fuse_reply_open(c.req, &c.fi) * */ /*else:*/ { __pyx_t_7 = ((struct __pyx_vtabstruct_7pyfuse3_FileInfo *)__pyx_cur_scope->__pyx_v_fi->__pyx_vtab)->_copy_to_fuse(__pyx_cur_scope->__pyx_v_fi, (&__pyx_cur_scope->__pyx_v_c->fi)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 392, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":393 * else: * fi._copy_to_fuse(&c.fi) * ret = fuse_reply_open(c.req, &c.fi) # <<<<<<<<<<<<<< * * if ret != 0: */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_open(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_c->fi)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":389 * try: * fi = await operations.open(c.ino, c.fi.flags, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_10) { __Pyx_AddTraceback("pyfuse3.fuse_open_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_1, &__pyx_t_6) < 0) __PYX_ERR(3, 389, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/pyfuse3/handlers.pxi":390 * fi = await operations.open(c.ino, c.fi.flags, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * fi._copy_to_fuse(&c.fi) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 390, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = __Pyx_PyLong_As_int(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 390, __pyx_L16_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_10); } /* "src/pyfuse3/handlers.pxi":389 * try: * fi = await operations.open(c.ino, c.fi.flags, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":387 * ctx = get_request_context(c.req) * * try: # <<<<<<<<<<<<<< * fi = await operations.open(c.ino, c.fi.flags, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":395 * ret = fuse_reply_open(c.req, &c.fi) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":396 * * if ret != 0: * log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_1 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_1); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_8 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_fuse_link_fuse_reply__failed_wit, __pyx_t_7}; __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":395 * ret = fuse_reply_open(c.req, &c.fi) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":381 * save_retval(fuse_open_async(c)) * * async def fuse_open_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef FileInfo fi */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_open_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":399 * * * cdef void fuse_read (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_read(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, size_t __pyx_v_size, off_t __pyx_v_off, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; uint64_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_read", 0); /* "src/pyfuse3/handlers.pxi":401 * cdef void fuse_read (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, * fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.size = size */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 401, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":402 * fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.size = size * c.off = off */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":403 * cdef _Container c = _Container() * c.req = req * c.size = size # <<<<<<<<<<<<<< * c.off = off * c.fh = fi.fh */ __pyx_v_c->size = __pyx_v_size; /* "src/pyfuse3/handlers.pxi":404 * c.req = req * c.size = size * c.off = off # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_read_async(c)) */ __pyx_v_c->off = __pyx_v_off; /* "src/pyfuse3/handlers.pxi":405 * c.size = size * c.off = off * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_read_async(c)) * */ __pyx_t_4 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_4; /* "src/pyfuse3/handlers.pxi":406 * c.off = off * c.fh = fi.fh * save_retval(fuse_read_async(c)) # <<<<<<<<<<<<<< * * async def fuse_read_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_fuse_read_async); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 406, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":399 * * * cdef void fuse_read (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_read", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_38generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":408 * save_retval(fuse_read_async(c)) * * async def fuse_read_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef Py_buffer pybuf */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_37fuse_read_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_37fuse_read_async = {"fuse_read_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_37fuse_read_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_37fuse_read_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_read_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 408, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 408, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_read_async", 0) < (0)) __PYX_ERR(3, 408, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_read_async", 1, 1, 1, i); __PYX_ERR(3, 408, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 408, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_read_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 408, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_read_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 408, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_36fuse_read_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_36fuse_read_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_read_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_12_fuse_read_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 408, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_38generator12, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_read_async, __pyx_mstate_global->__pyx_n_u_fuse_read_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 408, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_read_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_38generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; size_t __pyx_t_9; __Pyx_PySendResult __pyx_t_10; int __pyx_t_11; int __pyx_t_12; char const *__pyx_t_13; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; int __pyx_t_20; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_read_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 408, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":412 * cdef Py_buffer pybuf * * try: # <<<<<<<<<<<<<< * buf = await operations.read(c.fh, c.off, c.size) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/pyfuse3/handlers.pxi":413 * * try: * buf = await operations.read(c.fh, c.off, c.size) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 413, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyLong_From_off_t(__pyx_cur_scope->__pyx_v_c->off); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 413, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyLong_FromSize_t(__pyx_cur_scope->__pyx_v_c->size); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 413, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = 0; { PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_read, __pyx_callargs+__pyx_t_9, (4-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 413, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_10 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(__pyx_t_10 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 413, __pyx_L4_error) __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4); } else if (likely(__pyx_t_10 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_4 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 413, __pyx_L4_error) } __Pyx_GIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_v_buf = __pyx_t_4; __pyx_t_4 = 0; /* "src/pyfuse3/handlers.pxi":412 * cdef Py_buffer pybuf * * try: # <<<<<<<<<<<<<< * buf = await operations.read(c.fh, c.off, c.size) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":417 * ret = fuse_reply_err(c.req, e.errno) * else: * PyObject_GetBuffer(buf, &pybuf, PyBUF_CONTIG_RO) # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, pybuf.buf, pybuf.len) * PyBuffer_Release(&pybuf) */ /*else:*/ { __pyx_t_11 = PyObject_GetBuffer(__pyx_cur_scope->__pyx_v_buf, (&__pyx_cur_scope->__pyx_v_pybuf), PyBUF_CONTIG_RO); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(3, 417, __pyx_L6_except_error) /* "src/pyfuse3/handlers.pxi":418 * else: * PyObject_GetBuffer(buf, &pybuf, PyBUF_CONTIG_RO) * ret = fuse_reply_buf(c.req, pybuf.buf, pybuf.len) # <<<<<<<<<<<<<< * PyBuffer_Release(&pybuf) * */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_buf(__pyx_cur_scope->__pyx_v_c->req, ((const char *)__pyx_cur_scope->__pyx_v_pybuf.buf), ((size_t)__pyx_cur_scope->__pyx_v_pybuf.len)); /* "src/pyfuse3/handlers.pxi":419 * PyObject_GetBuffer(buf, &pybuf, PyBUF_CONTIG_RO) * ret = fuse_reply_buf(c.req, pybuf.buf, pybuf.len) * PyBuffer_Release(&pybuf) # <<<<<<<<<<<<<< * * if ret != 0: */ PyBuffer_Release((&__pyx_cur_scope->__pyx_v_pybuf)); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/pyfuse3/handlers.pxi":414 * try: * buf = await operations.read(c.fh, c.off, c.size) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_11) { __Pyx_AddTraceback("pyfuse3.fuse_read_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_8, &__pyx_t_7) < 0) __PYX_ERR(3, 414, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_v_e = __pyx_t_8; /*try:*/ { /* "src/pyfuse3/handlers.pxi":415 * buf = await operations.read(c.fh, c.off, c.size) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * PyObject_GetBuffer(buf, &pybuf, PyBUF_CONTIG_RO) */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 415, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = __Pyx_PyLong_As_int(__pyx_t_6); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 415, __pyx_L16_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_11); } /* "src/pyfuse3/handlers.pxi":414 * try: * buf = await operations.read(c.fh, c.off, c.size) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); if ( unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16); __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":412 * cdef Py_buffer pybuf * * try: # <<<<<<<<<<<<<< * buf = await operations.read(c.fh, c.off, c.size) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":421 * PyBuffer_Release(&pybuf) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_read(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_20 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_20) { /* "src/pyfuse3/handlers.pxi":422 * * if ret != 0: * log.error('fuse_read(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_8 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); assert(__pyx_t_8); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); __pyx_t_9 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_fuse_read_fuse_reply__failed_wit, __pyx_t_4}; __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":421 * PyBuffer_Release(&pybuf) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_read(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":408 * save_retval(fuse_read_async(c)) * * async def fuse_read_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef Py_buffer pybuf */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_read_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":425 * * * cdef void fuse_write (fuse_req_t req, fuse_ino_t ino, const_char *buf, # <<<<<<<<<<<<<< * size_t size, off_t off, fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_write(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, const char *__pyx_v_buf, size_t __pyx_v_size, off_t __pyx_v_off, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_pbuf = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; uint64_t __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_write", 0); /* "src/pyfuse3/handlers.pxi":427 * cdef void fuse_write (fuse_req_t req, fuse_ino_t ino, const_char *buf, * size_t size, off_t off, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.size = size */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 427, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":428 * size_t size, off_t off, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.size = size * c.off = off */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":429 * cdef _Container c = _Container() * c.req = req * c.size = size # <<<<<<<<<<<<<< * c.off = off * c.fh = fi.fh */ __pyx_v_c->size = __pyx_v_size; /* "src/pyfuse3/handlers.pxi":430 * c.req = req * c.size = size * c.off = off # <<<<<<<<<<<<<< * c.fh = fi.fh * */ __pyx_v_c->off = __pyx_v_off; /* "src/pyfuse3/handlers.pxi":431 * c.size = size * c.off = off * c.fh = fi.fh # <<<<<<<<<<<<<< * * if size > PY_SSIZE_T_MAX: */ __pyx_t_4 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_4; /* "src/pyfuse3/handlers.pxi":433 * c.fh = fi.fh * * if size > PY_SSIZE_T_MAX: # <<<<<<<<<<<<<< * raise OverflowError('Value too long to convert to Python') * pbuf = PyBytes_FromStringAndSize(buf, size) */ __pyx_t_5 = (__pyx_v_size > PY_SSIZE_T_MAX); if (unlikely(__pyx_t_5)) { /* "src/pyfuse3/handlers.pxi":434 * * if size > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') # <<<<<<<<<<<<<< * pbuf = PyBytes_FromStringAndSize(buf, size) * save_retval(fuse_write_async(c, pbuf)) */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Value_too_long_to_convert_to_Pyt}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OverflowError)), __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(3, 434, __pyx_L1_error) /* "src/pyfuse3/handlers.pxi":433 * c.fh = fi.fh * * if size > PY_SSIZE_T_MAX: # <<<<<<<<<<<<<< * raise OverflowError('Value too long to convert to Python') * pbuf = PyBytes_FromStringAndSize(buf, size) */ } /* "src/pyfuse3/handlers.pxi":435 * if size > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') * pbuf = PyBytes_FromStringAndSize(buf, size) # <<<<<<<<<<<<<< * save_retval(fuse_write_async(c, pbuf)) * */ __pyx_t_1 = PyBytes_FromStringAndSize(__pyx_v_buf, ((Py_ssize_t)__pyx_v_size)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_pbuf = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":436 * raise OverflowError('Value too long to convert to Python') * pbuf = PyBytes_FromStringAndSize(buf, size) * save_retval(fuse_write_async(c, pbuf)) # <<<<<<<<<<<<<< * * async def fuse_write_async (_Container c, pbuf): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_fuse_write_async); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_v_pbuf}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 436, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":425 * * * cdef void fuse_write (fuse_req_t req, fuse_ino_t ino, const_char *buf, # <<<<<<<<<<<<<< * size_t size, off_t off, fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.fuse_write", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_XDECREF(__pyx_v_pbuf); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_41generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":438 * save_retval(fuse_write_async(c, pbuf)) * * async def fuse_write_async (_Container c, pbuf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_40fuse_write_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_40fuse_write_async = {"fuse_write_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_40fuse_write_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_40fuse_write_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_pbuf = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_write_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_pbuf,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 438, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_write_async", 0) < (0)) __PYX_ERR(3, 438, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_write_async", 1, 2, 2, i); __PYX_ERR(3, 438, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 438, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 438, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_pbuf = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_write_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 438, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_write_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 438, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_39fuse_write_async(__pyx_self, __pyx_v_c, __pyx_v_pbuf); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_39fuse_write_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_pbuf) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_write_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_13_fuse_write_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 438, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_pbuf = __pyx_v_pbuf; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_pbuf); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_pbuf); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_41generator13, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_write_async, __pyx_mstate_global->__pyx_n_u_fuse_write_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 438, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_write_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_41generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; size_t __pyx_t_8; __Pyx_PySendResult __pyx_t_9; int __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_write_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 438, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":442 * cdef size_t len_ * * try: # <<<<<<<<<<<<<< * len_ = await operations.write(c.fh, c.off, pbuf) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/pyfuse3/handlers.pxi":443 * * try: * len_ = await operations.write(c.fh, c.off, pbuf) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 443, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyLong_From_off_t(__pyx_cur_scope->__pyx_v_c->off); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 443, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 0; { PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_cur_scope->__pyx_v_pbuf}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_write, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 443, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(__pyx_t_9 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 443, __pyx_L4_error) __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4); } else if (likely(__pyx_t_9 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_4 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 443, __pyx_L4_error) } __pyx_t_8 = __Pyx_PyLong_As_size_t(__pyx_t_4); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 443, __pyx_L4_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_cur_scope->__pyx_v_len_ = __pyx_t_8; /* "src/pyfuse3/handlers.pxi":442 * cdef size_t len_ * * try: # <<<<<<<<<<<<<< * len_ = await operations.write(c.fh, c.off, pbuf) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":447 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_write(c.req, len_) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_write(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_len_); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":444 * try: * len_ = await operations.write(c.fh, c.off, pbuf) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_10) { __Pyx_AddTraceback("pyfuse3.fuse_write_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(3, 444, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_v_e = __pyx_t_7; /*try:*/ { /* "src/pyfuse3/handlers.pxi":445 * len_ = await operations.write(c.fh, c.off, pbuf) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_write(c.req, len_) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 445, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = __Pyx_PyLong_As_int(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 445, __pyx_L16_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_10); } /* "src/pyfuse3/handlers.pxi":444 * try: * len_ = await operations.write(c.fh, c.off, pbuf) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":442 * cdef size_t len_ * * try: # <<<<<<<<<<<<<< * len_ = await operations.write(c.fh, c.off, pbuf) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":449 * ret = fuse_reply_write(c.req, len_) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_write(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":450 * * if ret != 0: * log.error('fuse_write(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_7 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_7); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_8 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_fuse_write_fuse_reply__failed_wi, __pyx_t_4}; __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":449 * ret = fuse_reply_write(c.req, len_) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_write(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":438 * save_retval(fuse_write_async(c, pbuf)) * * async def fuse_write_async (_Container c, pbuf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_write_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":453 * * * cdef void fuse_write_buf(fuse_req_t req, fuse_ino_t ino, fuse_bufvec *bufv, # <<<<<<<<<<<<<< * off_t off, fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_write_buf(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, struct fuse_bufvec *__pyx_v_bufv, off_t __pyx_v_off, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_buf = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; uint64_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_write_buf", 0); /* "src/pyfuse3/handlers.pxi":455 * cdef void fuse_write_buf(fuse_req_t req, fuse_ino_t ino, fuse_bufvec *bufv, * off_t off, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.off = off */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 455, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":456 * off_t off, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.off = off * c.fh = fi.fh */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":457 * cdef _Container c = _Container() * c.req = req * c.off = off # <<<<<<<<<<<<<< * c.fh = fi.fh * buf = PyBytes_from_bufvec(bufv) */ __pyx_v_c->off = __pyx_v_off; /* "src/pyfuse3/handlers.pxi":458 * c.req = req * c.off = off * c.fh = fi.fh # <<<<<<<<<<<<<< * buf = PyBytes_from_bufvec(bufv) * save_retval(fuse_write_buf_async(c, buf)) */ __pyx_t_4 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_4; /* "src/pyfuse3/handlers.pxi":459 * c.off = off * c.fh = fi.fh * buf = PyBytes_from_bufvec(bufv) # <<<<<<<<<<<<<< * save_retval(fuse_write_buf_async(c, buf)) * */ __pyx_t_1 = __pyx_f_7pyfuse3_PyBytes_from_bufvec(__pyx_v_bufv); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_buf = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":460 * c.fh = fi.fh * buf = PyBytes_from_bufvec(bufv) * save_retval(fuse_write_buf_async(c, buf)) # <<<<<<<<<<<<<< * * async def fuse_write_buf_async (_Container c, buf): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_fuse_write_buf_async); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_v_buf}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 460, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":453 * * * cdef void fuse_write_buf(fuse_req_t req, fuse_ino_t ino, fuse_bufvec *bufv, # <<<<<<<<<<<<<< * off_t off, fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_write_buf", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_XDECREF(__pyx_v_buf); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_44generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":462 * save_retval(fuse_write_buf_async(c, buf)) * * async def fuse_write_buf_async (_Container c, buf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_43fuse_write_buf_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_43fuse_write_buf_async = {"fuse_write_buf_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_43fuse_write_buf_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_43fuse_write_buf_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_buf = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_write_buf_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_buf,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 462, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 462, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 462, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_write_buf_async", 0) < (0)) __PYX_ERR(3, 462, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_write_buf_async", 1, 2, 2, i); __PYX_ERR(3, 462, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 462, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 462, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_buf = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_write_buf_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 462, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_write_buf_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 462, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_42fuse_write_buf_async(__pyx_self, __pyx_v_c, __pyx_v_buf); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_42fuse_write_buf_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_buf) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_write_buf_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 462, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_buf = __pyx_v_buf; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_buf); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_buf); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_44generator14, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_write_buf_async, __pyx_mstate_global->__pyx_n_u_fuse_write_buf_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 462, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_write_buf_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_44generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; size_t __pyx_t_8; __Pyx_PySendResult __pyx_t_9; int __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_write_buf_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 462, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":466 * cdef size_t len_ * * try: # <<<<<<<<<<<<<< * len_ = await operations.write(c.fh, c.off, buf) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/pyfuse3/handlers.pxi":467 * * try: * len_ = await operations.write(c.fh, c.off, buf) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 467, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyLong_From_off_t(__pyx_cur_scope->__pyx_v_c->off); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 467, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 0; { PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_cur_scope->__pyx_v_buf}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_write, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 467, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(__pyx_t_9 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 467, __pyx_L4_error) __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4); } else if (likely(__pyx_t_9 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_4 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 467, __pyx_L4_error) } __pyx_t_8 = __Pyx_PyLong_As_size_t(__pyx_t_4); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 467, __pyx_L4_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_cur_scope->__pyx_v_len_ = __pyx_t_8; /* "src/pyfuse3/handlers.pxi":466 * cdef size_t len_ * * try: # <<<<<<<<<<<<<< * len_ = await operations.write(c.fh, c.off, buf) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":471 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_write(c.req, len_) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_write(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_len_); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":468 * try: * len_ = await operations.write(c.fh, c.off, buf) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_10) { __Pyx_AddTraceback("pyfuse3.fuse_write_buf_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(3, 468, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_v_e = __pyx_t_7; /*try:*/ { /* "src/pyfuse3/handlers.pxi":469 * len_ = await operations.write(c.fh, c.off, buf) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_write(c.req, len_) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 469, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = __Pyx_PyLong_As_int(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 469, __pyx_L16_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_10); } /* "src/pyfuse3/handlers.pxi":468 * try: * len_ = await operations.write(c.fh, c.off, buf) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":466 * cdef size_t len_ * * try: # <<<<<<<<<<<<<< * len_ = await operations.write(c.fh, c.off, buf) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":473 * ret = fuse_reply_write(c.req, len_) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_write_buf(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":474 * * if ret != 0: * log.error('fuse_write_buf(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_7 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_7); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_8 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_fuse_write_buf_fuse_reply__faile, __pyx_t_4}; __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":473 * ret = fuse_reply_write(c.req, len_) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_write_buf(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":462 * save_retval(fuse_write_buf_async(c, buf)) * * async def fuse_write_buf_async (_Container c, buf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_write_buf_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":477 * * * cdef void fuse_flush (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_flush(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; uint64_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_flush", 0); /* "src/pyfuse3/handlers.pxi":478 * * cdef void fuse_flush (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.fh = fi.fh */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 478, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":479 * cdef void fuse_flush (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_flush_async(c)) */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":480 * cdef _Container c = _Container() * c.req = req * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_flush_async(c)) * */ __pyx_t_4 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_4; /* "src/pyfuse3/handlers.pxi":481 * c.req = req * c.fh = fi.fh * save_retval(fuse_flush_async(c)) # <<<<<<<<<<<<<< * * async def fuse_flush_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_fuse_flush_async); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 481, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":477 * * * cdef void fuse_flush (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_flush", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_47generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":483 * save_retval(fuse_flush_async(c)) * * async def fuse_flush_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_46fuse_flush_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_46fuse_flush_async = {"fuse_flush_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_46fuse_flush_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_46fuse_flush_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_flush_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 483, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 483, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_flush_async", 0) < (0)) __PYX_ERR(3, 483, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_flush_async", 1, 1, 1, i); __PYX_ERR(3, 483, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 483, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_flush_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 483, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_flush_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 483, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_45fuse_flush_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_45fuse_flush_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_flush_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_15_fuse_flush_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 483, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_47generator15, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_flush_async, __pyx_mstate_global->__pyx_n_u_fuse_flush_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 483, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_flush_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_47generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; __Pyx_PySendResult __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_flush_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 483, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":486 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.flush(c.fh) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/pyfuse3/handlers.pxi":487 * * try: * await operations.flush(c.fh) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 487, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_6}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_flush, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 487, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 487, __pyx_L4_error) } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 487, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":486 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.flush(c.fh) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":491 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":488 * try: * await operations.flush(c.fh) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_flush_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(3, 488, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_e = __pyx_t_6; /*try:*/ { /* "src/pyfuse3/handlers.pxi":489 * await operations.flush(c.fh) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 489, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = __Pyx_PyLong_As_int(__pyx_t_10); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 489, __pyx_L16_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/pyfuse3/handlers.pxi":488 * try: * await operations.flush(c.fh) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":486 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.flush(c.fh) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":493 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_flush(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":494 * * if ret != 0: * log.error('fuse_flush(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_fuse_flush_fuse_reply__failed_wi, __pyx_t_4}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":493 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_flush(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":483 * save_retval(fuse_flush_async(c)) * * async def fuse_flush_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_flush_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":497 * * * cdef void fuse_release (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_release(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; uint64_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_release", 0); /* "src/pyfuse3/handlers.pxi":498 * * cdef void fuse_release (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.fh = fi.fh */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 498, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":499 * cdef void fuse_release (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_release_async(c)) */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":500 * cdef _Container c = _Container() * c.req = req * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_release_async(c)) * */ __pyx_t_4 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_4; /* "src/pyfuse3/handlers.pxi":501 * c.req = req * c.fh = fi.fh * save_retval(fuse_release_async(c)) # <<<<<<<<<<<<<< * * async def fuse_release_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_fuse_release_async); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 501, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":497 * * * cdef void fuse_release (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_release", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_50generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":503 * save_retval(fuse_release_async(c)) * * async def fuse_release_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_49fuse_release_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_49fuse_release_async = {"fuse_release_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_49fuse_release_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_49fuse_release_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_release_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 503, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 503, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_release_async", 0) < (0)) __PYX_ERR(3, 503, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_release_async", 1, 1, 1, i); __PYX_ERR(3, 503, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 503, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_release_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 503, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_release_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 503, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_48fuse_release_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_48fuse_release_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_release_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_16_fuse_release_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 503, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_50generator16, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_release_async, __pyx_mstate_global->__pyx_n_u_fuse_release_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 503, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_release_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_50generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; __Pyx_PySendResult __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_release_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 503, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":506 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.release(c.fh) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/pyfuse3/handlers.pxi":507 * * try: * await operations.release(c.fh) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 507, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_6}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_release, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 507, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 507, __pyx_L4_error) } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 507, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":506 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.release(c.fh) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":511 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":508 * try: * await operations.release(c.fh) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_release_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(3, 508, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_e = __pyx_t_6; /*try:*/ { /* "src/pyfuse3/handlers.pxi":509 * await operations.release(c.fh) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 509, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = __Pyx_PyLong_As_int(__pyx_t_10); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 509, __pyx_L16_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/pyfuse3/handlers.pxi":508 * try: * await operations.release(c.fh) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":506 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.release(c.fh) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":513 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_release(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":514 * * if ret != 0: * log.error('fuse_release(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_fuse_release_fuse_reply__failed, __pyx_t_4}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":513 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_release(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":503 * save_retval(fuse_release_async(c)) * * async def fuse_release_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_release_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":517 * * * cdef void fuse_fsync (fuse_req_t req, fuse_ino_t ino, int datasync, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_fsync(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, int __pyx_v_datasync, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; uint64_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_fsync", 0); /* "src/pyfuse3/handlers.pxi":519 * cdef void fuse_fsync (fuse_req_t req, fuse_ino_t ino, int datasync, * fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.flags = datasync */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 519, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":520 * fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.flags = datasync * c.fh = fi.fh */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":521 * cdef _Container c = _Container() * c.req = req * c.flags = datasync # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_fsync_async(c)) */ __pyx_v_c->flags = __pyx_v_datasync; /* "src/pyfuse3/handlers.pxi":522 * c.req = req * c.flags = datasync * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_fsync_async(c)) * */ __pyx_t_4 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_4; /* "src/pyfuse3/handlers.pxi":523 * c.flags = datasync * c.fh = fi.fh * save_retval(fuse_fsync_async(c)) # <<<<<<<<<<<<<< * * async def fuse_fsync_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_fuse_fsync_async); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 523, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":517 * * * cdef void fuse_fsync (fuse_req_t req, fuse_ino_t ino, int datasync, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_fsync", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_53generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":525 * save_retval(fuse_fsync_async(c)) * * async def fuse_fsync_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_52fuse_fsync_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_52fuse_fsync_async = {"fuse_fsync_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_52fuse_fsync_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_52fuse_fsync_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_fsync_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 525, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 525, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_fsync_async", 0) < (0)) __PYX_ERR(3, 525, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_fsync_async", 1, 1, 1, i); __PYX_ERR(3, 525, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 525, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_fsync_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 525, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_fsync_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 525, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_51fuse_fsync_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_51fuse_fsync_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_fsync_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 525, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_53generator17, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_fsync_async, __pyx_mstate_global->__pyx_n_u_fuse_fsync_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 525, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_fsync_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_53generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; size_t __pyx_t_8; __Pyx_PySendResult __pyx_t_9; int __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_fsync_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 525, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":528 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.fsync(c.fh, c.flags != 0) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/pyfuse3/handlers.pxi":529 * * try: * await operations.fsync(c.fh, c.flags != 0) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 529, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyBool_FromLong((__pyx_cur_scope->__pyx_v_c->flags != 0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 529, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 0; { PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_6, __pyx_t_7}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_fsync, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 529, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(__pyx_t_9 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 529, __pyx_L4_error) } else if (likely(__pyx_t_9 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 529, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":528 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.fsync(c.fh, c.flags != 0) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":533 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":530 * try: * await operations.fsync(c.fh, c.flags != 0) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_10) { __Pyx_AddTraceback("pyfuse3.fuse_fsync_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(3, 530, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_v_e = __pyx_t_7; /*try:*/ { /* "src/pyfuse3/handlers.pxi":531 * await operations.fsync(c.fh, c.flags != 0) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 531, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = __Pyx_PyLong_As_int(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 531, __pyx_L16_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_10); } /* "src/pyfuse3/handlers.pxi":530 * try: * await operations.fsync(c.fh, c.flags != 0) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":528 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.fsync(c.fh, c.flags != 0) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":535 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_fsync(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":536 * * if ret != 0: * log.error('fuse_fsync(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_7 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_7); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_8 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_fuse_fsync_fuse_reply__failed_wi, __pyx_t_4}; __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":535 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_fsync(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":525 * save_retval(fuse_fsync_async(c)) * * async def fuse_fsync_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_fsync_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":539 * * * cdef void fuse_opendir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_opendir(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_opendir", 0); /* "src/pyfuse3/handlers.pxi":540 * * cdef void fuse_opendir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 540, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":541 * cdef void fuse_opendir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.fi = fi[0] */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":542 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.fi = fi[0] * save_retval(fuse_opendir_async(c)) */ __pyx_v_c->ino = __pyx_v_ino; /* "src/pyfuse3/handlers.pxi":543 * c.req = req * c.ino = ino * c.fi = fi[0] # <<<<<<<<<<<<<< * save_retval(fuse_opendir_async(c)) * */ __pyx_v_c->fi = (__pyx_v_fi[0]); /* "src/pyfuse3/handlers.pxi":544 * c.ino = ino * c.fi = fi[0] * save_retval(fuse_opendir_async(c)) # <<<<<<<<<<<<<< * * async def fuse_opendir_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_opendir_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 544, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":539 * * * cdef void fuse_opendir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_opendir", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_56generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":546 * save_retval(fuse_opendir_async(c)) * * async def fuse_opendir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_55fuse_opendir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_55fuse_opendir_async = {"fuse_opendir_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_55fuse_opendir_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_55fuse_opendir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_opendir_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 546, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 546, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_opendir_async", 0) < (0)) __PYX_ERR(3, 546, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_opendir_async", 1, 1, 1, i); __PYX_ERR(3, 546, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 546, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_opendir_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 546, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_opendir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 546, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_54fuse_opendir_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_54fuse_opendir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_opendir_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 546, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_56generator18, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_opendir_async, __pyx_mstate_global->__pyx_n_u_fuse_opendir_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 546, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_opendir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_56generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; __Pyx_PySendResult __pyx_t_8; uint64_t __pyx_t_9; int __pyx_t_10; PyObject *__pyx_t_11 = NULL; int __pyx_t_12; char const *__pyx_t_13; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; int __pyx_t_20; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_opendir_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 546, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":549 * cdef int ret * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * c.fi.fh = await operations.opendir(c.ino, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":550 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * c.fi.fh = await operations.opendir(c.ino, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":551 * ctx = get_request_context(c.req) * try: * c.fi.fh = await operations.opendir(c.ino, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 551, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_opendir, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 551, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 551, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 551, __pyx_L4_error) } __pyx_t_9 = __Pyx_PyLong_As_uint64_t(__pyx_t_1); if (unlikely((__pyx_t_9 == ((uint64_t)-1)) && PyErr_Occurred())) __PYX_ERR(3, 551, __pyx_L4_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_cur_scope->__pyx_v_c->fi.fh = __pyx_t_9; /* "src/pyfuse3/handlers.pxi":550 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * c.fi.fh = await operations.opendir(c.ino, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":555 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_open(c.req, &c.fi) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_open(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_c->fi)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":552 * try: * c.fi.fh = await operations.opendir(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_10) { __Pyx_AddTraceback("pyfuse3.fuse_opendir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(3, 552, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_e = __pyx_t_6; /*try:*/ { /* "src/pyfuse3/handlers.pxi":553 * c.fi.fh = await operations.opendir(c.ino, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_open(c.req, &c.fi) */ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 553, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_10 = __Pyx_PyLong_As_int(__pyx_t_11); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 553, __pyx_L16_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_10); } /* "src/pyfuse3/handlers.pxi":552 * try: * c.fi.fh = await operations.opendir(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); if ( unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __pyx_t_10 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16); __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":550 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * c.fi.fh = await operations.opendir(c.ino, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":557 * ret = fuse_reply_open(c.req, &c.fi) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_opendir(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_20 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_20) { /* "src/pyfuse3/handlers.pxi":558 * * if ret != 0: * log.error('fuse_opendir(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_fuse_opendir_fuse_reply__failed, __pyx_t_1}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":557 * ret = fuse_reply_open(c.req, &c.fi) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_opendir(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":546 * save_retval(fuse_opendir_async(c)) * * async def fuse_opendir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_11); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_opendir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_12ReaddirToken_1__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_12ReaddirToken_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_12ReaddirToken_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_12ReaddirToken_1__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_12ReaddirToken___reduce_cython__(((struct __pyx_obj_7pyfuse3_ReaddirToken *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_12ReaddirToken___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_req_cannot_be_converted_to, 0, 0); __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.ReaddirToken.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_12ReaddirToken_3__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_12ReaddirToken_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_12ReaddirToken_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_12ReaddirToken_3__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 3, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 3, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 3, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) } __pyx_v___pyx_state = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 3, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.ReaddirToken.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_12ReaddirToken_2__setstate_cython__(((struct __pyx_obj_7pyfuse3_ReaddirToken *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_12ReaddirToken_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "self.req cannot be converted to a Python object for pickling" # <<<<<<<<<<<<<< */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_req_cannot_be_converted_to, 0, 0); __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.ReaddirToken.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":568 * cdef size_t size * * cdef void fuse_readdirplus (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, # <<<<<<<<<<<<<< * fuse_file_info *fi): * global py_retval */ static void __pyx_f_7pyfuse3_fuse_readdirplus(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, size_t __pyx_v_size, off_t __pyx_v_off, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; uint64_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_readdirplus", 0); /* "src/pyfuse3/handlers.pxi":571 * fuse_file_info *fi): * global py_retval * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.size = size */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 571, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":572 * global py_retval * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.size = size * c.off = off */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":573 * cdef _Container c = _Container() * c.req = req * c.size = size # <<<<<<<<<<<<<< * c.off = off * c.fh = fi.fh */ __pyx_v_c->size = __pyx_v_size; /* "src/pyfuse3/handlers.pxi":574 * c.req = req * c.size = size * c.off = off # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_readdirplus_async(c)) */ __pyx_v_c->off = __pyx_v_off; /* "src/pyfuse3/handlers.pxi":575 * c.size = size * c.off = off * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_readdirplus_async(c)) * */ __pyx_t_4 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_4; /* "src/pyfuse3/handlers.pxi":576 * c.off = off * c.fh = fi.fh * save_retval(fuse_readdirplus_async(c)) # <<<<<<<<<<<<<< * * async def fuse_readdirplus_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_fuse_readdirplus_async); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 576, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":568 * cdef size_t size * * cdef void fuse_readdirplus (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, # <<<<<<<<<<<<<< * fuse_file_info *fi): * global py_retval */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_readdirplus", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_59generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":578 * save_retval(fuse_readdirplus_async(c)) * * async def fuse_readdirplus_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ReaddirToken token = ReaddirToken() */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_58fuse_readdirplus_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_58fuse_readdirplus_async = {"fuse_readdirplus_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_58fuse_readdirplus_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_58fuse_readdirplus_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_readdirplus_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 578, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 578, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_readdirplus_async", 0) < (0)) __PYX_ERR(3, 578, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_readdirplus_async", 1, 1, 1, i); __PYX_ERR(3, 578, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 578, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_readdirplus_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 578, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_readdirplus_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 578, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_57fuse_readdirplus_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_57fuse_readdirplus_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_readdirplus_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 578, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_59generator19, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_readdirplus_async, __pyx_mstate_global->__pyx_n_u_fuse_readdirplus_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 578, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_readdirplus_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_59generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; fuse_req_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; __Pyx_PySendResult __pyx_t_10; int __pyx_t_11; int __pyx_t_12; int __pyx_t_13; char const *__pyx_t_14; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; PyObject *__pyx_t_20 = NULL; char const *__pyx_t_21; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_readdirplus_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L13_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 578, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":580 * async def fuse_readdirplus_async (_Container c): * cdef int ret * cdef ReaddirToken token = ReaddirToken() # <<<<<<<<<<<<<< * token.buf_start = NULL * token.size = c.size */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3_ReaddirToken, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 580, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __Pyx_GIVEREF((PyObject *)__pyx_t_1); __pyx_cur_scope->__pyx_v_token = ((struct __pyx_obj_7pyfuse3_ReaddirToken *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":581 * cdef int ret * cdef ReaddirToken token = ReaddirToken() * token.buf_start = NULL # <<<<<<<<<<<<<< * token.size = c.size * token.req = c.req */ __pyx_cur_scope->__pyx_v_token->buf_start = NULL; /* "src/pyfuse3/handlers.pxi":582 * cdef ReaddirToken token = ReaddirToken() * token.buf_start = NULL * token.size = c.size # <<<<<<<<<<<<<< * token.req = c.req * */ __pyx_t_3 = __pyx_cur_scope->__pyx_v_c->size; __pyx_cur_scope->__pyx_v_token->size = __pyx_t_3; /* "src/pyfuse3/handlers.pxi":583 * token.buf_start = NULL * token.size = c.size * token.req = c.req # <<<<<<<<<<<<<< * * try: */ __pyx_t_4 = __pyx_cur_scope->__pyx_v_c->req; __pyx_cur_scope->__pyx_v_token->req = __pyx_t_4; /* "src/pyfuse3/handlers.pxi":585 * token.req = c.req * * try: # <<<<<<<<<<<<<< * await operations.readdir(c.fh, c.off, token) * except FUSEError as e: */ /*try:*/ { { __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); /*try:*/ { /* "src/pyfuse3/handlers.pxi":586 * * try: * await operations.readdir(c.fh, c.off, token) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_2 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyLong_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 586, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyLong_From_off_t(__pyx_cur_scope->__pyx_v_c->off); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 586, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = 0; { PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_t_8, __pyx_t_9, ((PyObject *)__pyx_cur_scope->__pyx_v_token)}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_readdir, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 586, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_10 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_10 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_0 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L13_resume_from_await:; __pyx_t_5 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_5); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 586, __pyx_L7_error) } else if (likely(__pyx_t_10 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 586, __pyx_L7_error) } /* "src/pyfuse3/handlers.pxi":585 * token.req = c.req * * try: # <<<<<<<<<<<<<< * await operations.readdir(c.fh, c.off, token) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":590 * ret = fuse_reply_err(c.req, e.errno) * else: * if token.buf_start == NULL: # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, NULL, 0) * else: */ /*else:*/ { __pyx_t_11 = (__pyx_cur_scope->__pyx_v_token->buf_start == NULL); if (__pyx_t_11) { /* "src/pyfuse3/handlers.pxi":591 * else: * if token.buf_start == NULL: * ret = fuse_reply_buf(c.req, NULL, 0) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_buf(c.req, token.buf_start, c.size - token.size) */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_buf(__pyx_cur_scope->__pyx_v_c->req, NULL, 0); /* "src/pyfuse3/handlers.pxi":590 * ret = fuse_reply_err(c.req, e.errno) * else: * if token.buf_start == NULL: # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, NULL, 0) * else: */ goto __pyx_L14; } /* "src/pyfuse3/handlers.pxi":593 * ret = fuse_reply_buf(c.req, NULL, 0) * else: * ret = fuse_reply_buf(c.req, token.buf_start, c.size - token.size) # <<<<<<<<<<<<<< * finally: * stdlib.free(token.buf_start) */ /*else*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_buf(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_token->buf_start, (__pyx_cur_scope->__pyx_v_c->size - __pyx_cur_scope->__pyx_v_token->size)); } __pyx_L14:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L12_try_end; __pyx_L7_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "src/pyfuse3/handlers.pxi":587 * try: * await operations.readdir(c.fh, c.off, token) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_12 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_12) { __Pyx_AddTraceback("pyfuse3.fuse_readdirplus_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_9, &__pyx_t_8) < 0) __PYX_ERR(3, 587, __pyx_L9_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_v_e = __pyx_t_9; /*try:*/ { /* "src/pyfuse3/handlers.pxi":588 * await operations.readdir(c.fh, c.off, token) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * if token.buf_start == NULL: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 588, __pyx_L20_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 588, __pyx_L20_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_12); } /* "src/pyfuse3/handlers.pxi":587 * try: * await operations.readdir(c.fh, c.off, token) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L21; } __pyx_L20_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if ( unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __pyx_t_12 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17); __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14; goto __pyx_L9_except_error; } __pyx_L21:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L8_exception_handled; } goto __pyx_L9_except_error; /* "src/pyfuse3/handlers.pxi":585 * token.req = c.req * * try: # <<<<<<<<<<<<<< * await operations.readdir(c.fh, c.off, token) * except FUSEError as e: */ __pyx_L9_except_error:; __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); goto __pyx_L5_error; __pyx_L8_exception_handled:; __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); __pyx_L12_try_end:; } } /* "src/pyfuse3/handlers.pxi":595 * ret = fuse_reply_buf(c.req, token.buf_start, c.size - token.size) * finally: * stdlib.free(token.buf_start) # <<<<<<<<<<<<<< * * if ret != 0: */ /*finally:*/ { /*normal exit:*/{ free(__pyx_cur_scope->__pyx_v_token->buf_start); goto __pyx_L6; } __pyx_L5_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_13 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_21 = __pyx_filename; { free(__pyx_cur_scope->__pyx_v_token->buf_start); } __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_19, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ErrRestore(__pyx_t_7, __pyx_t_6, __pyx_t_5); __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_13; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_21; goto __pyx_L1_error; } __pyx_L6:; } /* "src/pyfuse3/handlers.pxi":597 * stdlib.free(token.buf_start) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_readdirplus(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_11 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_11) { /* "src/pyfuse3/handlers.pxi":598 * * if ret != 0: * log.error('fuse_readdirplus(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_9 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2); assert(__pyx_t_9); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_2, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_fuse_readdirplus_fuse_reply__fai, __pyx_t_1}; __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/pyfuse3/handlers.pxi":597 * stdlib.free(token.buf_start) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_readdirplus(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":578 * save_retval(fuse_readdirplus_async(c)) * * async def fuse_readdirplus_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ReaddirToken token = ReaddirToken() */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_readdirplus_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":601 * * * cdef void fuse_releasedir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_releasedir(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; uint64_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_releasedir", 0); /* "src/pyfuse3/handlers.pxi":602 * * cdef void fuse_releasedir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.fh = fi.fh */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 602, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":603 * cdef void fuse_releasedir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_releasedir_async(c)) */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":604 * cdef _Container c = _Container() * c.req = req * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_releasedir_async(c)) * */ __pyx_t_4 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_4; /* "src/pyfuse3/handlers.pxi":605 * c.req = req * c.fh = fi.fh * save_retval(fuse_releasedir_async(c)) # <<<<<<<<<<<<<< * * async def fuse_releasedir_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_fuse_releasedir_async); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 605, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":601 * * * cdef void fuse_releasedir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_releasedir", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_62generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":607 * save_retval(fuse_releasedir_async(c)) * * async def fuse_releasedir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_61fuse_releasedir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_61fuse_releasedir_async = {"fuse_releasedir_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_61fuse_releasedir_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_61fuse_releasedir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_releasedir_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 607, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_releasedir_async", 0) < (0)) __PYX_ERR(3, 607, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_releasedir_async", 1, 1, 1, i); __PYX_ERR(3, 607, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 607, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_releasedir_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 607, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_releasedir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 607, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_60fuse_releasedir_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_60fuse_releasedir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_releasedir_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 607, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_62generator20, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_releasedir_async, __pyx_mstate_global->__pyx_n_u_fuse_releasedir_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 607, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_releasedir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_62generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; __Pyx_PySendResult __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_releasedir_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 607, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":610 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.releasedir(c.fh) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/pyfuse3/handlers.pxi":611 * * try: * await operations.releasedir(c.fh) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 611, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_6}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_releasedir, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 611, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 611, __pyx_L4_error) } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 611, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":610 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.releasedir(c.fh) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":615 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":612 * try: * await operations.releasedir(c.fh) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_releasedir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(3, 612, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_e = __pyx_t_6; /*try:*/ { /* "src/pyfuse3/handlers.pxi":613 * await operations.releasedir(c.fh) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 613, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = __Pyx_PyLong_As_int(__pyx_t_10); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 613, __pyx_L16_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/pyfuse3/handlers.pxi":612 * try: * await operations.releasedir(c.fh) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":610 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.releasedir(c.fh) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":617 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_releasedir(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":618 * * if ret != 0: * log.error('fuse_releasedir(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_fuse_releasedir_fuse_reply__fail, __pyx_t_4}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":617 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_releasedir(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":607 * save_retval(fuse_releasedir_async(c)) * * async def fuse_releasedir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_releasedir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":622 * * * cdef void fuse_fsyncdir (fuse_req_t req, fuse_ino_t ino, int datasync, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_fsyncdir(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, int __pyx_v_datasync, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; uint64_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_fsyncdir", 0); /* "src/pyfuse3/handlers.pxi":624 * cdef void fuse_fsyncdir (fuse_req_t req, fuse_ino_t ino, int datasync, * fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.flags = datasync */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 624, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":625 * fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.flags = datasync * c.fh = fi.fh */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":626 * cdef _Container c = _Container() * c.req = req * c.flags = datasync # <<<<<<<<<<<<<< * c.fh = fi.fh * save_retval(fuse_fsyncdir_async(c)) */ __pyx_v_c->flags = __pyx_v_datasync; /* "src/pyfuse3/handlers.pxi":627 * c.req = req * c.flags = datasync * c.fh = fi.fh # <<<<<<<<<<<<<< * save_retval(fuse_fsyncdir_async(c)) * */ __pyx_t_4 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_4; /* "src/pyfuse3/handlers.pxi":628 * c.flags = datasync * c.fh = fi.fh * save_retval(fuse_fsyncdir_async(c)) # <<<<<<<<<<<<<< * * async def fuse_fsyncdir_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_fuse_fsyncdir_async); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 628, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":622 * * * cdef void fuse_fsyncdir (fuse_req_t req, fuse_ino_t ino, int datasync, # <<<<<<<<<<<<<< * fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_fsyncdir", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_65generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":630 * save_retval(fuse_fsyncdir_async(c)) * * async def fuse_fsyncdir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_64fuse_fsyncdir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_64fuse_fsyncdir_async = {"fuse_fsyncdir_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_64fuse_fsyncdir_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_64fuse_fsyncdir_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_fsyncdir_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 630, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 630, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_fsyncdir_async", 0) < (0)) __PYX_ERR(3, 630, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_fsyncdir_async", 1, 1, 1, i); __PYX_ERR(3, 630, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 630, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_fsyncdir_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 630, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_fsyncdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 630, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_63fuse_fsyncdir_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_63fuse_fsyncdir_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_fsyncdir_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 630, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_65generator21, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_fsyncdir_async, __pyx_mstate_global->__pyx_n_u_fuse_fsyncdir_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 630, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_fsyncdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_65generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; size_t __pyx_t_8; __Pyx_PySendResult __pyx_t_9; int __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_fsyncdir_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 630, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":633 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.fsyncdir(c.fh, c.flags != 0) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/pyfuse3/handlers.pxi":634 * * try: * await operations.fsyncdir(c.fh, c.flags != 0) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 634, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyBool_FromLong((__pyx_cur_scope->__pyx_v_c->flags != 0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 634, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 0; { PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_6, __pyx_t_7}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_fsyncdir, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 634, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(__pyx_t_9 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 634, __pyx_L4_error) } else if (likely(__pyx_t_9 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 634, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":633 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.fsyncdir(c.fh, c.flags != 0) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":638 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":635 * try: * await operations.fsyncdir(c.fh, c.flags != 0) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_10) { __Pyx_AddTraceback("pyfuse3.fuse_fsyncdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(3, 635, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_v_e = __pyx_t_7; /*try:*/ { /* "src/pyfuse3/handlers.pxi":636 * await operations.fsyncdir(c.fh, c.flags != 0) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 636, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = __Pyx_PyLong_As_int(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 636, __pyx_L16_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_10); } /* "src/pyfuse3/handlers.pxi":635 * try: * await operations.fsyncdir(c.fh, c.flags != 0) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":633 * cdef int ret * * try: # <<<<<<<<<<<<<< * await operations.fsyncdir(c.fh, c.flags != 0) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":640 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_fsyncdir(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":641 * * if ret != 0: * log.error('fuse_fsyncdir(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_7 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_7); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_8 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_fuse_fsyncdir_fuse_reply__failed, __pyx_t_4}; __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":640 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_fsyncdir(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":630 * save_retval(fuse_fsyncdir_async(c)) * * async def fuse_fsyncdir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_fsyncdir_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":645 * * * cdef void fuse_statfs (fuse_req_t req, fuse_ino_t ino): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_statfs(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_statfs", 0); /* "src/pyfuse3/handlers.pxi":646 * * cdef void fuse_statfs (fuse_req_t req, fuse_ino_t ino): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * save_retval(fuse_statfs_async(c)) */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 646, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":647 * cdef void fuse_statfs (fuse_req_t req, fuse_ino_t ino): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * save_retval(fuse_statfs_async(c)) * */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":648 * cdef _Container c = _Container() * c.req = req * save_retval(fuse_statfs_async(c)) # <<<<<<<<<<<<<< * * async def fuse_statfs_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_statfs_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 648, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":645 * * * cdef void fuse_statfs (fuse_req_t req, fuse_ino_t ino): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_statfs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_68generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":650 * save_retval(fuse_statfs_async(c)) * * async def fuse_statfs_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef StatvfsData stats */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_67fuse_statfs_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_67fuse_statfs_async = {"fuse_statfs_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_67fuse_statfs_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_67fuse_statfs_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_statfs_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 650, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 650, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_statfs_async", 0) < (0)) __PYX_ERR(3, 650, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_statfs_async", 1, 1, 1, i); __PYX_ERR(3, 650, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 650, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_statfs_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 650, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_statfs_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 650, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_66fuse_statfs_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_66fuse_statfs_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_statfs_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 650, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_68generator22, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_statfs_async, __pyx_mstate_global->__pyx_n_u_fuse_statfs_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 650, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_statfs_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_68generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; size_t __pyx_t_6; __Pyx_PySendResult __pyx_t_7; int __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_statfs_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 650, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":654 * cdef StatvfsData stats * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * stats = await operations.statfs(ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":655 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * stats = await operations.statfs(ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":656 * ctx = get_request_context(c.req) * try: * stats = await operations.statfs(ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_statfs, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 656, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_7 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 656, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_7 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 656, __pyx_L4_error) } if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7pyfuse3_StatvfsData)))) __PYX_ERR(3, 656, __pyx_L4_error) __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_stats = ((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":655 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * stats = await operations.statfs(ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":660 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_statfs(c.req, &stats.stat) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_statfs(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_stats->stat)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":657 * try: * stats = await operations.statfs(ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_8) { __Pyx_AddTraceback("pyfuse3.fuse_statfs_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_9) < 0) __PYX_ERR(3, 657, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/pyfuse3/handlers.pxi":658 * stats = await operations.statfs(ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_statfs(c.req, &stats.stat) */ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 658, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_8 = __Pyx_PyLong_As_int(__pyx_t_10); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 658, __pyx_L16_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_8); } /* "src/pyfuse3/handlers.pxi":657 * try: * stats = await operations.statfs(ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_8 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":655 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * stats = await operations.statfs(ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":662 * ret = fuse_reply_statfs(c.req, &stats.stat) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_statfs(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":663 * * if ret != 0: * log.error('fuse_statfs(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_1 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10); assert(__pyx_t_1); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_fuse_statfs_fuse_reply__failed_w, __pyx_t_5}; __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* "src/pyfuse3/handlers.pxi":662 * ret = fuse_reply_statfs(c.req, &stats.stat) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_statfs(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":650 * save_retval(fuse_statfs_async(c)) * * async def fuse_statfs_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef StatvfsData stats */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_statfs_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":666 * * * cdef void fuse_setxattr (fuse_req_t req, fuse_ino_t ino, const_char *cname, # <<<<<<<<<<<<<< * const_char *cvalue, size_t size, int flags): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_setxattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, const char *__pyx_v_cname, const char *__pyx_v_cvalue, size_t __pyx_v_size, int __pyx_v_flags) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = NULL; PyObject *__pyx_v_value = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_setxattr", 0); /* "src/pyfuse3/handlers.pxi":668 * cdef void fuse_setxattr (fuse_req_t req, fuse_ino_t ino, const_char *cname, * const_char *cvalue, size_t size, int flags): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 668, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":669 * const_char *cvalue, size_t size, int flags): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.size = size */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":670 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.size = size * c.flags = flags */ __pyx_v_c->ino = __pyx_v_ino; /* "src/pyfuse3/handlers.pxi":671 * c.req = req * c.ino = ino * c.size = size # <<<<<<<<<<<<<< * c.flags = flags * */ __pyx_v_c->size = __pyx_v_size; /* "src/pyfuse3/handlers.pxi":672 * c.ino = ino * c.size = size * c.flags = flags # <<<<<<<<<<<<<< * * name = PyBytes_FromString(cname) */ __pyx_v_c->flags = __pyx_v_flags; /* "src/pyfuse3/handlers.pxi":674 * c.flags = flags * * name = PyBytes_FromString(cname) # <<<<<<<<<<<<<< * if c.size > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') */ __pyx_t_1 = PyBytes_FromString(__pyx_v_cname); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_name = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":675 * * name = PyBytes_FromString(cname) * if c.size > PY_SSIZE_T_MAX: # <<<<<<<<<<<<<< * raise OverflowError('Value too long to convert to Python') * value = PyBytes_FromStringAndSize(cvalue, c.size) */ __pyx_t_4 = (__pyx_v_c->size > PY_SSIZE_T_MAX); if (unlikely(__pyx_t_4)) { /* "src/pyfuse3/handlers.pxi":676 * name = PyBytes_FromString(cname) * if c.size > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') # <<<<<<<<<<<<<< * value = PyBytes_FromStringAndSize(cvalue, c.size) * */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Value_too_long_to_convert_to_Pyt}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OverflowError)), __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(3, 676, __pyx_L1_error) /* "src/pyfuse3/handlers.pxi":675 * * name = PyBytes_FromString(cname) * if c.size > PY_SSIZE_T_MAX: # <<<<<<<<<<<<<< * raise OverflowError('Value too long to convert to Python') * value = PyBytes_FromStringAndSize(cvalue, c.size) */ } /* "src/pyfuse3/handlers.pxi":677 * if c.size > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') * value = PyBytes_FromStringAndSize(cvalue, c.size) # <<<<<<<<<<<<<< * * save_retval(fuse_setxattr_async(c, name, value)) */ __pyx_t_1 = PyBytes_FromStringAndSize(__pyx_v_cvalue, ((Py_ssize_t)__pyx_v_c->size)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_value = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":679 * value = PyBytes_FromStringAndSize(cvalue, c.size) * * save_retval(fuse_setxattr_async(c, name, value)) # <<<<<<<<<<<<<< * * async def fuse_setxattr_async (_Container c, name, value): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_fuse_setxattr_async); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[4] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_v_name, __pyx_v_value}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 679, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":666 * * * cdef void fuse_setxattr (fuse_req_t req, fuse_ino_t ino, const_char *cname, # <<<<<<<<<<<<<< * const_char *cvalue, size_t size, int flags): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_setxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_XDECREF(__pyx_v_name); __Pyx_XDECREF(__pyx_v_value); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_71generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":681 * save_retval(fuse_setxattr_async(c, name, value)) * * async def fuse_setxattr_async (_Container c, name, value): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_70fuse_setxattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_70fuse_setxattr_async = {"fuse_setxattr_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_70fuse_setxattr_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_70fuse_setxattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; PyObject *__pyx_v_value = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_setxattr_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_value,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 681, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 681, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 681, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 681, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_setxattr_async", 0) < (0)) __PYX_ERR(3, 681, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_setxattr_async", 1, 3, 3, i); __PYX_ERR(3, 681, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 681, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 681, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 681, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; __pyx_v_value = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_setxattr_async", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 681, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_setxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 681, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_69fuse_setxattr_async(__pyx_self, __pyx_v_c, __pyx_v_name, __pyx_v_value); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_69fuse_setxattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name, PyObject *__pyx_v_value) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_setxattr_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 681, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); __pyx_cur_scope->__pyx_v_value = __pyx_v_value; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_value); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_value); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_71generator23, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_setxattr_async, __pyx_mstate_global->__pyx_n_u_fuse_setxattr_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 681, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_setxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_71generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; size_t __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; __Pyx_PySendResult __pyx_t_14; int __pyx_t_15; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; int __pyx_t_18; char const *__pyx_t_19; PyObject *__pyx_t_20 = NULL; PyObject *__pyx_t_21 = NULL; PyObject *__pyx_t_22 = NULL; PyObject *__pyx_t_23 = NULL; PyObject *__pyx_t_24 = NULL; PyObject *__pyx_t_25 = NULL; char const *__pyx_t_26; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_setxattr_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L21_resume_from_await; case 2: goto __pyx_L34_resume_from_await; case 3: goto __pyx_L35_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 681, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":685 * * # Special case for deadlock debugging * if c.ino == FUSE_ROOT_ID and name == 'fuse_stacktrace': # <<<<<<<<<<<<<< * operations.stacktrace() * fuse_reply_err(c.req, 0) */ __pyx_t_2 = (__pyx_cur_scope->__pyx_v_c->ino == FUSE_ROOT_ID); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_name, __pyx_mstate_global->__pyx_n_u_fuse_stacktrace, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(3, 685, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L5_bool_binop_done:; if (__pyx_t_1) { /* "src/pyfuse3/handlers.pxi":686 * # Special case for deadlock debugging * if c.ino == FUSE_ROOT_ID and name == 'fuse_stacktrace': * operations.stacktrace() # <<<<<<<<<<<<<< * fuse_reply_err(c.req, 0) * return */ __pyx_t_4 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_stacktrace, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/pyfuse3/handlers.pxi":687 * if c.ino == FUSE_ROOT_ID and name == 'fuse_stacktrace': * operations.stacktrace() * fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * return * */ (void)(fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0)); /* "src/pyfuse3/handlers.pxi":688 * operations.stacktrace() * fuse_reply_err(c.req, 0) * return # <<<<<<<<<<<<<< * * # Make sure we know all the flags */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; /* "src/pyfuse3/handlers.pxi":685 * * # Special case for deadlock debugging * if c.ino == FUSE_ROOT_ID and name == 'fuse_stacktrace': # <<<<<<<<<<<<<< * operations.stacktrace() * fuse_reply_err(c.req, 0) */ } /* "src/pyfuse3/handlers.pxi":691 * * # Make sure we know all the flags * if c.flags & ~(libc_extra.XATTR_CREATE | libc_extra.XATTR_REPLACE): # <<<<<<<<<<<<<< * raise ValueError('unknown flag(s): %o' % c.flags) * */ __pyx_t_1 = ((__pyx_cur_scope->__pyx_v_c->flags & (~(XATTR_CREATE | XATTR_REPLACE))) != 0); if (unlikely(__pyx_t_1)) { /* "src/pyfuse3/handlers.pxi":692 * # Make sure we know all the flags * if c.flags & ~(libc_extra.XATTR_CREATE | libc_extra.XATTR_REPLACE): * raise ValueError('unknown flag(s): %o' % c.flags) # <<<<<<<<<<<<<< * * ctx = get_request_context(c.req) */ __pyx_t_4 = NULL; __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_c->flags); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_unknown_flag_s_o, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(3, 692, __pyx_L1_error) /* "src/pyfuse3/handlers.pxi":691 * * # Make sure we know all the flags * if c.flags & ~(libc_extra.XATTR_CREATE | libc_extra.XATTR_REPLACE): # <<<<<<<<<<<<<< * raise ValueError('unknown flag(s): %o' % c.flags) * */ } /* "src/pyfuse3/handlers.pxi":694 * raise ValueError('unknown flag(s): %o' % c.flags) * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist */ __pyx_t_3 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_3; __pyx_t_3 = 0; /* "src/pyfuse3/handlers.pxi":695 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: */ { __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); /*try:*/ { /* "src/pyfuse3/handlers.pxi":696 * ctx = get_request_context(c.req) * try: * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist # <<<<<<<<<<<<<< * try: * await operations.getxattr(c.ino, name, ctx) */ __pyx_t_1 = ((__pyx_cur_scope->__pyx_v_c->flags & XATTR_CREATE) != 0); if (__pyx_t_1) { /* "src/pyfuse3/handlers.pxi":697 * try: * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: # <<<<<<<<<<<<<< * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); /*try:*/ { /* "src/pyfuse3/handlers.pxi":698 * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: * await operations.getxattr(c.ino, name, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * if e.errno != ENOATTR: */ __pyx_t_7 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_7); __pyx_t_4 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 698, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 0; { PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_4, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_getxattr, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 698, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_3); } __pyx_t_14 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3, &__pyx_r); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(__pyx_t_14 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_0 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_1 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_2 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_3 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_4 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_t_13); __pyx_cur_scope->__pyx_t_5 = __pyx_t_13; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L21_resume_from_await:; __pyx_t_8 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_12); __pyx_t_13 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 698, __pyx_L15_error) } else if (likely(__pyx_t_14 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 698, __pyx_L15_error) } /* "src/pyfuse3/handlers.pxi":697 * try: * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: # <<<<<<<<<<<<<< * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":703 * raise * else: * raise FUSEError(errno.EEXIST) # <<<<<<<<<<<<<< * * elif c.flags & libc_extra.XATTR_REPLACE: # Attribute must exist */ /*else:*/ { __pyx_t_4 = NULL; __pyx_t_7 = __Pyx_PyLong_From___pyx_anon_enum(EEXIST); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 703, __pyx_L17_except_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 703, __pyx_L17_except_error) __Pyx_GOTREF((PyObject *)__pyx_t_3); } __Pyx_Raise(((PyObject *)__pyx_t_3), 0, 0, 0); __Pyx_DECREF((PyObject *)__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(3, 703, __pyx_L17_except_error) } __pyx_L15_error:; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":699 * try: * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * if e.errno != ENOATTR: * raise */ __pyx_t_15 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_15) { __Pyx_AddTraceback("pyfuse3.fuse_setxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_7, &__pyx_t_4) < 0) __PYX_ERR(3, 699, __pyx_L17_except_error) __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_v_e = __pyx_t_7; /*try:*/ { /* "src/pyfuse3/handlers.pxi":700 * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: * if e.errno != ENOATTR: # <<<<<<<<<<<<<< * raise * else: */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 700, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_16 = __Pyx_PyLong_From___pyx_anon_enum(ENOATTR); if (unlikely(!__pyx_t_16)) __PYX_ERR(3, 700, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = PyObject_RichCompare(__pyx_t_6, __pyx_t_16, Py_NE); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(3, 700, __pyx_L27_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(3, 700, __pyx_L27_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if (unlikely(__pyx_t_1)) { /* "src/pyfuse3/handlers.pxi":701 * except FUSEError as e: * if e.errno != ENOATTR: * raise # <<<<<<<<<<<<<< * else: * raise FUSEError(errno.EEXIST) */ __Pyx_GIVEREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_7, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_7 = 0; __pyx_t_4 = 0; __PYX_ERR(3, 701, __pyx_L27_error) /* "src/pyfuse3/handlers.pxi":700 * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: * if e.errno != ENOATTR: # <<<<<<<<<<<<<< * raise * else: */ } } /* "src/pyfuse3/handlers.pxi":699 * try: * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * if e.errno != ENOATTR: * raise */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L28; } __pyx_L27_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ExceptionSwap(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25); if ( unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __pyx_t_15 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_ExceptionReset(__pyx_t_23, __pyx_t_24, __pyx_t_25); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_ErrRestore(__pyx_t_20, __pyx_t_21, __pyx_t_22); __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_19; goto __pyx_L17_except_error; } __pyx_L28:; } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L16_exception_handled; } goto __pyx_L17_except_error; /* "src/pyfuse3/handlers.pxi":697 * try: * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: # <<<<<<<<<<<<<< * await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: */ __pyx_L17_except_error:; __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); goto __pyx_L8_error; __pyx_L16_exception_handled:; __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); } /* "src/pyfuse3/handlers.pxi":696 * ctx = get_request_context(c.req) * try: * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist # <<<<<<<<<<<<<< * try: * await operations.getxattr(c.ino, name, ctx) */ goto __pyx_L14; } /* "src/pyfuse3/handlers.pxi":705 * raise FUSEError(errno.EEXIST) * * elif c.flags & libc_extra.XATTR_REPLACE: # Attribute must exist # <<<<<<<<<<<<<< * await operations.getxattr(c.ino, name, ctx) * */ __pyx_t_1 = ((__pyx_cur_scope->__pyx_v_c->flags & XATTR_REPLACE) != 0); if (__pyx_t_1) { /* "src/pyfuse3/handlers.pxi":706 * * elif c.flags & libc_extra.XATTR_REPLACE: # Attribute must exist * await operations.getxattr(c.ino, name, ctx) # <<<<<<<<<<<<<< * * await operations.setxattr(c.ino, name, value, ctx) */ __pyx_t_7 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_7); __pyx_t_3 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 706, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = 0; { PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_t_3, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_getxattr, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 706, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_14 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(__pyx_t_14 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_0 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_1 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_2 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L34_resume_from_await:; __pyx_t_8 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 706, __pyx_L8_error) } else if (likely(__pyx_t_14 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 706, __pyx_L8_error) } /* "src/pyfuse3/handlers.pxi":705 * raise FUSEError(errno.EEXIST) * * elif c.flags & libc_extra.XATTR_REPLACE: # Attribute must exist # <<<<<<<<<<<<<< * await operations.getxattr(c.ino, name, ctx) * */ } __pyx_L14:; /* "src/pyfuse3/handlers.pxi":708 * await operations.getxattr(c.ino, name, ctx) * * await operations.setxattr(c.ino, name, value, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_3 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 708, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = 0; { PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_t_7, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_value, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_setxattr, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 708, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_14 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(__pyx_t_14 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_0 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_1 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_2 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L35_resume_from_await:; __pyx_t_8 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 708, __pyx_L8_error) } else if (likely(__pyx_t_14 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 708, __pyx_L8_error) } /* "src/pyfuse3/handlers.pxi":695 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: */ } /* "src/pyfuse3/handlers.pxi":712 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L13_try_end; __pyx_L8_error:; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":709 * * await operations.setxattr(c.ino, name, value, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_18 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_18) { __Pyx_AddTraceback("pyfuse3.fuse_setxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_3) < 0) __PYX_ERR(3, 709, __pyx_L10_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_e, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); /*try:*/ { /* "src/pyfuse3/handlers.pxi":710 * await operations.setxattr(c.ino, name, value, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_17)) __PYX_ERR(3, 710, __pyx_L41_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_18 = __Pyx_PyLong_As_int(__pyx_t_17); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 710, __pyx_L41_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_18); } /* "src/pyfuse3/handlers.pxi":709 * * await operations.setxattr(c.ino, name, value, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L42; } __pyx_L41_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ExceptionSwap(&__pyx_t_25, &__pyx_t_24, &__pyx_t_23); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_23); __pyx_t_18 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_26 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_24, __pyx_t_23); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_12, __pyx_t_11); __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_lineno = __pyx_t_18; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_26; goto __pyx_L10_except_error; } __pyx_L42:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L9_exception_handled; } goto __pyx_L10_except_error; /* "src/pyfuse3/handlers.pxi":695 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist * try: */ __pyx_L10_except_error:; __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); goto __pyx_L1_error; __pyx_L9_exception_handled:; __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); __pyx_L13_try_end:; } /* "src/pyfuse3/handlers.pxi":714 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_setxattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_1 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_1) { /* "src/pyfuse3/handlers.pxi":715 * * if ret != 0: * log.error('fuse_setxattr(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_7 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_17)) __PYX_ERR(3, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_17))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_17); assert(__pyx_t_7); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_17, __pyx__function); __pyx_t_5 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_fuse_setxattr_fuse_reply__failed, __pyx_t_4}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_17, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/pyfuse3/handlers.pxi":714 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_setxattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":681 * save_retval(fuse_setxattr_async(c, name, value)) * * async def fuse_setxattr_async (_Container c, name, value): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_16); __Pyx_XDECREF(__pyx_t_17); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_setxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":718 * * * cdef void fuse_getxattr (fuse_req_t req, fuse_ino_t ino, const_char *name, # <<<<<<<<<<<<<< * size_t size): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_getxattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, const char *__pyx_v_name, size_t __pyx_v_size) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_getxattr", 0); /* "src/pyfuse3/handlers.pxi":720 * cdef void fuse_getxattr (fuse_req_t req, fuse_ino_t ino, const_char *name, * size_t size): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 720, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":721 * size_t size): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.size = size */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":722 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.size = size * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) */ __pyx_v_c->ino = __pyx_v_ino; /* "src/pyfuse3/handlers.pxi":723 * c.req = req * c.ino = ino * c.size = size # <<<<<<<<<<<<<< * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->size = __pyx_v_size; /* "src/pyfuse3/handlers.pxi":724 * c.ino = ino * c.size = size * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_getxattr_async (_Container c, name): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_getxattr_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_t_5}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 724, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":718 * * * cdef void fuse_getxattr (fuse_req_t req, fuse_ino_t ino, const_char *name, # <<<<<<<<<<<<<< * size_t size): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_getxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_74generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":726 * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) * * async def fuse_getxattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_73fuse_getxattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_73fuse_getxattr_async = {"fuse_getxattr_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_73fuse_getxattr_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_73fuse_getxattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_getxattr_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 726, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 726, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 726, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_getxattr_async", 0) < (0)) __PYX_ERR(3, 726, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_getxattr_async", 1, 2, 2, i); __PYX_ERR(3, 726, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 726, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 726, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_getxattr_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 726, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_getxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 726, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_72fuse_getxattr_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_72fuse_getxattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_getxattr_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 726, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_74generator24, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_getxattr_async, __pyx_mstate_global->__pyx_n_u_fuse_getxattr_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 726, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_getxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_74generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; __Pyx_PySendResult __pyx_t_8; int __pyx_t_9; int __pyx_t_10; PyObject *__pyx_t_11 = NULL; int __pyx_t_12; char const *__pyx_t_13; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_getxattr_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 726, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":732 * cdef char *cbuf * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * buf = await operations.getxattr(c.ino, name, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":733 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * buf = await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":734 * ctx = get_request_context(c.req) * try: * buf = await operations.getxattr(c.ino, name, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 734, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_getxattr, __pyx_callargs+__pyx_t_7, (4-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 734, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 734, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 734, __pyx_L4_error) } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_buf = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":733 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * buf = await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":738 * ret = fuse_reply_err(c.req, e.errno) * else: * PyBytes_AsStringAndSize(buf, &cbuf, &len_s) # <<<<<<<<<<<<<< * len_ = len_s # guaranteed positive * */ /*else:*/ { __pyx_t_9 = PyBytes_AsStringAndSize(__pyx_cur_scope->__pyx_v_buf, (&__pyx_cur_scope->__pyx_v_cbuf), ((Py_ssize_t *)(&__pyx_cur_scope->__pyx_v_len_s))); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(3, 738, __pyx_L6_except_error) /* "src/pyfuse3/handlers.pxi":739 * else: * PyBytes_AsStringAndSize(buf, &cbuf, &len_s) * len_ = len_s # guaranteed positive # <<<<<<<<<<<<<< * * if c.size == 0: */ __pyx_cur_scope->__pyx_v_len_ = ((size_t)__pyx_cur_scope->__pyx_v_len_s); /* "src/pyfuse3/handlers.pxi":741 * len_ = len_s # guaranteed positive * * if c.size == 0: # <<<<<<<<<<<<<< * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: */ __pyx_t_10 = (__pyx_cur_scope->__pyx_v_c->size == 0); if (__pyx_t_10) { /* "src/pyfuse3/handlers.pxi":742 * * if c.size == 0: * ret = fuse_reply_xattr(c.req, len_) # <<<<<<<<<<<<<< * elif len_ <= c.size: * ret = fuse_reply_buf(c.req, cbuf, len_) */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_xattr(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_len_); /* "src/pyfuse3/handlers.pxi":741 * len_ = len_s # guaranteed positive * * if c.size == 0: # <<<<<<<<<<<<<< * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: */ goto __pyx_L11; } /* "src/pyfuse3/handlers.pxi":743 * if c.size == 0: * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, cbuf, len_) * else: */ __pyx_t_10 = (__pyx_cur_scope->__pyx_v_len_ <= __pyx_cur_scope->__pyx_v_c->size); if (__pyx_t_10) { /* "src/pyfuse3/handlers.pxi":744 * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: * ret = fuse_reply_buf(c.req, cbuf, len_) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, errno.ERANGE) */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_buf(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_cbuf, __pyx_cur_scope->__pyx_v_len_); /* "src/pyfuse3/handlers.pxi":743 * if c.size == 0: * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, cbuf, len_) * else: */ goto __pyx_L11; } /* "src/pyfuse3/handlers.pxi":746 * ret = fuse_reply_buf(c.req, cbuf, len_) * else: * ret = fuse_reply_err(c.req, errno.ERANGE) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, ERANGE); } __pyx_L11:; } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":735 * try: * buf = await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_getxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(3, 735, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_e = __pyx_t_6; /*try:*/ { /* "src/pyfuse3/handlers.pxi":736 * buf = await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * PyBytes_AsStringAndSize(buf, &cbuf, &len_s) */ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 736, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_9 = __Pyx_PyLong_As_int(__pyx_t_11); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 736, __pyx_L17_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/pyfuse3/handlers.pxi":735 * try: * buf = await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L18; } __pyx_L17_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); if ( unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __pyx_t_9 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16); __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13; goto __pyx_L6_except_error; } __pyx_L18:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":733 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * buf = await operations.getxattr(c.ino, name, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":748 * ret = fuse_reply_err(c.req, errno.ERANGE) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_getxattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_10 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_10) { /* "src/pyfuse3/handlers.pxi":749 * * if ret != 0: * log.error('fuse_getxattr(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_fuse_getxattr_fuse_reply__failed, __pyx_t_1}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":748 * ret = fuse_reply_err(c.req, errno.ERANGE) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_getxattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":726 * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) * * async def fuse_getxattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_11); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_getxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":752 * * * cdef void fuse_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_listxattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, size_t __pyx_v_size) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_listxattr", 0); /* "src/pyfuse3/handlers.pxi":753 * * cdef void fuse_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 753, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":754 * cdef void fuse_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.size = size */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":755 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.size = size * save_retval(fuse_listxattr_async(c)) */ __pyx_v_c->ino = __pyx_v_ino; /* "src/pyfuse3/handlers.pxi":756 * c.req = req * c.ino = ino * c.size = size # <<<<<<<<<<<<<< * save_retval(fuse_listxattr_async(c)) * */ __pyx_v_c->size = __pyx_v_size; /* "src/pyfuse3/handlers.pxi":757 * c.ino = ino * c.size = size * save_retval(fuse_listxattr_async(c)) # <<<<<<<<<<<<<< * * async def fuse_listxattr_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_listxattr_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 757, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":752 * * * cdef void fuse_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_listxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_77generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":759 * save_retval(fuse_listxattr_async(c)) * * async def fuse_listxattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_76fuse_listxattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_76fuse_listxattr_async = {"fuse_listxattr_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_76fuse_listxattr_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_76fuse_listxattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_listxattr_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 759, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_listxattr_async", 0) < (0)) __PYX_ERR(3, 759, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_listxattr_async", 1, 1, 1, i); __PYX_ERR(3, 759, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 759, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_listxattr_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 759, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_listxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 759, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_75fuse_listxattr_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_75fuse_listxattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_listxattr_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 759, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_77generator25, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_listxattr_async, __pyx_mstate_global->__pyx_n_u_fuse_listxattr_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 759, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_listxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_77generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; __Pyx_PySendResult __pyx_t_8; int __pyx_t_9; int __pyx_t_10; PyObject *__pyx_t_11 = NULL; int __pyx_t_12; char const *__pyx_t_13; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_listxattr_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 759, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":766 * * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * res = await operations.listxattr(c.ino, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":767 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * res = await operations.listxattr(c.ino, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":768 * ctx = get_request_context(c.req) * try: * res = await operations.listxattr(c.ino, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 768, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_listxattr, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 768, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 768, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 768, __pyx_L4_error) } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_res = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":767 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * res = await operations.listxattr(c.ino, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":772 * ret = fuse_reply_err(c.req, e.errno) * else: * buf = b'\0'.join(res) + b'\0' # <<<<<<<<<<<<<< * * PyBytes_AsStringAndSize(buf, &cbuf, &len_s) */ /*else:*/ { __pyx_t_1 = __Pyx_PyBytes_Join(__pyx_mstate_global->__pyx_kp_b_, __pyx_cur_scope->__pyx_v_res); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 772, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyNumber_Add(__pyx_t_1, __pyx_mstate_global->__pyx_kp_b_); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 772, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_buf = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":774 * buf = b'\0'.join(res) + b'\0' * * PyBytes_AsStringAndSize(buf, &cbuf, &len_s) # <<<<<<<<<<<<<< * len_ = len_s # guaranteed positive * */ __pyx_t_9 = PyBytes_AsStringAndSize(__pyx_cur_scope->__pyx_v_buf, (&__pyx_cur_scope->__pyx_v_cbuf), ((Py_ssize_t *)(&__pyx_cur_scope->__pyx_v_len_s))); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(3, 774, __pyx_L6_except_error) /* "src/pyfuse3/handlers.pxi":775 * * PyBytes_AsStringAndSize(buf, &cbuf, &len_s) * len_ = len_s # guaranteed positive # <<<<<<<<<<<<<< * * if len_ == 1: # No attributes */ __pyx_cur_scope->__pyx_v_len_ = ((size_t)__pyx_cur_scope->__pyx_v_len_s); /* "src/pyfuse3/handlers.pxi":777 * len_ = len_s # guaranteed positive * * if len_ == 1: # No attributes # <<<<<<<<<<<<<< * len_ = 0 * */ __pyx_t_10 = (__pyx_cur_scope->__pyx_v_len_ == 1); if (__pyx_t_10) { /* "src/pyfuse3/handlers.pxi":778 * * if len_ == 1: # No attributes * len_ = 0 # <<<<<<<<<<<<<< * * if c.size == 0: */ __pyx_cur_scope->__pyx_v_len_ = 0; /* "src/pyfuse3/handlers.pxi":777 * len_ = len_s # guaranteed positive * * if len_ == 1: # No attributes # <<<<<<<<<<<<<< * len_ = 0 * */ } /* "src/pyfuse3/handlers.pxi":780 * len_ = 0 * * if c.size == 0: # <<<<<<<<<<<<<< * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: */ __pyx_t_10 = (__pyx_cur_scope->__pyx_v_c->size == 0); if (__pyx_t_10) { /* "src/pyfuse3/handlers.pxi":781 * * if c.size == 0: * ret = fuse_reply_xattr(c.req, len_) # <<<<<<<<<<<<<< * elif len_ <= c.size: * ret = fuse_reply_buf(c.req, cbuf, len_) */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_xattr(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_len_); /* "src/pyfuse3/handlers.pxi":780 * len_ = 0 * * if c.size == 0: # <<<<<<<<<<<<<< * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: */ goto __pyx_L12; } /* "src/pyfuse3/handlers.pxi":782 * if c.size == 0: * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, cbuf, len_) * else: */ __pyx_t_10 = (__pyx_cur_scope->__pyx_v_len_ <= __pyx_cur_scope->__pyx_v_c->size); if (__pyx_t_10) { /* "src/pyfuse3/handlers.pxi":783 * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: * ret = fuse_reply_buf(c.req, cbuf, len_) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, errno.ERANGE) */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_buf(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_cbuf, __pyx_cur_scope->__pyx_v_len_); /* "src/pyfuse3/handlers.pxi":782 * if c.size == 0: * ret = fuse_reply_xattr(c.req, len_) * elif len_ <= c.size: # <<<<<<<<<<<<<< * ret = fuse_reply_buf(c.req, cbuf, len_) * else: */ goto __pyx_L12; } /* "src/pyfuse3/handlers.pxi":785 * ret = fuse_reply_buf(c.req, cbuf, len_) * else: * ret = fuse_reply_err(c.req, errno.ERANGE) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, ERANGE); } __pyx_L12:; } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":769 * try: * res = await operations.listxattr(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_listxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(3, 769, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* "src/pyfuse3/handlers.pxi":770 * res = await operations.listxattr(c.ino, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * buf = b'\0'.join(res) + b'\0' */ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 770, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_9 = __Pyx_PyLong_As_int(__pyx_t_11); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 770, __pyx_L18_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/pyfuse3/handlers.pxi":769 * try: * res = await operations.listxattr(c.ino, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L19; } __pyx_L18_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); if ( unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __pyx_t_9 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16); __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13; goto __pyx_L6_except_error; } __pyx_L19:; } __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":767 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * res = await operations.listxattr(c.ino, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":787 * ret = fuse_reply_err(c.req, errno.ERANGE) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_listxattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_10 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_10) { /* "src/pyfuse3/handlers.pxi":788 * * if ret != 0: * log.error('fuse_listxattr(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_1 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_11); assert(__pyx_t_1); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_fuse_listxattr_fuse_reply__faile, __pyx_t_6}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":787 * ret = fuse_reply_err(c.req, errno.ERANGE) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_listxattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":759 * save_retval(fuse_listxattr_async(c)) * * async def fuse_listxattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_11); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_listxattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":791 * * * cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *name): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_removexattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, const char *__pyx_v_name) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_removexattr", 0); /* "src/pyfuse3/handlers.pxi":792 * * cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *name): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 792, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":793 * cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *name): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":794 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->ino = __pyx_v_ino; /* "src/pyfuse3/handlers.pxi":795 * c.req = req * c.ino = ino * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_removexattr_async (_Container c, name): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_removexattr_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_t_5}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 795, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":791 * * * cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *name): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_removexattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_80generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":797 * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) * * async def fuse_removexattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_79fuse_removexattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_79fuse_removexattr_async = {"fuse_removexattr_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_79fuse_removexattr_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_79fuse_removexattr_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_removexattr_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 797, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 797, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 797, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_removexattr_async", 0) < (0)) __PYX_ERR(3, 797, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_removexattr_async", 1, 2, 2, i); __PYX_ERR(3, 797, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 797, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 797, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_removexattr_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 797, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_removexattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 797, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_78fuse_removexattr_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_78fuse_removexattr_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_removexattr_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 797, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_80generator26, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_removexattr_async, __pyx_mstate_global->__pyx_n_u_fuse_removexattr_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 797, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_removexattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_80generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; __Pyx_PySendResult __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_t_19; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_removexattr_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 797, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":800 * cdef int ret * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * await operations.removexattr(c.ino, name, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":801 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.removexattr(c.ino, name, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":802 * ctx = get_request_context(c.req) * try: * await operations.removexattr(c.ino, name, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 802, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_removexattr, __pyx_callargs+__pyx_t_7, (4-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 802, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 802, __pyx_L4_error) } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 802, __pyx_L4_error) } /* "src/pyfuse3/handlers.pxi":801 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.removexattr(c.ino, name, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":806 * ret = fuse_reply_err(c.req, e.errno) * else: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else:*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":803 * try: * await operations.removexattr(c.ino, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.fuse_removexattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(3, 803, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_e = __pyx_t_6; /*try:*/ { /* "src/pyfuse3/handlers.pxi":804 * await operations.removexattr(c.ino, name, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, 0) */ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 804, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = __Pyx_PyLong_As_int(__pyx_t_10); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 804, __pyx_L16_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_9); } /* "src/pyfuse3/handlers.pxi":803 * try: * await operations.removexattr(c.ino, name, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":801 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * await operations.removexattr(c.ino, name, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":808 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_removexattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_19 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_19) { /* "src/pyfuse3/handlers.pxi":809 * * if ret != 0: * log.error('fuse_removexattr(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_fuse_removexattr_fuse_reply__fai, __pyx_t_1}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":808 * ret = fuse_reply_err(c.req, 0) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_removexattr(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":797 * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) * * async def fuse_removexattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_removexattr_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":812 * * * cdef void fuse_access (fuse_req_t req, fuse_ino_t ino, int mask): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ static void __pyx_f_7pyfuse3_fuse_access(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, int __pyx_v_mask) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_access", 0); /* "src/pyfuse3/handlers.pxi":813 * * cdef void fuse_access (fuse_req_t req, fuse_ino_t ino, int mask): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.ino = ino */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 813, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":814 * cdef void fuse_access (fuse_req_t req, fuse_ino_t ino, int mask): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * c.flags = mask */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":815 * cdef _Container c = _Container() * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * c.flags = mask * save_retval(fuse_access_async(c)) */ __pyx_v_c->ino = __pyx_v_ino; /* "src/pyfuse3/handlers.pxi":816 * c.req = req * c.ino = ino * c.flags = mask # <<<<<<<<<<<<<< * save_retval(fuse_access_async(c)) * */ __pyx_v_c->flags = __pyx_v_mask; /* "src/pyfuse3/handlers.pxi":817 * c.ino = ino * c.flags = mask * save_retval(fuse_access_async(c)) # <<<<<<<<<<<<<< * * async def fuse_access_async (_Container c): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_access_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_c)}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 817, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":812 * * * cdef void fuse_access (fuse_req_t req, fuse_ino_t ino, int mask): # <<<<<<<<<<<<<< * cdef _Container c = _Container() * c.req = req */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.fuse_access", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_83generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":819 * save_retval(fuse_access_async(c)) * * async def fuse_access_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef int mask = c.flags */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_82fuse_access_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_82fuse_access_async = {"fuse_access_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_82fuse_access_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_82fuse_access_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_access_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 819, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 819, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_access_async", 0) < (0)) __PYX_ERR(3, 819, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_access_async", 1, 1, 1, i); __PYX_ERR(3, 819, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 819, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_access_async", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 819, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_access_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 819, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_81fuse_access_async(__pyx_self, __pyx_v_c); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_81fuse_access_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_access_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_27_fuse_access_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 819, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_83generator27, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_access_async, __pyx_mstate_global->__pyx_n_u_fuse_access_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 819, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_access_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_83generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; size_t __pyx_t_9; __Pyx_PySendResult __pyx_t_10; int __pyx_t_11; int __pyx_t_12; char const *__pyx_t_13; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_access_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 819, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":821 * async def fuse_access_async (_Container c): * cdef int ret * cdef int mask = c.flags # <<<<<<<<<<<<<< * * ctx = get_request_context(c.req) */ __pyx_t_1 = __pyx_cur_scope->__pyx_v_c->flags; __pyx_cur_scope->__pyx_v_mask = __pyx_t_1; /* "src/pyfuse3/handlers.pxi":823 * cdef int mask = c.flags * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * allowed = await operations.access(c.ino, mask, ctx) */ __pyx_t_2 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_2; __pyx_t_2 = 0; /* "src/pyfuse3/handlers.pxi":824 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * allowed = await operations.access(c.ino, mask, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { /* "src/pyfuse3/handlers.pxi":825 * ctx = get_request_context(c.req) * try: * allowed = await operations.access(c.ino, mask, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_6 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 825, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_mask); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 825, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = 0; { PyObject *__pyx_callargs[4] = {__pyx_t_6, __pyx_t_7, __pyx_t_8, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_access, __pyx_callargs+__pyx_t_9, (4-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 825, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_t_10 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2, &__pyx_r); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(__pyx_t_10 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_0 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_1 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_2 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_3 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_5 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 825, __pyx_L4_error) __pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2); } else if (likely(__pyx_t_10 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_2 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 825, __pyx_L4_error) } __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_allowed = __pyx_t_2; __pyx_t_2 = 0; /* "src/pyfuse3/handlers.pxi":824 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * allowed = await operations.access(c.ino, mask, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":829 * ret = fuse_reply_err(c.req, e.errno) * else: * if allowed: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, 0) * else: */ /*else:*/ { __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_allowed); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(3, 829, __pyx_L6_except_error) if (__pyx_t_11) { /* "src/pyfuse3/handlers.pxi":830 * else: * if allowed: * ret = fuse_reply_err(c.req, 0) # <<<<<<<<<<<<<< * else: * ret = fuse_reply_err(c.req, EACCES) */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, 0); /* "src/pyfuse3/handlers.pxi":829 * ret = fuse_reply_err(c.req, e.errno) * else: * if allowed: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, 0) * else: */ goto __pyx_L11; } /* "src/pyfuse3/handlers.pxi":832 * ret = fuse_reply_err(c.req, 0) * else: * ret = fuse_reply_err(c.req, EACCES) # <<<<<<<<<<<<<< * * if ret != 0: */ /*else*/ { __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, EACCES); } __pyx_L11:; } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/pyfuse3/handlers.pxi":826 * try: * allowed = await operations.access(c.ino, mask, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_1 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_1) { __Pyx_AddTraceback("pyfuse3.fuse_access_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_8, &__pyx_t_7) < 0) __PYX_ERR(3, 826, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_v_e = __pyx_t_8; /*try:*/ { /* "src/pyfuse3/handlers.pxi":827 * allowed = await operations.access(c.ino, mask, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * if allowed: */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 827, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_t_6); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 827, __pyx_L17_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_1); } /* "src/pyfuse3/handlers.pxi":826 * try: * allowed = await operations.access(c.ino, mask, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L18; } __pyx_L17_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); if ( unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __pyx_t_1 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16); __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_lineno = __pyx_t_1; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13; goto __pyx_L6_except_error; } __pyx_L18:; } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":824 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * allowed = await operations.access(c.ino, mask, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":834 * ret = fuse_reply_err(c.req, EACCES) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_access(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_11 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_11) { /* "src/pyfuse3/handlers.pxi":835 * * if ret != 0: * log.error('fuse_access(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_8 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); assert(__pyx_t_8); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); __pyx_t_9 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_fuse_access_fuse_reply__failed_w, __pyx_t_2}; __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":834 * ret = fuse_reply_err(c.req, EACCES) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_access(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":819 * save_retval(fuse_access_async(c)) * * async def fuse_access_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef int mask = c.flags */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_access_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":839 * * * cdef void fuse_poll (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi, # <<<<<<<<<<<<<< * fuse_pollhandle *ph): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_poll(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi, struct fuse_pollhandle *__pyx_v_ph) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_py_ph = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; int __pyx_t_4; uint64_t __pyx_t_5; PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_poll", 0); /* "src/pyfuse3/handlers.pxi":841 * cdef void fuse_poll (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi, * fuse_pollhandle *ph): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * cdef object py_ph * c.req = req */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 841, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":843 * cdef _Container c = _Container() * cdef object py_ph * c.req = req # <<<<<<<<<<<<<< * c.ino = ino * if fi is NULL: */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":844 * cdef object py_ph * c.req = req * c.ino = ino # <<<<<<<<<<<<<< * if fi is NULL: * c.fh = 0 */ __pyx_v_c->ino = __pyx_v_ino; /* "src/pyfuse3/handlers.pxi":845 * c.req = req * c.ino = ino * if fi is NULL: # <<<<<<<<<<<<<< * c.fh = 0 * else: */ __pyx_t_4 = (__pyx_v_fi == NULL); if (__pyx_t_4) { /* "src/pyfuse3/handlers.pxi":846 * c.ino = ino * if fi is NULL: * c.fh = 0 # <<<<<<<<<<<<<< * else: * c.fh = fi.fh */ __pyx_v_c->fh = 0; /* "src/pyfuse3/handlers.pxi":845 * c.req = req * c.ino = ino * if fi is NULL: # <<<<<<<<<<<<<< * c.fh = 0 * else: */ goto __pyx_L3; } /* "src/pyfuse3/handlers.pxi":848 * c.fh = 0 * else: * c.fh = fi.fh # <<<<<<<<<<<<<< * if ph == NULL: * py_ph = None */ /*else*/ { __pyx_t_5 = __pyx_v_fi->fh; __pyx_v_c->fh = __pyx_t_5; } __pyx_L3:; /* "src/pyfuse3/handlers.pxi":849 * else: * c.fh = fi.fh * if ph == NULL: # <<<<<<<<<<<<<< * py_ph = None * else: */ __pyx_t_4 = (__pyx_v_ph == NULL); if (__pyx_t_4) { /* "src/pyfuse3/handlers.pxi":850 * c.fh = fi.fh * if ph == NULL: * py_ph = None # <<<<<<<<<<<<<< * else: * py_ph = PollHandle.from_ptr(ph) */ __Pyx_INCREF(Py_None); __pyx_v_py_ph = Py_None; /* "src/pyfuse3/handlers.pxi":849 * else: * c.fh = fi.fh * if ph == NULL: # <<<<<<<<<<<<<< * py_ph = None * else: */ goto __pyx_L4; } /* "src/pyfuse3/handlers.pxi":852 * py_ph = None * else: * py_ph = PollHandle.from_ptr(ph) # <<<<<<<<<<<<<< * save_retval(fuse_poll_async(c, py_ph)) * */ /*else*/ { __pyx_t_1 = ((PyObject *)__pyx_f_7pyfuse3_10PollHandle_from_ptr(__pyx_v_ph)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_py_ph = __pyx_t_1; __pyx_t_1 = 0; } __pyx_L4:; /* "src/pyfuse3/handlers.pxi":853 * else: * py_ph = PollHandle.from_ptr(ph) * save_retval(fuse_poll_async(c, py_ph)) # <<<<<<<<<<<<<< * * async def fuse_poll_async (_Container c, object py_ph): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_fuse_poll_async); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_v_py_ph}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 853, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":839 * * * cdef void fuse_poll (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi, # <<<<<<<<<<<<<< * fuse_pollhandle *ph): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.fuse_poll", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_XDECREF(__pyx_v_py_ph); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_86generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":855 * save_retval(fuse_poll_async(c, py_ph)) * * async def fuse_poll_async (_Container c, object py_ph): # <<<<<<<<<<<<<< * cdef int ret * cdef unsigned revents */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_85fuse_poll_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_85fuse_poll_async = {"fuse_poll_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_85fuse_poll_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_85fuse_poll_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_py_ph = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_poll_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_py_ph,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 855, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 855, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 855, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_poll_async", 0) < (0)) __PYX_ERR(3, 855, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_poll_async", 1, 2, 2, i); __PYX_ERR(3, 855, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 855, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 855, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_py_ph = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_poll_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 855, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_poll_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 855, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_84fuse_poll_async(__pyx_self, __pyx_v_c, __pyx_v_py_ph); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_84fuse_poll_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_py_ph) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_poll_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_28_fuse_poll_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 855, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_py_ph = __pyx_v_py_ph; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_py_ph); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_py_ph); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_86generator28, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_poll_async, __pyx_mstate_global->__pyx_n_u_fuse_poll_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 855, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_poll_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_86generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; size_t __pyx_t_8; __Pyx_PySendResult __pyx_t_9; unsigned int __pyx_t_10; int __pyx_t_11; unsigned int __pyx_t_12; int __pyx_t_13; int __pyx_t_14; char const *__pyx_t_15; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; PyObject *__pyx_t_20 = NULL; PyObject *__pyx_t_21 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_poll_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 855, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":859 * cdef unsigned revents * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * result = await operations.poll(c.ino, c.fh, py_ph, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":860 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * result = await operations.poll(c.ino, c.fh, py_ph, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":861 * ctx = get_request_context(c.req) * try: * result = await operations.poll(c.ino, c.fh, py_ph, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->ino); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 861, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyLong_From_uint64_t(__pyx_cur_scope->__pyx_v_c->fh); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 861, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 0; { PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_cur_scope->__pyx_v_py_ph, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_poll, __pyx_callargs+__pyx_t_8, (5-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 861, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_9 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 861, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_9 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 861, __pyx_L4_error) } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_result = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":860 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * result = await operations.poll(c.ino, c.fh, py_ph, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":865 * ret = fuse_reply_err(c.req, e.errno) * else: * revents = (result if result is not None else 0) # <<<<<<<<<<<<<< * ret = fuse_reply_poll(c.req, revents) * */ /*else:*/ { __pyx_t_11 = (__pyx_cur_scope->__pyx_v_result != Py_None); if (__pyx_t_11) { __pyx_t_12 = __Pyx_PyLong_As_unsigned_int(__pyx_cur_scope->__pyx_v_result); if (unlikely((__pyx_t_12 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(3, 865, __pyx_L6_except_error) __pyx_t_10 = __pyx_t_12; } else { __pyx_t_10 = 0; } __pyx_cur_scope->__pyx_v_revents = ((unsigned int)__pyx_t_10); /* "src/pyfuse3/handlers.pxi":866 * else: * revents = (result if result is not None else 0) * ret = fuse_reply_poll(c.req, revents) # <<<<<<<<<<<<<< * * if ret != 0: */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_poll(__pyx_cur_scope->__pyx_v_c->req, __pyx_cur_scope->__pyx_v_revents); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":862 * try: * result = await operations.poll(c.ino, c.fh, py_ph, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_13 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_13) { __Pyx_AddTraceback("pyfuse3.fuse_poll_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(3, 862, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_v_e = __pyx_t_7; /*try:*/ { /* "src/pyfuse3/handlers.pxi":863 * result = await operations.poll(c.ino, c.fh, py_ph, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * revents = (result if result is not None else 0) */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 863, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_13 = __Pyx_PyLong_As_int(__pyx_t_5); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 863, __pyx_L16_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_13); } /* "src/pyfuse3/handlers.pxi":862 * try: * result = await operations.poll(c.ino, c.fh, py_ph, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); if ( unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __pyx_t_13 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18); __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_lineno = __pyx_t_13; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":860 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * result = await operations.poll(c.ino, c.fh, py_ph, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":868 * ret = fuse_reply_poll(c.req, revents) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_poll(): fuse_reply_* failed with %s', strerror(-ret)) * */ __pyx_t_11 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_11) { /* "src/pyfuse3/handlers.pxi":869 * * if ret != 0: * log.error('fuse_poll(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_7 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_7); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_8 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_fuse_poll_fuse_reply__failed_wit, __pyx_t_1}; __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/handlers.pxi":868 * ret = fuse_reply_poll(c.req, revents) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_poll(): fuse_reply_* failed with %s', strerror(-ret)) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":855 * save_retval(fuse_poll_async(c, py_ph)) * * async def fuse_poll_async (_Container c, object py_ph): # <<<<<<<<<<<<<< * cdef int ret * cdef unsigned revents */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_poll_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/handlers.pxi":872 * * * cdef void fuse_create (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * mode_t mode, fuse_file_info *fi): * cdef _Container c = _Container() */ static void __pyx_f_7pyfuse3_fuse_create(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name, mode_t __pyx_v_mode, struct fuse_file_info *__pyx_v_fi) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_create", 0); /* "src/pyfuse3/handlers.pxi":874 * cdef void fuse_create (fuse_req_t req, fuse_ino_t parent, const_char *name, * mode_t mode, fuse_file_info *fi): * cdef _Container c = _Container() # <<<<<<<<<<<<<< * c.req = req * c.parent = parent */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 874, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":875 * mode_t mode, fuse_file_info *fi): * cdef _Container c = _Container() * c.req = req # <<<<<<<<<<<<<< * c.parent = parent * c.mode = mode */ __pyx_v_c->req = __pyx_v_req; /* "src/pyfuse3/handlers.pxi":876 * cdef _Container c = _Container() * c.req = req * c.parent = parent # <<<<<<<<<<<<<< * c.mode = mode * c.fi = fi[0] */ __pyx_v_c->parent = __pyx_v_parent; /* "src/pyfuse3/handlers.pxi":877 * c.req = req * c.parent = parent * c.mode = mode # <<<<<<<<<<<<<< * c.fi = fi[0] * save_retval(fuse_create_async(c, PyBytes_FromString(name))) */ __pyx_v_c->mode = __pyx_v_mode; /* "src/pyfuse3/handlers.pxi":878 * c.parent = parent * c.mode = mode * c.fi = fi[0] # <<<<<<<<<<<<<< * save_retval(fuse_create_async(c, PyBytes_FromString(name))) * */ __pyx_v_c->fi = (__pyx_v_fi[0]); /* "src/pyfuse3/handlers.pxi":879 * c.mode = mode * c.fi = fi[0] * save_retval(fuse_create_async(c, PyBytes_FromString(name))) # <<<<<<<<<<<<<< * * async def fuse_create_async (_Container c, name): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fuse_create_async); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_v_c), __pyx_t_5}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_f_7pyfuse3_save_retval(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 879, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":872 * * * cdef void fuse_create (fuse_req_t req, fuse_ino_t parent, const_char *name, # <<<<<<<<<<<<<< * mode_t mode, fuse_file_info *fi): * cdef _Container c = _Container() */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.fuse_create", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_c); __Pyx_RefNannyFinishContext(); } static PyObject *__pyx_gb_7pyfuse3_89generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/handlers.pxi":881 * save_retval(fuse_create_async(c, PyBytes_FromString(name))) * * async def fuse_create_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_88fuse_create_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_88fuse_create_async = {"fuse_create_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_88fuse_create_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_88fuse_create_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3__Container *__pyx_v_c = 0; PyObject *__pyx_v_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_create_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_c,&__pyx_mstate_global->__pyx_n_u_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 881, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 881, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 881, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fuse_create_async", 0) < (0)) __PYX_ERR(3, 881, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fuse_create_async", 1, 2, 2, i); __PYX_ERR(3, 881, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 881, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 881, __pyx_L3_error) } __pyx_v_c = ((struct __pyx_obj_7pyfuse3__Container *)values[0]); __pyx_v_name = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_create_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 881, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.fuse_create_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, 1, "c", 0))) __PYX_ERR(3, 881, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_87fuse_create_async(__pyx_self, __pyx_v_c, __pyx_v_name); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_87fuse_create_async(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3__Container *__pyx_v_c, PyObject *__pyx_v_name) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_create_async", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_29_fuse_create_async(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(3, 881, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_c = __pyx_v_c; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_c); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_89generator29, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_fuse_create_async, __pyx_mstate_global->__pyx_n_u_fuse_create_async, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(3, 881, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.fuse_create_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_89generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; size_t __pyx_t_9; __Pyx_PySendResult __pyx_t_10; int __pyx_t_11; int __pyx_t_12; char const *__pyx_t_13; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; int __pyx_t_20; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_create_async", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L10_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(3, 881, __pyx_L1_error) } /* "src/pyfuse3/handlers.pxi":886 * cdef FileInfo fi * * ctx = get_request_context(c.req) # <<<<<<<<<<<<<< * try: * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) */ __pyx_t_1 = __pyx_f_7pyfuse3_get_request_context(__pyx_cur_scope->__pyx_v_c->req); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":887 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) * except FUSEError as e: */ { __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "src/pyfuse3/handlers.pxi":888 * ctx = get_request_context(c.req) * try: * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) # <<<<<<<<<<<<<< * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) */ __pyx_t_5 = __pyx_v_7pyfuse3_operations; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_fuse_ino_t(__pyx_cur_scope->__pyx_v_c->parent); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 888, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyLong_From_mode_t(__pyx_cur_scope->__pyx_v_c->mode); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 888, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_c->fi.flags); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 888, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = 0; { PyObject *__pyx_callargs[6] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_name, __pyx_t_7, __pyx_t_8, __pyx_cur_scope->__pyx_v_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_create, __pyx_callargs+__pyx_t_9, (6-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 888, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_10 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_10 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_sent_value)) __PYX_ERR(3, 888, __pyx_L4_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else if (likely(__pyx_t_10 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_1 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(3, 888, __pyx_L4_error) } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_tmp = __pyx_t_1; __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":887 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) * except FUSEError as e: */ } /* "src/pyfuse3/handlers.pxi":892 * ret = fuse_reply_err(c.req, e.errno) * else: * fi = tmp[0] # <<<<<<<<<<<<<< * entry = tmp[1] * fi._copy_to_fuse(&c.fi) */ /*else:*/ { __pyx_t_1 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_tmp, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 892, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7pyfuse3_FileInfo)))) __PYX_ERR(3, 892, __pyx_L6_except_error) __pyx_t_8 = __pyx_t_1; __Pyx_INCREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_v_fi = ((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_t_8); __pyx_t_8 = 0; /* "src/pyfuse3/handlers.pxi":893 * else: * fi = tmp[0] * entry = tmp[1] # <<<<<<<<<<<<<< * fi._copy_to_fuse(&c.fi) * ret = fuse_reply_create(c.req, &entry.fuse_param, &c.fi) */ __pyx_t_8 = __Pyx_GetItemInt(__pyx_cur_scope->__pyx_v_tmp, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 893, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_8); if (!(likely(__Pyx_TypeTest(__pyx_t_8, __pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes)))) __PYX_ERR(3, 893, __pyx_L6_except_error) __pyx_t_1 = __pyx_t_8; __Pyx_INCREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_entry = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":894 * fi = tmp[0] * entry = tmp[1] * fi._copy_to_fuse(&c.fi) # <<<<<<<<<<<<<< * ret = fuse_reply_create(c.req, &entry.fuse_param, &c.fi) * */ __pyx_t_1 = ((struct __pyx_vtabstruct_7pyfuse3_FileInfo *)__pyx_cur_scope->__pyx_v_fi->__pyx_vtab)->_copy_to_fuse(__pyx_cur_scope->__pyx_v_fi, (&__pyx_cur_scope->__pyx_v_c->fi)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 894, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/handlers.pxi":895 * entry = tmp[1] * fi._copy_to_fuse(&c.fi) * ret = fuse_reply_create(c.req, &entry.fuse_param, &c.fi) # <<<<<<<<<<<<<< * * if ret != 0: */ __pyx_cur_scope->__pyx_v_ret = fuse_reply_create(__pyx_cur_scope->__pyx_v_c->req, (&__pyx_cur_scope->__pyx_v_entry->fuse_param), (&__pyx_cur_scope->__pyx_v_c->fi)); } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "src/pyfuse3/handlers.pxi":889 * try: * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)); if (__pyx_t_11) { __Pyx_AddTraceback("pyfuse3.fuse_create_async", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_7) < 0) __PYX_ERR(3, 889, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_v_e = __pyx_t_8; /*try:*/ { /* "src/pyfuse3/handlers.pxi":890 * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) * except FUSEError as e: * ret = fuse_reply_err(c.req, e.errno) # <<<<<<<<<<<<<< * else: * fi = tmp[0] */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_e, __pyx_mstate_global->__pyx_n_u_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 890, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = __Pyx_PyLong_As_int(__pyx_t_6); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 890, __pyx_L16_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_cur_scope->__pyx_v_ret = fuse_reply_err(__pyx_cur_scope->__pyx_v_c->req, __pyx_t_11); } /* "src/pyfuse3/handlers.pxi":889 * try: * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) * except FUSEError as e: # <<<<<<<<<<<<<< * ret = fuse_reply_err(c.req, e.errno) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; goto __pyx_L17; } __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); if ( unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16); __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13; goto __pyx_L6_except_error; } __pyx_L17:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; /* "src/pyfuse3/handlers.pxi":887 * * ctx = get_request_context(c.req) * try: # <<<<<<<<<<<<<< * tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) * except FUSEError as e: */ __pyx_L6_except_error:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L5_exception_handled:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); __pyx_L9_try_end:; } /* "src/pyfuse3/handlers.pxi":897 * ret = fuse_reply_create(c.req, &entry.fuse_param, &c.fi) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_create(): fuse_reply_* failed with %s', strerror(-ret)) */ __pyx_t_20 = (__pyx_cur_scope->__pyx_v_ret != 0); if (__pyx_t_20) { /* "src/pyfuse3/handlers.pxi":898 * * if ret != 0: * log.error('fuse_create(): fuse_reply_* failed with %s', strerror(-ret)) # <<<<<<<<<<<<<< */ __pyx_t_8 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_ret)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); assert(__pyx_t_8); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); __pyx_t_9 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_fuse_create_fuse_reply__failed_w, __pyx_t_1}; __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/handlers.pxi":897 * ret = fuse_reply_create(c.req, &entry.fuse_param, &c.fi) * * if ret != 0: # <<<<<<<<<<<<<< * log.error('fuse_create(): fuse_reply_* failed with %s', strerror(-ret)) */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/handlers.pxi":881 * save_retval(fuse_create_async(c, PyBytes_FromString(name))) * * async def fuse_create_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("fuse_create_async", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/internal.pxi":13 * ''' * * cdef void save_retval(object val): # <<<<<<<<<<<<<< * global py_retval * if py_retval is not None and val is not None: */ static void __pyx_f_7pyfuse3_save_retval(PyObject *__pyx_v_val) { __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("save_retval", 0); /* "src/pyfuse3/internal.pxi":15 * cdef void save_retval(object val): * global py_retval * if py_retval is not None and val is not None: # <<<<<<<<<<<<<< * log.error('py_retval was not awaited - please report a bug at ' * 'https://github.com/libfuse/pyfuse3/issues!') */ __pyx_t_2 = (__pyx_v_7pyfuse3_py_retval != Py_None); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = (__pyx_v_val != Py_None); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* "src/pyfuse3/internal.pxi":16 * global py_retval * if py_retval is not None and val is not None: * log.error('py_retval was not awaited - please report a bug at ' # <<<<<<<<<<<<<< * 'https://github.com/libfuse/pyfuse3/issues!') * py_retval = val */ __pyx_t_4 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); assert(__pyx_t_4); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); __pyx_t_7 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_py_retval_was_not_awaited_please}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/pyfuse3/internal.pxi":15 * cdef void save_retval(object val): * global py_retval * if py_retval is not None and val is not None: # <<<<<<<<<<<<<< * log.error('py_retval was not awaited - please report a bug at ' * 'https://github.com/libfuse/pyfuse3/issues!') */ } /* "src/pyfuse3/internal.pxi":18 * log.error('py_retval was not awaited - please report a bug at ' * 'https://github.com/libfuse/pyfuse3/issues!') * py_retval = val # <<<<<<<<<<<<<< * * cdef object get_request_context(fuse_req_t req): */ __Pyx_INCREF(__pyx_v_val); __Pyx_XGOTREF(__pyx_v_7pyfuse3_py_retval); __Pyx_DECREF_SET(__pyx_v_7pyfuse3_py_retval, __pyx_v_val); __Pyx_GIVEREF(__pyx_v_val); /* "src/pyfuse3/internal.pxi":13 * ''' * * cdef void save_retval(object val): # <<<<<<<<<<<<<< * global py_retval * if py_retval is not None and val is not None: */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.save_retval", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_RefNannyFinishContext(); } /* "src/pyfuse3/internal.pxi":20 * py_retval = val * * cdef object get_request_context(fuse_req_t req): # <<<<<<<<<<<<<< * '''Get RequestContext() object''' * */ static PyObject *__pyx_f_7pyfuse3_get_request_context(fuse_req_t __pyx_v_req) { const struct fuse_ctx *__pyx_v_context; struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_ctx = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; pid_t __pyx_t_2; uid_t __pyx_t_3; gid_t __pyx_t_4; mode_t __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_request_context", 0); /* "src/pyfuse3/internal.pxi":26 * cdef RequestContext ctx * * context = fuse_req_ctx(req) # <<<<<<<<<<<<<< * ctx = RequestContext.__new__(RequestContext) * ctx.pid = context.pid */ __pyx_v_context = fuse_req_ctx(__pyx_v_req); /* "src/pyfuse3/internal.pxi":27 * * context = fuse_req_ctx(req) * ctx = RequestContext.__new__(RequestContext) # <<<<<<<<<<<<<< * ctx.pid = context.pid * ctx.uid = context.uid */ __pyx_t_1 = ((PyObject *)__pyx_tp_new_7pyfuse3_RequestContext(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_RequestContext), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 27, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); __pyx_v_ctx = ((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/internal.pxi":28 * context = fuse_req_ctx(req) * ctx = RequestContext.__new__(RequestContext) * ctx.pid = context.pid # <<<<<<<<<<<<<< * ctx.uid = context.uid * ctx.gid = context.gid */ __pyx_t_2 = __pyx_v_context->pid; __pyx_v_ctx->pid = __pyx_t_2; /* "src/pyfuse3/internal.pxi":29 * ctx = RequestContext.__new__(RequestContext) * ctx.pid = context.pid * ctx.uid = context.uid # <<<<<<<<<<<<<< * ctx.gid = context.gid * ctx.umask = context.umask */ __pyx_t_3 = __pyx_v_context->uid; __pyx_v_ctx->uid = __pyx_t_3; /* "src/pyfuse3/internal.pxi":30 * ctx.pid = context.pid * ctx.uid = context.uid * ctx.gid = context.gid # <<<<<<<<<<<<<< * ctx.umask = context.umask * */ __pyx_t_4 = __pyx_v_context->gid; __pyx_v_ctx->gid = __pyx_t_4; /* "src/pyfuse3/internal.pxi":31 * ctx.uid = context.uid * ctx.gid = context.gid * ctx.umask = context.umask # <<<<<<<<<<<<<< * * return ctx */ __pyx_t_5 = __pyx_v_context->umask; __pyx_v_ctx->umask = __pyx_t_5; /* "src/pyfuse3/internal.pxi":33 * ctx.umask = context.umask * * return ctx # <<<<<<<<<<<<<< * * cdef void init_fuse_ops(): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_ctx); __pyx_r = ((PyObject *)__pyx_v_ctx); goto __pyx_L0; /* "src/pyfuse3/internal.pxi":20 * py_retval = val * * cdef object get_request_context(fuse_req_t req): # <<<<<<<<<<<<<< * '''Get RequestContext() object''' * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.get_request_context", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_ctx); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/internal.pxi":35 * return ctx * * cdef void init_fuse_ops(): # <<<<<<<<<<<<<< * '''Initialize fuse_lowlevel_ops structure''' * */ static void __pyx_f_7pyfuse3_init_fuse_ops(void) { /* "src/pyfuse3/internal.pxi":38 * '''Initialize fuse_lowlevel_ops structure''' * * string.memset(&fuse_ops, 0, sizeof(fuse_lowlevel_ops)) # <<<<<<<<<<<<<< * * fuse_ops.init = fuse_init */ (void)(memset((&__pyx_v_7pyfuse3_fuse_ops), 0, (sizeof(struct fuse_lowlevel_ops)))); /* "src/pyfuse3/internal.pxi":40 * string.memset(&fuse_ops, 0, sizeof(fuse_lowlevel_ops)) * * fuse_ops.init = fuse_init # <<<<<<<<<<<<<< * fuse_ops.lookup = fuse_lookup * fuse_ops.forget = fuse_forget */ __pyx_v_7pyfuse3_fuse_ops.init = __pyx_f_7pyfuse3_fuse_init; /* "src/pyfuse3/internal.pxi":41 * * fuse_ops.init = fuse_init * fuse_ops.lookup = fuse_lookup # <<<<<<<<<<<<<< * fuse_ops.forget = fuse_forget * fuse_ops.getattr = fuse_getattr */ __pyx_v_7pyfuse3_fuse_ops.lookup = __pyx_f_7pyfuse3_fuse_lookup; /* "src/pyfuse3/internal.pxi":42 * fuse_ops.init = fuse_init * fuse_ops.lookup = fuse_lookup * fuse_ops.forget = fuse_forget # <<<<<<<<<<<<<< * fuse_ops.getattr = fuse_getattr * fuse_ops.setattr = fuse_setattr */ __pyx_v_7pyfuse3_fuse_ops.forget = __pyx_f_7pyfuse3_fuse_forget; /* "src/pyfuse3/internal.pxi":43 * fuse_ops.lookup = fuse_lookup * fuse_ops.forget = fuse_forget * fuse_ops.getattr = fuse_getattr # <<<<<<<<<<<<<< * fuse_ops.setattr = fuse_setattr * fuse_ops.readlink = fuse_readlink */ __pyx_v_7pyfuse3_fuse_ops.getattr = __pyx_f_7pyfuse3_fuse_getattr; /* "src/pyfuse3/internal.pxi":44 * fuse_ops.forget = fuse_forget * fuse_ops.getattr = fuse_getattr * fuse_ops.setattr = fuse_setattr # <<<<<<<<<<<<<< * fuse_ops.readlink = fuse_readlink * fuse_ops.mknod = fuse_mknod */ __pyx_v_7pyfuse3_fuse_ops.setattr = __pyx_f_7pyfuse3_fuse_setattr; /* "src/pyfuse3/internal.pxi":45 * fuse_ops.getattr = fuse_getattr * fuse_ops.setattr = fuse_setattr * fuse_ops.readlink = fuse_readlink # <<<<<<<<<<<<<< * fuse_ops.mknod = fuse_mknod * fuse_ops.mkdir = fuse_mkdir */ __pyx_v_7pyfuse3_fuse_ops.readlink = __pyx_f_7pyfuse3_fuse_readlink; /* "src/pyfuse3/internal.pxi":46 * fuse_ops.setattr = fuse_setattr * fuse_ops.readlink = fuse_readlink * fuse_ops.mknod = fuse_mknod # <<<<<<<<<<<<<< * fuse_ops.mkdir = fuse_mkdir * fuse_ops.unlink = fuse_unlink */ __pyx_v_7pyfuse3_fuse_ops.mknod = __pyx_f_7pyfuse3_fuse_mknod; /* "src/pyfuse3/internal.pxi":47 * fuse_ops.readlink = fuse_readlink * fuse_ops.mknod = fuse_mknod * fuse_ops.mkdir = fuse_mkdir # <<<<<<<<<<<<<< * fuse_ops.unlink = fuse_unlink * fuse_ops.rmdir = fuse_rmdir */ __pyx_v_7pyfuse3_fuse_ops.mkdir = __pyx_f_7pyfuse3_fuse_mkdir; /* "src/pyfuse3/internal.pxi":48 * fuse_ops.mknod = fuse_mknod * fuse_ops.mkdir = fuse_mkdir * fuse_ops.unlink = fuse_unlink # <<<<<<<<<<<<<< * fuse_ops.rmdir = fuse_rmdir * fuse_ops.symlink = fuse_symlink */ __pyx_v_7pyfuse3_fuse_ops.unlink = __pyx_f_7pyfuse3_fuse_unlink; /* "src/pyfuse3/internal.pxi":49 * fuse_ops.mkdir = fuse_mkdir * fuse_ops.unlink = fuse_unlink * fuse_ops.rmdir = fuse_rmdir # <<<<<<<<<<<<<< * fuse_ops.symlink = fuse_symlink * fuse_ops.rename = fuse_rename */ __pyx_v_7pyfuse3_fuse_ops.rmdir = __pyx_f_7pyfuse3_fuse_rmdir; /* "src/pyfuse3/internal.pxi":50 * fuse_ops.unlink = fuse_unlink * fuse_ops.rmdir = fuse_rmdir * fuse_ops.symlink = fuse_symlink # <<<<<<<<<<<<<< * fuse_ops.rename = fuse_rename * fuse_ops.link = fuse_link */ __pyx_v_7pyfuse3_fuse_ops.symlink = __pyx_f_7pyfuse3_fuse_symlink; /* "src/pyfuse3/internal.pxi":51 * fuse_ops.rmdir = fuse_rmdir * fuse_ops.symlink = fuse_symlink * fuse_ops.rename = fuse_rename # <<<<<<<<<<<<<< * fuse_ops.link = fuse_link * fuse_ops.open = fuse_open */ __pyx_v_7pyfuse3_fuse_ops.rename = __pyx_f_7pyfuse3_fuse_rename; /* "src/pyfuse3/internal.pxi":52 * fuse_ops.symlink = fuse_symlink * fuse_ops.rename = fuse_rename * fuse_ops.link = fuse_link # <<<<<<<<<<<<<< * fuse_ops.open = fuse_open * fuse_ops.read = fuse_read */ __pyx_v_7pyfuse3_fuse_ops.link = __pyx_f_7pyfuse3_fuse_link; /* "src/pyfuse3/internal.pxi":53 * fuse_ops.rename = fuse_rename * fuse_ops.link = fuse_link * fuse_ops.open = fuse_open # <<<<<<<<<<<<<< * fuse_ops.read = fuse_read * fuse_ops.write = fuse_write */ __pyx_v_7pyfuse3_fuse_ops.open = __pyx_f_7pyfuse3_fuse_open; /* "src/pyfuse3/internal.pxi":54 * fuse_ops.link = fuse_link * fuse_ops.open = fuse_open * fuse_ops.read = fuse_read # <<<<<<<<<<<<<< * fuse_ops.write = fuse_write * fuse_ops.flush = fuse_flush */ __pyx_v_7pyfuse3_fuse_ops.read = __pyx_f_7pyfuse3_fuse_read; /* "src/pyfuse3/internal.pxi":55 * fuse_ops.open = fuse_open * fuse_ops.read = fuse_read * fuse_ops.write = fuse_write # <<<<<<<<<<<<<< * fuse_ops.flush = fuse_flush * fuse_ops.release = fuse_release */ __pyx_v_7pyfuse3_fuse_ops.write = __pyx_f_7pyfuse3_fuse_write; /* "src/pyfuse3/internal.pxi":56 * fuse_ops.read = fuse_read * fuse_ops.write = fuse_write * fuse_ops.flush = fuse_flush # <<<<<<<<<<<<<< * fuse_ops.release = fuse_release * fuse_ops.fsync = fuse_fsync */ __pyx_v_7pyfuse3_fuse_ops.flush = __pyx_f_7pyfuse3_fuse_flush; /* "src/pyfuse3/internal.pxi":57 * fuse_ops.write = fuse_write * fuse_ops.flush = fuse_flush * fuse_ops.release = fuse_release # <<<<<<<<<<<<<< * fuse_ops.fsync = fuse_fsync * fuse_ops.opendir = fuse_opendir */ __pyx_v_7pyfuse3_fuse_ops.release = __pyx_f_7pyfuse3_fuse_release; /* "src/pyfuse3/internal.pxi":58 * fuse_ops.flush = fuse_flush * fuse_ops.release = fuse_release * fuse_ops.fsync = fuse_fsync # <<<<<<<<<<<<<< * fuse_ops.opendir = fuse_opendir * fuse_ops.readdirplus = fuse_readdirplus */ __pyx_v_7pyfuse3_fuse_ops.fsync = __pyx_f_7pyfuse3_fuse_fsync; /* "src/pyfuse3/internal.pxi":59 * fuse_ops.release = fuse_release * fuse_ops.fsync = fuse_fsync * fuse_ops.opendir = fuse_opendir # <<<<<<<<<<<<<< * fuse_ops.readdirplus = fuse_readdirplus * fuse_ops.releasedir = fuse_releasedir */ __pyx_v_7pyfuse3_fuse_ops.opendir = __pyx_f_7pyfuse3_fuse_opendir; /* "src/pyfuse3/internal.pxi":60 * fuse_ops.fsync = fuse_fsync * fuse_ops.opendir = fuse_opendir * fuse_ops.readdirplus = fuse_readdirplus # <<<<<<<<<<<<<< * fuse_ops.releasedir = fuse_releasedir * fuse_ops.fsyncdir = fuse_fsyncdir */ __pyx_v_7pyfuse3_fuse_ops.readdirplus = __pyx_f_7pyfuse3_fuse_readdirplus; /* "src/pyfuse3/internal.pxi":61 * fuse_ops.opendir = fuse_opendir * fuse_ops.readdirplus = fuse_readdirplus * fuse_ops.releasedir = fuse_releasedir # <<<<<<<<<<<<<< * fuse_ops.fsyncdir = fuse_fsyncdir * fuse_ops.statfs = fuse_statfs */ __pyx_v_7pyfuse3_fuse_ops.releasedir = __pyx_f_7pyfuse3_fuse_releasedir; /* "src/pyfuse3/internal.pxi":62 * fuse_ops.readdirplus = fuse_readdirplus * fuse_ops.releasedir = fuse_releasedir * fuse_ops.fsyncdir = fuse_fsyncdir # <<<<<<<<<<<<<< * fuse_ops.statfs = fuse_statfs * ASSIGN_NOT_DARWIN(fuse_ops.setxattr, &fuse_setxattr) */ __pyx_v_7pyfuse3_fuse_ops.fsyncdir = __pyx_f_7pyfuse3_fuse_fsyncdir; /* "src/pyfuse3/internal.pxi":63 * fuse_ops.releasedir = fuse_releasedir * fuse_ops.fsyncdir = fuse_fsyncdir * fuse_ops.statfs = fuse_statfs # <<<<<<<<<<<<<< * ASSIGN_NOT_DARWIN(fuse_ops.setxattr, &fuse_setxattr) * ASSIGN_NOT_DARWIN(fuse_ops.getxattr, &fuse_getxattr) */ __pyx_v_7pyfuse3_fuse_ops.statfs = __pyx_f_7pyfuse3_fuse_statfs; /* "src/pyfuse3/internal.pxi":64 * fuse_ops.fsyncdir = fuse_fsyncdir * fuse_ops.statfs = fuse_statfs * ASSIGN_NOT_DARWIN(fuse_ops.setxattr, &fuse_setxattr) # <<<<<<<<<<<<<< * ASSIGN_NOT_DARWIN(fuse_ops.getxattr, &fuse_getxattr) * fuse_ops.listxattr = fuse_listxattr */ ASSIGN_NOT_DARWIN(__pyx_v_7pyfuse3_fuse_ops.setxattr, (&__pyx_f_7pyfuse3_fuse_setxattr)); /* "src/pyfuse3/internal.pxi":65 * fuse_ops.statfs = fuse_statfs * ASSIGN_NOT_DARWIN(fuse_ops.setxattr, &fuse_setxattr) * ASSIGN_NOT_DARWIN(fuse_ops.getxattr, &fuse_getxattr) # <<<<<<<<<<<<<< * fuse_ops.listxattr = fuse_listxattr * fuse_ops.removexattr = fuse_removexattr */ ASSIGN_NOT_DARWIN(__pyx_v_7pyfuse3_fuse_ops.getxattr, (&__pyx_f_7pyfuse3_fuse_getxattr)); /* "src/pyfuse3/internal.pxi":66 * ASSIGN_NOT_DARWIN(fuse_ops.setxattr, &fuse_setxattr) * ASSIGN_NOT_DARWIN(fuse_ops.getxattr, &fuse_getxattr) * fuse_ops.listxattr = fuse_listxattr # <<<<<<<<<<<<<< * fuse_ops.removexattr = fuse_removexattr * fuse_ops.access = fuse_access */ __pyx_v_7pyfuse3_fuse_ops.listxattr = __pyx_f_7pyfuse3_fuse_listxattr; /* "src/pyfuse3/internal.pxi":67 * ASSIGN_NOT_DARWIN(fuse_ops.getxattr, &fuse_getxattr) * fuse_ops.listxattr = fuse_listxattr * fuse_ops.removexattr = fuse_removexattr # <<<<<<<<<<<<<< * fuse_ops.access = fuse_access * fuse_ops.create = fuse_create */ __pyx_v_7pyfuse3_fuse_ops.removexattr = __pyx_f_7pyfuse3_fuse_removexattr; /* "src/pyfuse3/internal.pxi":68 * fuse_ops.listxattr = fuse_listxattr * fuse_ops.removexattr = fuse_removexattr * fuse_ops.access = fuse_access # <<<<<<<<<<<<<< * fuse_ops.create = fuse_create * fuse_ops.forget_multi = fuse_forget_multi */ __pyx_v_7pyfuse3_fuse_ops.access = __pyx_f_7pyfuse3_fuse_access; /* "src/pyfuse3/internal.pxi":69 * fuse_ops.removexattr = fuse_removexattr * fuse_ops.access = fuse_access * fuse_ops.create = fuse_create # <<<<<<<<<<<<<< * fuse_ops.forget_multi = fuse_forget_multi * fuse_ops.write_buf = fuse_write_buf */ __pyx_v_7pyfuse3_fuse_ops.create = __pyx_f_7pyfuse3_fuse_create; /* "src/pyfuse3/internal.pxi":70 * fuse_ops.access = fuse_access * fuse_ops.create = fuse_create * fuse_ops.forget_multi = fuse_forget_multi # <<<<<<<<<<<<<< * fuse_ops.write_buf = fuse_write_buf * fuse_ops.poll = fuse_poll */ __pyx_v_7pyfuse3_fuse_ops.forget_multi = __pyx_f_7pyfuse3_fuse_forget_multi; /* "src/pyfuse3/internal.pxi":71 * fuse_ops.create = fuse_create * fuse_ops.forget_multi = fuse_forget_multi * fuse_ops.write_buf = fuse_write_buf # <<<<<<<<<<<<<< * fuse_ops.poll = fuse_poll * */ __pyx_v_7pyfuse3_fuse_ops.write_buf = __pyx_f_7pyfuse3_fuse_write_buf; /* "src/pyfuse3/internal.pxi":72 * fuse_ops.forget_multi = fuse_forget_multi * fuse_ops.write_buf = fuse_write_buf * fuse_ops.poll = fuse_poll # <<<<<<<<<<<<<< * * cdef make_fuse_args(args, fuse_args* f_args): */ __pyx_v_7pyfuse3_fuse_ops.poll = __pyx_f_7pyfuse3_fuse_poll; /* "src/pyfuse3/internal.pxi":35 * return ctx * * cdef void init_fuse_ops(): # <<<<<<<<<<<<<< * '''Initialize fuse_lowlevel_ops structure''' * */ /* function exit code */ } /* "src/pyfuse3/internal.pxi":74 * fuse_ops.poll = fuse_poll * * cdef make_fuse_args(args, fuse_args* f_args): # <<<<<<<<<<<<<< * cdef char* arg * cdef int i */ static PyObject *__pyx_f_7pyfuse3_make_fuse_args(PyObject *__pyx_v_args, struct fuse_args *__pyx_v_f_args) { char *__pyx_v_arg; int __pyx_v_i; Py_ssize_t __pyx_v_size_s; size_t __pyx_v_size; PyObject *__pyx_v_args_new = NULL; PyObject *__pyx_v_el = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *(*__pyx_t_3)(PyObject *); PyObject *__pyx_t_4 = NULL; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; int __pyx_t_8; PyObject *__pyx_t_9; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; int __pyx_t_13; int __pyx_t_14; int __pyx_t_15; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("make_fuse_args", 0); __Pyx_INCREF(__pyx_v_args); /* "src/pyfuse3/internal.pxi":80 * cdef size_t size * * args_new = [ b'pyfuse3' ] # <<<<<<<<<<<<<< * for el in args: * args_new.append(b'-o') */ __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_mstate_global->__pyx_n_b_pyfuse3); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_b_pyfuse3); if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_mstate_global->__pyx_n_b_pyfuse3) != (0)) __PYX_ERR(1, 80, __pyx_L1_error); __pyx_v_args_new = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/internal.pxi":81 * * args_new = [ b'pyfuse3' ] * for el in args: # <<<<<<<<<<<<<< * args_new.append(b'-o') * args_new.append(el.encode('us-ascii')) */ if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 81, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_1))) { { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 81, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_2; } else { { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 81, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2)); #else __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); #endif ++__pyx_t_2; } if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 81, __pyx_L1_error) } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(1, 81, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_el, __pyx_t_4); __pyx_t_4 = 0; /* "src/pyfuse3/internal.pxi":82 * args_new = [ b'pyfuse3' ] * for el in args: * args_new.append(b'-o') # <<<<<<<<<<<<<< * args_new.append(el.encode('us-ascii')) * args = args_new */ __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_args_new, __pyx_mstate_global->__pyx_kp_b_o); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 82, __pyx_L1_error) /* "src/pyfuse3/internal.pxi":83 * for el in args: * args_new.append(b'-o') * args_new.append(el.encode('us-ascii')) # <<<<<<<<<<<<<< * args = args_new * */ __pyx_t_6 = __pyx_v_el; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_mstate_global->__pyx_kp_u_us_ascii}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_args_new, __pyx_t_4); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 83, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "src/pyfuse3/internal.pxi":81 * * args_new = [ b'pyfuse3' ] * for el in args: # <<<<<<<<<<<<<< * args_new.append(b'-o') * args_new.append(el.encode('us-ascii')) */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/internal.pxi":84 * args_new.append(b'-o') * args_new.append(el.encode('us-ascii')) * args = args_new # <<<<<<<<<<<<<< * * f_args.argc = len(args) */ __Pyx_INCREF(__pyx_v_args_new); __Pyx_DECREF_SET(__pyx_v_args, __pyx_v_args_new); /* "src/pyfuse3/internal.pxi":86 * args = args_new * * f_args.argc = len(args) # <<<<<<<<<<<<<< * if f_args.argc == 0: * f_args.argv = NULL */ __pyx_t_2 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 86, __pyx_L1_error) __pyx_v_f_args->argc = ((int)__pyx_t_2); /* "src/pyfuse3/internal.pxi":87 * * f_args.argc = len(args) * if f_args.argc == 0: # <<<<<<<<<<<<<< * f_args.argv = NULL * return */ __pyx_t_8 = (__pyx_v_f_args->argc == 0); if (__pyx_t_8) { /* "src/pyfuse3/internal.pxi":88 * f_args.argc = len(args) * if f_args.argc == 0: * f_args.argv = NULL # <<<<<<<<<<<<<< * return * */ __pyx_v_f_args->argv = NULL; /* "src/pyfuse3/internal.pxi":89 * if f_args.argc == 0: * f_args.argv = NULL * return # <<<<<<<<<<<<<< * * f_args.allocated = 1 */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; /* "src/pyfuse3/internal.pxi":87 * * f_args.argc = len(args) * if f_args.argc == 0: # <<<<<<<<<<<<<< * f_args.argv = NULL * return */ } /* "src/pyfuse3/internal.pxi":91 * return * * f_args.allocated = 1 # <<<<<<<<<<<<<< * f_args.argv = stdlib.calloc( f_args.argc, sizeof(char*)) * */ __pyx_v_f_args->allocated = 1; /* "src/pyfuse3/internal.pxi":92 * * f_args.allocated = 1 * f_args.argv = stdlib.calloc( f_args.argc, sizeof(char*)) # <<<<<<<<<<<<<< * * if f_args.argv is NULL: */ __pyx_v_f_args->argv = ((char **)calloc(((size_t)__pyx_v_f_args->argc), (sizeof(char *)))); /* "src/pyfuse3/internal.pxi":94 * f_args.argv = stdlib.calloc( f_args.argc, sizeof(char*)) * * if f_args.argv is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ __pyx_t_8 = (__pyx_v_f_args->argv == NULL); if (__pyx_t_8) { /* "src/pyfuse3/internal.pxi":95 * * if f_args.argv is NULL: * cpython.exc.PyErr_NoMemory() # <<<<<<<<<<<<<< * * try: */ __pyx_t_9 = PyErr_NoMemory(); if (unlikely(__pyx_t_9 == ((void *)NULL))) __PYX_ERR(1, 95, __pyx_L1_error) /* "src/pyfuse3/internal.pxi":94 * f_args.argv = stdlib.calloc( f_args.argc, sizeof(char*)) * * if f_args.argv is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ } /* "src/pyfuse3/internal.pxi":97 * cpython.exc.PyErr_NoMemory() * * try: # <<<<<<<<<<<<<< * for (i, el) in enumerate(args): * PyBytes_AsStringAndSize(el, &arg, &size_s) */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); /*try:*/ { /* "src/pyfuse3/internal.pxi":98 * * try: * for (i, el) in enumerate(args): # <<<<<<<<<<<<<< * PyBytes_AsStringAndSize(el, &arg, &size_s) * size = size_s # guaranteed positive */ __pyx_t_13 = 0; if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 98, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 98, __pyx_L8_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_1))) { { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 98, __pyx_L8_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_2; } else { { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 98, __pyx_L8_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2)); #else __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); #endif ++__pyx_t_2; } if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 98, __pyx_L8_error) } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(1, 98, __pyx_L8_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_el, __pyx_t_4); __pyx_t_4 = 0; __pyx_v_i = __pyx_t_13; __pyx_t_13 = (__pyx_t_13 + 1); /* "src/pyfuse3/internal.pxi":99 * try: * for (i, el) in enumerate(args): * PyBytes_AsStringAndSize(el, &arg, &size_s) # <<<<<<<<<<<<<< * size = size_s # guaranteed positive * f_args.argv[i] = stdlib.malloc((size+1)*sizeof(char)) */ __pyx_t_14 = PyBytes_AsStringAndSize(__pyx_v_el, (&__pyx_v_arg), ((Py_ssize_t *)(&__pyx_v_size_s))); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(1, 99, __pyx_L8_error) /* "src/pyfuse3/internal.pxi":100 * for (i, el) in enumerate(args): * PyBytes_AsStringAndSize(el, &arg, &size_s) * size = size_s # guaranteed positive # <<<<<<<<<<<<<< * f_args.argv[i] = stdlib.malloc((size+1)*sizeof(char)) * */ __pyx_v_size = ((size_t)__pyx_v_size_s); /* "src/pyfuse3/internal.pxi":101 * PyBytes_AsStringAndSize(el, &arg, &size_s) * size = size_s # guaranteed positive * f_args.argv[i] = stdlib.malloc((size+1)*sizeof(char)) # <<<<<<<<<<<<<< * * if f_args.argv[i] is NULL: */ (__pyx_v_f_args->argv[__pyx_v_i]) = ((char *)malloc(((__pyx_v_size + 1) * (sizeof(char))))); /* "src/pyfuse3/internal.pxi":103 * f_args.argv[i] = stdlib.malloc((size+1)*sizeof(char)) * * if f_args.argv[i] is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ __pyx_t_8 = ((__pyx_v_f_args->argv[__pyx_v_i]) == NULL); if (__pyx_t_8) { /* "src/pyfuse3/internal.pxi":104 * * if f_args.argv[i] is NULL: * cpython.exc.PyErr_NoMemory() # <<<<<<<<<<<<<< * * string.strncpy(f_args.argv[i], arg, size+1) */ __pyx_t_9 = PyErr_NoMemory(); if (unlikely(__pyx_t_9 == ((void *)NULL))) __PYX_ERR(1, 104, __pyx_L8_error) /* "src/pyfuse3/internal.pxi":103 * f_args.argv[i] = stdlib.malloc((size+1)*sizeof(char)) * * if f_args.argv[i] is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ } /* "src/pyfuse3/internal.pxi":106 * cpython.exc.PyErr_NoMemory() * * string.strncpy(f_args.argv[i], arg, size+1) # <<<<<<<<<<<<<< * except: * for i in range(f_args.argc): */ (void)(strncpy((__pyx_v_f_args->argv[__pyx_v_i]), __pyx_v_arg, (__pyx_v_size + 1))); /* "src/pyfuse3/internal.pxi":98 * * try: * for (i, el) in enumerate(args): # <<<<<<<<<<<<<< * PyBytes_AsStringAndSize(el, &arg, &size_s) * size = size_s # guaranteed positive */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/internal.pxi":97 * cpython.exc.PyErr_NoMemory() * * try: # <<<<<<<<<<<<<< * for (i, el) in enumerate(args): * PyBytes_AsStringAndSize(el, &arg, &size_s) */ } __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L13_try_end; __pyx_L8_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /* "src/pyfuse3/internal.pxi":107 * * string.strncpy(f_args.argv[i], arg, size+1) * except: # <<<<<<<<<<<<<< * for i in range(f_args.argc): * # Freeing a NULL pointer (if this element has not been allocated */ /*except:*/ { __Pyx_AddTraceback("pyfuse3.make_fuse_args", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_4, &__pyx_t_6) < 0) __PYX_ERR(1, 107, __pyx_L10_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_6); /* "src/pyfuse3/internal.pxi":108 * string.strncpy(f_args.argv[i], arg, size+1) * except: * for i in range(f_args.argc): # <<<<<<<<<<<<<< * # Freeing a NULL pointer (if this element has not been allocated * # yet) is fine. */ __pyx_t_13 = __pyx_v_f_args->argc; __pyx_t_14 = __pyx_t_13; for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) { __pyx_v_i = __pyx_t_15; /* "src/pyfuse3/internal.pxi":111 * # Freeing a NULL pointer (if this element has not been allocated * # yet) is fine. * stdlib.free(f_args.argv[i]) # <<<<<<<<<<<<<< * stdlib.free(f_args.argv) * raise */ free((__pyx_v_f_args->argv[__pyx_v_i])); } /* "src/pyfuse3/internal.pxi":112 * # yet) is fine. * stdlib.free(f_args.argv[i]) * stdlib.free(f_args.argv) # <<<<<<<<<<<<<< * raise * */ free(__pyx_v_f_args->argv); /* "src/pyfuse3/internal.pxi":113 * stdlib.free(f_args.argv[i]) * stdlib.free(f_args.argv) * raise # <<<<<<<<<<<<<< * * def _notify_loop(): */ __Pyx_GIVEREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_4, __pyx_t_6); __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_t_6 = 0; __PYX_ERR(1, 113, __pyx_L10_except_error) } /* "src/pyfuse3/internal.pxi":97 * cpython.exc.PyErr_NoMemory() * * try: # <<<<<<<<<<<<<< * for (i, el) in enumerate(args): * PyBytes_AsStringAndSize(el, &arg, &size_s) */ __pyx_L10_except_error:; __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); goto __pyx_L1_error; __pyx_L13_try_end:; } /* "src/pyfuse3/internal.pxi":74 * fuse_ops.poll = fuse_poll * * cdef make_fuse_args(args, fuse_args* f_args): # <<<<<<<<<<<<<< * cdef char* arg * cdef int i */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.make_fuse_args", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_args_new); __Pyx_XDECREF(__pyx_v_el); __Pyx_XDECREF(__pyx_v_args); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/internal.pxi":115 * raise * * def _notify_loop(): # <<<<<<<<<<<<<< * '''Process async invalidate_entry calls.''' * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_91_notify_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_90_notify_loop, "Process async invalidate_entry calls."); static PyMethodDef __pyx_mdef_7pyfuse3_91_notify_loop = {"_notify_loop", (PyCFunction)__pyx_pw_7pyfuse3_91_notify_loop, METH_NOARGS, __pyx_doc_7pyfuse3_90_notify_loop}; static PyObject *__pyx_pw_7pyfuse3_91_notify_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_notify_loop (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_90_notify_loop(__pyx_self); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_90_notify_loop(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_v_req = NULL; PyObject *__pyx_v_inode_p = NULL; PyObject *__pyx_v_name = NULL; PyObject *__pyx_v_deleted = NULL; PyObject *__pyx_v_ignore_enoent = NULL; PyObject *__pyx_v_exc = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *(*__pyx_t_8)(PyObject *); PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; int __pyx_t_12; int __pyx_t_13; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; int __pyx_t_17; char const *__pyx_t_18; PyObject *__pyx_t_19 = NULL; PyObject *__pyx_t_20 = NULL; PyObject *__pyx_t_21 = NULL; PyObject *__pyx_t_22 = NULL; PyObject *__pyx_t_23 = NULL; PyObject *__pyx_t_24 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_notify_loop", 0); /* "src/pyfuse3/internal.pxi":118 * '''Process async invalidate_entry calls.''' * * while True: # <<<<<<<<<<<<<< * req = _notify_queue.get() * if req is None: */ while (1) { /* "src/pyfuse3/internal.pxi":119 * * while True: * req = _notify_queue.get() # <<<<<<<<<<<<<< * if req is None: * log.debug('terminating notify thread') */ __pyx_t_2 = __pyx_v_7pyfuse3__notify_queue; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_req, __pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/internal.pxi":120 * while True: * req = _notify_queue.get() * if req is None: # <<<<<<<<<<<<<< * log.debug('terminating notify thread') * break */ __pyx_t_4 = (__pyx_v_req == Py_None); if (__pyx_t_4) { /* "src/pyfuse3/internal.pxi":121 * req = _notify_queue.get() * if req is None: * log.debug('terminating notify thread') # <<<<<<<<<<<<<< * break * */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_terminating_notify_thread}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "src/pyfuse3/internal.pxi":122 * if req is None: * log.debug('terminating notify thread') * break # <<<<<<<<<<<<<< * * (inode_p, name, deleted, ignore_enoent) = req */ goto __pyx_L4_break; /* "src/pyfuse3/internal.pxi":120 * while True: * req = _notify_queue.get() * if req is None: # <<<<<<<<<<<<<< * log.debug('terminating notify thread') * break */ } /* "src/pyfuse3/internal.pxi":124 * break * * (inode_p, name, deleted, ignore_enoent) = req # <<<<<<<<<<<<<< * try: * invalidate_entry(inode_p, name, deleted) */ if ((likely(PyTuple_CheckExact(__pyx_v_req))) || (PyList_CheckExact(__pyx_v_req))) { PyObject* sequence = __pyx_v_req; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 124, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_6); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); __Pyx_INCREF(__pyx_t_5); } else { __pyx_t_1 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 124, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 124, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyList_GetItemRefFast(sequence, 2, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 124, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyList_GetItemRefFast(sequence, 3, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 124, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_5); } #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_6,&__pyx_t_2,&__pyx_t_5}; for (i=0; i < 4; i++) { PyObject* item = __Pyx_PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(1, 124, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_6,&__pyx_t_2,&__pyx_t_5}; __pyx_t_7 = PyObject_GetIter(__pyx_v_req); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); for (index=0; index < 4; index++) { PyObject* item = __pyx_t_8(__pyx_t_7); if (unlikely(!item)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 4) < (0)) __PYX_ERR(1, 124, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L7_unpacking_done; __pyx_L6_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(1, 124, __pyx_L1_error) __pyx_L7_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_inode_p, __pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_deleted, __pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_ignore_enoent, __pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/internal.pxi":125 * * (inode_p, name, deleted, ignore_enoent) = req * try: # <<<<<<<<<<<<<< * invalidate_entry(inode_p, name, deleted) * except Exception as exc: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); /*try:*/ { /* "src/pyfuse3/internal.pxi":126 * (inode_p, name, deleted, ignore_enoent) = req * try: * invalidate_entry(inode_p, name, deleted) # <<<<<<<<<<<<<< * except Exception as exc: * if ignore_enoent and isinstance(exc, FileNotFoundError): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_invalidate_entry); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 126, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_inode_p, __pyx_v_name, __pyx_v_deleted}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 126, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/internal.pxi":125 * * (inode_p, name, deleted, ignore_enoent) = req * try: # <<<<<<<<<<<<<< * invalidate_entry(inode_p, name, deleted) * except Exception as exc: */ } __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L15_try_end; __pyx_L8_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/internal.pxi":127 * try: * invalidate_entry(inode_p, name, deleted) * except Exception as exc: # <<<<<<<<<<<<<< * if ignore_enoent and isinstance(exc, FileNotFoundError): * pass */ __pyx_t_12 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_12) { __Pyx_AddTraceback("pyfuse3._notify_loop", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_2) < 0) __PYX_ERR(1, 127, __pyx_L10_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __pyx_v_exc = __pyx_t_6; /*try:*/ { /* "src/pyfuse3/internal.pxi":128 * invalidate_entry(inode_p, name, deleted) * except Exception as exc: * if ignore_enoent and isinstance(exc, FileNotFoundError): # <<<<<<<<<<<<<< * pass * else: */ __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_enoent); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(1, 128, __pyx_L21_error) if (__pyx_t_13) { } else { __pyx_t_4 = __pyx_t_13; goto __pyx_L24_bool_binop_done; } __pyx_t_13 = __Pyx_PyExc_FileNotFoundError_Check(__pyx_v_exc); __pyx_t_4 = __pyx_t_13; __pyx_L24_bool_binop_done:; if (__pyx_t_4) { goto __pyx_L23; } /* "src/pyfuse3/internal.pxi":131 * pass * else: * log.exception('Failed to submit invalidate_entry request for ' # <<<<<<<<<<<<<< * 'parent inode %d, name %s', req[0], req[1]) * */ /*else*/ { __pyx_t_7 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 131, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_exception); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 131, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; /* "src/pyfuse3/internal.pxi":132 * else: * log.exception('Failed to submit invalidate_entry request for ' * 'parent inode %d, name %s', req[0], req[1]) # <<<<<<<<<<<<<< * * cdef str2bytes(s): */ __pyx_t_14 = __Pyx_GetItemInt(__pyx_v_req, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 132, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_16 = __Pyx_GetItemInt(__pyx_v_req, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 132, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_15); assert(__pyx_t_7); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_15, __pyx__function); __pyx_t_3 = 0; } #endif { PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_Failed_to_submit_invalidate_entr, __pyx_t_14, __pyx_t_16}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_15, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 131, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L23:; } /* "src/pyfuse3/internal.pxi":127 * try: * invalidate_entry(inode_p, name, deleted) * except Exception as exc: # <<<<<<<<<<<<<< * if ignore_enoent and isinstance(exc, FileNotFoundError): * pass */ /*finally:*/ { /*normal exit:*/{ __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; goto __pyx_L22; } __pyx_L21_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_ExceptionSwap(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); if ( unlikely(__Pyx_GetException(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21) < 0)) __Pyx_ErrFetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __pyx_t_12 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_18 = __pyx_filename; { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; } __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_23, __pyx_t_24); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ErrRestore(__pyx_t_19, __pyx_t_20, __pyx_t_21); __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_18; goto __pyx_L10_except_error; } __pyx_L22:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L9_exception_handled; } goto __pyx_L10_except_error; /* "src/pyfuse3/internal.pxi":125 * * (inode_p, name, deleted, ignore_enoent) = req * try: # <<<<<<<<<<<<<< * invalidate_entry(inode_p, name, deleted) * except Exception as exc: */ __pyx_L10_except_error:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); goto __pyx_L1_error; __pyx_L9_exception_handled:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); __pyx_L15_try_end:; } } __pyx_L4_break:; /* "src/pyfuse3/internal.pxi":115 * raise * * def _notify_loop(): # <<<<<<<<<<<<<< * '''Process async invalidate_entry calls.''' * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_14); __Pyx_XDECREF(__pyx_t_15); __Pyx_XDECREF(__pyx_t_16); __Pyx_AddTraceback("pyfuse3._notify_loop", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_req); __Pyx_XDECREF(__pyx_v_inode_p); __Pyx_XDECREF(__pyx_v_name); __Pyx_XDECREF(__pyx_v_deleted); __Pyx_XDECREF(__pyx_v_ignore_enoent); __Pyx_XDECREF(__pyx_v_exc); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/internal.pxi":134 * 'parent inode %d, name %s', req[0], req[1]) * * cdef str2bytes(s): # <<<<<<<<<<<<<< * '''Convert *s* to bytes''' * */ static PyObject *__pyx_f_7pyfuse3_str2bytes(PyObject *__pyx_v_s) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("str2bytes", 0); /* "src/pyfuse3/internal.pxi":137 * '''Convert *s* to bytes''' * * return s.encode(fse, 'surrogateescape') # <<<<<<<<<<<<<< * * cdef bytes2str(s): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_v_s; __Pyx_INCREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fse); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 0; { PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_surrogateescape}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "src/pyfuse3/internal.pxi":134 * 'parent inode %d, name %s', req[0], req[1]) * * cdef str2bytes(s): # <<<<<<<<<<<<<< * '''Convert *s* to bytes''' * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/internal.pxi":139 * return s.encode(fse, 'surrogateescape') * * cdef bytes2str(s): # <<<<<<<<<<<<<< * '''Convert *s* to str''' * */ static PyObject *__pyx_f_7pyfuse3_bytes2str(PyObject *__pyx_v_s) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("bytes2str", 0); /* "src/pyfuse3/internal.pxi":142 * '''Convert *s* to str''' * * return s.decode(fse, 'surrogateescape') # <<<<<<<<<<<<<< * * cdef strerror(int errno): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_v_s; __Pyx_INCREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fse); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 0; { PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_surrogateescape}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "src/pyfuse3/internal.pxi":139 * return s.encode(fse, 'surrogateescape') * * cdef bytes2str(s): # <<<<<<<<<<<<<< * '''Convert *s* to str''' * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/internal.pxi":144 * return s.decode(fse, 'surrogateescape') * * cdef strerror(int errno): # <<<<<<<<<<<<<< * try: * return os.strerror(errno) */ static PyObject *__pyx_f_7pyfuse3_strerror(int __pyx_v_errno) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; size_t __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("strerror", 0); /* "src/pyfuse3/internal.pxi":145 * * cdef strerror(int errno): * try: # <<<<<<<<<<<<<< * return os.strerror(errno) * except ValueError: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "src/pyfuse3/internal.pxi":146 * cdef strerror(int errno): * try: * return os.strerror(errno) # <<<<<<<<<<<<<< * except ValueError: * return 'errno: %d' % errno */ __Pyx_XDECREF(__pyx_r); __pyx_t_5 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 146, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_strerror); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 146, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 146, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); assert(__pyx_t_5); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); __pyx_t_8 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_6}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 146, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return; /* "src/pyfuse3/internal.pxi":145 * * cdef strerror(int errno): * try: # <<<<<<<<<<<<<< * return os.strerror(errno) * except ValueError: */ } __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "src/pyfuse3/internal.pxi":147 * try: * return os.strerror(errno) * except ValueError: # <<<<<<<<<<<<<< * return 'errno: %d' % errno * */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_9) { __Pyx_AddTraceback("pyfuse3.strerror", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(1, 147, __pyx_L5_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); /* "src/pyfuse3/internal.pxi":148 * return os.strerror(errno) * except ValueError: * return 'errno: %d' % errno # <<<<<<<<<<<<<< * * cdef PyBytes_from_bufvec(fuse_bufvec *src): */ __Pyx_XDECREF(__pyx_r); __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 148, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_errno_d, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 148, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_10; __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_except_return; } goto __pyx_L5_except_error; /* "src/pyfuse3/internal.pxi":145 * * cdef strerror(int errno): * try: # <<<<<<<<<<<<<< * return os.strerror(errno) * except ValueError: */ __pyx_L5_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L7_try_return:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L0; __pyx_L6_except_return:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L0; } /* "src/pyfuse3/internal.pxi":144 * return s.decode(fse, 'surrogateescape') * * cdef strerror(int errno): # <<<<<<<<<<<<<< * try: * return os.strerror(errno) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("pyfuse3.strerror", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/internal.pxi":150 * return 'errno: %d' % errno * * cdef PyBytes_from_bufvec(fuse_bufvec *src): # <<<<<<<<<<<<<< * cdef fuse_bufvec dst * cdef size_t len_ */ static PyObject *__pyx_f_7pyfuse3_PyBytes_from_bufvec(struct fuse_bufvec *__pyx_v_src) { struct fuse_bufvec __pyx_v_dst; size_t __pyx_v_len_; Py_ssize_t __pyx_v_res; PyObject *__pyx_v_buf = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyBytes_from_bufvec", 0); /* "src/pyfuse3/internal.pxi":155 * cdef ssize_t res * * len_ = fuse_buf_size(src) - src.off # <<<<<<<<<<<<<< * if len_ > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') */ __pyx_v_len_ = (fuse_buf_size(__pyx_v_src) - __pyx_v_src->off); /* "src/pyfuse3/internal.pxi":156 * * len_ = fuse_buf_size(src) - src.off * if len_ > PY_SSIZE_T_MAX: # <<<<<<<<<<<<<< * raise OverflowError('Value too long to convert to Python') * buf = PyBytes_FromStringAndSize(NULL, len_) */ __pyx_t_1 = (__pyx_v_len_ > PY_SSIZE_T_MAX); if (unlikely(__pyx_t_1)) { /* "src/pyfuse3/internal.pxi":157 * len_ = fuse_buf_size(src) - src.off * if len_ > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') # <<<<<<<<<<<<<< * buf = PyBytes_FromStringAndSize(NULL, len_) * dst.count = 1 */ __pyx_t_3 = NULL; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Value_too_long_to_convert_to_Pyt}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OverflowError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 157, __pyx_L1_error) /* "src/pyfuse3/internal.pxi":156 * * len_ = fuse_buf_size(src) - src.off * if len_ > PY_SSIZE_T_MAX: # <<<<<<<<<<<<<< * raise OverflowError('Value too long to convert to Python') * buf = PyBytes_FromStringAndSize(NULL, len_) */ } /* "src/pyfuse3/internal.pxi":158 * if len_ > PY_SSIZE_T_MAX: * raise OverflowError('Value too long to convert to Python') * buf = PyBytes_FromStringAndSize(NULL, len_) # <<<<<<<<<<<<<< * dst.count = 1 * dst.idx = 0 */ __pyx_t_2 = PyBytes_FromStringAndSize(NULL, ((Py_ssize_t)__pyx_v_len_)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_buf = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; /* "src/pyfuse3/internal.pxi":159 * raise OverflowError('Value too long to convert to Python') * buf = PyBytes_FromStringAndSize(NULL, len_) * dst.count = 1 # <<<<<<<<<<<<<< * dst.idx = 0 * dst.off = 0 */ __pyx_v_dst.count = 1; /* "src/pyfuse3/internal.pxi":160 * buf = PyBytes_FromStringAndSize(NULL, len_) * dst.count = 1 * dst.idx = 0 # <<<<<<<<<<<<<< * dst.off = 0 * dst.buf[0].mem = PyBytes_AS_STRING(buf) */ __pyx_v_dst.idx = 0; /* "src/pyfuse3/internal.pxi":161 * dst.count = 1 * dst.idx = 0 * dst.off = 0 # <<<<<<<<<<<<<< * dst.buf[0].mem = PyBytes_AS_STRING(buf) * dst.buf[0].size = len_ */ __pyx_v_dst.off = 0; /* "src/pyfuse3/internal.pxi":162 * dst.idx = 0 * dst.off = 0 * dst.buf[0].mem = PyBytes_AS_STRING(buf) # <<<<<<<<<<<<<< * dst.buf[0].size = len_ * dst.buf[0].flags = 0 */ (__pyx_v_dst.buf[0]).mem = PyBytes_AS_STRING(__pyx_v_buf); /* "src/pyfuse3/internal.pxi":163 * dst.off = 0 * dst.buf[0].mem = PyBytes_AS_STRING(buf) * dst.buf[0].size = len_ # <<<<<<<<<<<<<< * dst.buf[0].flags = 0 * res = fuse_buf_copy(&dst, src, 0) */ (__pyx_v_dst.buf[0]).size = __pyx_v_len_; /* "src/pyfuse3/internal.pxi":164 * dst.buf[0].mem = PyBytes_AS_STRING(buf) * dst.buf[0].size = len_ * dst.buf[0].flags = 0 # <<<<<<<<<<<<<< * res = fuse_buf_copy(&dst, src, 0) * if res < 0: */ (__pyx_v_dst.buf[0]).flags = 0; /* "src/pyfuse3/internal.pxi":165 * dst.buf[0].size = len_ * dst.buf[0].flags = 0 * res = fuse_buf_copy(&dst, src, 0) # <<<<<<<<<<<<<< * if res < 0: * raise OSError(errno.errno, 'fuse_buf_copy failed with ' */ __pyx_v_res = fuse_buf_copy((&__pyx_v_dst), __pyx_v_src, 0); /* "src/pyfuse3/internal.pxi":166 * dst.buf[0].flags = 0 * res = fuse_buf_copy(&dst, src, 0) * if res < 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, 'fuse_buf_copy failed with ' * + strerror(errno.errno)) */ __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { /* "src/pyfuse3/internal.pxi":167 * res = fuse_buf_copy(&dst, src, 0) * if res < 0: * raise OSError(errno.errno, 'fuse_buf_copy failed with ' # <<<<<<<<<<<<<< * + strerror(errno.errno)) * elif res < len_: */ __pyx_t_3 = NULL; __pyx_t_5 = __Pyx_PyLong_From_int(errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); /* "src/pyfuse3/internal.pxi":168 * if res < 0: * raise OSError(errno.errno, 'fuse_buf_copy failed with ' * + strerror(errno.errno)) # <<<<<<<<<<<<<< * elif res < len_: * # This is expected to be rare */ __pyx_t_6 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyNumber_Add(__pyx_mstate_global->__pyx_kp_u_fuse_buf_copy_failed_with, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_4 = 1; { PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_7}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OSError)), __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 167, __pyx_L1_error) /* "src/pyfuse3/internal.pxi":166 * dst.buf[0].flags = 0 * res = fuse_buf_copy(&dst, src, 0) * if res < 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, 'fuse_buf_copy failed with ' * + strerror(errno.errno)) */ } /* "src/pyfuse3/internal.pxi":169 * raise OSError(errno.errno, 'fuse_buf_copy failed with ' * + strerror(errno.errno)) * elif res < len_: # <<<<<<<<<<<<<< * # This is expected to be rare * return buf[:res] */ __pyx_t_1 = (((size_t)__pyx_v_res) < __pyx_v_len_); if (__pyx_t_1) { /* "src/pyfuse3/internal.pxi":171 * elif res < len_: * # This is expected to be rare * return buf[:res] # <<<<<<<<<<<<<< * else: * return buf */ __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_buf == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 171, __pyx_L1_error) } __pyx_t_2 = PySequence_GetSlice(__pyx_v_buf, 0, __pyx_v_res); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "src/pyfuse3/internal.pxi":169 * raise OSError(errno.errno, 'fuse_buf_copy failed with ' * + strerror(errno.errno)) * elif res < len_: # <<<<<<<<<<<<<< * # This is expected to be rare * return buf[:res] */ } /* "src/pyfuse3/internal.pxi":173 * return buf[:res] * else: * return buf # <<<<<<<<<<<<<< * * cdef void* calloc_or_raise(size_t nmemb, size_t size) except NULL: */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_buf); __pyx_r = __pyx_v_buf; goto __pyx_L0; } /* "src/pyfuse3/internal.pxi":150 * return 'errno: %d' % errno * * cdef PyBytes_from_bufvec(fuse_bufvec *src): # <<<<<<<<<<<<<< * cdef fuse_bufvec dst * cdef size_t len_ */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("pyfuse3.PyBytes_from_bufvec", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_buf); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/internal.pxi":175 * return buf * * cdef void* calloc_or_raise(size_t nmemb, size_t size) except NULL: # <<<<<<<<<<<<<< * cdef void* mem * mem = stdlib.calloc(nmemb, size) */ static void *__pyx_f_7pyfuse3_calloc_or_raise(size_t __pyx_v_nmemb, size_t __pyx_v_size) { void *__pyx_v_mem; void *__pyx_r; int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "src/pyfuse3/internal.pxi":177 * cdef void* calloc_or_raise(size_t nmemb, size_t size) except NULL: * cdef void* mem * mem = stdlib.calloc(nmemb, size) # <<<<<<<<<<<<<< * if mem is NULL: * raise MemoryError() */ __pyx_v_mem = calloc(__pyx_v_nmemb, __pyx_v_size); /* "src/pyfuse3/internal.pxi":178 * cdef void* mem * mem = stdlib.calloc(nmemb, size) * if mem is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * return mem */ __pyx_t_1 = (__pyx_v_mem == NULL); if (unlikely(__pyx_t_1)) { /* "src/pyfuse3/internal.pxi":179 * mem = stdlib.calloc(nmemb, size) * if mem is NULL: * raise MemoryError() # <<<<<<<<<<<<<< * return mem * */ PyErr_NoMemory(); __PYX_ERR(1, 179, __pyx_L1_error) /* "src/pyfuse3/internal.pxi":178 * cdef void* mem * mem = stdlib.calloc(nmemb, size) * if mem is NULL: # <<<<<<<<<<<<<< * raise MemoryError() * return mem */ } /* "src/pyfuse3/internal.pxi":180 * if mem is NULL: * raise MemoryError() * return mem # <<<<<<<<<<<<<< * * cdef class _WorkerData: */ __pyx_r = __pyx_v_mem; goto __pyx_L0; /* "src/pyfuse3/internal.pxi":175 * return buf * * cdef void* calloc_or_raise(size_t nmemb, size_t size) except NULL: # <<<<<<<<<<<<<< * cdef void* mem * mem = stdlib.calloc(nmemb, size) */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.calloc_or_raise", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; return __pyx_r; } /* "src/pyfuse3/internal.pxi":190 * cdef int active_readers * * def __init__(self): # <<<<<<<<<<<<<< * self.read_lock = None * self.active_readers = 0 */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11_WorkerData_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_11_WorkerData_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED Py_ssize_t __pyx_nargs; CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, __pyx_nargs); return -1; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return -1; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__init__", __pyx_kwds); return -1;} __pyx_r = __pyx_pf_7pyfuse3_11_WorkerData___init__(((struct __pyx_obj_7pyfuse3__WorkerData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11_WorkerData___init__(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* "src/pyfuse3/internal.pxi":191 * * def __init__(self): * self.read_lock = None # <<<<<<<<<<<<<< * self.active_readers = 0 * */ __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->read_lock); __Pyx_DECREF(__pyx_v_self->read_lock); __pyx_v_self->read_lock = Py_None; /* "src/pyfuse3/internal.pxi":192 * def __init__(self): * self.read_lock = None * self.active_readers = 0 # <<<<<<<<<<<<<< * * cdef get_name(self): */ __pyx_v_self->active_readers = 0; /* "src/pyfuse3/internal.pxi":190 * cdef int active_readers * * def __init__(self): # <<<<<<<<<<<<<< * self.read_lock = None * self.active_readers = 0 */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "src/pyfuse3/internal.pxi":194 * self.active_readers = 0 * * cdef get_name(self): # <<<<<<<<<<<<<< * self.task_serial += 1 * return 'pyfuse-%02d' % self.task_serial */ static PyObject *__pyx_f_7pyfuse3_11_WorkerData_get_name(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_name", 0); /* "src/pyfuse3/internal.pxi":195 * * cdef get_name(self): * self.task_serial += 1 # <<<<<<<<<<<<<< * return 'pyfuse-%02d' % self.task_serial * */ __pyx_v_self->task_serial = (__pyx_v_self->task_serial + 1); /* "src/pyfuse3/internal.pxi":196 * cdef get_name(self): * self.task_serial += 1 * return 'pyfuse-%02d' % self.task_serial # <<<<<<<<<<<<<< * * # Delay initialization so that pyfuse3.asyncio can replace */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->task_serial); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_pyfuse_02d, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "src/pyfuse3/internal.pxi":194 * self.active_readers = 0 * * cdef get_name(self): # <<<<<<<<<<<<<< * self.task_serial += 1 * return 'pyfuse-%02d' % self.task_serial */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3._WorkerData.get_name", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11_WorkerData_3__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_11_WorkerData_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11_WorkerData_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_11_WorkerData_3__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_11_WorkerData_2__reduce_cython__(((struct __pyx_obj_7pyfuse3__WorkerData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11_WorkerData_2__reduce_cython__(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self) { PyObject *__pyx_v_state = 0; PyObject *__pyx_v__dict = 0; int __pyx_v_use_setstate; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":5 * cdef object _dict * cdef bint use_setstate * state = (self.active_readers, self.read_lock, self.task_count, self.task_serial) # <<<<<<<<<<<<<< * _dict = getattr(self, '__dict__', None) * if _dict is not None and _dict: */ __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->active_readers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_self->task_count); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_self->task_serial); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 5, __pyx_L1_error); __Pyx_INCREF(__pyx_v_self->read_lock); __Pyx_GIVEREF(__pyx_v_self->read_lock); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_self->read_lock) != (0)) __PYX_ERR(2, 5, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_2); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2) != (0)) __PYX_ERR(2, 5, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_3); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3) != (0)) __PYX_ERR(2, 5, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_v_state = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; /* "(tree fragment)":6 * cdef bint use_setstate * state = (self.active_readers, self.read_lock, self.task_count, self.task_serial) * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< * if _dict is not None and _dict: * state += (_dict,) */ __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v__dict = __pyx_t_4; __pyx_t_4 = 0; /* "(tree fragment)":7 * state = (self.active_readers, self.read_lock, self.task_count, self.task_serial) * _dict = getattr(self, '__dict__', None) * if _dict is not None and _dict: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ __pyx_t_6 = (__pyx_v__dict != Py_None); if (__pyx_t_6) { } else { __pyx_t_5 = __pyx_t_6; goto __pyx_L4_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 7, __pyx_L1_error) __pyx_t_5 = __pyx_t_6; __pyx_L4_bool_binop_done:; if (__pyx_t_5) { /* "(tree fragment)":8 * _dict = getattr(self, '__dict__', None) * if _dict is not None and _dict: * state += (_dict,) # <<<<<<<<<<<<<< * use_setstate = True * else: */ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v__dict); __Pyx_GIVEREF(__pyx_v__dict); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict) != (0)) __PYX_ERR(2, 8, __pyx_L1_error); __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "(tree fragment)":9 * if _dict is not None and _dict: * state += (_dict,) * use_setstate = True # <<<<<<<<<<<<<< * else: * use_setstate = self.read_lock is not None */ __pyx_v_use_setstate = 1; /* "(tree fragment)":7 * state = (self.active_readers, self.read_lock, self.task_count, self.task_serial) * _dict = getattr(self, '__dict__', None) * if _dict is not None and _dict: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ goto __pyx_L3; } /* "(tree fragment)":11 * use_setstate = True * else: * use_setstate = self.read_lock is not None # <<<<<<<<<<<<<< * if use_setstate: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, None), state */ /*else*/ { __pyx_t_5 = (__pyx_v_self->read_lock != Py_None); __pyx_v_use_setstate = __pyx_t_5; } __pyx_L3:; /* "(tree fragment)":12 * else: * use_setstate = self.read_lock is not None * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, None), state * else: */ if (__pyx_v_use_setstate) { /* "(tree fragment)":13 * use_setstate = self.read_lock is not None * if use_setstate: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, None), state # <<<<<<<<<<<<<< * else: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, state) */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__WorkerData); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 13, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_44617694); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_44617694); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_44617694) != (0)) __PYX_ERR(2, 13, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None) != (0)) __PYX_ERR(2, 13, __pyx_L1_error); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3) != (0)) __PYX_ERR(2, 13, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(2, 13, __pyx_L1_error); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 13, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "(tree fragment)":12 * else: * use_setstate = self.read_lock is not None * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, None), state * else: */ } /* "(tree fragment)":15 * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, None), state * else: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, state) # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle__WorkerData__set_state(self, __pyx_state) */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__WorkerData); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 15, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_44617694); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_44617694); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_mstate_global->__pyx_int_44617694) != (0)) __PYX_ERR(2, 15, __pyx_L1_error); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 15, __pyx_L1_error); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2) != (0)) __PYX_ERR(2, 15, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4) != (0)) __PYX_ERR(2, 15, __pyx_L1_error); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3._WorkerData.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_state); __Pyx_XDECREF(__pyx_v__dict); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":16 * else: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle__WorkerData__set_state(self, __pyx_state) */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11_WorkerData_5__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_11_WorkerData_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11_WorkerData_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_11_WorkerData_5__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 16, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 16, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 16, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error) } __pyx_v___pyx_state = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 16, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3._WorkerData.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_11_WorkerData_4__setstate_cython__(((struct __pyx_obj_7pyfuse3__WorkerData *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11_WorkerData_4__setstate_cython__(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":17 * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, state) * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle__WorkerData__set_state(self, __pyx_state) # <<<<<<<<<<<<<< */ __pyx_t_1 = __pyx_v___pyx_state; __Pyx_INCREF(__pyx_t_1); if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(2, 17, __pyx_L1_error) if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'"); __PYX_ERR(2, 17, __pyx_L1_error) } __pyx_t_2 = __pyx_f_7pyfuse3___pyx_unpickle__WorkerData__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "(tree fragment)":16 * else: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle__WorkerData__set_state(self, __pyx_state) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3._WorkerData.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_94generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/internal.pxi":202 * cdef _WorkerData worker_data * * async def _wait_fuse_readable(): # <<<<<<<<<<<<<< * '''Wait for FUSE fd to become readable * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_93_wait_fuse_readable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_92_wait_fuse_readable, "Wait for FUSE fd to become readable\n\n Return True if the fd is readable, or False if the main loop\n should terminate.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_93_wait_fuse_readable = {"_wait_fuse_readable", (PyCFunction)__pyx_pw_7pyfuse3_93_wait_fuse_readable, METH_NOARGS, __pyx_doc_7pyfuse3_92_wait_fuse_readable}; static PyObject *__pyx_pw_7pyfuse3_93_wait_fuse_readable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_wait_fuse_readable (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_92_wait_fuse_readable(__pyx_self); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_92_wait_fuse_readable(CYTHON_UNUSED PyObject *__pyx_self) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_wait_fuse_readable", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 202, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_94generator30, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_wait_fuse_readable, __pyx_mstate_global->__pyx_n_u_wait_fuse_readable, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3._wait_fuse_readable", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_94generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable *)__pyx_generator->closure); PyObject *__pyx_r = NULL; int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; size_t __pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; __Pyx_PySendResult __pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; int __pyx_t_16; PyObject *__pyx_t_17 = NULL; int __pyx_t_18; PyObject *__pyx_t_19 = NULL; PyObject *__pyx_t_20 = NULL; int __pyx_t_21; char const *__pyx_t_22; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_wait_fuse_readable", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L15_resume_from_await; case 2: goto __pyx_L26_resume_from_await; case 3: goto __pyx_L30_resume_from_await; case 4: goto __pyx_L31_resume_from_await; case 5: goto __pyx_L32_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(1, 202, __pyx_L1_error) } /* "src/pyfuse3/internal.pxi":209 * ''' * * if worker_data.read_lock is None: # <<<<<<<<<<<<<< * worker_data.read_lock = trio.Lock() * */ __pyx_t_1 = (__pyx_v_7pyfuse3_worker_data->read_lock == Py_None); if (__pyx_t_1) { /* "src/pyfuse3/internal.pxi":210 * * if worker_data.read_lock is None: * worker_data.read_lock = trio.Lock() # <<<<<<<<<<<<<< * * #name = trio.lowlevel.current_task().name */ __pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_trio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Lock); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_3); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_7pyfuse3_worker_data->read_lock); __Pyx_DECREF(__pyx_v_7pyfuse3_worker_data->read_lock); __pyx_v_7pyfuse3_worker_data->read_lock = __pyx_t_2; __pyx_t_2 = 0; /* "src/pyfuse3/internal.pxi":209 * ''' * * if worker_data.read_lock is None: # <<<<<<<<<<<<<< * worker_data.read_lock = trio.Lock() * */ } /* "src/pyfuse3/internal.pxi":213 * * #name = trio.lowlevel.current_task().name * worker_data.active_readers += 1 # <<<<<<<<<<<<<< * try: * #log.debug('%s: Waiting for read lock...', name) */ __pyx_v_7pyfuse3_worker_data->active_readers = (__pyx_v_7pyfuse3_worker_data->active_readers + 1); /* "src/pyfuse3/internal.pxi":214 * #name = trio.lowlevel.current_task().name * worker_data.active_readers += 1 * try: # <<<<<<<<<<<<<< * #log.debug('%s: Waiting for read lock...', name) * async with worker_data.read_lock: */ /*try:*/ { { __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); /*try:*/ { /* "src/pyfuse3/internal.pxi":216 * try: * #log.debug('%s: Waiting for read lock...', name) * async with worker_data.read_lock: # <<<<<<<<<<<<<< * #log.debug('%s: Waiting for fuse fd to become readable...', name) * if fuse_session_exited(session): */ /*with:*/ { __pyx_t_10 = __Pyx_PyObject_LookupSpecial(__pyx_v_7pyfuse3_worker_data->read_lock, __pyx_mstate_global->__pyx_n_u_aexit); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 216, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = NULL; __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_7pyfuse3_worker_data->read_lock, __pyx_mstate_global->__pyx_n_u_aenter); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 216, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); assert(__pyx_t_5); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 216, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_t_11 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2, &__pyx_r); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(__pyx_t_11 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_0 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_1 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_2 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_3 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L15_resume_from_await:; __pyx_t_7 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 216, __pyx_L14_error) __pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2); } else if (likely(__pyx_t_11 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_2 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(1, 216, __pyx_L14_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /*try:*/ { { __Pyx_ExceptionSave(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); /*try:*/ { /* "src/pyfuse3/internal.pxi":218 * async with worker_data.read_lock: * #log.debug('%s: Waiting for fuse fd to become readable...', name) * if fuse_session_exited(session): # <<<<<<<<<<<<<< * log.debug('FUSE session exit flag set while waiting for FUSE fd ' * 'to become readable.') */ __pyx_t_1 = fuse_session_exited(__pyx_v_7pyfuse3_session); if (__pyx_t_1) { /* "src/pyfuse3/internal.pxi":219 * #log.debug('%s: Waiting for fuse fd to become readable...', name) * if fuse_session_exited(session): * log.debug('FUSE session exit flag set while waiting for FUSE fd ' # <<<<<<<<<<<<<< * 'to become readable.') * return False */ __pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 219, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 219, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_3); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_FUSE_session_exit_flag_set_while}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 219, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "src/pyfuse3/internal.pxi":221 * log.debug('FUSE session exit flag set while waiting for FUSE fd ' * 'to become readable.') * return False # <<<<<<<<<<<<<< * await trio.lowlevel.wait_readable(session_fd) * #log.debug('%s: fuse fd readable, unparking next task.', name) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_False); __pyx_r = Py_False; goto __pyx_L23_try_return; /* "src/pyfuse3/internal.pxi":218 * async with worker_data.read_lock: * #log.debug('%s: Waiting for fuse fd to become readable...', name) * if fuse_session_exited(session): # <<<<<<<<<<<<<< * log.debug('FUSE session exit flag set while waiting for FUSE fd ' * 'to become readable.') */ } /* "src/pyfuse3/internal.pxi":222 * 'to become readable.') * return False * await trio.lowlevel.wait_readable(session_fd) # <<<<<<<<<<<<<< * #log.debug('%s: fuse fd readable, unparking next task.', name) * except trio.ClosedResourceError: */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_trio); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 222, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_lowlevel); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 222, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_7pyfuse3_session_fd); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 222, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_wait_readable, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 222, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_t_11 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2, &__pyx_r); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(__pyx_t_11 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_0 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_1 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_2 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_3 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_4 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_t_13); __pyx_cur_scope->__pyx_t_5 = __pyx_t_13; __Pyx_XGIVEREF(__pyx_t_14); __pyx_cur_scope->__pyx_t_6 = __pyx_t_14; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L26_resume_from_await:; __pyx_t_7 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_12 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_12); __pyx_t_13 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_13); __pyx_t_14 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 222, __pyx_L19_error) } else if (likely(__pyx_t_11 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(1, 222, __pyx_L19_error) } /* "src/pyfuse3/internal.pxi":216 * try: * #log.debug('%s: Waiting for read lock...', name) * async with worker_data.read_lock: # <<<<<<<<<<<<<< * #log.debug('%s: Waiting for fuse fd to become readable...', name) * if fuse_session_exited(session): */ } __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; goto __pyx_L24_try_end; __pyx_L19_error:; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /*except:*/ { __Pyx_AddTraceback("pyfuse3._wait_fuse_readable", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_5, &__pyx_t_3) < 0) __PYX_ERR(1, 216, __pyx_L21_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 216, __pyx_L21_except_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_4, NULL); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 216, __pyx_L21_except_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_11 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_15, &__pyx_r); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (likely(__pyx_t_11 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_2 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_3 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_4 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_5 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_6 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_7 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_t_13); __pyx_cur_scope->__pyx_t_8 = __pyx_t_13; __Pyx_XGIVEREF(__pyx_t_14); __pyx_cur_scope->__pyx_t_9 = __pyx_t_14; __Pyx_XGIVEREF(__pyx_t_15); __pyx_cur_scope->__pyx_t_10 = __pyx_t_15; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_SwapException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L30_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_5 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_5); __pyx_t_7 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_12 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_12); __pyx_t_13 = __pyx_cur_scope->__pyx_t_8; __pyx_cur_scope->__pyx_t_8 = 0; __Pyx_XGOTREF(__pyx_t_13); __pyx_t_14 = __pyx_cur_scope->__pyx_t_9; __pyx_cur_scope->__pyx_t_9 = 0; __Pyx_XGOTREF(__pyx_t_14); __pyx_t_15 = __pyx_cur_scope->__pyx_t_10; __pyx_cur_scope->__pyx_t_10 = 0; __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 216, __pyx_L21_except_error) __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4); } else if (likely(__pyx_t_11 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_4 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(1, 216, __pyx_L21_except_error) } __pyx_t_15 = __pyx_t_4; __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_15); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (__pyx_t_1 < (0)) __PYX_ERR(1, 216, __pyx_L21_except_error) __pyx_t_16 = (!__pyx_t_1); if (unlikely(__pyx_t_16)) { __Pyx_GIVEREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_5, __pyx_t_3); __pyx_t_2 = 0; __pyx_t_5 = 0; __pyx_t_3 = 0; __PYX_ERR(1, 216, __pyx_L21_except_error) } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L20_exception_handled; } __pyx_L21_except_error:; __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); goto __pyx_L8_error; __pyx_L23_try_return:; __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); goto __pyx_L16_return; __pyx_L20_exception_handled:; __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); __pyx_L24_try_end:; } } /*finally:*/ { /*normal exit:*/{ if (__pyx_t_10) { __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_mstate_global->__pyx_tuple[0], NULL); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 216, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_11 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_14, &__pyx_r); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (likely(__pyx_t_11 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_0 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_1 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_2 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_3 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_14); __pyx_cur_scope->__pyx_t_4 = __pyx_t_14; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 4; return __pyx_r; __pyx_L31_resume_from_await:; __pyx_t_7 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_14 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 216, __pyx_L8_error) __pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3); } else if (likely(__pyx_t_11 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_3 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(1, 216, __pyx_L8_error) } __pyx_t_14 = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } goto __pyx_L18; } __pyx_L16_return: { __pyx_t_14 = __pyx_r; __pyx_r = 0; if (__pyx_t_10) { __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_mstate_global->__pyx_tuple[0], NULL); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 216, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_11 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_13, &__pyx_r); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (likely(__pyx_t_11 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_0 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_1 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_2 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_3 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_13); __pyx_cur_scope->__pyx_t_4 = __pyx_t_13; __Pyx_XGIVEREF(__pyx_t_14); __pyx_cur_scope->__pyx_t_5 = __pyx_t_14; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 5; return __pyx_r; __pyx_L32_resume_from_await:; __pyx_t_7 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_13 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_13); __pyx_t_14 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 216, __pyx_L8_error) __pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3); } else if (likely(__pyx_t_11 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_3 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(1, 216, __pyx_L8_error) } __pyx_t_13 = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __pyx_r = __pyx_t_14; __pyx_t_14 = 0; goto __pyx_L12_try_return; } __pyx_L18:; } goto __pyx_L33; __pyx_L14_error:; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L8_error; __pyx_L33:; } /* "src/pyfuse3/internal.pxi":214 * #name = trio.lowlevel.current_task().name * worker_data.active_readers += 1 * try: # <<<<<<<<<<<<<< * #log.debug('%s: Waiting for read lock...', name) * async with worker_data.read_lock: */ } __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L13_try_end; __pyx_L8_error:; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/internal.pxi":224 * await trio.lowlevel.wait_readable(session_fd) * #log.debug('%s: fuse fd readable, unparking next task.', name) * except trio.ClosedResourceError: # <<<<<<<<<<<<<< * log.debug('FUSE fd about to be closed.') * return False */ __Pyx_ErrFetch(&__pyx_t_3, &__pyx_t_5, &__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_trio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 224, __pyx_L10_except_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ClosedResourceError); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 224, __pyx_L10_except_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_18 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_3, __pyx_t_17); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_ErrRestore(__pyx_t_3, __pyx_t_5, __pyx_t_2); __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_2 = 0; if (__pyx_t_18) { __Pyx_AddTraceback("pyfuse3._wait_fuse_readable", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_5, &__pyx_t_3) < 0) __PYX_ERR(1, 224, __pyx_L10_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_3); /* "src/pyfuse3/internal.pxi":225 * #log.debug('%s: fuse fd readable, unparking next task.', name) * except trio.ClosedResourceError: * log.debug('FUSE fd about to be closed.') # <<<<<<<<<<<<<< * return False * */ __pyx_t_4 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 225, __pyx_L10_except_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 225, __pyx_L10_except_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_20))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_20); assert(__pyx_t_4); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_20, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_FUSE_fd_about_to_be_closed}; __pyx_t_17 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_20, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 225, __pyx_L10_except_error) __Pyx_GOTREF(__pyx_t_17); } __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; /* "src/pyfuse3/internal.pxi":226 * except trio.ClosedResourceError: * log.debug('FUSE fd about to be closed.') * return False # <<<<<<<<<<<<<< * * finally: */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_False); __pyx_r = Py_False; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L11_except_return; } goto __pyx_L10_except_error; /* "src/pyfuse3/internal.pxi":214 * #name = trio.lowlevel.current_task().name * worker_data.active_readers += 1 * try: # <<<<<<<<<<<<<< * #log.debug('%s: Waiting for read lock...', name) * async with worker_data.read_lock: */ __pyx_L10_except_error:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); goto __pyx_L6_error; __pyx_L12_try_return:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); goto __pyx_L5_return; __pyx_L11_except_return:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); goto __pyx_L5_return; __pyx_L13_try_end:; } } /* "src/pyfuse3/internal.pxi":229 * * finally: * worker_data.active_readers -= 1 # <<<<<<<<<<<<<< * * return True */ /*finally:*/ { /*normal exit:*/{ __pyx_v_7pyfuse3_worker_data->active_readers = (__pyx_v_7pyfuse3_worker_data->active_readers - 1); goto __pyx_L7; } __pyx_L6_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_10 = 0; __pyx_t_14 = 0; __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_14, &__pyx_t_13); if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_13); __pyx_t_18 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_22 = __pyx_filename; { __pyx_v_7pyfuse3_worker_data->active_readers = (__pyx_v_7pyfuse3_worker_data->active_readers - 1); } __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_14, __pyx_t_13); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ErrRestore(__pyx_t_9, __pyx_t_8, __pyx_t_7); __pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_10 = 0; __pyx_t_14 = 0; __pyx_t_13 = 0; __pyx_lineno = __pyx_t_18; __pyx_clineno = __pyx_t_21; __pyx_filename = __pyx_t_22; goto __pyx_L1_error; } __pyx_L5_return: { __pyx_t_13 = __pyx_r; __pyx_r = 0; __pyx_v_7pyfuse3_worker_data->active_readers = (__pyx_v_7pyfuse3_worker_data->active_readers - 1); __pyx_r = __pyx_t_13; __pyx_t_13 = 0; goto __pyx_L0; } __pyx_L7:; } /* "src/pyfuse3/internal.pxi":231 * worker_data.active_readers -= 1 * * return True # <<<<<<<<<<<<<< * * @async_wrapper */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_True); __pyx_r = Py_True; goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/internal.pxi":202 * cdef _WorkerData worker_data * * async def _wait_fuse_readable(): # <<<<<<<<<<<<<< * '''Wait for FUSE fd to become readable * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_17); __Pyx_XDECREF(__pyx_t_19); __Pyx_XDECREF(__pyx_t_20); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("_wait_fuse_readable", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_97generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "src/pyfuse3/internal.pxi":233 * return True * * @async_wrapper # <<<<<<<<<<<<<< * async def _session_loop(nursery, int min_tasks, int max_tasks): * cdef int res */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_96_session_loop(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_96_session_loop = {"_session_loop", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_96_session_loop, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_96_session_loop(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_nursery = 0; int __pyx_v_min_tasks; int __pyx_v_max_tasks; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_session_loop (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nursery,&__pyx_mstate_global->__pyx_n_u_min_tasks,&__pyx_mstate_global->__pyx_n_u_max_tasks,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 233, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 233, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 233, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 233, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_session_loop", 0) < (0)) __PYX_ERR(1, 233, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_session_loop", 1, 3, 3, i); __PYX_ERR(1, 233, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 233, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 233, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 233, __pyx_L3_error) } __pyx_v_nursery = values[0]; __pyx_v_min_tasks = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_min_tasks == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 234, __pyx_L3_error) __pyx_v_max_tasks = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_max_tasks == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 234, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("_session_loop", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 233, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3._session_loop", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_95_session_loop(__pyx_self, __pyx_v_nursery, __pyx_v_min_tasks, __pyx_v_max_tasks); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_95_session_loop(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_nursery, int __pyx_v_min_tasks, int __pyx_v_max_tasks) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_session_loop", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_31__session_loop(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(1, 233, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_nursery = __pyx_v_nursery; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_nursery); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_nursery); __pyx_cur_scope->__pyx_v_min_tasks = __pyx_v_min_tasks; __pyx_cur_scope->__pyx_v_max_tasks = __pyx_v_max_tasks; { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_97generator31, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_session_loop, __pyx_mstate_global->__pyx_n_u_session_loop, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(1, 233, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3._session_loop", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_97generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; size_t __pyx_t_5; int __pyx_t_6; PyObject *__pyx_t_7 = NULL; __Pyx_PySendResult __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_session_loop", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L8_resume_from_await; case 2: goto __pyx_L14_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(1, 233, __pyx_L1_error) } /* "src/pyfuse3/internal.pxi":238 * cdef fuse_buf buf * * name = trio.lowlevel.current_task().name # <<<<<<<<<<<<<< * * buf.mem = NULL */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_trio); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_lowlevel); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_4; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_current_task, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_v_name = __pyx_t_4; __pyx_t_4 = 0; /* "src/pyfuse3/internal.pxi":240 * name = trio.lowlevel.current_task().name * * buf.mem = NULL # <<<<<<<<<<<<<< * buf.size = 0 * buf.pos = 0 */ __pyx_cur_scope->__pyx_v_buf.mem = NULL; /* "src/pyfuse3/internal.pxi":241 * * buf.mem = NULL * buf.size = 0 # <<<<<<<<<<<<<< * buf.pos = 0 * buf.flags = 0 */ __pyx_cur_scope->__pyx_v_buf.size = 0; /* "src/pyfuse3/internal.pxi":242 * buf.mem = NULL * buf.size = 0 * buf.pos = 0 # <<<<<<<<<<<<<< * buf.flags = 0 * while not fuse_session_exited(session): */ __pyx_cur_scope->__pyx_v_buf.pos = 0; /* "src/pyfuse3/internal.pxi":243 * buf.size = 0 * buf.pos = 0 * buf.flags = 0 # <<<<<<<<<<<<<< * while not fuse_session_exited(session): * if worker_data.active_readers > min_tasks: */ __pyx_cur_scope->__pyx_v_buf.flags = 0; /* "src/pyfuse3/internal.pxi":244 * buf.pos = 0 * buf.flags = 0 * while not fuse_session_exited(session): # <<<<<<<<<<<<<< * if worker_data.active_readers > min_tasks: * log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', */ while (1) { __pyx_t_6 = (!fuse_session_exited(__pyx_v_7pyfuse3_session)); if (!__pyx_t_6) break; /* "src/pyfuse3/internal.pxi":245 * buf.flags = 0 * while not fuse_session_exited(session): * if worker_data.active_readers > min_tasks: # <<<<<<<<<<<<<< * log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', * name, worker_data.task_count, worker_data.active_readers) */ __pyx_t_6 = (__pyx_v_7pyfuse3_worker_data->active_readers > __pyx_cur_scope->__pyx_v_min_tasks); if (__pyx_t_6) { /* "src/pyfuse3/internal.pxi":246 * while not fuse_session_exited(session): * if worker_data.active_readers > min_tasks: * log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', # <<<<<<<<<<<<<< * name, worker_data.task_count, worker_data.active_readers) * break */ __pyx_t_1 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "src/pyfuse3/internal.pxi":247 * if worker_data.active_readers > min_tasks: * log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', * name, worker_data.task_count, worker_data.active_readers) # <<<<<<<<<<<<<< * break * */ __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_7pyfuse3_worker_data->task_count); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_7pyfuse3_worker_data->active_readers); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); assert(__pyx_t_1); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); __pyx_t_5 = 0; } #endif { PyObject *__pyx_callargs[5] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_s_too_many_idle_tasks_d_total_d, __pyx_cur_scope->__pyx_v_name, __pyx_t_2, __pyx_t_7}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "src/pyfuse3/internal.pxi":248 * log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', * name, worker_data.task_count, worker_data.active_readers) * break # <<<<<<<<<<<<<< * * if not await _wait_fuse_readable(): */ goto __pyx_L5_break; /* "src/pyfuse3/internal.pxi":245 * buf.flags = 0 * while not fuse_session_exited(session): * if worker_data.active_readers > min_tasks: # <<<<<<<<<<<<<< * log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', * name, worker_data.task_count, worker_data.active_readers) */ } /* "src/pyfuse3/internal.pxi":250 * break * * if not await _wait_fuse_readable(): # <<<<<<<<<<<<<< * break * */ __pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_wait_fuse_readable); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); assert(__pyx_t_3); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); __pyx_t_5 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L8_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 250, __pyx_L1_error) __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4); } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_4 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(1, 250, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(1, 250, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = (!__pyx_t_6); if (__pyx_t_9) { /* "src/pyfuse3/internal.pxi":251 * * if not await _wait_fuse_readable(): * break # <<<<<<<<<<<<<< * * res = fuse_session_receive_buf(session, &buf) */ goto __pyx_L5_break; /* "src/pyfuse3/internal.pxi":250 * break * * if not await _wait_fuse_readable(): # <<<<<<<<<<<<<< * break * */ } /* "src/pyfuse3/internal.pxi":253 * break * * res = fuse_session_receive_buf(session, &buf) # <<<<<<<<<<<<<< * if not worker_data.active_readers and worker_data.task_count < max_tasks: * worker_data.task_count += 1 */ __pyx_cur_scope->__pyx_v_res = fuse_session_receive_buf(__pyx_v_7pyfuse3_session, (&__pyx_cur_scope->__pyx_v_buf)); /* "src/pyfuse3/internal.pxi":254 * * res = fuse_session_receive_buf(session, &buf) * if not worker_data.active_readers and worker_data.task_count < max_tasks: # <<<<<<<<<<<<<< * worker_data.task_count += 1 * log.debug('%s: No tasks waiting, starting another worker (now %d total).', */ __pyx_t_6 = (!(__pyx_v_7pyfuse3_worker_data->active_readers != 0)); if (__pyx_t_6) { } else { __pyx_t_9 = __pyx_t_6; goto __pyx_L10_bool_binop_done; } __pyx_t_6 = (__pyx_v_7pyfuse3_worker_data->task_count < __pyx_cur_scope->__pyx_v_max_tasks); __pyx_t_9 = __pyx_t_6; __pyx_L10_bool_binop_done:; if (__pyx_t_9) { /* "src/pyfuse3/internal.pxi":255 * res = fuse_session_receive_buf(session, &buf) * if not worker_data.active_readers and worker_data.task_count < max_tasks: * worker_data.task_count += 1 # <<<<<<<<<<<<<< * log.debug('%s: No tasks waiting, starting another worker (now %d total).', * name, worker_data.task_count) */ __pyx_v_7pyfuse3_worker_data->task_count = (__pyx_v_7pyfuse3_worker_data->task_count + 1); /* "src/pyfuse3/internal.pxi":256 * if not worker_data.active_readers and worker_data.task_count < max_tasks: * worker_data.task_count += 1 * log.debug('%s: No tasks waiting, starting another worker (now %d total).', # <<<<<<<<<<<<<< * name, worker_data.task_count) * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, */ __pyx_t_7 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "src/pyfuse3/internal.pxi":257 * worker_data.task_count += 1 * log.debug('%s: No tasks waiting, starting another worker (now %d total).', * name, worker_data.task_count) # <<<<<<<<<<<<<< * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, * name=worker_data.get_name()) */ __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_7pyfuse3_worker_data->task_count); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); assert(__pyx_t_7); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_2, __pyx__function); __pyx_t_5 = 0; } #endif { PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_s_No_tasks_waiting_starting_ano, __pyx_cur_scope->__pyx_v_name, __pyx_t_3}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "src/pyfuse3/internal.pxi":258 * log.debug('%s: No tasks waiting, starting another worker (now %d total).', * name, worker_data.task_count) * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, # <<<<<<<<<<<<<< * name=worker_data.get_name()) * */ __pyx_t_2 = __pyx_cur_scope->__pyx_v_nursery; __Pyx_INCREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_session_loop); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_min_tasks); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_max_tasks); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* "src/pyfuse3/internal.pxi":259 * name, worker_data.task_count) * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, * name=worker_data.get_name()) # <<<<<<<<<<<<<< * * if res == -errno.EINTR: */ __pyx_t_10 = ((struct __pyx_vtabstruct_7pyfuse3__WorkerData *)__pyx_v_7pyfuse3_worker_data->__pyx_vtab)->get_name(__pyx_v_7pyfuse3_worker_data); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = 0; { PyObject *__pyx_callargs[5 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, __pyx_t_3, __pyx_cur_scope->__pyx_v_nursery, __pyx_t_7, __pyx_t_1}; __pyx_t_11 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_name, __pyx_t_10, __pyx_t_11, __pyx_callargs+5, 0) < (0)) __PYX_ERR(1, 258, __pyx_L1_error) __pyx_t_4 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_start_soon, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_11); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "src/pyfuse3/internal.pxi":254 * * res = fuse_session_receive_buf(session, &buf) * if not worker_data.active_readers and worker_data.task_count < max_tasks: # <<<<<<<<<<<<<< * worker_data.task_count += 1 * log.debug('%s: No tasks waiting, starting another worker (now %d total).', */ } /* "src/pyfuse3/internal.pxi":261 * name=worker_data.get_name()) * * if res == -errno.EINTR: # <<<<<<<<<<<<<< * continue * elif res < 0: */ __pyx_t_9 = (__pyx_cur_scope->__pyx_v_res == (-EINTR)); if (__pyx_t_9) { /* "src/pyfuse3/internal.pxi":262 * * if res == -errno.EINTR: * continue # <<<<<<<<<<<<<< * elif res < 0: * raise OSError(-res, 'fuse_session_receive_buf failed with ' */ goto __pyx_L4_continue; /* "src/pyfuse3/internal.pxi":261 * name=worker_data.get_name()) * * if res == -errno.EINTR: # <<<<<<<<<<<<<< * continue * elif res < 0: */ } /* "src/pyfuse3/internal.pxi":263 * if res == -errno.EINTR: * continue * elif res < 0: # <<<<<<<<<<<<<< * raise OSError(-res, 'fuse_session_receive_buf failed with ' * + strerror(-res)) */ __pyx_t_9 = (__pyx_cur_scope->__pyx_v_res < 0); if (unlikely(__pyx_t_9)) { /* "src/pyfuse3/internal.pxi":264 * continue * elif res < 0: * raise OSError(-res, 'fuse_session_receive_buf failed with ' # <<<<<<<<<<<<<< * + strerror(-res)) * elif res == 0: */ __pyx_t_11 = NULL; __pyx_t_10 = __Pyx_PyLong_From_int((-__pyx_cur_scope->__pyx_v_res)); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); /* "src/pyfuse3/internal.pxi":265 * elif res < 0: * raise OSError(-res, 'fuse_session_receive_buf failed with ' * + strerror(-res)) # <<<<<<<<<<<<<< * elif res == 0: * break */ __pyx_t_1 = __pyx_f_7pyfuse3_strerror((-__pyx_cur_scope->__pyx_v_res)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = PyNumber_Add(__pyx_mstate_global->__pyx_kp_u_fuse_session_receive_buf_failed, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = 1; { PyObject *__pyx_callargs[3] = {__pyx_t_11, __pyx_t_10, __pyx_t_7}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OSError)), __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 264, __pyx_L1_error) /* "src/pyfuse3/internal.pxi":263 * if res == -errno.EINTR: * continue * elif res < 0: # <<<<<<<<<<<<<< * raise OSError(-res, 'fuse_session_receive_buf failed with ' * + strerror(-res)) */ } /* "src/pyfuse3/internal.pxi":266 * raise OSError(-res, 'fuse_session_receive_buf failed with ' * + strerror(-res)) * elif res == 0: # <<<<<<<<<<<<<< * break * */ __pyx_t_9 = (__pyx_cur_scope->__pyx_v_res == 0); if (__pyx_t_9) { /* "src/pyfuse3/internal.pxi":267 * + strerror(-res)) * elif res == 0: * break # <<<<<<<<<<<<<< * * # When fuse_session_process_buf() calls back into one of our handler */ goto __pyx_L5_break; /* "src/pyfuse3/internal.pxi":266 * raise OSError(-res, 'fuse_session_receive_buf failed with ' * + strerror(-res)) * elif res == 0: # <<<<<<<<<<<<<< * break * */ } /* "src/pyfuse3/internal.pxi":273 * # py_retval. * #log.debug('%s: processing request...', name) * save_retval(None) # <<<<<<<<<<<<<< * fuse_session_process_buf(session, &buf) * if py_retval is not None: */ __pyx_f_7pyfuse3_save_retval(Py_None); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 273, __pyx_L1_error) /* "src/pyfuse3/internal.pxi":274 * #log.debug('%s: processing request...', name) * save_retval(None) * fuse_session_process_buf(session, &buf) # <<<<<<<<<<<<<< * if py_retval is not None: * await py_retval */ fuse_session_process_buf(__pyx_v_7pyfuse3_session, (&__pyx_cur_scope->__pyx_v_buf)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 274, __pyx_L1_error) /* "src/pyfuse3/internal.pxi":275 * save_retval(None) * fuse_session_process_buf(session, &buf) * if py_retval is not None: # <<<<<<<<<<<<<< * await py_retval * #log.debug('%s: processing complete.', name) */ __pyx_t_9 = (__pyx_v_7pyfuse3_py_retval != Py_None); if (__pyx_t_9) { /* "src/pyfuse3/internal.pxi":276 * fuse_session_process_buf(session, &buf) * if py_retval is not None: * await py_retval # <<<<<<<<<<<<<< * #log.debug('%s: processing complete.', name) * */ __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_v_7pyfuse3_py_retval, &__pyx_r); if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L14_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 276, __pyx_L1_error) } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __Pyx_DECREF(__pyx_r); __pyx_r = 0; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(1, 276, __pyx_L1_error) } /* "src/pyfuse3/internal.pxi":275 * save_retval(None) * fuse_session_process_buf(session, &buf) * if py_retval is not None: # <<<<<<<<<<<<<< * await py_retval * #log.debug('%s: processing complete.', name) */ } __pyx_L4_continue:; } __pyx_L5_break:; /* "src/pyfuse3/internal.pxi":279 * #log.debug('%s: processing complete.', name) * * log.debug('%s: terminated', name) # <<<<<<<<<<<<<< * stdlib.free(buf.mem) * worker_data.task_count -= 1 */ __pyx_t_7 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_11); assert(__pyx_t_7); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); __pyx_t_5 = 0; } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_s_terminated, __pyx_cur_scope->__pyx_v_name}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "src/pyfuse3/internal.pxi":280 * * log.debug('%s: terminated', name) * stdlib.free(buf.mem) # <<<<<<<<<<<<<< * worker_data.task_count -= 1 */ free(__pyx_cur_scope->__pyx_v_buf.mem); /* "src/pyfuse3/internal.pxi":281 * log.debug('%s: terminated', name) * stdlib.free(buf.mem) * worker_data.task_count -= 1 # <<<<<<<<<<<<<< */ __pyx_v_7pyfuse3_worker_data->task_count = (__pyx_v_7pyfuse3_worker_data->task_count - 1); CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "src/pyfuse3/internal.pxi":233 * return True * * @async_wrapper # <<<<<<<<<<<<<< * async def _session_loop(nursery, int min_tasks, int max_tasks): * cdef int res */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("_session_loop", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":137 * cdef readonly mode_t umask * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("RequestContext instances can't be pickled") * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_1__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_14RequestContext_1__getstate__ = {"__getstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_14RequestContext_1__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_14RequestContext_1__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__getstate__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__getstate__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_14RequestContext___getstate__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext___getstate__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getstate__", 0); /* "pyfuse3/__init__.pyx":138 * * def __getstate__(self): * raise PicklingError("RequestContext instances can't be pickled") # <<<<<<<<<<<<<< * * */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PicklingError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); __pyx_t_4 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_RequestContext_instances_can_t_b}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 138, __pyx_L1_error) /* "pyfuse3/__init__.pyx":137 * cdef readonly mode_t umask * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("RequestContext instances can't be pickled") * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.RequestContext.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":132 * ''' * * cdef readonly uid_t uid # <<<<<<<<<<<<<< * cdef readonly pid_t pid * cdef readonly gid_t gid */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3uid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3uid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_14RequestContext_3uid___get__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext_3uid___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_uid_t(__pyx_v_self->uid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.RequestContext.uid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":133 * * cdef readonly uid_t uid * cdef readonly pid_t pid # <<<<<<<<<<<<<< * cdef readonly gid_t gid * cdef readonly mode_t umask */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3pid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3pid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_14RequestContext_3pid___get__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext_3pid___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_pid_t(__pyx_v_self->pid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.RequestContext.pid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":134 * cdef readonly uid_t uid * cdef readonly pid_t pid * cdef readonly gid_t gid # <<<<<<<<<<<<<< * cdef readonly mode_t umask * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3gid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3gid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_14RequestContext_3gid___get__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext_3gid___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_gid_t(__pyx_v_self->gid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.RequestContext.gid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":135 * cdef readonly pid_t pid * cdef readonly gid_t gid * cdef readonly mode_t umask # <<<<<<<<<<<<<< * * def __getstate__(self): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_5umask_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_5umask_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_14RequestContext_5umask___get__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext_5umask___get__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_mode_t(__pyx_v_self->umask); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.RequestContext.umask.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_14RequestContext_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_14RequestContext_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_14RequestContext_3__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_14RequestContext_2__reduce_cython__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext_2__reduce_cython__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self) { PyObject *__pyx_v_state = 0; PyObject *__pyx_v__dict = 0; int __pyx_v_use_setstate; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":5 * cdef object _dict * cdef bint use_setstate * state = (self.gid, self.pid, self.uid, self.umask) # <<<<<<<<<<<<<< * _dict = getattr(self, '__dict__', None) * if _dict is not None and _dict: */ __pyx_t_1 = __Pyx_PyLong_From_gid_t(__pyx_v_self->gid); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyLong_From_pid_t(__pyx_v_self->pid); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyLong_From_uid_t(__pyx_v_self->uid); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyLong_From_mode_t(__pyx_v_self->umask); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 5, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_2); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 5, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_3); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3) != (0)) __PYX_ERR(2, 5, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_4); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4) != (0)) __PYX_ERR(2, 5, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_v_state = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":6 * cdef bint use_setstate * state = (self.gid, self.pid, self.uid, self.umask) * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< * if _dict is not None and _dict: * state += (_dict,) */ __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v__dict = __pyx_t_5; __pyx_t_5 = 0; /* "(tree fragment)":7 * state = (self.gid, self.pid, self.uid, self.umask) * _dict = getattr(self, '__dict__', None) * if _dict is not None and _dict: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ __pyx_t_7 = (__pyx_v__dict != Py_None); if (__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L4_bool_binop_done; } __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 7, __pyx_L1_error) __pyx_t_6 = __pyx_t_7; __pyx_L4_bool_binop_done:; if (__pyx_t_6) { /* "(tree fragment)":8 * _dict = getattr(self, '__dict__', None) * if _dict is not None and _dict: * state += (_dict,) # <<<<<<<<<<<<<< * use_setstate = True * else: */ __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v__dict); __Pyx_GIVEREF(__pyx_v__dict); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict) != (0)) __PYX_ERR(2, 8, __pyx_L1_error); __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; /* "(tree fragment)":9 * if _dict is not None and _dict: * state += (_dict,) * use_setstate = True # <<<<<<<<<<<<<< * else: * use_setstate = False */ __pyx_v_use_setstate = 1; /* "(tree fragment)":7 * state = (self.gid, self.pid, self.uid, self.umask) * _dict = getattr(self, '__dict__', None) * if _dict is not None and _dict: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ goto __pyx_L3; } /* "(tree fragment)":11 * use_setstate = True * else: * use_setstate = False # <<<<<<<<<<<<<< * if use_setstate: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, None), state */ /*else*/ { __pyx_v_use_setstate = 0; } __pyx_L3:; /* "(tree fragment)":12 * else: * use_setstate = False * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, None), state * else: */ if (__pyx_v_use_setstate) { /* "(tree fragment)":13 * use_setstate = False * if use_setstate: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, None), state # <<<<<<<<<<<<<< * else: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, state) */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_RequestContext); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 13, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_240542287); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_240542287); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_mstate_global->__pyx_int_240542287) != (0)) __PYX_ERR(2, 13, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None) != (0)) __PYX_ERR(2, 13, __pyx_L1_error); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4) != (0)) __PYX_ERR(2, 13, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5) != (0)) __PYX_ERR(2, 13, __pyx_L1_error); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 13, __pyx_L1_error); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "(tree fragment)":12 * else: * use_setstate = False * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, None), state * else: */ } /* "(tree fragment)":15 * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, None), state * else: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, state) # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_RequestContext__set_state(self, __pyx_state) */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_RequestContext); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(2, 15, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_240542287); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_240542287); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_mstate_global->__pyx_int_240542287) != (0)) __PYX_ERR(2, 15, __pyx_L1_error); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(2, 15, __pyx_L1_error); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3) != (0)) __PYX_ERR(2, 15, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5) != (0)) __PYX_ERR(2, 15, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.RequestContext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_state); __Pyx_XDECREF(__pyx_v__dict); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":16 * else: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_RequestContext__set_state(self, __pyx_state) */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_14RequestContext_5__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_14RequestContext_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_14RequestContext_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_14RequestContext_5__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 16, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 16, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 16, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 16, __pyx_L3_error) } __pyx_v___pyx_state = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 16, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.RequestContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_14RequestContext_4__setstate_cython__(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_14RequestContext_4__setstate_cython__(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":17 * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, state) * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_RequestContext__set_state(self, __pyx_state) # <<<<<<<<<<<<<< */ __pyx_t_1 = __pyx_v___pyx_state; __Pyx_INCREF(__pyx_t_1); if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(2, 17, __pyx_L1_error) if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'"); __PYX_ERR(2, 17, __pyx_L1_error) } __pyx_t_2 = __pyx_f_7pyfuse3___pyx_unpickle_RequestContext__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "(tree fragment)":16 * else: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_RequestContext__set_state(self, __pyx_state) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3.RequestContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":156 * cdef readonly object update_size * * def __cinit__(self): # <<<<<<<<<<<<<< * self.update_atime = False * self.update_mtime = False */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_13SetattrFields_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_13SetattrFields_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED Py_ssize_t __pyx_nargs; CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return -1; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;} __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields___cinit__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_13SetattrFields___cinit__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__", 0); /* "pyfuse3/__init__.pyx":157 * * def __cinit__(self): * self.update_atime = False # <<<<<<<<<<<<<< * self.update_mtime = False * self.update_ctime = False */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_atime); __Pyx_DECREF(__pyx_v_self->update_atime); __pyx_v_self->update_atime = Py_False; /* "pyfuse3/__init__.pyx":158 * def __cinit__(self): * self.update_atime = False * self.update_mtime = False # <<<<<<<<<<<<<< * self.update_ctime = False * self.update_mode = False */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_mtime); __Pyx_DECREF(__pyx_v_self->update_mtime); __pyx_v_self->update_mtime = Py_False; /* "pyfuse3/__init__.pyx":159 * self.update_atime = False * self.update_mtime = False * self.update_ctime = False # <<<<<<<<<<<<<< * self.update_mode = False * self.update_uid = False */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_ctime); __Pyx_DECREF(__pyx_v_self->update_ctime); __pyx_v_self->update_ctime = Py_False; /* "pyfuse3/__init__.pyx":160 * self.update_mtime = False * self.update_ctime = False * self.update_mode = False # <<<<<<<<<<<<<< * self.update_uid = False * self.update_gid = False */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_mode); __Pyx_DECREF(__pyx_v_self->update_mode); __pyx_v_self->update_mode = Py_False; /* "pyfuse3/__init__.pyx":161 * self.update_ctime = False * self.update_mode = False * self.update_uid = False # <<<<<<<<<<<<<< * self.update_gid = False * self.update_size = False */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_uid); __Pyx_DECREF(__pyx_v_self->update_uid); __pyx_v_self->update_uid = Py_False; /* "pyfuse3/__init__.pyx":162 * self.update_mode = False * self.update_uid = False * self.update_gid = False # <<<<<<<<<<<<<< * self.update_size = False * */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_gid); __Pyx_DECREF(__pyx_v_self->update_gid); __pyx_v_self->update_gid = Py_False; /* "pyfuse3/__init__.pyx":163 * self.update_uid = False * self.update_gid = False * self.update_size = False # <<<<<<<<<<<<<< * * def __getstate__(self): */ __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); __Pyx_GOTREF(__pyx_v_self->update_size); __Pyx_DECREF(__pyx_v_self->update_size); __pyx_v_self->update_size = Py_False; /* "pyfuse3/__init__.pyx":156 * cdef readonly object update_size * * def __cinit__(self): # <<<<<<<<<<<<<< * self.update_atime = False * self.update_mtime = False */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":165 * self.update_size = False * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("SetattrFields instances can't be pickled") * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_3__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_13SetattrFields_3__getstate__ = {"__getstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13SetattrFields_3__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_3__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__getstate__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__getstate__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_2__getstate__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_2__getstate__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getstate__", 0); /* "pyfuse3/__init__.pyx":166 * * def __getstate__(self): * raise PicklingError("SetattrFields instances can't be pickled") # <<<<<<<<<<<<<< * * */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PicklingError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); __pyx_t_4 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_SetattrFields_instances_can_t_be}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 166, __pyx_L1_error) /* "pyfuse3/__init__.pyx":165 * self.update_size = False * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("SetattrFields instances can't be pickled") * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.SetattrFields.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":148 * ''' * * cdef readonly object update_atime # <<<<<<<<<<<<<< * cdef readonly object update_mtime * cdef readonly object update_ctime */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_12update_atime_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_12update_atime_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_12update_atime___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_12update_atime___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_atime); __pyx_r = __pyx_v_self->update_atime; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":149 * * cdef readonly object update_atime * cdef readonly object update_mtime # <<<<<<<<<<<<<< * cdef readonly object update_ctime * cdef readonly object update_mode */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_12update_mtime_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_12update_mtime_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_12update_mtime___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_12update_mtime___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_mtime); __pyx_r = __pyx_v_self->update_mtime; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":150 * cdef readonly object update_atime * cdef readonly object update_mtime * cdef readonly object update_ctime # <<<<<<<<<<<<<< * cdef readonly object update_mode * cdef readonly object update_uid */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_12update_ctime_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_12update_ctime_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_12update_ctime___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_12update_ctime___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_ctime); __pyx_r = __pyx_v_self->update_ctime; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":151 * cdef readonly object update_mtime * cdef readonly object update_ctime * cdef readonly object update_mode # <<<<<<<<<<<<<< * cdef readonly object update_uid * cdef readonly object update_gid */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_11update_mode_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_11update_mode_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_11update_mode___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_11update_mode___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_mode); __pyx_r = __pyx_v_self->update_mode; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":152 * cdef readonly object update_ctime * cdef readonly object update_mode * cdef readonly object update_uid # <<<<<<<<<<<<<< * cdef readonly object update_gid * cdef readonly object update_size */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_10update_uid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_10update_uid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_10update_uid___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_10update_uid___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_uid); __pyx_r = __pyx_v_self->update_uid; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":153 * cdef readonly object update_mode * cdef readonly object update_uid * cdef readonly object update_gid # <<<<<<<<<<<<<< * cdef readonly object update_size * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_10update_gid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_10update_gid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_10update_gid___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_10update_gid___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_gid); __pyx_r = __pyx_v_self->update_gid; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":154 * cdef readonly object update_uid * cdef readonly object update_gid * cdef readonly object update_size # <<<<<<<<<<<<<< * * def __cinit__(self): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_11update_size_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_11update_size_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_11update_size___get__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_11update_size___get__(struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->update_size); __pyx_r = __pyx_v_self->update_size; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_5__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_13SetattrFields_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13SetattrFields_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_5__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_4__reduce_cython__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.SetattrFields.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_7__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_13SetattrFields_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13SetattrFields_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_13SetattrFields_7__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 3, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 3, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 3, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) } __pyx_v___pyx_state = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 3, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.SetattrFields.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_13SetattrFields_6__setstate_cython__(((struct __pyx_obj_7pyfuse3_SetattrFields *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_13SetattrFields_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_SetattrFields *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.SetattrFields.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":183 * cdef struct_stat *attr * * def __cinit__(self): # <<<<<<<<<<<<<< * string.memset(&self.fuse_param, 0, sizeof(fuse_entry_param)) * self.attr = &self.fuse_param.attr */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED Py_ssize_t __pyx_nargs; CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return -1; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;} __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes___cinit__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes___cinit__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { int __pyx_r; /* "pyfuse3/__init__.pyx":184 * * def __cinit__(self): * string.memset(&self.fuse_param, 0, sizeof(fuse_entry_param)) # <<<<<<<<<<<<<< * self.attr = &self.fuse_param.attr * self.fuse_param.generation = 0 */ (void)(memset((&__pyx_v_self->fuse_param), 0, (sizeof(struct fuse_entry_param)))); /* "pyfuse3/__init__.pyx":185 * def __cinit__(self): * string.memset(&self.fuse_param, 0, sizeof(fuse_entry_param)) * self.attr = &self.fuse_param.attr # <<<<<<<<<<<<<< * self.fuse_param.generation = 0 * self.fuse_param.entry_timeout = 300 */ __pyx_v_self->attr = (&__pyx_v_self->fuse_param.attr); /* "pyfuse3/__init__.pyx":186 * string.memset(&self.fuse_param, 0, sizeof(fuse_entry_param)) * self.attr = &self.fuse_param.attr * self.fuse_param.generation = 0 # <<<<<<<<<<<<<< * self.fuse_param.entry_timeout = 300 * self.fuse_param.attr_timeout = 300 */ __pyx_v_self->fuse_param.generation = 0; /* "pyfuse3/__init__.pyx":187 * self.attr = &self.fuse_param.attr * self.fuse_param.generation = 0 * self.fuse_param.entry_timeout = 300 # <<<<<<<<<<<<<< * self.fuse_param.attr_timeout = 300 * */ __pyx_v_self->fuse_param.entry_timeout = 300.0; /* "pyfuse3/__init__.pyx":188 * self.fuse_param.generation = 0 * self.fuse_param.entry_timeout = 300 * self.fuse_param.attr_timeout = 300 # <<<<<<<<<<<<<< * * self.attr.st_mode = S_IFREG */ __pyx_v_self->fuse_param.attr_timeout = 300.0; /* "pyfuse3/__init__.pyx":190 * self.fuse_param.attr_timeout = 300 * * self.attr.st_mode = S_IFREG # <<<<<<<<<<<<<< * self.attr.st_blksize = 4096 * self.attr.st_nlink = 1 */ __pyx_v_self->attr->st_mode = S_IFREG; /* "pyfuse3/__init__.pyx":191 * * self.attr.st_mode = S_IFREG * self.attr.st_blksize = 4096 # <<<<<<<<<<<<<< * self.attr.st_nlink = 1 * */ __pyx_v_self->attr->st_blksize = 0x1000; /* "pyfuse3/__init__.pyx":192 * self.attr.st_mode = S_IFREG * self.attr.st_blksize = 4096 * self.attr.st_nlink = 1 # <<<<<<<<<<<<<< * * @property */ __pyx_v_self->attr->st_nlink = 1; /* "pyfuse3/__init__.pyx":183 * cdef struct_stat *attr * * def __cinit__(self): # <<<<<<<<<<<<<< * string.memset(&self.fuse_param, 0, sizeof(fuse_entry_param)) * self.attr = &self.fuse_param.attr */ /* function exit code */ __pyx_r = 0; return __pyx_r; } /* "pyfuse3/__init__.pyx":194 * self.attr.st_nlink = 1 * * @property # <<<<<<<<<<<<<< * def st_ino(self): * return self.fuse_param.ino */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_6st_ino_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_6st_ino_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6st_ino___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6st_ino___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":196 * @property * def st_ino(self): * return self.fuse_param.ino # <<<<<<<<<<<<<< * @st_ino.setter * def st_ino(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_fuse_ino_t(__pyx_v_self->fuse_param.ino); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":194 * self.attr.st_nlink = 1 * * @property # <<<<<<<<<<<<<< * def st_ino(self): * return self.fuse_param.ino */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_ino.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":197 * def st_ino(self): * return self.fuse_param.ino * @st_ino.setter # <<<<<<<<<<<<<< * def st_ino(self, val): * self.fuse_param.ino = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_6st_ino_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_6st_ino_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6st_ino_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_6st_ino_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; fuse_ino_t __pyx_t_1; ino_t __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":199 * @st_ino.setter * def st_ino(self, val): * self.fuse_param.ino = val # <<<<<<<<<<<<<< * self.attr.st_ino = val * */ __pyx_t_1 = __Pyx_PyLong_As_fuse_ino_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fuse_ino_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_v_self->fuse_param.ino = __pyx_t_1; /* "pyfuse3/__init__.pyx":200 * def st_ino(self, val): * self.fuse_param.ino = val * self.attr.st_ino = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_2 = __Pyx_PyLong_As_ino_t(__pyx_v_val); if (unlikely((__pyx_t_2 == ((ino_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 200, __pyx_L1_error) __pyx_v_self->attr->st_ino = __pyx_t_2; /* "pyfuse3/__init__.pyx":197 * def st_ino(self): * return self.fuse_param.ino * @st_ino.setter # <<<<<<<<<<<<<< * def st_ino(self, val): * self.fuse_param.ino = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_ino.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":202 * self.attr.st_ino = val * * @property # <<<<<<<<<<<<<< * def generation(self): * '''The inode generation number''' */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_10generation_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_10generation_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_10generation___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_10generation___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":205 * def generation(self): * '''The inode generation number''' * return self.fuse_param.generation # <<<<<<<<<<<<<< * @generation.setter * def generation(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_uint64_t(__pyx_v_self->fuse_param.generation); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":202 * self.attr.st_ino = val * * @property # <<<<<<<<<<<<<< * def generation(self): * '''The inode generation number''' */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.generation.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":206 * '''The inode generation number''' * return self.fuse_param.generation * @generation.setter # <<<<<<<<<<<<<< * def generation(self, val): * self.fuse_param.generation = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_10generation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_10generation_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_10generation_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_10generation_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; uint64_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":208 * @generation.setter * def generation(self, val): * self.fuse_param.generation = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_uint64_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((uint64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 208, __pyx_L1_error) __pyx_v_self->fuse_param.generation = __pyx_t_1; /* "pyfuse3/__init__.pyx":206 * '''The inode generation number''' * return self.fuse_param.generation * @generation.setter # <<<<<<<<<<<<<< * def generation(self, val): * self.fuse_param.generation = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.generation.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":210 * self.fuse_param.generation = val * * @property # <<<<<<<<<<<<<< * def attr_timeout(self): * '''Validity timeout for the attributes of the directory entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_12attr_timeout_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_12attr_timeout_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_12attr_timeout___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_12attr_timeout___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":216 * Floating point numbers may be used. Units are seconds. * ''' * return self.fuse_param.attr_timeout # <<<<<<<<<<<<<< * @attr_timeout.setter * def attr_timeout(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->fuse_param.attr_timeout); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":210 * self.fuse_param.generation = val * * @property # <<<<<<<<<<<<<< * def attr_timeout(self): * '''Validity timeout for the attributes of the directory entry */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.attr_timeout.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":217 * ''' * return self.fuse_param.attr_timeout * @attr_timeout.setter # <<<<<<<<<<<<<< * def attr_timeout(self, val): * self.fuse_param.attr_timeout = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_12attr_timeout_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_12attr_timeout_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_12attr_timeout_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_12attr_timeout_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; double __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":219 * @attr_timeout.setter * def attr_timeout(self, val): * self.fuse_param.attr_timeout = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyFloat_AsDouble(__pyx_v_val); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 219, __pyx_L1_error) __pyx_v_self->fuse_param.attr_timeout = __pyx_t_1; /* "pyfuse3/__init__.pyx":217 * ''' * return self.fuse_param.attr_timeout * @attr_timeout.setter # <<<<<<<<<<<<<< * def attr_timeout(self, val): * self.fuse_param.attr_timeout = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.attr_timeout.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":221 * self.fuse_param.attr_timeout = val * * @property # <<<<<<<<<<<<<< * def entry_timeout(self): * '''Validity timeout for the name/existence of the directory entry */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_13entry_timeout_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_13entry_timeout_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_13entry_timeout___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_13entry_timeout___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":227 * Floating point numbers may be used. Units are seconds. * ''' * return self.fuse_param.entry_timeout # <<<<<<<<<<<<<< * @entry_timeout.setter * def entry_timeout(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->fuse_param.entry_timeout); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":221 * self.fuse_param.attr_timeout = val * * @property # <<<<<<<<<<<<<< * def entry_timeout(self): * '''Validity timeout for the name/existence of the directory entry */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.entry_timeout.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":228 * ''' * return self.fuse_param.entry_timeout * @entry_timeout.setter # <<<<<<<<<<<<<< * def entry_timeout(self, val): * self.fuse_param.entry_timeout = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_13entry_timeout_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_13entry_timeout_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_13entry_timeout_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_13entry_timeout_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; double __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":230 * @entry_timeout.setter * def entry_timeout(self, val): * self.fuse_param.entry_timeout = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyFloat_AsDouble(__pyx_v_val); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 230, __pyx_L1_error) __pyx_v_self->fuse_param.entry_timeout = __pyx_t_1; /* "pyfuse3/__init__.pyx":228 * ''' * return self.fuse_param.entry_timeout * @entry_timeout.setter # <<<<<<<<<<<<<< * def entry_timeout(self, val): * self.fuse_param.entry_timeout = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.entry_timeout.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":232 * self.fuse_param.entry_timeout = val * * @property # <<<<<<<<<<<<<< * def st_mode(self): * return self.attr.st_mode */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7st_mode_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7st_mode_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_7st_mode___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_7st_mode___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":234 * @property * def st_mode(self): * return self.attr.st_mode # <<<<<<<<<<<<<< * @st_mode.setter * def st_mode(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_mode_t(__pyx_v_self->attr->st_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":232 * self.fuse_param.entry_timeout = val * * @property # <<<<<<<<<<<<<< * def st_mode(self): * return self.attr.st_mode */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_mode.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":235 * def st_mode(self): * return self.attr.st_mode * @st_mode.setter # <<<<<<<<<<<<<< * def st_mode(self, val): * self.attr.st_mode = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_7st_mode_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_7st_mode_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_7st_mode_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_7st_mode_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; mode_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":237 * @st_mode.setter * def st_mode(self, val): * self.attr.st_mode = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_mode_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((mode_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 237, __pyx_L1_error) __pyx_v_self->attr->st_mode = __pyx_t_1; /* "pyfuse3/__init__.pyx":235 * def st_mode(self): * return self.attr.st_mode * @st_mode.setter # <<<<<<<<<<<<<< * def st_mode(self, val): * self.attr.st_mode = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_mode.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":239 * self.attr.st_mode = val * * @property # <<<<<<<<<<<<<< * def st_nlink(self): * return self.attr.st_nlink */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_8st_nlink_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_8st_nlink_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_8st_nlink___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_8st_nlink___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":241 * @property * def st_nlink(self): * return self.attr.st_nlink # <<<<<<<<<<<<<< * @st_nlink.setter * def st_nlink(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_nlink_t(__pyx_v_self->attr->st_nlink); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":239 * self.attr.st_mode = val * * @property # <<<<<<<<<<<<<< * def st_nlink(self): * return self.attr.st_nlink */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_nlink.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":242 * def st_nlink(self): * return self.attr.st_nlink * @st_nlink.setter # <<<<<<<<<<<<<< * def st_nlink(self, val): * self.attr.st_nlink = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_8st_nlink_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_8st_nlink_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_8st_nlink_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_8st_nlink_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; nlink_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":244 * @st_nlink.setter * def st_nlink(self, val): * self.attr.st_nlink = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_nlink_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((nlink_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 244, __pyx_L1_error) __pyx_v_self->attr->st_nlink = __pyx_t_1; /* "pyfuse3/__init__.pyx":242 * def st_nlink(self): * return self.attr.st_nlink * @st_nlink.setter # <<<<<<<<<<<<<< * def st_nlink(self, val): * self.attr.st_nlink = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_nlink.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":246 * self.attr.st_nlink = val * * @property # <<<<<<<<<<<<<< * def st_uid(self): * return self.attr.st_uid */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_6st_uid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_6st_uid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6st_uid___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6st_uid___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":248 * @property * def st_uid(self): * return self.attr.st_uid # <<<<<<<<<<<<<< * @st_uid.setter * def st_uid(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_uid_t(__pyx_v_self->attr->st_uid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":246 * self.attr.st_nlink = val * * @property # <<<<<<<<<<<<<< * def st_uid(self): * return self.attr.st_uid */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_uid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":249 * def st_uid(self): * return self.attr.st_uid * @st_uid.setter # <<<<<<<<<<<<<< * def st_uid(self, val): * self.attr.st_uid = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_6st_uid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_6st_uid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6st_uid_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_6st_uid_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; uid_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":251 * @st_uid.setter * def st_uid(self, val): * self.attr.st_uid = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_uid_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((uid_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 251, __pyx_L1_error) __pyx_v_self->attr->st_uid = __pyx_t_1; /* "pyfuse3/__init__.pyx":249 * def st_uid(self): * return self.attr.st_uid * @st_uid.setter # <<<<<<<<<<<<<< * def st_uid(self, val): * self.attr.st_uid = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_uid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":253 * self.attr.st_uid = val * * @property # <<<<<<<<<<<<<< * def st_gid(self): * return self.attr.st_gid */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_6st_gid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_6st_gid_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6st_gid___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6st_gid___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":255 * @property * def st_gid(self): * return self.attr.st_gid # <<<<<<<<<<<<<< * @st_gid.setter * def st_gid(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_gid_t(__pyx_v_self->attr->st_gid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":253 * self.attr.st_uid = val * * @property # <<<<<<<<<<<<<< * def st_gid(self): * return self.attr.st_gid */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_gid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":256 * def st_gid(self): * return self.attr.st_gid * @st_gid.setter # <<<<<<<<<<<<<< * def st_gid(self, val): * self.attr.st_gid = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_6st_gid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_6st_gid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6st_gid_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_6st_gid_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; gid_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":258 * @st_gid.setter * def st_gid(self, val): * self.attr.st_gid = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_gid_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((gid_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 258, __pyx_L1_error) __pyx_v_self->attr->st_gid = __pyx_t_1; /* "pyfuse3/__init__.pyx":256 * def st_gid(self): * return self.attr.st_gid * @st_gid.setter # <<<<<<<<<<<<<< * def st_gid(self, val): * self.attr.st_gid = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_gid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":260 * self.attr.st_gid = val * * @property # <<<<<<<<<<<<<< * def st_rdev(self): * return self.attr.st_rdev */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7st_rdev_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7st_rdev_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_7st_rdev___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_7st_rdev___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":262 * @property * def st_rdev(self): * return self.attr.st_rdev # <<<<<<<<<<<<<< * @st_rdev.setter * def st_rdev(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_dev_t(__pyx_v_self->attr->st_rdev); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":260 * self.attr.st_gid = val * * @property # <<<<<<<<<<<<<< * def st_rdev(self): * return self.attr.st_rdev */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_rdev.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":263 * def st_rdev(self): * return self.attr.st_rdev * @st_rdev.setter # <<<<<<<<<<<<<< * def st_rdev(self, val): * self.attr.st_rdev = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_7st_rdev_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_7st_rdev_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_7st_rdev_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_7st_rdev_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; dev_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":265 * @st_rdev.setter * def st_rdev(self, val): * self.attr.st_rdev = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_dev_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((dev_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 265, __pyx_L1_error) __pyx_v_self->attr->st_rdev = __pyx_t_1; /* "pyfuse3/__init__.pyx":263 * def st_rdev(self): * return self.attr.st_rdev * @st_rdev.setter # <<<<<<<<<<<<<< * def st_rdev(self, val): * self.attr.st_rdev = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_rdev.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":267 * self.attr.st_rdev = val * * @property # <<<<<<<<<<<<<< * def st_size(self): * return self.attr.st_size */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7st_size_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7st_size_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_7st_size___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_7st_size___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":269 * @property * def st_size(self): * return self.attr.st_size # <<<<<<<<<<<<<< * @st_size.setter * def st_size(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_off_t(__pyx_v_self->attr->st_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":267 * self.attr.st_rdev = val * * @property # <<<<<<<<<<<<<< * def st_size(self): * return self.attr.st_size */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":270 * def st_size(self): * return self.attr.st_size * @st_size.setter # <<<<<<<<<<<<<< * def st_size(self, val): * self.attr.st_size = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_7st_size_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_7st_size_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_7st_size_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_7st_size_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; off_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":272 * @st_size.setter * def st_size(self, val): * self.attr.st_size = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_off_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((off_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 272, __pyx_L1_error) __pyx_v_self->attr->st_size = __pyx_t_1; /* "pyfuse3/__init__.pyx":270 * def st_size(self): * return self.attr.st_size * @st_size.setter # <<<<<<<<<<<<<< * def st_size(self, val): * self.attr.st_size = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_size.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":274 * self.attr.st_size = val * * @property # <<<<<<<<<<<<<< * def st_blocks(self): * return self.attr.st_blocks */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_9st_blocks_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_9st_blocks_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_9st_blocks___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_9st_blocks___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":276 * @property * def st_blocks(self): * return self.attr.st_blocks # <<<<<<<<<<<<<< * @st_blocks.setter * def st_blocks(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_blkcnt_t(__pyx_v_self->attr->st_blocks); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":274 * self.attr.st_size = val * * @property # <<<<<<<<<<<<<< * def st_blocks(self): * return self.attr.st_blocks */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_blocks.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":277 * def st_blocks(self): * return self.attr.st_blocks * @st_blocks.setter # <<<<<<<<<<<<<< * def st_blocks(self, val): * self.attr.st_blocks = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_9st_blocks_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_9st_blocks_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_9st_blocks_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_9st_blocks_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; blkcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":279 * @st_blocks.setter * def st_blocks(self, val): * self.attr.st_blocks = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_blkcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((blkcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 279, __pyx_L1_error) __pyx_v_self->attr->st_blocks = __pyx_t_1; /* "pyfuse3/__init__.pyx":277 * def st_blocks(self): * return self.attr.st_blocks * @st_blocks.setter # <<<<<<<<<<<<<< * def st_blocks(self, val): * self.attr.st_blocks = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_blocks.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":281 * self.attr.st_blocks = val * * @property # <<<<<<<<<<<<<< * def st_blksize(self): * return self.attr.st_blksize */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_10st_blksize_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_10st_blksize_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_10st_blksize___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_10st_blksize___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":283 * @property * def st_blksize(self): * return self.attr.st_blksize # <<<<<<<<<<<<<< * @st_blksize.setter * def st_blksize(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_blksize_t(__pyx_v_self->attr->st_blksize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":281 * self.attr.st_blocks = val * * @property # <<<<<<<<<<<<<< * def st_blksize(self): * return self.attr.st_blksize */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_blksize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":284 * def st_blksize(self): * return self.attr.st_blksize * @st_blksize.setter # <<<<<<<<<<<<<< * def st_blksize(self, val): * self.attr.st_blksize = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_10st_blksize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_10st_blksize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_10st_blksize_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_10st_blksize_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; blksize_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":286 * @st_blksize.setter * def st_blksize(self, val): * self.attr.st_blksize = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_blksize_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((blksize_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 286, __pyx_L1_error) __pyx_v_self->attr->st_blksize = __pyx_t_1; /* "pyfuse3/__init__.pyx":284 * def st_blksize(self): * return self.attr.st_blksize * @st_blksize.setter # <<<<<<<<<<<<<< * def st_blksize(self, val): * self.attr.st_blksize = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_blksize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":288 * self.attr.st_blksize = val * * @property # <<<<<<<<<<<<<< * def st_atime_ns(self): * '''Time of last access in (integer) nanoseconds''' */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_11st_atime_ns_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_11st_atime_ns_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_11st_atime_ns___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_11st_atime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":291 * def st_atime_ns(self): * '''Time of last access in (integer) nanoseconds''' * return (int(self.attr.st_atime) * _NANOS_PER_SEC + GET_ATIME_NS(self.attr)) # <<<<<<<<<<<<<< * @st_atime_ns.setter * def st_atime_ns(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = NULL; __pyx_t_3 = __Pyx_PyLong_From_time_t(__pyx_v_self->attr->st_atime); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_NANOS_PER_SEC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyLong_From_long(GET_ATIME_NS(__pyx_v_self->attr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":288 * self.attr.st_blksize = val * * @property # <<<<<<<<<<<<<< * def st_atime_ns(self): * '''Time of last access in (integer) nanoseconds''' */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_atime_ns.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":292 * '''Time of last access in (integer) nanoseconds''' * return (int(self.attr.st_atime) * _NANOS_PER_SEC + GET_ATIME_NS(self.attr)) * @st_atime_ns.setter # <<<<<<<<<<<<<< * def st_atime_ns(self, val): * self.attr.st_atime = val // _NANOS_PER_SEC */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_11st_atime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_11st_atime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_11st_atime_ns_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_11st_atime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; time_t __pyx_t_3; long __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3/__init__.pyx":294 * @st_atime_ns.setter * def st_atime_ns(self, val): * self.attr.st_atime = val // _NANOS_PER_SEC # <<<<<<<<<<<<<< * SET_ATIME_NS(self.attr, val % _NANOS_PER_SEC) * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_NANOS_PER_SEC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_FloorDivide(__pyx_v_val, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyLong_As_time_t(__pyx_t_2); if (unlikely((__pyx_t_3 == ((time_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->attr->st_atime = __pyx_t_3; /* "pyfuse3/__init__.pyx":295 * def st_atime_ns(self, val): * self.attr.st_atime = val // _NANOS_PER_SEC * SET_ATIME_NS(self.attr, val % _NANOS_PER_SEC) # <<<<<<<<<<<<<< * * @property */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_NANOS_PER_SEC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Remainder(__pyx_v_val, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyLong_As_long(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; SET_ATIME_NS(__pyx_v_self->attr, __pyx_t_4); /* "pyfuse3/__init__.pyx":292 * '''Time of last access in (integer) nanoseconds''' * return (int(self.attr.st_atime) * _NANOS_PER_SEC + GET_ATIME_NS(self.attr)) * @st_atime_ns.setter # <<<<<<<<<<<<<< * def st_atime_ns(self, val): * self.attr.st_atime = val // _NANOS_PER_SEC */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_atime_ns.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":297 * SET_ATIME_NS(self.attr, val % _NANOS_PER_SEC) * * @property # <<<<<<<<<<<<<< * def st_mtime_ns(self): * '''Time of last modification in (integer) nanoseconds''' */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_11st_mtime_ns_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_11st_mtime_ns_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_11st_mtime_ns___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_11st_mtime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":300 * def st_mtime_ns(self): * '''Time of last modification in (integer) nanoseconds''' * return (int(self.attr.st_mtime) * _NANOS_PER_SEC + GET_MTIME_NS(self.attr)) # <<<<<<<<<<<<<< * @st_mtime_ns.setter * def st_mtime_ns(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = NULL; __pyx_t_3 = __Pyx_PyLong_From_time_t(__pyx_v_self->attr->st_mtime); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_NANOS_PER_SEC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyLong_From_long(GET_MTIME_NS(__pyx_v_self->attr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":297 * SET_ATIME_NS(self.attr, val % _NANOS_PER_SEC) * * @property # <<<<<<<<<<<<<< * def st_mtime_ns(self): * '''Time of last modification in (integer) nanoseconds''' */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_mtime_ns.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":301 * '''Time of last modification in (integer) nanoseconds''' * return (int(self.attr.st_mtime) * _NANOS_PER_SEC + GET_MTIME_NS(self.attr)) * @st_mtime_ns.setter # <<<<<<<<<<<<<< * def st_mtime_ns(self, val): * self.attr.st_mtime = val // _NANOS_PER_SEC */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_11st_mtime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_11st_mtime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_11st_mtime_ns_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_11st_mtime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; time_t __pyx_t_3; long __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3/__init__.pyx":303 * @st_mtime_ns.setter * def st_mtime_ns(self, val): * self.attr.st_mtime = val // _NANOS_PER_SEC # <<<<<<<<<<<<<< * SET_MTIME_NS(self.attr, val % _NANOS_PER_SEC) * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_NANOS_PER_SEC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_FloorDivide(__pyx_v_val, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyLong_As_time_t(__pyx_t_2); if (unlikely((__pyx_t_3 == ((time_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->attr->st_mtime = __pyx_t_3; /* "pyfuse3/__init__.pyx":304 * def st_mtime_ns(self, val): * self.attr.st_mtime = val // _NANOS_PER_SEC * SET_MTIME_NS(self.attr, val % _NANOS_PER_SEC) # <<<<<<<<<<<<<< * * @property */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_NANOS_PER_SEC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Remainder(__pyx_v_val, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyLong_As_long(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 304, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; SET_MTIME_NS(__pyx_v_self->attr, __pyx_t_4); /* "pyfuse3/__init__.pyx":301 * '''Time of last modification in (integer) nanoseconds''' * return (int(self.attr.st_mtime) * _NANOS_PER_SEC + GET_MTIME_NS(self.attr)) * @st_mtime_ns.setter # <<<<<<<<<<<<<< * def st_mtime_ns(self, val): * self.attr.st_mtime = val // _NANOS_PER_SEC */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_mtime_ns.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":306 * SET_MTIME_NS(self.attr, val % _NANOS_PER_SEC) * * @property # <<<<<<<<<<<<<< * def st_ctime_ns(self): * '''Time of last inode modification in (integer) nanoseconds''' */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_11st_ctime_ns_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_11st_ctime_ns_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_11st_ctime_ns___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_11st_ctime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":309 * def st_ctime_ns(self): * '''Time of last inode modification in (integer) nanoseconds''' * return (int(self.attr.st_ctime) * _NANOS_PER_SEC + GET_CTIME_NS(self.attr)) # <<<<<<<<<<<<<< * @st_ctime_ns.setter * def st_ctime_ns(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = NULL; __pyx_t_3 = __Pyx_PyLong_From_time_t(__pyx_v_self->attr->st_ctime); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_NANOS_PER_SEC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyLong_From_long(GET_CTIME_NS(__pyx_v_self->attr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":306 * SET_MTIME_NS(self.attr, val % _NANOS_PER_SEC) * * @property # <<<<<<<<<<<<<< * def st_ctime_ns(self): * '''Time of last inode modification in (integer) nanoseconds''' */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_ctime_ns.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":310 * '''Time of last inode modification in (integer) nanoseconds''' * return (int(self.attr.st_ctime) * _NANOS_PER_SEC + GET_CTIME_NS(self.attr)) * @st_ctime_ns.setter # <<<<<<<<<<<<<< * def st_ctime_ns(self, val): * self.attr.st_ctime = val // _NANOS_PER_SEC */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_11st_ctime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_11st_ctime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_11st_ctime_ns_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_11st_ctime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; time_t __pyx_t_3; long __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3/__init__.pyx":312 * @st_ctime_ns.setter * def st_ctime_ns(self, val): * self.attr.st_ctime = val // _NANOS_PER_SEC # <<<<<<<<<<<<<< * SET_CTIME_NS(self.attr, val % _NANOS_PER_SEC) * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_NANOS_PER_SEC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_FloorDivide(__pyx_v_val, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyLong_As_time_t(__pyx_t_2); if (unlikely((__pyx_t_3 == ((time_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->attr->st_ctime = __pyx_t_3; /* "pyfuse3/__init__.pyx":313 * def st_ctime_ns(self, val): * self.attr.st_ctime = val // _NANOS_PER_SEC * SET_CTIME_NS(self.attr, val % _NANOS_PER_SEC) # <<<<<<<<<<<<<< * * @property */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_NANOS_PER_SEC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Remainder(__pyx_v_val, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyLong_As_long(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; SET_CTIME_NS(__pyx_v_self->attr, __pyx_t_4); /* "pyfuse3/__init__.pyx":310 * '''Time of last inode modification in (integer) nanoseconds''' * return (int(self.attr.st_ctime) * _NANOS_PER_SEC + GET_CTIME_NS(self.attr)) * @st_ctime_ns.setter # <<<<<<<<<<<<<< * def st_ctime_ns(self, val): * self.attr.st_ctime = val // _NANOS_PER_SEC */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_ctime_ns.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":315 * SET_CTIME_NS(self.attr, val % _NANOS_PER_SEC) * * @property # <<<<<<<<<<<<<< * def st_birthtime_ns(self): * '''Time of inode creation in (integer) nanoseconds. */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_15st_birthtime_ns_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_15st_birthtime_ns_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_15st_birthtime_ns___get__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_15st_birthtime_ns___get__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":324 * # Use C macro to prevent compiler error on Linux * # (where st_birthtime does not exist) * return int(GET_BIRTHTIME(self.attr) * _NANOS_PER_SEC # <<<<<<<<<<<<<< * + GET_BIRTHTIME_NS(self.attr)) * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_long(GET_BIRTHTIME(__pyx_v_self->attr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_NANOS_PER_SEC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":325 * # (where st_birthtime does not exist) * return int(GET_BIRTHTIME(self.attr) * _NANOS_PER_SEC * + GET_BIRTHTIME_NS(self.attr)) # <<<<<<<<<<<<<< * * @st_birthtime_ns.setter */ __pyx_t_2 = __Pyx_PyLong_From_long(GET_BIRTHTIME_NS(__pyx_v_self->attr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":324 * # Use C macro to prevent compiler error on Linux * # (where st_birthtime does not exist) * return int(GET_BIRTHTIME(self.attr) * _NANOS_PER_SEC # <<<<<<<<<<<<<< * + GET_BIRTHTIME_NS(self.attr)) * */ __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":315 * SET_CTIME_NS(self.attr, val % _NANOS_PER_SEC) * * @property # <<<<<<<<<<<<<< * def st_birthtime_ns(self): * '''Time of inode creation in (integer) nanoseconds. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_birthtime_ns.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":327 * + GET_BIRTHTIME_NS(self.attr)) * * @st_birthtime_ns.setter # <<<<<<<<<<<<<< * def st_birthtime_ns(self, val): * # Use C macro to prevent compiler error on Linux */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_15EntryAttributes_15st_birthtime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_15EntryAttributes_15st_birthtime_ns_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_15st_birthtime_ns_2__set__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_15EntryAttributes_15st_birthtime_ns_2__set__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; long __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); /* "pyfuse3/__init__.pyx":331 * # Use C macro to prevent compiler error on Linux * # (where st_birthtime does not exist) * SET_BIRTHTIME(self.attr, val // _NANOS_PER_SEC) # <<<<<<<<<<<<<< * SET_BIRTHTIME_NS(self.attr, val % _NANOS_PER_SEC) * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_NANOS_PER_SEC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyNumber_FloorDivide(__pyx_v_val, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyLong_As_long(__pyx_t_2); if (unlikely((__pyx_t_3 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; SET_BIRTHTIME(__pyx_v_self->attr, __pyx_t_3); /* "pyfuse3/__init__.pyx":332 * # (where st_birthtime does not exist) * SET_BIRTHTIME(self.attr, val // _NANOS_PER_SEC) * SET_BIRTHTIME_NS(self.attr, val % _NANOS_PER_SEC) # <<<<<<<<<<<<<< * * # Pickling and copy support */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_NANOS_PER_SEC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Remainder(__pyx_v_val, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyLong_As_long(__pyx_t_1); if (unlikely((__pyx_t_3 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; SET_BIRTHTIME_NS(__pyx_v_self->attr, __pyx_t_3); /* "pyfuse3/__init__.pyx":327 * + GET_BIRTHTIME_NS(self.attr)) * * @st_birthtime_ns.setter # <<<<<<<<<<<<<< * def st_birthtime_ns(self, val): * # Use C macro to prevent compiler error on Linux */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3.EntryAttributes.st_birthtime_ns.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":335 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_3__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_15EntryAttributes_3__getstate__ = {"__getstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_3__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_3__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__getstate__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__getstate__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_2__getstate__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_2__getstate__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_v_state = NULL; PyObject *__pyx_v_k = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getstate__", 0); /* "pyfuse3/__init__.pyx":336 * # Pickling and copy support * def __getstate__(self): * state = dict() # <<<<<<<<<<<<<< * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', * 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', */ __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_state = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3/__init__.pyx":337 * def __getstate__(self): * state = dict() * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', # <<<<<<<<<<<<<< * 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', * 'st_size', 'st_blksize', 'st_blocks', 'st_atime_ns', */ __pyx_t_1 = __pyx_mstate_global->__pyx_tuple[1]; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= 16) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2)); #else __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); #endif ++__pyx_t_2; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_k, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":341 * 'st_size', 'st_blksize', 'st_blocks', 'st_atime_ns', * 'st_ctime_ns', 'st_mtime_ns', 'st_birthtime_ns'): * state[k] = getattr(self, k) # <<<<<<<<<<<<<< * return state * */ __pyx_t_3 = __Pyx_GetAttr(((PyObject *)__pyx_v_self), __pyx_v_k); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely((PyDict_SetItem(__pyx_v_state, __pyx_v_k, __pyx_t_3) < 0))) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":337 * def __getstate__(self): * state = dict() * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', # <<<<<<<<<<<<<< * 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', * 'st_size', 'st_blksize', 'st_blocks', 'st_atime_ns', */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3/__init__.pyx":342 * 'st_ctime_ns', 'st_mtime_ns', 'st_birthtime_ns'): * state[k] = getattr(self, k) * return state # <<<<<<<<<<<<<< * * def __setstate__(self, state): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_state); __pyx_r = __pyx_v_state; goto __pyx_L0; /* "pyfuse3/__init__.pyx":335 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.EntryAttributes.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_state); __Pyx_XDECREF(__pyx_v_k); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":344 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_5__setstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_15EntryAttributes_5__setstate__ = {"__setstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_5__setstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_5__setstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 344, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 344, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate__", 0) < (0)) __PYX_ERR(0, 344, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate__", 1, 1, 1, i); __PYX_ERR(0, 344, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 344, __pyx_L3_error) } __pyx_v_state = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 344, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.EntryAttributes.__setstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_4__setstate__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), __pyx_v_state); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_4__setstate__(struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, PyObject *__pyx_v_state) { PyObject *__pyx_v_k = NULL; PyObject *__pyx_v_v = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate__", 0); /* "pyfuse3/__init__.pyx":345 * * def __setstate__(self, state): * for (k,v) in state.items(): # <<<<<<<<<<<<<< * setattr(self, k, v) * */ __pyx_t_2 = 0; if (unlikely(__pyx_v_state == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(0, 345, __pyx_L1_error) } __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_state, 0, __pyx_mstate_global->__pyx_n_u_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_5; __pyx_t_5 = 0; while (1) { __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4); if (unlikely(__pyx_t_7 == 0)) break; if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_6); __pyx_t_6 = 0; /* "pyfuse3/__init__.pyx":346 * def __setstate__(self, state): * for (k,v) in state.items(): * setattr(self, k, v) # <<<<<<<<<<<<<< * * */ __pyx_t_8 = PyObject_SetAttr(((PyObject *)__pyx_v_self), __pyx_v_k, __pyx_v_v); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 346, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3/__init__.pyx":344 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.EntryAttributes.__setstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_k); __Pyx_XDECREF(__pyx_v_v); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_15EntryAttributes_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_7__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_6__reduce_cython__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_9__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_15EntryAttributes_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_15EntryAttributes_9__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 3, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 3, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 3, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) } __pyx_v___pyx_state = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 3, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.EntryAttributes.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_15EntryAttributes_8__setstate_cython__(((struct __pyx_obj_7pyfuse3_EntryAttributes *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_15EntryAttributes_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.EntryAttributes.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":362 * cdef public bint nonseekable * * def __cinit__(self, fh=0, direct_io=0, keep_cache=1, nonseekable=0): # <<<<<<<<<<<<<< * self.fh = fh * self.direct_io = direct_io */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_8FileInfo_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_8FileInfo_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_fh = 0; PyObject *__pyx_v_direct_io = 0; PyObject *__pyx_v_keep_cache = 0; PyObject *__pyx_v_nonseekable = 0; CYTHON_UNUSED Py_ssize_t __pyx_nargs; CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_fh,&__pyx_mstate_global->__pyx_n_u_direct_io,&__pyx_mstate_global->__pyx_n_u_keep_cache,&__pyx_mstate_global->__pyx_n_u_nonseekable,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 362, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < (0)) __PYX_ERR(0, 362, __pyx_L3_error) if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_0)); if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_0)); if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_1)); if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_0)); } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_0)); if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_0)); if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_1)); if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_0)); } __pyx_v_fh = values[0]; __pyx_v_direct_io = values[1]; __pyx_v_keep_cache = values[2]; __pyx_v_nonseekable = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 4, __pyx_nargs); __PYX_ERR(0, 362, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.FileInfo.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_8FileInfo___cinit__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self), __pyx_v_fh, __pyx_v_direct_io, __pyx_v_keep_cache, __pyx_v_nonseekable); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_8FileInfo___cinit__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_fh, PyObject *__pyx_v_direct_io, PyObject *__pyx_v_keep_cache, PyObject *__pyx_v_nonseekable) { int __pyx_r; uint64_t __pyx_t_1; int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":363 * * def __cinit__(self, fh=0, direct_io=0, keep_cache=1, nonseekable=0): * self.fh = fh # <<<<<<<<<<<<<< * self.direct_io = direct_io * self.keep_cache = keep_cache */ __pyx_t_1 = __Pyx_PyLong_As_uint64_t(__pyx_v_fh); if (unlikely((__pyx_t_1 == ((uint64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 363, __pyx_L1_error) __pyx_v_self->fh = __pyx_t_1; /* "pyfuse3/__init__.pyx":364 * def __cinit__(self, fh=0, direct_io=0, keep_cache=1, nonseekable=0): * self.fh = fh * self.direct_io = direct_io # <<<<<<<<<<<<<< * self.keep_cache = keep_cache * self.nonseekable = nonseekable */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_direct_io); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 364, __pyx_L1_error) __pyx_v_self->direct_io = __pyx_t_2; /* "pyfuse3/__init__.pyx":365 * self.fh = fh * self.direct_io = direct_io * self.keep_cache = keep_cache # <<<<<<<<<<<<<< * self.nonseekable = nonseekable * */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_keep_cache); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 365, __pyx_L1_error) __pyx_v_self->keep_cache = __pyx_t_2; /* "pyfuse3/__init__.pyx":366 * self.direct_io = direct_io * self.keep_cache = keep_cache * self.nonseekable = nonseekable # <<<<<<<<<<<<<< * * cdef _copy_to_fuse(self, fuse_file_info *out): */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_nonseekable); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 366, __pyx_L1_error) __pyx_v_self->nonseekable = __pyx_t_2; /* "pyfuse3/__init__.pyx":362 * cdef public bint nonseekable * * def __cinit__(self, fh=0, direct_io=0, keep_cache=1, nonseekable=0): # <<<<<<<<<<<<<< * self.fh = fh * self.direct_io = direct_io */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":368 * self.nonseekable = nonseekable * * cdef _copy_to_fuse(self, fuse_file_info *out): # <<<<<<<<<<<<<< * out.fh = self.fh * */ static PyObject *__pyx_f_7pyfuse3_8FileInfo__copy_to_fuse(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, struct fuse_file_info *__pyx_v_out) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations uint64_t __pyx_t_1; __Pyx_RefNannySetupContext("_copy_to_fuse", 0); /* "pyfuse3/__init__.pyx":369 * * cdef _copy_to_fuse(self, fuse_file_info *out): * out.fh = self.fh # <<<<<<<<<<<<<< * * # Due to how Cython generates its C code, GCC will complain about */ __pyx_t_1 = __pyx_v_self->fh; __pyx_v_out->fh = __pyx_t_1; /* "pyfuse3/__init__.pyx":374 * # assigning to the bitfields in the fuse_file_info struct. * # This is the workaround. * if self.direct_io: # <<<<<<<<<<<<<< * out.direct_io = 1 * else: */ if (__pyx_v_self->direct_io) { /* "pyfuse3/__init__.pyx":375 * # This is the workaround. * if self.direct_io: * out.direct_io = 1 # <<<<<<<<<<<<<< * else: * out.direct_io = 0 */ __pyx_v_out->direct_io = 1; /* "pyfuse3/__init__.pyx":374 * # assigning to the bitfields in the fuse_file_info struct. * # This is the workaround. * if self.direct_io: # <<<<<<<<<<<<<< * out.direct_io = 1 * else: */ goto __pyx_L3; } /* "pyfuse3/__init__.pyx":377 * out.direct_io = 1 * else: * out.direct_io = 0 # <<<<<<<<<<<<<< * * if self.keep_cache: */ /*else*/ { __pyx_v_out->direct_io = 0; } __pyx_L3:; /* "pyfuse3/__init__.pyx":379 * out.direct_io = 0 * * if self.keep_cache: # <<<<<<<<<<<<<< * out.keep_cache = 1 * else: */ if (__pyx_v_self->keep_cache) { /* "pyfuse3/__init__.pyx":380 * * if self.keep_cache: * out.keep_cache = 1 # <<<<<<<<<<<<<< * else: * out.keep_cache = 0 */ __pyx_v_out->keep_cache = 1; /* "pyfuse3/__init__.pyx":379 * out.direct_io = 0 * * if self.keep_cache: # <<<<<<<<<<<<<< * out.keep_cache = 1 * else: */ goto __pyx_L4; } /* "pyfuse3/__init__.pyx":382 * out.keep_cache = 1 * else: * out.keep_cache = 0 # <<<<<<<<<<<<<< * * if self.nonseekable: */ /*else*/ { __pyx_v_out->keep_cache = 0; } __pyx_L4:; /* "pyfuse3/__init__.pyx":384 * out.keep_cache = 0 * * if self.nonseekable: # <<<<<<<<<<<<<< * out.nonseekable = 1 * else: */ if (__pyx_v_self->nonseekable) { /* "pyfuse3/__init__.pyx":385 * * if self.nonseekable: * out.nonseekable = 1 # <<<<<<<<<<<<<< * else: * out.nonseekable = 0 */ __pyx_v_out->nonseekable = 1; /* "pyfuse3/__init__.pyx":384 * out.keep_cache = 0 * * if self.nonseekable: # <<<<<<<<<<<<<< * out.nonseekable = 1 * else: */ goto __pyx_L5; } /* "pyfuse3/__init__.pyx":387 * out.nonseekable = 1 * else: * out.nonseekable = 0 # <<<<<<<<<<<<<< * * */ /*else*/ { __pyx_v_out->nonseekable = 0; } __pyx_L5:; /* "pyfuse3/__init__.pyx":368 * self.nonseekable = nonseekable * * cdef _copy_to_fuse(self, fuse_file_info *out): # <<<<<<<<<<<<<< * out.fh = self.fh * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":357 * ''' * * cdef public uint64_t fh # <<<<<<<<<<<<<< * cdef public bint direct_io * cdef public bint keep_cache */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_2fh_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_2fh_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_2fh___get__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_8FileInfo_2fh___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_uint64_t(__pyx_v_self->fh); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FileInfo.fh.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static int __pyx_pw_7pyfuse3_8FileInfo_2fh_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_7pyfuse3_8FileInfo_2fh_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_2fh_2__set__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_8FileInfo_2fh_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; uint64_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __pyx_t_1 = __Pyx_PyLong_As_uint64_t(__pyx_v_value); if (unlikely((__pyx_t_1 == ((uint64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 357, __pyx_L1_error) __pyx_v_self->fh = __pyx_t_1; /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.fh.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":358 * * cdef public uint64_t fh * cdef public bint direct_io # <<<<<<<<<<<<<< * cdef public bint keep_cache * cdef public bint nonseekable */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_9direct_io_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_9direct_io_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_9direct_io___get__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_8FileInfo_9direct_io___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->direct_io); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FileInfo.direct_io.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static int __pyx_pw_7pyfuse3_8FileInfo_9direct_io_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_7pyfuse3_8FileInfo_9direct_io_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_9direct_io_2__set__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_8FileInfo_9direct_io_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 358, __pyx_L1_error) __pyx_v_self->direct_io = __pyx_t_1; /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.direct_io.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":359 * cdef public uint64_t fh * cdef public bint direct_io * cdef public bint keep_cache # <<<<<<<<<<<<<< * cdef public bint nonseekable * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_10keep_cache_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_10keep_cache_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_10keep_cache___get__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_8FileInfo_10keep_cache___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->keep_cache); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FileInfo.keep_cache.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static int __pyx_pw_7pyfuse3_8FileInfo_10keep_cache_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_7pyfuse3_8FileInfo_10keep_cache_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_10keep_cache_2__set__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_8FileInfo_10keep_cache_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 359, __pyx_L1_error) __pyx_v_self->keep_cache = __pyx_t_1; /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.keep_cache.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":360 * cdef public bint direct_io * cdef public bint keep_cache * cdef public bint nonseekable # <<<<<<<<<<<<<< * * def __cinit__(self, fh=0, direct_io=0, keep_cache=1, nonseekable=0): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_11nonseekable_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_11nonseekable_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_11nonseekable___get__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_8FileInfo_11nonseekable___get__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->nonseekable); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FileInfo.nonseekable.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static int __pyx_pw_7pyfuse3_8FileInfo_11nonseekable_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_7pyfuse3_8FileInfo_11nonseekable_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_11nonseekable_2__set__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_8FileInfo_11nonseekable_2__set__(struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 360, __pyx_L1_error) __pyx_v_self->nonseekable = __pyx_t_1; /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.nonseekable.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_3__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_8FileInfo_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_8FileInfo_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_8FileInfo_3__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_2__reduce_cython__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_8FileInfo_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_8FileInfo_5__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_8FileInfo_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_8FileInfo_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_8FileInfo_5__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 3, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 3, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 3, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) } __pyx_v___pyx_state = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 3, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.FileInfo.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_8FileInfo_4__setstate_cython__(((struct __pyx_obj_7pyfuse3_FileInfo *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_8FileInfo_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FileInfo *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FileInfo.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":400 * cdef statvfs stat * * def __cinit__(self): # <<<<<<<<<<<<<< * string.memset(&self.stat, 0, sizeof(statvfs)) * */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED Py_ssize_t __pyx_nargs; CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return -1; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;} __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData___cinit__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData___cinit__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { int __pyx_r; /* "pyfuse3/__init__.pyx":401 * * def __cinit__(self): * string.memset(&self.stat, 0, sizeof(statvfs)) # <<<<<<<<<<<<<< * * @property */ (void)(memset((&__pyx_v_self->stat), 0, (sizeof(struct statvfs)))); /* "pyfuse3/__init__.pyx":400 * cdef statvfs stat * * def __cinit__(self): # <<<<<<<<<<<<<< * string.memset(&self.stat, 0, sizeof(statvfs)) * */ /* function exit code */ __pyx_r = 0; return __pyx_r; } /* "pyfuse3/__init__.pyx":403 * string.memset(&self.stat, 0, sizeof(statvfs)) * * @property # <<<<<<<<<<<<<< * def f_bsize(self): * return self.stat.f_bsize */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_bsize_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_bsize_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_bsize___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_bsize___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":405 * @property * def f_bsize(self): * return self.stat.f_bsize # <<<<<<<<<<<<<< * @f_bsize.setter * def f_bsize(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_unsigned_long(__pyx_v_self->stat.f_bsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":403 * string.memset(&self.stat, 0, sizeof(statvfs)) * * @property # <<<<<<<<<<<<<< * def f_bsize(self): * return self.stat.f_bsize */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_bsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":406 * def f_bsize(self): * return self.stat.f_bsize * @f_bsize.setter # <<<<<<<<<<<<<< * def f_bsize(self, val): * self.stat.f_bsize = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_bsize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_bsize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_bsize_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_7f_bsize_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; unsigned long __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":408 * @f_bsize.setter * def f_bsize(self, val): * self.stat.f_bsize = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_unsigned_long(__pyx_v_val); if (unlikely((__pyx_t_1 == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(0, 408, __pyx_L1_error) __pyx_v_self->stat.f_bsize = __pyx_t_1; /* "pyfuse3/__init__.pyx":406 * def f_bsize(self): * return self.stat.f_bsize * @f_bsize.setter # <<<<<<<<<<<<<< * def f_bsize(self, val): * self.stat.f_bsize = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_bsize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":410 * self.stat.f_bsize = val * * @property # <<<<<<<<<<<<<< * def f_frsize(self): * return self.stat.f_frsize */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_frsize_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_frsize_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_frsize___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_frsize___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":412 * @property * def f_frsize(self): * return self.stat.f_frsize # <<<<<<<<<<<<<< * @f_frsize.setter * def f_frsize(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_unsigned_long(__pyx_v_self->stat.f_frsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":410 * self.stat.f_bsize = val * * @property # <<<<<<<<<<<<<< * def f_frsize(self): * return self.stat.f_frsize */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_frsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":413 * def f_frsize(self): * return self.stat.f_frsize * @f_frsize.setter # <<<<<<<<<<<<<< * def f_frsize(self, val): * self.stat.f_frsize = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_frsize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_frsize_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_frsize_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_8f_frsize_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; unsigned long __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":415 * @f_frsize.setter * def f_frsize(self, val): * self.stat.f_frsize = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_unsigned_long(__pyx_v_val); if (unlikely((__pyx_t_1 == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(0, 415, __pyx_L1_error) __pyx_v_self->stat.f_frsize = __pyx_t_1; /* "pyfuse3/__init__.pyx":413 * def f_frsize(self): * return self.stat.f_frsize * @f_frsize.setter # <<<<<<<<<<<<<< * def f_frsize(self, val): * self.stat.f_frsize = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_frsize.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":417 * self.stat.f_frsize = val * * @property # <<<<<<<<<<<<<< * def f_blocks(self): * return self.stat.f_blocks */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_blocks_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_blocks_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_blocks___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_blocks___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":419 * @property * def f_blocks(self): * return self.stat.f_blocks # <<<<<<<<<<<<<< * @f_blocks.setter * def f_blocks(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_fsblkcnt_t(__pyx_v_self->stat.f_blocks); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":417 * self.stat.f_frsize = val * * @property # <<<<<<<<<<<<<< * def f_blocks(self): * return self.stat.f_blocks */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_blocks.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":420 * def f_blocks(self): * return self.stat.f_blocks * @f_blocks.setter # <<<<<<<<<<<<<< * def f_blocks(self, val): * self.stat.f_blocks = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_blocks_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_blocks_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_blocks_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_8f_blocks_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; fsblkcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":422 * @f_blocks.setter * def f_blocks(self, val): * self.stat.f_blocks = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_fsblkcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fsblkcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 422, __pyx_L1_error) __pyx_v_self->stat.f_blocks = __pyx_t_1; /* "pyfuse3/__init__.pyx":420 * def f_blocks(self): * return self.stat.f_blocks * @f_blocks.setter # <<<<<<<<<<<<<< * def f_blocks(self, val): * self.stat.f_blocks = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_blocks.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":424 * self.stat.f_blocks = val * * @property # <<<<<<<<<<<<<< * def f_bfree(self): * return self.stat.f_bfree */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_bfree_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_bfree_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_bfree___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_bfree___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":426 * @property * def f_bfree(self): * return self.stat.f_bfree # <<<<<<<<<<<<<< * @f_bfree.setter * def f_bfree(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_fsblkcnt_t(__pyx_v_self->stat.f_bfree); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":424 * self.stat.f_blocks = val * * @property # <<<<<<<<<<<<<< * def f_bfree(self): * return self.stat.f_bfree */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_bfree.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":427 * def f_bfree(self): * return self.stat.f_bfree * @f_bfree.setter # <<<<<<<<<<<<<< * def f_bfree(self, val): * self.stat.f_bfree = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_bfree_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_bfree_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_bfree_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_7f_bfree_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; fsblkcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":429 * @f_bfree.setter * def f_bfree(self, val): * self.stat.f_bfree = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_fsblkcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fsblkcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 429, __pyx_L1_error) __pyx_v_self->stat.f_bfree = __pyx_t_1; /* "pyfuse3/__init__.pyx":427 * def f_bfree(self): * return self.stat.f_bfree * @f_bfree.setter # <<<<<<<<<<<<<< * def f_bfree(self, val): * self.stat.f_bfree = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_bfree.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":431 * self.stat.f_bfree = val * * @property # <<<<<<<<<<<<<< * def f_bavail(self): * return self.stat.f_bavail */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_bavail_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_bavail_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_bavail___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_bavail___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":433 * @property * def f_bavail(self): * return self.stat.f_bavail # <<<<<<<<<<<<<< * @f_bavail.setter * def f_bavail(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_fsblkcnt_t(__pyx_v_self->stat.f_bavail); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":431 * self.stat.f_bfree = val * * @property # <<<<<<<<<<<<<< * def f_bavail(self): * return self.stat.f_bavail */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_bavail.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":434 * def f_bavail(self): * return self.stat.f_bavail * @f_bavail.setter # <<<<<<<<<<<<<< * def f_bavail(self, val): * self.stat.f_bavail = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_bavail_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_bavail_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_bavail_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_8f_bavail_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; fsblkcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":436 * @f_bavail.setter * def f_bavail(self, val): * self.stat.f_bavail = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_fsblkcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fsblkcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 436, __pyx_L1_error) __pyx_v_self->stat.f_bavail = __pyx_t_1; /* "pyfuse3/__init__.pyx":434 * def f_bavail(self): * return self.stat.f_bavail * @f_bavail.setter # <<<<<<<<<<<<<< * def f_bavail(self, val): * self.stat.f_bavail = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_bavail.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":438 * self.stat.f_bavail = val * * @property # <<<<<<<<<<<<<< * def f_files(self): * return self.stat.f_files */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_files_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_files_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_files___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_files___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":440 * @property * def f_files(self): * return self.stat.f_files # <<<<<<<<<<<<<< * @f_files.setter * def f_files(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_fsfilcnt_t(__pyx_v_self->stat.f_files); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":438 * self.stat.f_bavail = val * * @property # <<<<<<<<<<<<<< * def f_files(self): * return self.stat.f_files */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_files.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":441 * def f_files(self): * return self.stat.f_files * @f_files.setter # <<<<<<<<<<<<<< * def f_files(self, val): * self.stat.f_files = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_files_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_files_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_files_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_7f_files_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; fsfilcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":443 * @f_files.setter * def f_files(self, val): * self.stat.f_files = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_fsfilcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fsfilcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 443, __pyx_L1_error) __pyx_v_self->stat.f_files = __pyx_t_1; /* "pyfuse3/__init__.pyx":441 * def f_files(self): * return self.stat.f_files * @f_files.setter # <<<<<<<<<<<<<< * def f_files(self, val): * self.stat.f_files = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_files.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":445 * self.stat.f_files = val * * @property # <<<<<<<<<<<<<< * def f_ffree(self): * return self.stat.f_ffree */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_ffree_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7f_ffree_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_ffree___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_7f_ffree___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":447 * @property * def f_ffree(self): * return self.stat.f_ffree # <<<<<<<<<<<<<< * @f_ffree.setter * def f_ffree(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_fsfilcnt_t(__pyx_v_self->stat.f_ffree); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":445 * self.stat.f_files = val * * @property # <<<<<<<<<<<<<< * def f_ffree(self): * return self.stat.f_ffree */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_ffree.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":448 * def f_ffree(self): * return self.stat.f_ffree * @f_ffree.setter # <<<<<<<<<<<<<< * def f_ffree(self, val): * self.stat.f_ffree = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_ffree_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_7f_ffree_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_7f_ffree_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_7f_ffree_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; fsfilcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":450 * @f_ffree.setter * def f_ffree(self, val): * self.stat.f_ffree = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_fsfilcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fsfilcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 450, __pyx_L1_error) __pyx_v_self->stat.f_ffree = __pyx_t_1; /* "pyfuse3/__init__.pyx":448 * def f_ffree(self): * return self.stat.f_ffree * @f_ffree.setter # <<<<<<<<<<<<<< * def f_ffree(self, val): * self.stat.f_ffree = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_ffree.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":452 * self.stat.f_ffree = val * * @property # <<<<<<<<<<<<<< * def f_favail(self): * return self.stat.f_favail */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_favail_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_8f_favail_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_favail___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8f_favail___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":454 * @property * def f_favail(self): * return self.stat.f_favail # <<<<<<<<<<<<<< * @f_favail.setter * def f_favail(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_fsfilcnt_t(__pyx_v_self->stat.f_favail); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":452 * self.stat.f_ffree = val * * @property # <<<<<<<<<<<<<< * def f_favail(self): * return self.stat.f_favail */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_favail.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":455 * def f_favail(self): * return self.stat.f_favail * @f_favail.setter # <<<<<<<<<<<<<< * def f_favail(self, val): * self.stat.f_favail = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_favail_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_8f_favail_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8f_favail_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_8f_favail_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; fsfilcnt_t __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":457 * @f_favail.setter * def f_favail(self, val): * self.stat.f_favail = val # <<<<<<<<<<<<<< * * @property */ __pyx_t_1 = __Pyx_PyLong_As_fsfilcnt_t(__pyx_v_val); if (unlikely((__pyx_t_1 == ((fsfilcnt_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 457, __pyx_L1_error) __pyx_v_self->stat.f_favail = __pyx_t_1; /* "pyfuse3/__init__.pyx":455 * def f_favail(self): * return self.stat.f_favail * @f_favail.setter # <<<<<<<<<<<<<< * def f_favail(self, val): * self.stat.f_favail = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_favail.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":459 * self.stat.f_favail = val * * @property # <<<<<<<<<<<<<< * def f_namemax(self): * return self.stat.f_namemax */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_9f_namemax_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_9f_namemax_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_9f_namemax___get__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_9f_namemax___get__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":461 * @property * def f_namemax(self): * return self.stat.f_namemax # <<<<<<<<<<<<<< * @f_namemax.setter * def f_namemax(self, val): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_unsigned_long(__pyx_v_self->stat.f_namemax); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":459 * self.stat.f_favail = val * * @property # <<<<<<<<<<<<<< * def f_namemax(self): * return self.stat.f_namemax */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.StatvfsData.f_namemax.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":462 * def f_namemax(self): * return self.stat.f_namemax * @f_namemax.setter # <<<<<<<<<<<<<< * def f_namemax(self, val): * self.stat.f_namemax = val */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_11StatvfsData_9f_namemax_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val); /*proto*/ static int __pyx_pw_7pyfuse3_11StatvfsData_9f_namemax_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_val) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_9f_namemax_2__set__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), ((PyObject *)__pyx_v_val)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_11StatvfsData_9f_namemax_2__set__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_val) { int __pyx_r; unsigned long __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":464 * @f_namemax.setter * def f_namemax(self, val): * self.stat.f_namemax = val # <<<<<<<<<<<<<< * * # Pickling and copy support */ __pyx_t_1 = __Pyx_PyLong_As_unsigned_long(__pyx_v_val); if (unlikely((__pyx_t_1 == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(0, 464, __pyx_L1_error) __pyx_v_self->stat.f_namemax = __pyx_t_1; /* "pyfuse3/__init__.pyx":462 * def f_namemax(self): * return self.stat.f_namemax * @f_namemax.setter # <<<<<<<<<<<<<< * def f_namemax(self, val): * self.stat.f_namemax = val */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.f_namemax.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":467 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_3__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_11StatvfsData_3__getstate__ = {"__getstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_3__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_3__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__getstate__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__getstate__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_2__getstate__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_2__getstate__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_v_state = NULL; PyObject *__pyx_v_k = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getstate__", 0); /* "pyfuse3/__init__.pyx":468 * # Pickling and copy support * def __getstate__(self): * state = dict() # <<<<<<<<<<<<<< * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', * 'f_bavail', 'f_files', 'f_ffree', 'f_favail', */ __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_state = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3/__init__.pyx":469 * def __getstate__(self): * state = dict() * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', # <<<<<<<<<<<<<< * 'f_bavail', 'f_files', 'f_ffree', 'f_favail', * 'f_namemax'): */ __pyx_t_1 = __pyx_mstate_global->__pyx_tuple[2]; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= 9) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2)); #else __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); #endif ++__pyx_t_2; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_k, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":472 * 'f_bavail', 'f_files', 'f_ffree', 'f_favail', * 'f_namemax'): * state[k] = getattr(self, k) # <<<<<<<<<<<<<< * return state * */ __pyx_t_3 = __Pyx_GetAttr(((PyObject *)__pyx_v_self), __pyx_v_k); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely((PyDict_SetItem(__pyx_v_state, __pyx_v_k, __pyx_t_3) < 0))) __PYX_ERR(0, 472, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":469 * def __getstate__(self): * state = dict() * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', # <<<<<<<<<<<<<< * 'f_bavail', 'f_files', 'f_ffree', 'f_favail', * 'f_namemax'): */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3/__init__.pyx":473 * 'f_namemax'): * state[k] = getattr(self, k) * return state # <<<<<<<<<<<<<< * * def __setstate__(self, state): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_state); __pyx_r = __pyx_v_state; goto __pyx_L0; /* "pyfuse3/__init__.pyx":467 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.StatvfsData.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_state); __Pyx_XDECREF(__pyx_v_k); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":475 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_5__setstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_11StatvfsData_5__setstate__ = {"__setstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_5__setstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_5__setstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 475, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 475, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate__", 0) < (0)) __PYX_ERR(0, 475, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate__", 1, 1, 1, i); __PYX_ERR(0, 475, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 475, __pyx_L3_error) } __pyx_v_state = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 475, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.StatvfsData.__setstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_4__setstate__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), __pyx_v_state); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_4__setstate__(struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, PyObject *__pyx_v_state) { PyObject *__pyx_v_k = NULL; PyObject *__pyx_v_v = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate__", 0); /* "pyfuse3/__init__.pyx":476 * * def __setstate__(self, state): * for (k,v) in state.items(): # <<<<<<<<<<<<<< * setattr(self, k, v) * */ __pyx_t_2 = 0; if (unlikely(__pyx_v_state == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(0, 476, __pyx_L1_error) } __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_state, 0, __pyx_mstate_global->__pyx_n_u_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_5; __pyx_t_5 = 0; while (1) { __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4); if (unlikely(__pyx_t_7 == 0)) break; if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_6); __pyx_t_6 = 0; /* "pyfuse3/__init__.pyx":477 * def __setstate__(self, state): * for (k,v) in state.items(): * setattr(self, k, v) # <<<<<<<<<<<<<< * * */ __pyx_t_8 = PyObject_SetAttr(((PyObject *)__pyx_v_self), __pyx_v_k, __pyx_v_v); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 477, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3/__init__.pyx":475 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.StatvfsData.__setstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_k); __Pyx_XDECREF(__pyx_v_v); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_11StatvfsData_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_7__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_6__reduce_cython__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_9__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_11StatvfsData_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_11StatvfsData_9__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 3, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 3, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 3, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) } __pyx_v___pyx_state = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 3, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.StatvfsData.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_11StatvfsData_8__setstate_cython__(((struct __pyx_obj_7pyfuse3_StatvfsData *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_11StatvfsData_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_StatvfsData *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.StatvfsData.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":495 * cdef readonly int errno_ * * @property # <<<<<<<<<<<<<< * def errno(self): * '''Error code to return to client process''' */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_5errno_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_5errno_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_9FUSEError_5errno___get__(((struct __pyx_obj_7pyfuse3_FUSEError *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_9FUSEError_5errno___get__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "pyfuse3/__init__.pyx":498 * def errno(self): * '''Error code to return to client process''' * return self.errno_ # <<<<<<<<<<<<<< * * def __cinit__(self, errno): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->errno_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":495 * cdef readonly int errno_ * * @property # <<<<<<<<<<<<<< * def errno(self): * '''Error code to return to client process''' */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FUSEError.errno.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":500 * return self.errno_ * * def __cinit__(self, errno): # <<<<<<<<<<<<<< * self.errno_ = errno * */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_9FUSEError_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_9FUSEError_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_errno = 0; CYTHON_UNUSED Py_ssize_t __pyx_nargs; CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_errno,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 500, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 500, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < (0)) __PYX_ERR(0, 500, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(0, 500, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 500, __pyx_L3_error) } __pyx_v_errno = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 500, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.FUSEError.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_9FUSEError___cinit__(((struct __pyx_obj_7pyfuse3_FUSEError *)__pyx_v_self), __pyx_v_errno); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_9FUSEError___cinit__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self, PyObject *__pyx_v_errno) { int __pyx_r; int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* "pyfuse3/__init__.pyx":501 * * def __cinit__(self, errno): * self.errno_ = errno # <<<<<<<<<<<<<< * * def __str__(self): */ __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_v_errno); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 501, __pyx_L1_error) __pyx_v_self->errno_ = __pyx_t_1; /* "pyfuse3/__init__.pyx":500 * return self.errno_ * * def __cinit__(self, errno): # <<<<<<<<<<<<<< * self.errno_ = errno * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FUSEError.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "pyfuse3/__init__.pyx":503 * self.errno_ = errno * * def __str__(self): # <<<<<<<<<<<<<< * return strerror(self.errno_) * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_3__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_3__str__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_9FUSEError_2__str__(((struct __pyx_obj_7pyfuse3_FUSEError *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_9FUSEError_2__str__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 0); /* "pyfuse3/__init__.pyx":504 * * def __str__(self): * return strerror(self.errno_) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_7pyfuse3_strerror(__pyx_v_self->errno_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyfuse3/__init__.pyx":503 * self.errno_ = errno * * def __str__(self): # <<<<<<<<<<<<<< * return strerror(self.errno_) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FUSEError.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":493 * # during C compilation (maybe something else declares errno as * # a macro?) * cdef readonly int errno_ # <<<<<<<<<<<<<< * * @property */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_6errno__1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_6errno__1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_9FUSEError_6errno____get__(((struct __pyx_obj_7pyfuse3_FUSEError *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_9FUSEError_6errno____get__(struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->errno_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.FUSEError.errno_.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_5__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_9FUSEError_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_9FUSEError_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_9FUSEError_5__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_9FUSEError_4__reduce_cython__(((struct __pyx_obj_7pyfuse3_FUSEError *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_9FUSEError_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FUSEError.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_9FUSEError_7__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_9FUSEError_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_9FUSEError_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_9FUSEError_7__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 3, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 3, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 3, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) } __pyx_v___pyx_state = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 3, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.FUSEError.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_9FUSEError_6__setstate_cython__(((struct __pyx_obj_7pyfuse3_FUSEError *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_9FUSEError_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_FUSEError *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.FUSEError.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":528 * cdef fuse_pollhandle *_ph * * def __cinit__(self): # <<<<<<<<<<<<<< * self._ph = NULL * */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_10PollHandle_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_10PollHandle_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED Py_ssize_t __pyx_nargs; CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return -1; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;} __pyx_r = __pyx_pf_7pyfuse3_10PollHandle___cinit__(((struct __pyx_obj_7pyfuse3_PollHandle *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_10PollHandle___cinit__(struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self) { int __pyx_r; /* "pyfuse3/__init__.pyx":529 * * def __cinit__(self): * self._ph = NULL # <<<<<<<<<<<<<< * * def __init__(self): */ __pyx_v_self->_ph = NULL; /* "pyfuse3/__init__.pyx":528 * cdef fuse_pollhandle *_ph * * def __cinit__(self): # <<<<<<<<<<<<<< * self._ph = NULL * */ /* function exit code */ __pyx_r = 0; return __pyx_r; } /* "pyfuse3/__init__.pyx":531 * self._ph = NULL * * def __init__(self): # <<<<<<<<<<<<<< * raise TypeError('PollHandle cannot be instantiated directly') * */ /* Python wrapper */ static int __pyx_pw_7pyfuse3_10PollHandle_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7pyfuse3_10PollHandle_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED Py_ssize_t __pyx_nargs; CYTHON_UNUSED PyObject *const *__pyx_kwvalues; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, __pyx_nargs); return -1; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return -1; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__init__", __pyx_kwds); return -1;} __pyx_r = __pyx_pf_7pyfuse3_10PollHandle_2__init__(((struct __pyx_obj_7pyfuse3_PollHandle *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_7pyfuse3_10PollHandle_2__init__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); /* "pyfuse3/__init__.pyx":532 * * def __init__(self): * raise TypeError('PollHandle cannot be instantiated directly') # <<<<<<<<<<<<<< * * @staticmethod */ __pyx_t_2 = NULL; __pyx_t_3 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_PollHandle_cannot_be_instantiate}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 532, __pyx_L1_error) /* "pyfuse3/__init__.pyx":531 * self._ph = NULL * * def __init__(self): # <<<<<<<<<<<<<< * raise TypeError('PollHandle cannot be instantiated directly') * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3.PollHandle.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":534 * raise TypeError('PollHandle cannot be instantiated directly') * * @staticmethod # <<<<<<<<<<<<<< * cdef PollHandle from_ptr(fuse_pollhandle *ph): * cdef PollHandle self */ static struct __pyx_obj_7pyfuse3_PollHandle *__pyx_f_7pyfuse3_10PollHandle_from_ptr(struct fuse_pollhandle *__pyx_v_ph) { struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self = 0; struct __pyx_obj_7pyfuse3_PollHandle *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("from_ptr", 0); /* "pyfuse3/__init__.pyx":538 * cdef PollHandle self * * if ph == NULL: # <<<<<<<<<<<<<< * raise ValueError('NULL fuse_pollhandle') * */ __pyx_t_1 = (__pyx_v_ph == NULL); if (unlikely(__pyx_t_1)) { /* "pyfuse3/__init__.pyx":539 * * if ph == NULL: * raise ValueError('NULL fuse_pollhandle') # <<<<<<<<<<<<<< * * self = PollHandle.__new__(PollHandle) */ __pyx_t_3 = NULL; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_NULL_fuse_pollhandle}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 539, __pyx_L1_error) /* "pyfuse3/__init__.pyx":538 * cdef PollHandle self * * if ph == NULL: # <<<<<<<<<<<<<< * raise ValueError('NULL fuse_pollhandle') * */ } /* "pyfuse3/__init__.pyx":541 * raise ValueError('NULL fuse_pollhandle') * * self = PollHandle.__new__(PollHandle) # <<<<<<<<<<<<<< * self._ph = ph * return self */ __pyx_t_2 = ((PyObject *)__pyx_tp_new_7pyfuse3_PollHandle(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_PollHandle), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 541, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_2); __pyx_v_self = ((struct __pyx_obj_7pyfuse3_PollHandle *)__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":542 * * self = PollHandle.__new__(PollHandle) * self._ph = ph # <<<<<<<<<<<<<< * return self * */ __pyx_v_self->_ph = __pyx_v_ph; /* "pyfuse3/__init__.pyx":543 * self = PollHandle.__new__(PollHandle) * self._ph = ph * return self # <<<<<<<<<<<<<< * * def __dealloc__(self): */ __Pyx_XDECREF((PyObject *)__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_self); __pyx_r = __pyx_v_self; goto __pyx_L0; /* "pyfuse3/__init__.pyx":534 * raise TypeError('PollHandle cannot be instantiated directly') * * @staticmethod # <<<<<<<<<<<<<< * cdef PollHandle from_ptr(fuse_pollhandle *ph): * cdef PollHandle self */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.PollHandle.from_ptr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_self); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":545 * return self * * def __dealloc__(self): # <<<<<<<<<<<<<< * if self._ph is not NULL: * fuse_pollhandle_destroy(self._ph) */ /* Python wrapper */ static void __pyx_pw_7pyfuse3_10PollHandle_5__dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_pw_7pyfuse3_10PollHandle_5__dealloc__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_pf_7pyfuse3_10PollHandle_4__dealloc__(((struct __pyx_obj_7pyfuse3_PollHandle *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_pf_7pyfuse3_10PollHandle_4__dealloc__(struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self) { int __pyx_t_1; /* "pyfuse3/__init__.pyx":546 * * def __dealloc__(self): * if self._ph is not NULL: # <<<<<<<<<<<<<< * fuse_pollhandle_destroy(self._ph) * self._ph = NULL */ __pyx_t_1 = (__pyx_v_self->_ph != NULL); if (__pyx_t_1) { /* "pyfuse3/__init__.pyx":547 * def __dealloc__(self): * if self._ph is not NULL: * fuse_pollhandle_destroy(self._ph) # <<<<<<<<<<<<<< * self._ph = NULL * */ fuse_pollhandle_destroy(__pyx_v_self->_ph); /* "pyfuse3/__init__.pyx":548 * if self._ph is not NULL: * fuse_pollhandle_destroy(self._ph) * self._ph = NULL # <<<<<<<<<<<<<< * * def __getstate__(self): */ __pyx_v_self->_ph = NULL; /* "pyfuse3/__init__.pyx":546 * * def __dealloc__(self): * if self._ph is not NULL: # <<<<<<<<<<<<<< * fuse_pollhandle_destroy(self._ph) * self._ph = NULL */ } /* "pyfuse3/__init__.pyx":545 * return self * * def __dealloc__(self): # <<<<<<<<<<<<<< * if self._ph is not NULL: * fuse_pollhandle_destroy(self._ph) */ /* function exit code */ } /* "pyfuse3/__init__.pyx":550 * self._ph = NULL * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("PollHandle instances can't be pickled") * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_10PollHandle_7__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_10PollHandle_7__getstate__ = {"__getstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10PollHandle_7__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_10PollHandle_7__getstate__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__getstate__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__getstate__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_10PollHandle_6__getstate__(((struct __pyx_obj_7pyfuse3_PollHandle *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_10PollHandle_6__getstate__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getstate__", 0); /* "pyfuse3/__init__.pyx":551 * * def __getstate__(self): * raise PicklingError("PollHandle instances can't be pickled") # <<<<<<<<<<<<<< * * def notify(self): */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PicklingError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); __pyx_t_4 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_PollHandle_instances_can_t_be_pi}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 551, __pyx_L1_error) /* "pyfuse3/__init__.pyx":550 * self._ph = NULL * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("PollHandle instances can't be pickled") * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.PollHandle.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":553 * raise PicklingError("PollHandle instances can't be pickled") * * def notify(self): # <<<<<<<<<<<<<< * ''' * Notify IO readiness for this poll handle. */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_10PollHandle_9notify(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_10PollHandle_8notify, "\n Notify IO readiness for this poll handle.\n\n After this returns, any process waiting in :manpage:`poll(2)`,\n :manpage:`select(2)` or :manpage:`epoll_wait(2)` on the\n corresponding file descriptor will be woken so it can re-poll\n the filesystem for the current readiness mask.\n\n Each `PollHandle` is intended for a single notification. After a\n successful call, the filesystem should discard the handle and not\n call this method again.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_10PollHandle_9notify = {"notify", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10PollHandle_9notify, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_10PollHandle_8notify}; static PyObject *__pyx_pw_7pyfuse3_10PollHandle_9notify(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("notify (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("notify", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("notify", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_10PollHandle_8notify(((struct __pyx_obj_7pyfuse3_PollHandle *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_10PollHandle_8notify(struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self) { int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("notify", 0); /* "pyfuse3/__init__.pyx":569 * cdef int ret * * if self._ph == NULL: # <<<<<<<<<<<<<< * raise RuntimeError('PollHandle is no longer valid') * */ __pyx_t_1 = (__pyx_v_self->_ph == NULL); if (unlikely(__pyx_t_1)) { /* "pyfuse3/__init__.pyx":570 * * if self._ph == NULL: * raise RuntimeError('PollHandle is no longer valid') # <<<<<<<<<<<<<< * * with nogil: */ __pyx_t_3 = NULL; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_PollHandle_is_no_longer_valid}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 570, __pyx_L1_error) /* "pyfuse3/__init__.pyx":569 * cdef int ret * * if self._ph == NULL: # <<<<<<<<<<<<<< * raise RuntimeError('PollHandle is no longer valid') * */ } /* "pyfuse3/__init__.pyx":572 * raise RuntimeError('PollHandle is no longer valid') * * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_poll(self._ph) * */ { PyThreadState * _save; _save = PyEval_SaveThread(); __Pyx_FastGIL_Remember(); /*try:*/ { /* "pyfuse3/__init__.pyx":573 * * with nogil: * ret = fuse_lowlevel_notify_poll(self._ph) # <<<<<<<<<<<<<< * * if ret != 0: */ __pyx_v_ret = fuse_lowlevel_notify_poll(__pyx_v_self->_ph); } /* "pyfuse3/__init__.pyx":572 * raise RuntimeError('PollHandle is no longer valid') * * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_poll(self._ph) * */ /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); goto __pyx_L6; } __pyx_L6:; } } /* "pyfuse3/__init__.pyx":575 * ret = fuse_lowlevel_notify_poll(self._ph) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_poll returned: ' + strerror(-ret)) * */ __pyx_t_1 = (__pyx_v_ret != 0); if (unlikely(__pyx_t_1)) { /* "pyfuse3/__init__.pyx":576 * * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_poll returned: ' + strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = NULL; __pyx_t_5 = __Pyx_PyLong_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __pyx_f_7pyfuse3_strerror((-__pyx_v_ret)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyNumber_Add(__pyx_mstate_global->__pyx_kp_u_fuse_lowlevel_notify_poll_return, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_4 = 1; { PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_7}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OSError)), __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 576, __pyx_L1_error) /* "pyfuse3/__init__.pyx":575 * ret = fuse_lowlevel_notify_poll(self._ph) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_poll returned: ' + strerror(-ret)) * */ } /* "pyfuse3/__init__.pyx":553 * raise PicklingError("PollHandle instances can't be pickled") * * def notify(self): # <<<<<<<<<<<<<< * ''' * Notify IO readiness for this poll handle. */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("pyfuse3.PollHandle.notify", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_10PollHandle_11__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_10PollHandle_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10PollHandle_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_10PollHandle_11__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;} __pyx_r = __pyx_pf_7pyfuse3_10PollHandle_10__reduce_cython__(((struct __pyx_obj_7pyfuse3_PollHandle *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_10PollHandle_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.PollHandle.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_10PollHandle_13__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_10PollHandle_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10PollHandle_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_10PollHandle_13__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 3, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(2, 3, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(2, 3, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 3, __pyx_L3_error) } __pyx_v___pyx_state = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 3, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.PollHandle.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_10PollHandle_12__setstate_cython__(((struct __pyx_obj_7pyfuse3_PollHandle *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_10PollHandle_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyfuse3_PollHandle *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< */ __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0); __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.PollHandle.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":579 * * * def listdir(path): # <<<<<<<<<<<<<< * '''Like `os.listdir`, but releases the GIL. * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_99listdir(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_98listdir, "Like `os.listdir`, but releases the GIL.\n\n This function returns an iterator over the directory entries in *path*.\n\n The returned values are of type :ref:`str `. Surrogate\n escape coding (cf. `PEP 383 `_)\n is used for directory names that do not have a string representation.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_99listdir = {"listdir", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_99listdir, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_98listdir}; static PyObject *__pyx_pw_7pyfuse3_99listdir(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_path = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("listdir (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_path,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 579, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 579, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "listdir", 0) < (0)) __PYX_ERR(0, 579, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("listdir", 1, 1, 1, i); __PYX_ERR(0, 579, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 579, __pyx_L3_error) } __pyx_v_path = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("listdir", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 579, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.listdir", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_98listdir(__pyx_self, __pyx_v_path); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_98listdir(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path) { DIR *__pyx_v_dirp; struct dirent *__pyx_v_res; char *__pyx_v_buf; PyObject *__pyx_v_path_b = NULL; PyObject *__pyx_v_names = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; size_t __pyx_t_5; char *__pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("listdir", 0); /* "pyfuse3/__init__.pyx":589 * ''' * * if not isinstance(path, str): # <<<<<<<<<<<<<< * raise TypeError('*path* argument must be of type str') * */ __pyx_t_1 = PyUnicode_Check(__pyx_v_path); __pyx_t_2 = (!__pyx_t_1); if (unlikely(__pyx_t_2)) { /* "pyfuse3/__init__.pyx":590 * * if not isinstance(path, str): * raise TypeError('*path* argument must be of type str') # <<<<<<<<<<<<<< * * cdef libc_extra.DIR* dirp */ __pyx_t_4 = NULL; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_path_argument_must_be_of_type_s}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 590, __pyx_L1_error) /* "pyfuse3/__init__.pyx":589 * ''' * * if not isinstance(path, str): # <<<<<<<<<<<<<< * raise TypeError('*path* argument must be of type str') * */ } /* "pyfuse3/__init__.pyx":596 * cdef char* buf * * path_b = str2bytes(path) # <<<<<<<<<<<<<< * buf = path_b * */ __pyx_t_3 = __pyx_f_7pyfuse3_str2bytes(__pyx_v_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_path_b = __pyx_t_3; __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":597 * * path_b = str2bytes(path) * buf = path_b # <<<<<<<<<<<<<< * * with nogil: */ __pyx_t_6 = __Pyx_PyObject_AsWritableString(__pyx_v_path_b); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(0, 597, __pyx_L1_error) __pyx_v_buf = ((char *)__pyx_t_6); /* "pyfuse3/__init__.pyx":599 * buf = path_b * * with nogil: # <<<<<<<<<<<<<< * dirp = libc_extra.opendir(buf) * */ { PyThreadState * _save; _save = PyEval_SaveThread(); __Pyx_FastGIL_Remember(); /*try:*/ { /* "pyfuse3/__init__.pyx":600 * * with nogil: * dirp = libc_extra.opendir(buf) # <<<<<<<<<<<<<< * * if dirp == NULL: */ __pyx_v_dirp = opendir(__pyx_v_buf); } /* "pyfuse3/__init__.pyx":599 * buf = path_b * * with nogil: # <<<<<<<<<<<<<< * dirp = libc_extra.opendir(buf) * */ /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); goto __pyx_L6; } __pyx_L6:; } } /* "pyfuse3/__init__.pyx":602 * dirp = libc_extra.opendir(buf) * * if dirp == NULL: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * */ __pyx_t_2 = (__pyx_v_dirp == NULL); if (unlikely(__pyx_t_2)) { /* "pyfuse3/__init__.pyx":603 * * if dirp == NULL: * raise OSError(errno.errno, strerror(errno.errno), path) # <<<<<<<<<<<<<< * * names = list() */ __pyx_t_4 = NULL; __pyx_t_7 = __Pyx_PyLong_From_int(errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = 1; { PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_t_7, __pyx_t_8, __pyx_v_path}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OSError)), __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 603, __pyx_L1_error) /* "pyfuse3/__init__.pyx":602 * dirp = libc_extra.opendir(buf) * * if dirp == NULL: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * */ } /* "pyfuse3/__init__.pyx":605 * raise OSError(errno.errno, strerror(errno.errno), path) * * names = list() # <<<<<<<<<<<<<< * while True: * errno.errno = 0 */ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_names = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":606 * * names = list() * while True: # <<<<<<<<<<<<<< * errno.errno = 0 * with nogil: */ while (1) { /* "pyfuse3/__init__.pyx":607 * names = list() * while True: * errno.errno = 0 # <<<<<<<<<<<<<< * with nogil: * res = libc_extra.readdir(dirp) */ errno = 0; /* "pyfuse3/__init__.pyx":608 * while True: * errno.errno = 0 * with nogil: # <<<<<<<<<<<<<< * res = libc_extra.readdir(dirp) * */ { PyThreadState * _save; _save = PyEval_SaveThread(); __Pyx_FastGIL_Remember(); /*try:*/ { /* "pyfuse3/__init__.pyx":609 * errno.errno = 0 * with nogil: * res = libc_extra.readdir(dirp) # <<<<<<<<<<<<<< * * if res is NULL: */ __pyx_v_res = readdir(__pyx_v_dirp); } /* "pyfuse3/__init__.pyx":608 * while True: * errno.errno = 0 * with nogil: # <<<<<<<<<<<<<< * res = libc_extra.readdir(dirp) * */ /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); goto __pyx_L14; } __pyx_L14:; } } /* "pyfuse3/__init__.pyx":611 * res = libc_extra.readdir(dirp) * * if res is NULL: # <<<<<<<<<<<<<< * if errno.errno != 0: * raise OSError(errno.errno, strerror(errno.errno), path) */ __pyx_t_2 = (__pyx_v_res == NULL); if (__pyx_t_2) { /* "pyfuse3/__init__.pyx":612 * * if res is NULL: * if errno.errno != 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * else: */ __pyx_t_2 = (errno != 0); if (unlikely(__pyx_t_2)) { /* "pyfuse3/__init__.pyx":613 * if res is NULL: * if errno.errno != 0: * raise OSError(errno.errno, strerror(errno.errno), path) # <<<<<<<<<<<<<< * else: * break */ __pyx_t_8 = NULL; __pyx_t_7 = __Pyx_PyLong_From_int(errno); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; { PyObject *__pyx_callargs[4] = {__pyx_t_8, __pyx_t_7, __pyx_t_4, __pyx_v_path}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OSError)), __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 613, __pyx_L1_error) /* "pyfuse3/__init__.pyx":612 * * if res is NULL: * if errno.errno != 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * else: */ } /* "pyfuse3/__init__.pyx":615 * raise OSError(errno.errno, strerror(errno.errno), path) * else: * break # <<<<<<<<<<<<<< * if string.strcmp(res.d_name, b'.') == 0 or \ * string.strcmp(res.d_name, b'..') == 0: */ /*else*/ { goto __pyx_L9_break; } /* "pyfuse3/__init__.pyx":611 * res = libc_extra.readdir(dirp) * * if res is NULL: # <<<<<<<<<<<<<< * if errno.errno != 0: * raise OSError(errno.errno, strerror(errno.errno), path) */ } /* "pyfuse3/__init__.pyx":616 * else: * break * if string.strcmp(res.d_name, b'.') == 0 or \ # <<<<<<<<<<<<<< * string.strcmp(res.d_name, b'..') == 0: * continue */ __pyx_t_1 = (strcmp(__pyx_v_res->d_name, __pyx_k__2) == 0); if (!__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L18_bool_binop_done; } /* "pyfuse3/__init__.pyx":617 * break * if string.strcmp(res.d_name, b'.') == 0 or \ * string.strcmp(res.d_name, b'..') == 0: # <<<<<<<<<<<<<< * continue * */ __pyx_t_1 = (strcmp(__pyx_v_res->d_name, __pyx_k__3) == 0); __pyx_t_2 = __pyx_t_1; __pyx_L18_bool_binop_done:; /* "pyfuse3/__init__.pyx":616 * else: * break * if string.strcmp(res.d_name, b'.') == 0 or \ # <<<<<<<<<<<<<< * string.strcmp(res.d_name, b'..') == 0: * continue */ if (__pyx_t_2) { /* "pyfuse3/__init__.pyx":618 * if string.strcmp(res.d_name, b'.') == 0 or \ * string.strcmp(res.d_name, b'..') == 0: * continue # <<<<<<<<<<<<<< * * names.append(bytes2str(PyBytes_FromString(res.d_name))) */ goto __pyx_L8_continue; /* "pyfuse3/__init__.pyx":616 * else: * break * if string.strcmp(res.d_name, b'.') == 0 or \ # <<<<<<<<<<<<<< * string.strcmp(res.d_name, b'..') == 0: * continue */ } /* "pyfuse3/__init__.pyx":620 * continue * * names.append(bytes2str(PyBytes_FromString(res.d_name))) # <<<<<<<<<<<<<< * * with nogil: */ __pyx_t_3 = PyBytes_FromString(__pyx_v_res->d_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __pyx_f_7pyfuse3_bytes2str(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_names, __pyx_t_4); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_L8_continue:; } __pyx_L9_break:; /* "pyfuse3/__init__.pyx":622 * names.append(bytes2str(PyBytes_FromString(res.d_name))) * * with nogil: # <<<<<<<<<<<<<< * libc_extra.closedir(dirp) * */ { PyThreadState * _save; _save = PyEval_SaveThread(); __Pyx_FastGIL_Remember(); /*try:*/ { /* "pyfuse3/__init__.pyx":623 * * with nogil: * libc_extra.closedir(dirp) # <<<<<<<<<<<<<< * * return names */ (void)(closedir(__pyx_v_dirp)); } /* "pyfuse3/__init__.pyx":622 * names.append(bytes2str(PyBytes_FromString(res.d_name))) * * with nogil: # <<<<<<<<<<<<<< * libc_extra.closedir(dirp) * */ /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); goto __pyx_L22; } __pyx_L22:; } } /* "pyfuse3/__init__.pyx":625 * libc_extra.closedir(dirp) * * return names # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_names); __pyx_r = __pyx_v_names; goto __pyx_L0; /* "pyfuse3/__init__.pyx":579 * * * def listdir(path): # <<<<<<<<<<<<<< * '''Like `os.listdir`, but releases the GIL. * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("pyfuse3.listdir", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_path_b); __Pyx_XDECREF(__pyx_v_names); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":628 * * * def syncfs(path): # <<<<<<<<<<<<<< * '''Sync filesystem mounted at *path* * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_101syncfs(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_100syncfs, "Sync filesystem mounted at *path*\n\n This is a Python interface to the syncfs(2) system call. There is no\n particular relation to libfuse, it is provided by pyfuse3 as a convenience.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_101syncfs = {"syncfs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_101syncfs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_100syncfs}; static PyObject *__pyx_pw_7pyfuse3_101syncfs(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_path = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("syncfs (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_path,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 628, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 628, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "syncfs", 0) < (0)) __PYX_ERR(0, 628, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("syncfs", 1, 1, 1, i); __PYX_ERR(0, 628, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 628, __pyx_L3_error) } __pyx_v_path = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("syncfs", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 628, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.syncfs", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_100syncfs(__pyx_self, __pyx_v_path); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_100syncfs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path) { int __pyx_v_ret; PyObject *__pyx_v_fd = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; size_t __pyx_t_6; int __pyx_t_7; int __pyx_t_8; int __pyx_t_9; char const *__pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("syncfs", 0); /* "pyfuse3/__init__.pyx":637 * cdef int ret * * fd = os.open(path, flags=os.O_DIRECTORY) # <<<<<<<<<<<<<< * try: * ret = libc_extra.syncfs(fd) */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_open); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_O_DIRECTORY); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, __pyx_v_path}; __pyx_t_3 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_flags, __pyx_t_5, __pyx_t_3, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 637, __pyx_L1_error) __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_fd = __pyx_t_1; __pyx_t_1 = 0; /* "pyfuse3/__init__.pyx":638 * * fd = os.open(path, flags=os.O_DIRECTORY) * try: # <<<<<<<<<<<<<< * ret = libc_extra.syncfs(fd) * */ /*try:*/ { /* "pyfuse3/__init__.pyx":639 * fd = os.open(path, flags=os.O_DIRECTORY) * try: * ret = libc_extra.syncfs(fd) # <<<<<<<<<<<<<< * * if ret != 0: */ __pyx_t_7 = __Pyx_PyLong_As_int(__pyx_v_fd); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 639, __pyx_L4_error) __pyx_v_ret = syncfs(__pyx_t_7); /* "pyfuse3/__init__.pyx":641 * ret = libc_extra.syncfs(fd) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * finally: */ __pyx_t_8 = (__pyx_v_ret != 0); if (unlikely(__pyx_t_8)) { /* "pyfuse3/__init__.pyx":642 * * if ret != 0: * raise OSError(errno.errno, strerror(errno.errno), path) # <<<<<<<<<<<<<< * finally: * os.close(fd) */ __pyx_t_4 = NULL; __pyx_t_3 = __Pyx_PyLong_From_int(errno); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 642, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 642, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; { PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_t_3, __pyx_t_5, __pyx_v_path}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OSError)), __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 642, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 642, __pyx_L4_error) /* "pyfuse3/__init__.pyx":641 * ret = libc_extra.syncfs(fd) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * finally: */ } } /* "pyfuse3/__init__.pyx":644 * raise OSError(errno.errno, strerror(errno.errno), path) * finally: * os.close(fd) # <<<<<<<<<<<<<< * * */ /*finally:*/ { /*normal exit:*/{ __pyx_t_5 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_close); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_5); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_fd}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L5; } __pyx_L4_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if ( unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __pyx_t_7 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; { __pyx_t_4 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 644, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_close); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 644, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); assert(__pyx_t_4); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_fd}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 644, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; goto __pyx_L1_error; __pyx_L8_error:; __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; goto __pyx_L1_error; } __pyx_L5:; } /* "pyfuse3/__init__.pyx":628 * * * def syncfs(path): # <<<<<<<<<<<<<< * '''Sync filesystem mounted at *path* * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.syncfs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_fd); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":647 * * * def setxattr(path, name, bytes value, namespace='user'): # <<<<<<<<<<<<<< * '''Set extended attribute * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_103setxattr(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_102setxattr, "Set extended attribute\n\n *path* and *name* have to be of type `str`. In Python 3.x, they may\n contain surrogates. *value* has to be of type `bytes`.\n\n Under FreeBSD, the *namespace* parameter may be set to *system* or *user* to\n select the namespace for the extended attribute. For other platforms, this\n parameter is ignored.\n\n In contrast to the `os.setxattr` function from the standard library, the\n method provided by pyfuse3 is also available for non-Linux systems.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_103setxattr = {"setxattr", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_103setxattr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_102setxattr}; static PyObject *__pyx_pw_7pyfuse3_103setxattr(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_path = 0; PyObject *__pyx_v_name = 0; PyObject *__pyx_v_value = 0; PyObject *__pyx_v_namespace = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("setxattr (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_path,&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_value,&__pyx_mstate_global->__pyx_n_u_namespace,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 647, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 647, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 647, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 647, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 647, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "setxattr", 0) < (0)) __PYX_ERR(0, 647, __pyx_L3_error) if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_user))); for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("setxattr", 0, 3, 4, i); __PYX_ERR(0, 647, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 647, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 647, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 647, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 647, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_user))); } __pyx_v_path = values[0]; __pyx_v_name = values[1]; __pyx_v_value = ((PyObject*)values[2]); __pyx_v_namespace = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("setxattr", 0, 3, 4, __pyx_nargs); __PYX_ERR(0, 647, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.setxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_value), (&PyBytes_Type), 1, "value", 1))) __PYX_ERR(0, 647, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_102setxattr(__pyx_self, __pyx_v_path, __pyx_v_name, __pyx_v_value, __pyx_v_namespace); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_102setxattr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path, PyObject *__pyx_v_name, PyObject *__pyx_v_value, PyObject *__pyx_v_namespace) { int __pyx_v_ret; Py_ssize_t __pyx_v_len_; char *__pyx_v_cvalue; char *__pyx_v_cpath; char *__pyx_v_cname; int __pyx_v_cnamespace; PyObject *__pyx_v_path_b = NULL; PyObject *__pyx_v_name_b = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; size_t __pyx_t_5; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; char *__pyx_t_8; PyObject *__pyx_t_9 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("setxattr", 0); /* "pyfuse3/__init__.pyx":661 * ''' * * if not isinstance(path, str): # <<<<<<<<<<<<<< * raise TypeError('*path* argument must be of type str') * */ __pyx_t_1 = PyUnicode_Check(__pyx_v_path); __pyx_t_2 = (!__pyx_t_1); if (unlikely(__pyx_t_2)) { /* "pyfuse3/__init__.pyx":662 * * if not isinstance(path, str): * raise TypeError('*path* argument must be of type str') # <<<<<<<<<<<<<< * * if not isinstance(name, str): */ __pyx_t_4 = NULL; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_path_argument_must_be_of_type_s}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 662, __pyx_L1_error) /* "pyfuse3/__init__.pyx":661 * ''' * * if not isinstance(path, str): # <<<<<<<<<<<<<< * raise TypeError('*path* argument must be of type str') * */ } /* "pyfuse3/__init__.pyx":664 * raise TypeError('*path* argument must be of type str') * * if not isinstance(name, str): # <<<<<<<<<<<<<< * raise TypeError('*name* argument must be of type str') * */ __pyx_t_2 = PyUnicode_Check(__pyx_v_name); __pyx_t_1 = (!__pyx_t_2); if (unlikely(__pyx_t_1)) { /* "pyfuse3/__init__.pyx":665 * * if not isinstance(name, str): * raise TypeError('*name* argument must be of type str') # <<<<<<<<<<<<<< * * if namespace not in ('system', 'user'): */ __pyx_t_4 = NULL; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_name_argument_must_be_of_type_s}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 665, __pyx_L1_error) /* "pyfuse3/__init__.pyx":664 * raise TypeError('*path* argument must be of type str') * * if not isinstance(name, str): # <<<<<<<<<<<<<< * raise TypeError('*name* argument must be of type str') * */ } /* "pyfuse3/__init__.pyx":667 * raise TypeError('*name* argument must be of type str') * * if namespace not in ('system', 'user'): # <<<<<<<<<<<<<< * raise ValueError('*namespace* parameter must be "system" or "user", not %s' * % namespace) */ __Pyx_INCREF(__pyx_v_namespace); __pyx_t_3 = __pyx_v_namespace; __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_system, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 667, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L6_bool_binop_done; } __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_user, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 667, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L6_bool_binop_done:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_1; if (unlikely(__pyx_t_2)) { /* "pyfuse3/__init__.pyx":668 * * if namespace not in ('system', 'user'): * raise ValueError('*namespace* parameter must be "system" or "user", not %s' # <<<<<<<<<<<<<< * % namespace) * */ __pyx_t_4 = NULL; /* "pyfuse3/__init__.pyx":669 * if namespace not in ('system', 'user'): * raise ValueError('*namespace* parameter must be "system" or "user", not %s' * % namespace) # <<<<<<<<<<<<<< * * cdef int ret */ __pyx_t_6 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_namespace_parameter_must_be_sys, __pyx_v_namespace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 668, __pyx_L1_error) /* "pyfuse3/__init__.pyx":667 * raise TypeError('*name* argument must be of type str') * * if namespace not in ('system', 'user'): # <<<<<<<<<<<<<< * raise ValueError('*namespace* parameter must be "system" or "user", not %s' * % namespace) */ } /* "pyfuse3/__init__.pyx":678 * cdef int cnamespace * * if namespace == 'system': # <<<<<<<<<<<<<< * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM * else: */ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_namespace, __pyx_mstate_global->__pyx_n_u_system, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 678, __pyx_L1_error) if (__pyx_t_2) { /* "pyfuse3/__init__.pyx":679 * * if namespace == 'system': * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM # <<<<<<<<<<<<<< * else: * cnamespace = libc_extra.EXTATTR_NAMESPACE_USER */ __pyx_v_cnamespace = EXTATTR_NAMESPACE_SYSTEM; /* "pyfuse3/__init__.pyx":678 * cdef int cnamespace * * if namespace == 'system': # <<<<<<<<<<<<<< * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM * else: */ goto __pyx_L8; } /* "pyfuse3/__init__.pyx":681 * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM * else: * cnamespace = libc_extra.EXTATTR_NAMESPACE_USER # <<<<<<<<<<<<<< * * path_b = str2bytes(path) */ /*else*/ { __pyx_v_cnamespace = EXTATTR_NAMESPACE_USER; } __pyx_L8:; /* "pyfuse3/__init__.pyx":683 * cnamespace = libc_extra.EXTATTR_NAMESPACE_USER * * path_b = str2bytes(path) # <<<<<<<<<<<<<< * name_b = str2bytes(name) * PyBytes_AsStringAndSize(value, &cvalue, &len_) */ __pyx_t_3 = __pyx_f_7pyfuse3_str2bytes(__pyx_v_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_path_b = __pyx_t_3; __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":684 * * path_b = str2bytes(path) * name_b = str2bytes(name) # <<<<<<<<<<<<<< * PyBytes_AsStringAndSize(value, &cvalue, &len_) * cpath = path_b */ __pyx_t_3 = __pyx_f_7pyfuse3_str2bytes(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_name_b = __pyx_t_3; __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":685 * path_b = str2bytes(path) * name_b = str2bytes(name) * PyBytes_AsStringAndSize(value, &cvalue, &len_) # <<<<<<<<<<<<<< * cpath = path_b * cname = name_b */ __pyx_t_7 = PyBytes_AsStringAndSize(__pyx_v_value, (&__pyx_v_cvalue), (&__pyx_v_len_)); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 685, __pyx_L1_error) /* "pyfuse3/__init__.pyx":686 * name_b = str2bytes(name) * PyBytes_AsStringAndSize(value, &cvalue, &len_) * cpath = path_b # <<<<<<<<<<<<<< * cname = name_b * */ __pyx_t_8 = __Pyx_PyObject_AsWritableString(__pyx_v_path_b); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 686, __pyx_L1_error) __pyx_v_cpath = ((char *)__pyx_t_8); /* "pyfuse3/__init__.pyx":687 * PyBytes_AsStringAndSize(value, &cvalue, &len_) * cpath = path_b * cname = name_b # <<<<<<<<<<<<<< * * with nogil: */ __pyx_t_8 = __Pyx_PyObject_AsWritableString(__pyx_v_name_b); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 687, __pyx_L1_error) __pyx_v_cname = ((char *)__pyx_t_8); /* "pyfuse3/__init__.pyx":689 * cname = name_b * * with nogil: # <<<<<<<<<<<<<< * # len_ is guaranteed positive * ret = libc_extra.setxattr_p( */ { PyThreadState * _save; _save = PyEval_SaveThread(); __Pyx_FastGIL_Remember(); /*try:*/ { /* "pyfuse3/__init__.pyx":691 * with nogil: * # len_ is guaranteed positive * ret = libc_extra.setxattr_p( # <<<<<<<<<<<<<< * cpath, cname, cvalue, len_, cnamespace) * */ __pyx_v_ret = setxattr_p(__pyx_v_cpath, __pyx_v_cname, __pyx_v_cvalue, ((size_t)__pyx_v_len_), __pyx_v_cnamespace); } /* "pyfuse3/__init__.pyx":689 * cname = name_b * * with nogil: # <<<<<<<<<<<<<< * # len_ is guaranteed positive * ret = libc_extra.setxattr_p( */ /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); goto __pyx_L11; } __pyx_L11:; } } /* "pyfuse3/__init__.pyx":694 * cpath, cname, cvalue, len_, cnamespace) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * */ __pyx_t_2 = (__pyx_v_ret != 0); if (unlikely(__pyx_t_2)) { /* "pyfuse3/__init__.pyx":695 * * if ret != 0: * raise OSError(errno.errno, strerror(errno.errno), path) # <<<<<<<<<<<<<< * * */ __pyx_t_6 = NULL; __pyx_t_4 = __Pyx_PyLong_From_int(errno); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = 1; { PyObject *__pyx_callargs[4] = {__pyx_t_6, __pyx_t_4, __pyx_t_9, __pyx_v_path}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OSError)), __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 695, __pyx_L1_error) /* "pyfuse3/__init__.pyx":694 * cpath, cname, cvalue, len_, cnamespace) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * */ } /* "pyfuse3/__init__.pyx":647 * * * def setxattr(path, name, bytes value, namespace='user'): # <<<<<<<<<<<<<< * '''Set extended attribute * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("pyfuse3.setxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_path_b); __Pyx_XDECREF(__pyx_v_name_b); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":698 * * * def getxattr(path, name, size_t size_guess=128, namespace='user'): # <<<<<<<<<<<<<< * '''Get extended attribute * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_105getxattr(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_104getxattr, "Get extended attribute\n\n *path* and *name* have to be of type `str`. In Python 3.x, they may\n contain surrogates. Returns a value of type `bytes`.\n\n If the caller knows the approximate size of the attribute value,\n it should be supplied in *size_guess*. If the guess turns out\n to be wrong, the system call has to be carried out three times\n (the first call will fail, the second determines the size and\n the third finally gets the value).\n\n Under FreeBSD, the *namespace* parameter may be set to *system* or *user* to\n select the namespace for the extended attribute. For other platforms, this\n parameter is ignored.\n\n In contrast to the `os.getxattr` function from the standard library, the\n method provided by pyfuse3 is also available for non-Linux systems.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_105getxattr = {"getxattr", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_105getxattr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_104getxattr}; static PyObject *__pyx_pw_7pyfuse3_105getxattr(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_path = 0; PyObject *__pyx_v_name = 0; size_t __pyx_v_size_guess; PyObject *__pyx_v_namespace = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("getxattr (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_path,&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_size_guess,&__pyx_mstate_global->__pyx_n_u_namespace,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 698, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 698, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 698, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 698, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 698, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "getxattr", 0) < (0)) __PYX_ERR(0, 698, __pyx_L3_error) if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_user))); for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("getxattr", 0, 2, 4, i); __PYX_ERR(0, 698, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 698, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 698, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 698, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 698, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_user))); } __pyx_v_path = values[0]; __pyx_v_name = values[1]; if (values[2]) { __pyx_v_size_guess = __Pyx_PyLong_As_size_t(values[2]); if (unlikely((__pyx_v_size_guess == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 698, __pyx_L3_error) } else { __pyx_v_size_guess = ((size_t)((size_t)0x80)); } __pyx_v_namespace = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("getxattr", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 698, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.getxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_104getxattr(__pyx_self, __pyx_v_path, __pyx_v_name, __pyx_v_size_guess, __pyx_v_namespace); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_104getxattr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path, PyObject *__pyx_v_name, size_t __pyx_v_size_guess, PyObject *__pyx_v_namespace) { Py_ssize_t __pyx_v_ret; char *__pyx_v_buf; char *__pyx_v_cpath; char *__pyx_v_cname; size_t __pyx_v_bufsize; int __pyx_v_cnamespace; PyObject *__pyx_v_path_b = NULL; PyObject *__pyx_v_name_b = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; size_t __pyx_t_5; PyObject *__pyx_t_6 = NULL; char *__pyx_t_7; PyObject *__pyx_t_8; PyObject *__pyx_t_9 = NULL; int __pyx_t_10; int __pyx_t_11; char const *__pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("getxattr", 0); /* "pyfuse3/__init__.pyx":718 * ''' * * if not isinstance(path, str): # <<<<<<<<<<<<<< * raise TypeError('*path* argument must be of type str') * */ __pyx_t_1 = PyUnicode_Check(__pyx_v_path); __pyx_t_2 = (!__pyx_t_1); if (unlikely(__pyx_t_2)) { /* "pyfuse3/__init__.pyx":719 * * if not isinstance(path, str): * raise TypeError('*path* argument must be of type str') # <<<<<<<<<<<<<< * * if not isinstance(name, str): */ __pyx_t_4 = NULL; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_path_argument_must_be_of_type_s}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 719, __pyx_L1_error) /* "pyfuse3/__init__.pyx":718 * ''' * * if not isinstance(path, str): # <<<<<<<<<<<<<< * raise TypeError('*path* argument must be of type str') * */ } /* "pyfuse3/__init__.pyx":721 * raise TypeError('*path* argument must be of type str') * * if not isinstance(name, str): # <<<<<<<<<<<<<< * raise TypeError('*name* argument must be of type str') * */ __pyx_t_2 = PyUnicode_Check(__pyx_v_name); __pyx_t_1 = (!__pyx_t_2); if (unlikely(__pyx_t_1)) { /* "pyfuse3/__init__.pyx":722 * * if not isinstance(name, str): * raise TypeError('*name* argument must be of type str') # <<<<<<<<<<<<<< * * if namespace not in ('system', 'user'): */ __pyx_t_4 = NULL; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_name_argument_must_be_of_type_s}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 722, __pyx_L1_error) /* "pyfuse3/__init__.pyx":721 * raise TypeError('*path* argument must be of type str') * * if not isinstance(name, str): # <<<<<<<<<<<<<< * raise TypeError('*name* argument must be of type str') * */ } /* "pyfuse3/__init__.pyx":724 * raise TypeError('*name* argument must be of type str') * * if namespace not in ('system', 'user'): # <<<<<<<<<<<<<< * raise ValueError('*namespace* parameter must be "system" or "user", not %s' * % namespace) */ __Pyx_INCREF(__pyx_v_namespace); __pyx_t_3 = __pyx_v_namespace; __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_system, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 724, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L6_bool_binop_done; } __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_user, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 724, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L6_bool_binop_done:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_1; if (unlikely(__pyx_t_2)) { /* "pyfuse3/__init__.pyx":725 * * if namespace not in ('system', 'user'): * raise ValueError('*namespace* parameter must be "system" or "user", not %s' # <<<<<<<<<<<<<< * % namespace) * */ __pyx_t_4 = NULL; /* "pyfuse3/__init__.pyx":726 * if namespace not in ('system', 'user'): * raise ValueError('*namespace* parameter must be "system" or "user", not %s' * % namespace) # <<<<<<<<<<<<<< * * cdef ssize_t ret */ __pyx_t_6 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_namespace_parameter_must_be_sys, __pyx_v_namespace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 725, __pyx_L1_error) /* "pyfuse3/__init__.pyx":724 * raise TypeError('*name* argument must be of type str') * * if namespace not in ('system', 'user'): # <<<<<<<<<<<<<< * raise ValueError('*namespace* parameter must be "system" or "user", not %s' * % namespace) */ } /* "pyfuse3/__init__.pyx":735 * cdef int cnamespace * * if namespace == 'system': # <<<<<<<<<<<<<< * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM * else: */ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_namespace, __pyx_mstate_global->__pyx_n_u_system, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 735, __pyx_L1_error) if (__pyx_t_2) { /* "pyfuse3/__init__.pyx":736 * * if namespace == 'system': * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM # <<<<<<<<<<<<<< * else: * cnamespace = libc_extra.EXTATTR_NAMESPACE_USER */ __pyx_v_cnamespace = EXTATTR_NAMESPACE_SYSTEM; /* "pyfuse3/__init__.pyx":735 * cdef int cnamespace * * if namespace == 'system': # <<<<<<<<<<<<<< * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM * else: */ goto __pyx_L8; } /* "pyfuse3/__init__.pyx":738 * cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM * else: * cnamespace = libc_extra.EXTATTR_NAMESPACE_USER # <<<<<<<<<<<<<< * * path_b = str2bytes(path) */ /*else*/ { __pyx_v_cnamespace = EXTATTR_NAMESPACE_USER; } __pyx_L8:; /* "pyfuse3/__init__.pyx":740 * cnamespace = libc_extra.EXTATTR_NAMESPACE_USER * * path_b = str2bytes(path) # <<<<<<<<<<<<<< * name_b = str2bytes(name) * cpath = path_b */ __pyx_t_3 = __pyx_f_7pyfuse3_str2bytes(__pyx_v_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_path_b = __pyx_t_3; __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":741 * * path_b = str2bytes(path) * name_b = str2bytes(name) # <<<<<<<<<<<<<< * cpath = path_b * cname = name_b */ __pyx_t_3 = __pyx_f_7pyfuse3_str2bytes(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_name_b = __pyx_t_3; __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":742 * path_b = str2bytes(path) * name_b = str2bytes(name) * cpath = path_b # <<<<<<<<<<<<<< * cname = name_b * */ __pyx_t_7 = __Pyx_PyObject_AsWritableString(__pyx_v_path_b); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(0, 742, __pyx_L1_error) __pyx_v_cpath = ((char *)__pyx_t_7); /* "pyfuse3/__init__.pyx":743 * name_b = str2bytes(name) * cpath = path_b * cname = name_b # <<<<<<<<<<<<<< * * bufsize = size_guess */ __pyx_t_7 = __Pyx_PyObject_AsWritableString(__pyx_v_name_b); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(0, 743, __pyx_L1_error) __pyx_v_cname = ((char *)__pyx_t_7); /* "pyfuse3/__init__.pyx":745 * cname = name_b * * bufsize = size_guess # <<<<<<<<<<<<<< * buf = stdlib.malloc(bufsize * sizeof(char)) * */ __pyx_v_bufsize = __pyx_v_size_guess; /* "pyfuse3/__init__.pyx":746 * * bufsize = size_guess * buf = stdlib.malloc(bufsize * sizeof(char)) # <<<<<<<<<<<<<< * * if buf is NULL: */ __pyx_v_buf = ((char *)malloc((__pyx_v_bufsize * (sizeof(char))))); /* "pyfuse3/__init__.pyx":748 * buf = stdlib.malloc(bufsize * sizeof(char)) * * if buf is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ __pyx_t_2 = (__pyx_v_buf == NULL); if (__pyx_t_2) { /* "pyfuse3/__init__.pyx":749 * * if buf is NULL: * cpython.exc.PyErr_NoMemory() # <<<<<<<<<<<<<< * * try: */ __pyx_t_8 = PyErr_NoMemory(); if (unlikely(__pyx_t_8 == ((void *)NULL))) __PYX_ERR(0, 749, __pyx_L1_error) /* "pyfuse3/__init__.pyx":748 * buf = stdlib.malloc(bufsize * sizeof(char)) * * if buf is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ } /* "pyfuse3/__init__.pyx":751 * cpython.exc.PyErr_NoMemory() * * try: # <<<<<<<<<<<<<< * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) */ /*try:*/ { /* "pyfuse3/__init__.pyx":752 * * try: * with nogil: # <<<<<<<<<<<<<< * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * */ { PyThreadState * _save; _save = PyEval_SaveThread(); __Pyx_FastGIL_Remember(); /*try:*/ { /* "pyfuse3/__init__.pyx":753 * try: * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) # <<<<<<<<<<<<<< * * if ret < 0 and errno.errno == errno.ERANGE: */ __pyx_v_ret = getxattr_p(__pyx_v_cpath, __pyx_v_cname, __pyx_v_buf, __pyx_v_bufsize, __pyx_v_cnamespace); } /* "pyfuse3/__init__.pyx":752 * * try: * with nogil: # <<<<<<<<<<<<<< * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * */ /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); goto __pyx_L15; } __pyx_L15:; } } /* "pyfuse3/__init__.pyx":755 * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * * if ret < 0 and errno.errno == errno.ERANGE: # <<<<<<<<<<<<<< * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) */ __pyx_t_1 = (__pyx_v_ret < 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L17_bool_binop_done; } __pyx_t_1 = (errno == ERANGE); __pyx_t_2 = __pyx_t_1; __pyx_L17_bool_binop_done:; if (__pyx_t_2) { /* "pyfuse3/__init__.pyx":756 * * if ret < 0 and errno.errno == errno.ERANGE: * with nogil: # <<<<<<<<<<<<<< * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) * if ret < 0: */ { PyThreadState * _save; _save = PyEval_SaveThread(); __Pyx_FastGIL_Remember(); /*try:*/ { /* "pyfuse3/__init__.pyx":757 * if ret < 0 and errno.errno == errno.ERANGE: * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) # <<<<<<<<<<<<<< * if ret < 0: * raise OSError(errno.errno, strerror(errno.errno), path) */ __pyx_v_ret = getxattr_p(__pyx_v_cpath, __pyx_v_cname, NULL, 0, __pyx_v_cnamespace); } /* "pyfuse3/__init__.pyx":756 * * if ret < 0 and errno.errno == errno.ERANGE: * with nogil: # <<<<<<<<<<<<<< * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) * if ret < 0: */ /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); goto __pyx_L21; } __pyx_L21:; } } /* "pyfuse3/__init__.pyx":758 * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) * if ret < 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * bufsize = ret */ __pyx_t_2 = (__pyx_v_ret < 0); if (unlikely(__pyx_t_2)) { /* "pyfuse3/__init__.pyx":759 * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) * if ret < 0: * raise OSError(errno.errno, strerror(errno.errno), path) # <<<<<<<<<<<<<< * bufsize = ret * stdlib.free(buf) */ __pyx_t_6 = NULL; __pyx_t_4 = __Pyx_PyLong_From_int(errno); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 759, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 759, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = 1; { PyObject *__pyx_callargs[4] = {__pyx_t_6, __pyx_t_4, __pyx_t_9, __pyx_v_path}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OSError)), __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 759, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 759, __pyx_L11_error) /* "pyfuse3/__init__.pyx":758 * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) * if ret < 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * bufsize = ret */ } /* "pyfuse3/__init__.pyx":760 * if ret < 0: * raise OSError(errno.errno, strerror(errno.errno), path) * bufsize = ret # <<<<<<<<<<<<<< * stdlib.free(buf) * buf = stdlib.malloc(bufsize * sizeof(char)) */ __pyx_v_bufsize = ((size_t)__pyx_v_ret); /* "pyfuse3/__init__.pyx":761 * raise OSError(errno.errno, strerror(errno.errno), path) * bufsize = ret * stdlib.free(buf) # <<<<<<<<<<<<<< * buf = stdlib.malloc(bufsize * sizeof(char)) * if buf is NULL: */ free(__pyx_v_buf); /* "pyfuse3/__init__.pyx":762 * bufsize = ret * stdlib.free(buf) * buf = stdlib.malloc(bufsize * sizeof(char)) # <<<<<<<<<<<<<< * if buf is NULL: * cpython.exc.PyErr_NoMemory() */ __pyx_v_buf = ((char *)malloc((__pyx_v_bufsize * (sizeof(char))))); /* "pyfuse3/__init__.pyx":763 * stdlib.free(buf) * buf = stdlib.malloc(bufsize * sizeof(char)) * if buf is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ __pyx_t_2 = (__pyx_v_buf == NULL); if (__pyx_t_2) { /* "pyfuse3/__init__.pyx":764 * buf = stdlib.malloc(bufsize * sizeof(char)) * if buf is NULL: * cpython.exc.PyErr_NoMemory() # <<<<<<<<<<<<<< * * with nogil: */ __pyx_t_8 = PyErr_NoMemory(); if (unlikely(__pyx_t_8 == ((void *)NULL))) __PYX_ERR(0, 764, __pyx_L11_error) /* "pyfuse3/__init__.pyx":763 * stdlib.free(buf) * buf = stdlib.malloc(bufsize * sizeof(char)) * if buf is NULL: # <<<<<<<<<<<<<< * cpython.exc.PyErr_NoMemory() * */ } /* "pyfuse3/__init__.pyx":766 * cpython.exc.PyErr_NoMemory() * * with nogil: # <<<<<<<<<<<<<< * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * */ { PyThreadState * _save; _save = PyEval_SaveThread(); __Pyx_FastGIL_Remember(); /*try:*/ { /* "pyfuse3/__init__.pyx":767 * * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) # <<<<<<<<<<<<<< * * if ret < 0: */ __pyx_v_ret = getxattr_p(__pyx_v_cpath, __pyx_v_cname, __pyx_v_buf, __pyx_v_bufsize, __pyx_v_cnamespace); } /* "pyfuse3/__init__.pyx":766 * cpython.exc.PyErr_NoMemory() * * with nogil: # <<<<<<<<<<<<<< * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * */ /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); goto __pyx_L26; } __pyx_L26:; } } /* "pyfuse3/__init__.pyx":755 * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * * if ret < 0 and errno.errno == errno.ERANGE: # <<<<<<<<<<<<<< * with nogil: * ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) */ } /* "pyfuse3/__init__.pyx":769 * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * * if ret < 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * */ __pyx_t_2 = (__pyx_v_ret < 0); if (unlikely(__pyx_t_2)) { /* "pyfuse3/__init__.pyx":770 * * if ret < 0: * raise OSError(errno.errno, strerror(errno.errno), path) # <<<<<<<<<<<<<< * * return PyBytes_FromStringAndSize(buf, ret) */ __pyx_t_9 = NULL; __pyx_t_4 = __Pyx_PyLong_From_int(errno); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 770, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __pyx_f_7pyfuse3_strerror(errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = 1; { PyObject *__pyx_callargs[4] = {__pyx_t_9, __pyx_t_4, __pyx_t_6, __pyx_v_path}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OSError)), __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 770, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 770, __pyx_L11_error) /* "pyfuse3/__init__.pyx":769 * ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) * * if ret < 0: # <<<<<<<<<<<<<< * raise OSError(errno.errno, strerror(errno.errno), path) * */ } /* "pyfuse3/__init__.pyx":772 * raise OSError(errno.errno, strerror(errno.errno), path) * * return PyBytes_FromStringAndSize(buf, ret) # <<<<<<<<<<<<<< * * finally: */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyBytes_FromStringAndSize(__pyx_v_buf, __pyx_v_ret); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 772, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L10_return; } /* "pyfuse3/__init__.pyx":775 * * finally: * stdlib.free(buf) # <<<<<<<<<<<<<< * * */ /*finally:*/ { __pyx_L11_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; { free(__pyx_v_buf); } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; goto __pyx_L1_error; } __pyx_L10_return: { __pyx_t_18 = __pyx_r; __pyx_r = 0; free(__pyx_v_buf); __pyx_r = __pyx_t_18; __pyx_t_18 = 0; goto __pyx_L0; } } /* "pyfuse3/__init__.pyx":698 * * * def getxattr(path, name, size_t size_guess=128, namespace='user'): # <<<<<<<<<<<<<< * '''Get extended attribute * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("pyfuse3.getxattr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_path_b); __Pyx_XDECREF(__pyx_v_name_b); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":780 * default_options = frozenset(('default_permissions',)) * * def init(ops, mountpoint, options=default_options): # <<<<<<<<<<<<<< * '''Initialize and mount FUSE file system * */ static PyObject *__pyx_pf_7pyfuse3_131__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__defaults__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0); __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0) != (0)) __PYX_ERR(0, 780, __pyx_L1_error); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 780, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None) != (0)) __PYX_ERR(0, 780, __pyx_L1_error); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyfuse3.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_107init(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_106init, "Initialize and mount FUSE file system\n\n *ops* has to be an instance of the `Operations` class (or another\n class defining the same methods).\n\n *args* has to be a set of strings. `default_options` provides some\n reasonable defaults. It is recommended to use these options as a basis and\n add or remove options as necessary. For example::\n\n my_opts = set(pyfuse3.default_options)\n my_opts.add('allow_other')\n my_opts.discard('default_permissions')\n pyfuse3.init(ops, mountpoint, my_opts)\n\n Valid options are listed under ``struct\n fuse_opt fuse_mount_opts[]``\n (in `mount.c `_)\n and ``struct fuse_opt fuse_ll_opts[]``\n (in `fuse_lowlevel_c `_).\n "); static PyMethodDef __pyx_mdef_7pyfuse3_107init = {"init", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_107init, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_106init}; static PyObject *__pyx_pw_7pyfuse3_107init(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_ops = 0; PyObject *__pyx_v_mountpoint = 0; PyObject *__pyx_v_options = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("init (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_ops,&__pyx_mstate_global->__pyx_n_u_mountpoint,&__pyx_mstate_global->__pyx_n_u_options,0}; struct __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self); const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 780, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "init", 0) < (0)) __PYX_ERR(0, 780, __pyx_L3_error) if (!values[2]) values[2] = __Pyx_NewRef(__pyx_dynamic_args->arg0); for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("init", 0, 2, 3, i); __PYX_ERR(0, 780, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 780, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 780, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } if (!values[2]) values[2] = __Pyx_NewRef(__pyx_dynamic_args->arg0); } __pyx_v_ops = values[0]; __pyx_v_mountpoint = values[1]; __pyx_v_options = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("init", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 780, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.init", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_106init(__pyx_self, __pyx_v_ops, __pyx_v_mountpoint, __pyx_v_options); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_106init(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_ops, PyObject *__pyx_v_mountpoint, PyObject *__pyx_v_options) { struct fuse_args __pyx_v_f_args; int __pyx_v_res; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; size_t __pyx_t_5; int __pyx_t_6; int __pyx_t_7; char *__pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("init", 0); /* "pyfuse3/__init__.pyx":802 * ''' * * log.debug('Initializing pyfuse3') # <<<<<<<<<<<<<< * cdef fuse_args f_args * cdef int res */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_5 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Initializing_pyfuse3}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3/__init__.pyx":806 * cdef int res * * if not isinstance(mountpoint, str): # <<<<<<<<<<<<<< * raise TypeError('*mountpoint_* argument must be of type str') * */ __pyx_t_6 = PyUnicode_Check(__pyx_v_mountpoint); __pyx_t_7 = (!__pyx_t_6); if (unlikely(__pyx_t_7)) { /* "pyfuse3/__init__.pyx":807 * * if not isinstance(mountpoint, str): * raise TypeError('*mountpoint_* argument must be of type str') # <<<<<<<<<<<<<< * * global operations */ __pyx_t_4 = NULL; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_mountpoint__argument_must_be_of}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 807, __pyx_L1_error) /* "pyfuse3/__init__.pyx":806 * cdef int res * * if not isinstance(mountpoint, str): # <<<<<<<<<<<<<< * raise TypeError('*mountpoint_* argument must be of type str') * */ } /* "pyfuse3/__init__.pyx":816 * global worker_data * * worker_data = _WorkerData() # <<<<<<<<<<<<<< * mountpoint_b = str2bytes(os.path.abspath(mountpoint)) * operations = ops */ __pyx_t_4 = NULL; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyfuse3__WorkerData, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 816, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_1); } __Pyx_XGOTREF((PyObject *)__pyx_v_7pyfuse3_worker_data); __Pyx_DECREF_SET(__pyx_v_7pyfuse3_worker_data, ((struct __pyx_obj_7pyfuse3__WorkerData *)__pyx_t_1)); __Pyx_GIVEREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3/__init__.pyx":817 * * worker_data = _WorkerData() * mountpoint_b = str2bytes(os.path.abspath(mountpoint)) # <<<<<<<<<<<<<< * operations = ops * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_mountpoint}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_abspath, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_3 = __pyx_f_7pyfuse3_str2bytes(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_v_7pyfuse3_mountpoint_b); __Pyx_DECREF_SET(__pyx_v_7pyfuse3_mountpoint_b, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":818 * worker_data = _WorkerData() * mountpoint_b = str2bytes(os.path.abspath(mountpoint)) * operations = ops # <<<<<<<<<<<<<< * * make_fuse_args(options, &f_args) */ __Pyx_INCREF(__pyx_v_ops); __Pyx_XGOTREF(__pyx_v_7pyfuse3_operations); __Pyx_DECREF_SET(__pyx_v_7pyfuse3_operations, __pyx_v_ops); __Pyx_GIVEREF(__pyx_v_ops); /* "pyfuse3/__init__.pyx":820 * operations = ops * * make_fuse_args(options, &f_args) # <<<<<<<<<<<<<< * * log.debug('Calling fuse_session_new') */ __pyx_t_3 = __pyx_f_7pyfuse3_make_fuse_args(__pyx_v_options, (&__pyx_v_f_args)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":822 * make_fuse_args(options, &f_args) * * log.debug('Calling fuse_session_new') # <<<<<<<<<<<<<< * init_fuse_ops() * session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) */ __pyx_t_1 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); assert(__pyx_t_1); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_2, __pyx__function); __pyx_t_5 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_Calling_fuse_session_new}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":823 * * log.debug('Calling fuse_session_new') * init_fuse_ops() # <<<<<<<<<<<<<< * session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) * if not session: */ __pyx_f_7pyfuse3_init_fuse_ops(); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 823, __pyx_L1_error) /* "pyfuse3/__init__.pyx":824 * log.debug('Calling fuse_session_new') * init_fuse_ops() * session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) # <<<<<<<<<<<<<< * if not session: * raise RuntimeError("fuse_session_new() failed") */ __pyx_v_7pyfuse3_session = fuse_session_new((&__pyx_v_f_args), (&__pyx_v_7pyfuse3_fuse_ops), (sizeof(__pyx_v_7pyfuse3_fuse_ops)), NULL); /* "pyfuse3/__init__.pyx":825 * init_fuse_ops() * session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) * if not session: # <<<<<<<<<<<<<< * raise RuntimeError("fuse_session_new() failed") * */ __pyx_t_7 = (!(__pyx_v_7pyfuse3_session != 0)); if (unlikely(__pyx_t_7)) { /* "pyfuse3/__init__.pyx":826 * session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) * if not session: * raise RuntimeError("fuse_session_new() failed") # <<<<<<<<<<<<<< * * log.debug('Calling fuse_session_mount') */ __pyx_t_2 = NULL; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_fuse_session_new_failed}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 826, __pyx_L1_error) /* "pyfuse3/__init__.pyx":825 * init_fuse_ops() * session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) * if not session: # <<<<<<<<<<<<<< * raise RuntimeError("fuse_session_new() failed") * */ } /* "pyfuse3/__init__.pyx":828 * raise RuntimeError("fuse_session_new() failed") * * log.debug('Calling fuse_session_mount') # <<<<<<<<<<<<<< * res = fuse_session_mount(session, mountpoint_b) * if res != 0: */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_5 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Calling_fuse_session_mount}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":829 * * log.debug('Calling fuse_session_mount') * res = fuse_session_mount(session, mountpoint_b) # <<<<<<<<<<<<<< * if res != 0: * raise RuntimeError('fuse_session_mount failed') */ __pyx_t_8 = __Pyx_PyObject_AsWritableString(__pyx_v_7pyfuse3_mountpoint_b); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 829, __pyx_L1_error) __pyx_v_res = fuse_session_mount(__pyx_v_7pyfuse3_session, ((char *)__pyx_t_8)); /* "pyfuse3/__init__.pyx":830 * log.debug('Calling fuse_session_mount') * res = fuse_session_mount(session, mountpoint_b) * if res != 0: # <<<<<<<<<<<<<< * raise RuntimeError('fuse_session_mount failed') * */ __pyx_t_7 = (__pyx_v_res != 0); if (unlikely(__pyx_t_7)) { /* "pyfuse3/__init__.pyx":831 * res = fuse_session_mount(session, mountpoint_b) * if res != 0: * raise RuntimeError('fuse_session_mount failed') # <<<<<<<<<<<<<< * * session_fd = fuse_session_fd(session) */ __pyx_t_4 = NULL; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_fuse_session_mount_failed}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 831, __pyx_L1_error) /* "pyfuse3/__init__.pyx":830 * log.debug('Calling fuse_session_mount') * res = fuse_session_mount(session, mountpoint_b) * if res != 0: # <<<<<<<<<<<<<< * raise RuntimeError('fuse_session_mount failed') * */ } /* "pyfuse3/__init__.pyx":833 * raise RuntimeError('fuse_session_mount failed') * * session_fd = fuse_session_fd(session) # <<<<<<<<<<<<<< * * */ __pyx_v_7pyfuse3_session_fd = fuse_session_fd(__pyx_v_7pyfuse3_session); /* "pyfuse3/__init__.pyx":780 * default_options = frozenset(('default_permissions',)) * * def init(ops, mountpoint, options=default_options): # <<<<<<<<<<<<<< * '''Initialize and mount FUSE file system * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.init", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_110generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "pyfuse3/__init__.pyx":836 * * * @async_wrapper # <<<<<<<<<<<<<< * async def main(int min_tasks=1, int max_tasks=99): * '''Run FUSE main loop''' */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_109main(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_108main, "Run FUSE main loop"); static PyMethodDef __pyx_mdef_7pyfuse3_109main = {"main", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_109main, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_108main}; static PyObject *__pyx_pw_7pyfuse3_109main(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { int __pyx_v_min_tasks; int __pyx_v_max_tasks; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("main (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_min_tasks,&__pyx_mstate_global->__pyx_n_u_max_tasks,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 836, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 836, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 836, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "main", 0) < (0)) __PYX_ERR(0, 836, __pyx_L3_error) } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 836, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 836, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } if (values[0]) { __pyx_v_min_tasks = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_min_tasks == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 837, __pyx_L3_error) } else { __pyx_v_min_tasks = ((int)((int)1)); } if (values[1]) { __pyx_v_max_tasks = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_max_tasks == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 837, __pyx_L3_error) } else { __pyx_v_max_tasks = ((int)((int)99)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("main", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 836, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.main", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_108main(__pyx_self, __pyx_v_min_tasks, __pyx_v_max_tasks); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_108main(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_min_tasks, int __pyx_v_max_tasks) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("main", 0); __pyx_cur_scope = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_32_main(__pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(0, 836, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_min_tasks = __pyx_v_min_tasks; __pyx_cur_scope->__pyx_v_max_tasks = __pyx_v_max_tasks; { __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_7pyfuse3_110generator32, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_main, __pyx_mstate_global->__pyx_n_u_main, __pyx_mstate_global->__pyx_n_u_pyfuse3); if (unlikely(!gen)) __PYX_ERR(0, 836, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyfuse3.main", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_7pyfuse3_110generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main *__pyx_cur_scope = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main *)__pyx_generator->closure); PyObject *__pyx_r = NULL; int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; __Pyx_PySendResult __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; int __pyx_t_16; int __pyx_t_17; int __pyx_t_18; char const *__pyx_t_19; PyObject *__pyx_t_20 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("main", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L9_resume_from_await; case 2: goto __pyx_L22_resume_from_await; case 3: goto __pyx_L23_resume_from_await; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(__pyx_sent_value != Py_None)) { if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine"); __PYX_ERR(0, 836, __pyx_L1_error) } /* "pyfuse3/__init__.pyx":840 * '''Run FUSE main loop''' * * if session == NULL: # <<<<<<<<<<<<<< * raise RuntimeError('Need to call init() before main()') * */ __pyx_t_1 = (__pyx_v_7pyfuse3_session == NULL); if (unlikely(__pyx_t_1)) { /* "pyfuse3/__init__.pyx":841 * * if session == NULL: * raise RuntimeError('Need to call init() before main()') # <<<<<<<<<<<<<< * * global trio_token */ __pyx_t_3 = NULL; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Need_to_call_init_before_main}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 841, __pyx_L1_error) /* "pyfuse3/__init__.pyx":840 * '''Run FUSE main loop''' * * if session == NULL: # <<<<<<<<<<<<<< * raise RuntimeError('Need to call init() before main()') * */ } /* "pyfuse3/__init__.pyx":844 * * global trio_token * trio_token = trio.lowlevel.current_trio_token() # <<<<<<<<<<<<<< * * try: */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_trio); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_lowlevel); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = __pyx_t_6; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_current_trio_token, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_trio_token, __pyx_t_2) < (0)) __PYX_ERR(0, 844, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":846 * trio_token = trio.lowlevel.current_trio_token() * * try: # <<<<<<<<<<<<<< * async with trio.open_nursery() as nursery: * worker_data.task_count = 1 */ /*try:*/ { /* "pyfuse3/__init__.pyx":847 * * try: * async with trio.open_nursery() as nursery: # <<<<<<<<<<<<<< * worker_data.task_count = 1 * worker_data.task_serial = 1 */ /*with:*/ { __pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_trio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 847, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_open_nursery); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_4 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_aexit); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 847, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = NULL; __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_aenter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 847, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS if (likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); __pyx_t_4 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); } __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_5, &__pyx_r); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_1 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L9_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_7 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 847, __pyx_L8_error) __pyx_t_5 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_5); } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_5 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(0, 847, __pyx_L8_error) } __pyx_t_3 = __pyx_t_5; __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /*try:*/ { { __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); /*try:*/ { __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_nursery = __pyx_t_3; __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":848 * try: * async with trio.open_nursery() as nursery: * worker_data.task_count = 1 # <<<<<<<<<<<<<< * worker_data.task_serial = 1 * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, */ __pyx_v_7pyfuse3_worker_data->task_count = 1; /* "pyfuse3/__init__.pyx":849 * async with trio.open_nursery() as nursery: * worker_data.task_count = 1 * worker_data.task_serial = 1 # <<<<<<<<<<<<<< * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, * name=worker_data.get_name()) */ __pyx_v_7pyfuse3_worker_data->task_serial = 1; /* "pyfuse3/__init__.pyx":850 * worker_data.task_count = 1 * worker_data.task_serial = 1 * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, # <<<<<<<<<<<<<< * name=worker_data.get_name()) * finally: */ __pyx_t_2 = __pyx_cur_scope->__pyx_v_nursery; __Pyx_INCREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_session_loop); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 850, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_min_tasks); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 850, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_12 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_max_tasks); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 850, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_12); /* "pyfuse3/__init__.pyx":851 * worker_data.task_serial = 1 * nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, * name=worker_data.get_name()) # <<<<<<<<<<<<<< * finally: * trio_token = None */ __pyx_t_13 = ((struct __pyx_vtabstruct_7pyfuse3__WorkerData *)__pyx_v_7pyfuse3_worker_data->__pyx_vtab)->get_name(__pyx_v_7pyfuse3_worker_data); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 851, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_4 = 0; { PyObject *__pyx_callargs[5 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, __pyx_t_5, __pyx_cur_scope->__pyx_v_nursery, __pyx_t_6, __pyx_t_12}; __pyx_t_14 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 850, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_14); if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_name, __pyx_t_13, __pyx_t_14, __pyx_callargs+5, 0) < (0)) __PYX_ERR(0, 850, __pyx_L13_error) __pyx_t_3 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_start_soon, __pyx_callargs+__pyx_t_4, (5-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_14); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 850, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pyfuse3/__init__.pyx":847 * * try: * async with trio.open_nursery() as nursery: # <<<<<<<<<<<<<< * worker_data.task_count = 1 * worker_data.task_serial = 1 */ } __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L18_try_end; __pyx_L13_error:; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /*except:*/ { __Pyx_AddTraceback("pyfuse3.main", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_14, &__pyx_t_13) < 0) __PYX_ERR(0, 847, __pyx_L15_except_error) __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_13); __pyx_t_12 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_14, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 847, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 847, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_15, &__pyx_r); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_0 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_1 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_2 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_3 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_4 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_13); __pyx_cur_scope->__pyx_t_5 = __pyx_t_13; __Pyx_XGIVEREF(__pyx_t_14); __pyx_cur_scope->__pyx_t_6 = __pyx_t_14; __Pyx_XGIVEREF(__pyx_t_15); __pyx_cur_scope->__pyx_t_7 = __pyx_t_15; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_SwapException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L22_resume_from_await:; __pyx_t_3 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_7 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_9 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_13 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_13); __pyx_t_14 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_14); __pyx_t_15 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 847, __pyx_L15_except_error) __pyx_t_12 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_12); } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_12 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(0, 847, __pyx_L15_except_error) } __pyx_t_15 = __pyx_t_12; __pyx_t_12 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_15); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (__pyx_t_1 < (0)) __PYX_ERR(0, 847, __pyx_L15_except_error) __pyx_t_16 = (!__pyx_t_1); if (unlikely(__pyx_t_16)) { __Pyx_GIVEREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_14, __pyx_t_13); __pyx_t_3 = 0; __pyx_t_14 = 0; __pyx_t_13 = 0; __PYX_ERR(0, 847, __pyx_L15_except_error) } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; goto __pyx_L14_exception_handled; } __pyx_L15_except_error:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); goto __pyx_L6_error; __pyx_L14_exception_handled:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); __pyx_L18_try_end:; } } /*finally:*/ { /*normal exit:*/{ if (__pyx_t_7) { __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_mstate_global->__pyx_tuple[0], NULL); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 847, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_11, &__pyx_r); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (likely(__pyx_t_8 == PYGEN_NEXT)) { __Pyx_GOTREF(__pyx_r); __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_0 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_1 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L23_resume_from_await:; __pyx_t_7 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_11 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 847, __pyx_L6_error) __pyx_t_13 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_13); } else if (likely(__pyx_t_8 == PYGEN_RETURN)) { __Pyx_GOTREF(__pyx_r); __pyx_t_13 = __pyx_r; __pyx_r = NULL; } else { __Pyx_XGOTREF(__pyx_r); __PYX_ERR(0, 847, __pyx_L6_error) } __pyx_t_11 = __pyx_t_13; __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } goto __pyx_L12; } __pyx_L12:; } goto __pyx_L24; __pyx_L8_error:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_error; __pyx_L24:; } } /* "pyfuse3/__init__.pyx":853 * name=worker_data.get_name()) * finally: * trio_token = None # <<<<<<<<<<<<<< * if _notify_queue is not None: * _notify_queue.put(None) */ /*finally:*/ { /*normal exit:*/{ if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_trio_token, Py_None) < (0)) __PYX_ERR(0, 853, __pyx_L1_error) /* "pyfuse3/__init__.pyx":854 * finally: * trio_token = None * if _notify_queue is not None: # <<<<<<<<<<<<<< * _notify_queue.put(None) * */ __pyx_t_16 = (__pyx_v_7pyfuse3__notify_queue != Py_None); if (__pyx_t_16) { /* "pyfuse3/__init__.pyx":855 * trio_token = None * if _notify_queue is not None: * _notify_queue.put(None) # <<<<<<<<<<<<<< * * */ __pyx_t_14 = __pyx_v_7pyfuse3__notify_queue; __Pyx_INCREF(__pyx_t_14); __pyx_t_4 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_14, Py_None}; __pyx_t_13 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_put, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; /* "pyfuse3/__init__.pyx":854 * finally: * trio_token = None * if _notify_queue is not None: # <<<<<<<<<<<<<< * _notify_queue.put(None) * */ } goto __pyx_L7; } __pyx_L6_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_7 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_15, &__pyx_t_20); if ( unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_11, &__pyx_t_10); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_20); __pyx_t_17 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename; { /* "pyfuse3/__init__.pyx":853 * name=worker_data.get_name()) * finally: * trio_token = None # <<<<<<<<<<<<<< * if _notify_queue is not None: * _notify_queue.put(None) */ if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_trio_token, Py_None) < (0)) __PYX_ERR(0, 853, __pyx_L27_error) /* "pyfuse3/__init__.pyx":854 * finally: * trio_token = None * if _notify_queue is not None: # <<<<<<<<<<<<<< * _notify_queue.put(None) * */ __pyx_t_16 = (__pyx_v_7pyfuse3__notify_queue != Py_None); if (__pyx_t_16) { /* "pyfuse3/__init__.pyx":855 * trio_token = None * if _notify_queue is not None: * _notify_queue.put(None) # <<<<<<<<<<<<<< * * */ __pyx_t_14 = __pyx_v_7pyfuse3__notify_queue; __Pyx_INCREF(__pyx_t_14); __pyx_t_4 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_14, Py_None}; __pyx_t_13 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_put, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 855, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_13); } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; /* "pyfuse3/__init__.pyx":854 * finally: * trio_token = None * if _notify_queue is not None: # <<<<<<<<<<<<<< * _notify_queue.put(None) * */ } } __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_15, __pyx_t_20); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_ErrRestore(__pyx_t_7, __pyx_t_11, __pyx_t_10); __pyx_t_7 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_20 = 0; __pyx_lineno = __pyx_t_17; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_19; goto __pyx_L1_error; __pyx_L27_error:; __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_15, __pyx_t_20); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_20 = 0; goto __pyx_L1_error; } __pyx_L7:; } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "pyfuse3/__init__.pyx":836 * * * @async_wrapper # <<<<<<<<<<<<<< * async def main(int min_tasks=1, int max_tasks=99): * '''Run FUSE main loop''' */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); if (__Pyx_PyErr_Occurred()) { __Pyx_Generator_Replace_StopIteration(0); __Pyx_AddTraceback("main", __pyx_clineno, __pyx_lineno, __pyx_filename); } __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":858 * * * def terminate(): # <<<<<<<<<<<<<< * '''Terminate FUSE main loop. * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_112terminate(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_111terminate, "Terminate FUSE main loop.\n\n This function gracefully terminates the FUSE main loop (resulting in the call to\n main() to return).\n\n When called by a thread different from the one that runs the main loop, the call must\n be wrapped with `trio.from_thread.run_sync`. The necessary *trio_token* argument can\n (for convenience) be retrieved from the `trio_token` module attribute.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_112terminate = {"terminate", (PyCFunction)__pyx_pw_7pyfuse3_112terminate, METH_NOARGS, __pyx_doc_7pyfuse3_111terminate}; static PyObject *__pyx_pw_7pyfuse3_112terminate(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("terminate (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); __pyx_r = __pyx_pf_7pyfuse3_111terminate(__pyx_self); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_111terminate(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; size_t __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("terminate", 0); /* "pyfuse3/__init__.pyx":869 * ''' * * fuse_session_exit(session) # <<<<<<<<<<<<<< * trio.lowlevel.notify_closing(session_fd) * */ fuse_session_exit(__pyx_v_7pyfuse3_session); /* "pyfuse3/__init__.pyx":870 * * fuse_session_exit(session) * trio.lowlevel.notify_closing(session_fd) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_trio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_lowlevel); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_4; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_7pyfuse3_session_fd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_notify_closing, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3/__init__.pyx":858 * * * def terminate(): # <<<<<<<<<<<<<< * '''Terminate FUSE main loop. * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyfuse3.terminate", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":873 * * * def close(unmount=True): # <<<<<<<<<<<<<< * '''Clean up and ensure filesystem is unmounted * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_114close(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_113close, "Clean up and ensure filesystem is unmounted\n\n If *unmount* is False, only clean up operations are performed, but the file\n system is not explicitly unmounted.\n\n Normally, the filesystem is unmounted by the user calling umount(8) or\n fusermount(1), which then terminates the FUSE main loop. However, the loop\n may also terminate as a result of an exception or a signal. In this case the\n filesystem remains mounted, but any attempt to access it will block (while\n the filesystem process is still running) or (after the filesystem process\n has terminated) return an error. If *unmount* is True, this function will\n ensure that the filesystem is properly unmounted.\n\n Note: if the connection to the kernel is terminated via the\n ``/sys/fs/fuse/connections/`` interface, this function will *not* unmount\n the filesystem even if *unmount* is True.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_114close = {"close", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_114close, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_113close}; static PyObject *__pyx_pw_7pyfuse3_114close(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_unmount = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("close (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_unmount,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 873, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 873, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "close", 0) < (0)) __PYX_ERR(0, 873, __pyx_L3_error) if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True))); } else { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 873, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True))); } __pyx_v_unmount = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("close", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 873, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.close", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_113close(__pyx_self, __pyx_v_unmount); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_113close(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_unmount) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; size_t __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("close", 0); /* "pyfuse3/__init__.pyx":895 * global session * * if unmount: # <<<<<<<<<<<<<< * log.debug('Calling fuse_session_unmount') * fuse_session_unmount(session) */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_unmount); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 895, __pyx_L1_error) if (__pyx_t_1) { /* "pyfuse3/__init__.pyx":896 * * if unmount: * log.debug('Calling fuse_session_unmount') # <<<<<<<<<<<<<< * fuse_session_unmount(session) * */ __pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_3); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Calling_fuse_session_unmount}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":897 * if unmount: * log.debug('Calling fuse_session_unmount') * fuse_session_unmount(session) # <<<<<<<<<<<<<< * * log.debug('Calling fuse_session_destroy') */ fuse_session_unmount(__pyx_v_7pyfuse3_session); /* "pyfuse3/__init__.pyx":895 * global session * * if unmount: # <<<<<<<<<<<<<< * log.debug('Calling fuse_session_unmount') * fuse_session_unmount(session) */ } /* "pyfuse3/__init__.pyx":899 * fuse_session_unmount(session) * * log.debug('Calling fuse_session_destroy') # <<<<<<<<<<<<<< * fuse_session_destroy(session) * */ __pyx_t_5 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_5); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_Calling_fuse_session_destroy}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":900 * * log.debug('Calling fuse_session_destroy') * fuse_session_destroy(session) # <<<<<<<<<<<<<< * * mountpoint_b = None */ fuse_session_destroy(__pyx_v_7pyfuse3_session); /* "pyfuse3/__init__.pyx":902 * fuse_session_destroy(session) * * mountpoint_b = None # <<<<<<<<<<<<<< * session = NULL * */ __Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7pyfuse3_mountpoint_b); __Pyx_DECREF_SET(__pyx_v_7pyfuse3_mountpoint_b, Py_None); __Pyx_GIVEREF(Py_None); /* "pyfuse3/__init__.pyx":903 * * mountpoint_b = None * session = NULL # <<<<<<<<<<<<<< * * */ __pyx_v_7pyfuse3_session = NULL; /* "pyfuse3/__init__.pyx":873 * * * def close(unmount=True): # <<<<<<<<<<<<<< * '''Clean up and ensure filesystem is unmounted * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.close", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":906 * * * def invalidate_inode(fuse_ino_t inode, attr_only=False): # <<<<<<<<<<<<<< * '''Invalidate cache for *inode* * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_116invalidate_inode(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_115invalidate_inode, "Invalidate cache for *inode*\n\n Instructs the FUSE kernel module to forget cached attributes and\n data (unless *attr_only* is True) for *inode*.\n\n **This operation may block** if writeback caching is active and there is\n dirty data for the inode that is to be invalidated. Unfortunately there is\n no way to return control to the event loop until writeback is complete\n (leading to a deadlock if the necessary write() requests cannot be processed\n by the filesystem). Unless writeback caching is disabled, this function\n should therefore be called from a separate thread.\n\n If the operation is not supported by the kernel, raises `OSError`\n with errno ENOSYS.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_116invalidate_inode = {"invalidate_inode", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_116invalidate_inode, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_115invalidate_inode}; static PyObject *__pyx_pw_7pyfuse3_116invalidate_inode(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { fuse_ino_t __pyx_v_inode; PyObject *__pyx_v_attr_only = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("invalidate_inode (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_inode,&__pyx_mstate_global->__pyx_n_u_attr_only,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 906, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 906, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 906, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "invalidate_inode", 0) < (0)) __PYX_ERR(0, 906, __pyx_L3_error) if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("invalidate_inode", 0, 1, 2, i); __PYX_ERR(0, 906, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 906, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 906, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); } __pyx_v_inode = __Pyx_PyLong_As_fuse_ino_t(values[0]); if (unlikely((__pyx_v_inode == ((fuse_ino_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 906, __pyx_L3_error) __pyx_v_attr_only = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("invalidate_inode", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 906, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.invalidate_inode", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_115invalidate_inode(__pyx_self, __pyx_v_inode, __pyx_v_attr_only); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_115invalidate_inode(CYTHON_UNUSED PyObject *__pyx_self, fuse_ino_t __pyx_v_inode, PyObject *__pyx_v_attr_only) { int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("invalidate_inode", 0); /* "pyfuse3/__init__.pyx":924 * * cdef int ret * if attr_only: # <<<<<<<<<<<<<< * with nogil: * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_attr_only); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 924, __pyx_L1_error) if (__pyx_t_1) { /* "pyfuse3/__init__.pyx":925 * cdef int ret * if attr_only: * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) * else: */ { PyThreadState * _save; _save = PyEval_SaveThread(); __Pyx_FastGIL_Remember(); /*try:*/ { /* "pyfuse3/__init__.pyx":926 * if attr_only: * with nogil: * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) # <<<<<<<<<<<<<< * else: * with nogil: */ __pyx_v_ret = fuse_lowlevel_notify_inval_inode(__pyx_v_7pyfuse3_session, __pyx_v_inode, -1L, 0); } /* "pyfuse3/__init__.pyx":925 * cdef int ret * if attr_only: * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) * else: */ /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); goto __pyx_L6; } __pyx_L6:; } } /* "pyfuse3/__init__.pyx":924 * * cdef int ret * if attr_only: # <<<<<<<<<<<<<< * with nogil: * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) */ goto __pyx_L3; } /* "pyfuse3/__init__.pyx":928 * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) * else: * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_inval_inode(session, inode, 0, 0) * */ /*else*/ { { PyThreadState * _save; _save = PyEval_SaveThread(); __Pyx_FastGIL_Remember(); /*try:*/ { /* "pyfuse3/__init__.pyx":929 * else: * with nogil: * ret = fuse_lowlevel_notify_inval_inode(session, inode, 0, 0) # <<<<<<<<<<<<<< * * if ret != 0: */ __pyx_v_ret = fuse_lowlevel_notify_inval_inode(__pyx_v_7pyfuse3_session, __pyx_v_inode, 0, 0); } /* "pyfuse3/__init__.pyx":928 * ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) * else: * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_inval_inode(session, inode, 0, 0) * */ /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); goto __pyx_L9; } __pyx_L9:; } } } __pyx_L3:; /* "pyfuse3/__init__.pyx":931 * ret = fuse_lowlevel_notify_inval_inode(session, inode, 0, 0) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_inval_inode returned: ' + strerror(-ret)) * */ __pyx_t_1 = (__pyx_v_ret != 0); if (unlikely(__pyx_t_1)) { /* "pyfuse3/__init__.pyx":932 * * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_inval_inode returned: ' + strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = NULL; __pyx_t_4 = __Pyx_PyLong_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __pyx_f_7pyfuse3_strerror((-__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyNumber_Add(__pyx_mstate_global->__pyx_kp_u_fuse_lowlevel_notify_inval_inode, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = 1; { PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_4, __pyx_t_6}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OSError)), __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 932, __pyx_L1_error) /* "pyfuse3/__init__.pyx":931 * ret = fuse_lowlevel_notify_inval_inode(session, inode, 0, 0) * * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_inval_inode returned: ' + strerror(-ret)) * */ } /* "pyfuse3/__init__.pyx":906 * * * def invalidate_inode(fuse_ino_t inode, attr_only=False): # <<<<<<<<<<<<<< * '''Invalidate cache for *inode* * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.invalidate_inode", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":935 * * * def invalidate_entry(fuse_ino_t inode_p, bytes name, fuse_ino_t deleted=0): # <<<<<<<<<<<<<< * '''Invalidate directory entry * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_118invalidate_entry(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_117invalidate_entry, "Invalidate directory entry\n\n Instructs the FUSE kernel module to forget about the directory entry *name*\n in the directory with inode *inode_p*.\n\n If the inode passed as *deleted* matches the inode that is currently\n associated with *name* by the kernel, any inotify watchers of this inode are\n informed that the entry has been deleted.\n\n If there is a pending filesystem operation that is related to the parent\n directory or directory entry, this function will block until that operation\n has completed. Therefore, to avoid a deadlock this function must not be\n called while handling a related request, nor while holding a lock that could\n be needed for handling such a request.\n\n As for kernel 4.18, a \"related operation\" is a `~Operations.lookup`,\n `~Operations.symlink`, `~Operations.mknod`, `~Operations.mkdir`,\n `~Operations.unlink`, `~Operations.rename`, `~Operations.link` or\n `~Operations.create` request for the parent, and a `~Operations.setattr`,\n `~Operations.unlink`, `~Operations.rmdir`, `~Operations.rename`,\n `~Operations.setxattr`, `~Operations.removexattr` or `~Operations.readdir`\n request for the inode itself.\n\n For technical reasons, this function can also not return control to the main\n event loop but will actually block. To return control to the event loop\n while this function is running, call it in a separate thread using\n `trio.run_sync_in_worker_thread\n `_.\n A less complicated alternative is to use the `invalidate_entry_async` function\n instead.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_118invalidate_entry = {"invalidate_entry", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_118invalidate_entry, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_117invalidate_entry}; static PyObject *__pyx_pw_7pyfuse3_118invalidate_entry(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { fuse_ino_t __pyx_v_inode_p; PyObject *__pyx_v_name = 0; fuse_ino_t __pyx_v_deleted; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("invalidate_entry (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_inode_p,&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_deleted,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 935, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 935, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 935, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 935, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "invalidate_entry", 0) < (0)) __PYX_ERR(0, 935, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("invalidate_entry", 0, 2, 3, i); __PYX_ERR(0, 935, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 935, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 935, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 935, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_inode_p = __Pyx_PyLong_As_fuse_ino_t(values[0]); if (unlikely((__pyx_v_inode_p == ((fuse_ino_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 935, __pyx_L3_error) __pyx_v_name = ((PyObject*)values[1]); if (values[2]) { __pyx_v_deleted = __Pyx_PyLong_As_fuse_ino_t(values[2]); if (unlikely((__pyx_v_deleted == ((fuse_ino_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 935, __pyx_L3_error) } else { __pyx_v_deleted = ((fuse_ino_t)((fuse_ino_t)0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("invalidate_entry", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 935, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.invalidate_entry", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyBytes_Type), 1, "name", 1))) __PYX_ERR(0, 935, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_117invalidate_entry(__pyx_self, __pyx_v_inode_p, __pyx_v_name, __pyx_v_deleted); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_117invalidate_entry(CYTHON_UNUSED PyObject *__pyx_self, fuse_ino_t __pyx_v_inode_p, PyObject *__pyx_v_name, fuse_ino_t __pyx_v_deleted) { char *__pyx_v_cname; Py_ssize_t __pyx_v_slen; size_t __pyx_v_len_; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("invalidate_entry", 0); /* "pyfuse3/__init__.pyx":973 * cdef int ret * * PyBytes_AsStringAndSize(name, &cname, &slen) # <<<<<<<<<<<<<< * # len_ is guaranteed positive * len_ = slen */ __pyx_t_1 = PyBytes_AsStringAndSize(__pyx_v_name, (&__pyx_v_cname), ((Py_ssize_t *)(&__pyx_v_slen))); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 973, __pyx_L1_error) /* "pyfuse3/__init__.pyx":975 * PyBytes_AsStringAndSize(name, &cname, &slen) * # len_ is guaranteed positive * len_ = slen # <<<<<<<<<<<<<< * * if deleted: */ __pyx_v_len_ = ((size_t)__pyx_v_slen); /* "pyfuse3/__init__.pyx":977 * len_ = slen * * if deleted: # <<<<<<<<<<<<<< * with nogil: # might block! * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) */ __pyx_t_2 = (__pyx_v_deleted != 0); if (__pyx_t_2) { /* "pyfuse3/__init__.pyx":978 * * if deleted: * with nogil: # might block! # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) * if ret != 0: */ { PyThreadState * _save; _save = PyEval_SaveThread(); __Pyx_FastGIL_Remember(); /*try:*/ { /* "pyfuse3/__init__.pyx":979 * if deleted: * with nogil: # might block! * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) # <<<<<<<<<<<<<< * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_delete returned: ' */ __pyx_v_ret = fuse_lowlevel_notify_delete(__pyx_v_7pyfuse3_session, __pyx_v_inode_p, __pyx_v_deleted, __pyx_v_cname, __pyx_v_len_); } /* "pyfuse3/__init__.pyx":978 * * if deleted: * with nogil: # might block! # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) * if ret != 0: */ /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); goto __pyx_L6; } __pyx_L6:; } } /* "pyfuse3/__init__.pyx":980 * with nogil: # might block! * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_delete returned: ' * + strerror(-ret)) */ __pyx_t_2 = (__pyx_v_ret != 0); if (unlikely(__pyx_t_2)) { /* "pyfuse3/__init__.pyx":981 * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_delete returned: ' # <<<<<<<<<<<<<< * + strerror(-ret)) * else: */ __pyx_t_4 = NULL; __pyx_t_5 = __Pyx_PyLong_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); /* "pyfuse3/__init__.pyx":982 * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_delete returned: ' * + strerror(-ret)) # <<<<<<<<<<<<<< * else: * with nogil: # might block! */ __pyx_t_6 = __pyx_f_7pyfuse3_strerror((-__pyx_v_ret)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyNumber_Add(__pyx_mstate_global->__pyx_kp_u_fuse_lowlevel_notify_delete_retu, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8 = 1; { PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OSError)), __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 981, __pyx_L1_error) /* "pyfuse3/__init__.pyx":980 * with nogil: # might block! * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_delete returned: ' * + strerror(-ret)) */ } /* "pyfuse3/__init__.pyx":977 * len_ = slen * * if deleted: # <<<<<<<<<<<<<< * with nogil: # might block! * ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) */ goto __pyx_L3; } /* "pyfuse3/__init__.pyx":984 * + strerror(-ret)) * else: * with nogil: # might block! # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) * if ret != 0: */ /*else*/ { { PyThreadState * _save; _save = PyEval_SaveThread(); __Pyx_FastGIL_Remember(); /*try:*/ { /* "pyfuse3/__init__.pyx":985 * else: * with nogil: # might block! * ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) # <<<<<<<<<<<<<< * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_inval_entry returned: ' */ __pyx_v_ret = fuse_lowlevel_notify_inval_entry(__pyx_v_7pyfuse3_session, __pyx_v_inode_p, __pyx_v_cname, __pyx_v_len_); } /* "pyfuse3/__init__.pyx":984 * + strerror(-ret)) * else: * with nogil: # might block! # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) * if ret != 0: */ /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); goto __pyx_L10; } __pyx_L10:; } } /* "pyfuse3/__init__.pyx":986 * with nogil: # might block! * ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_inval_entry returned: ' * + strerror(-ret)) */ __pyx_t_2 = (__pyx_v_ret != 0); if (unlikely(__pyx_t_2)) { /* "pyfuse3/__init__.pyx":987 * ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_inval_entry returned: ' # <<<<<<<<<<<<<< * + strerror(-ret)) * */ __pyx_t_7 = NULL; __pyx_t_5 = __Pyx_PyLong_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); /* "pyfuse3/__init__.pyx":988 * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_inval_entry returned: ' * + strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_4 = __pyx_f_7pyfuse3_strerror((-__pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyNumber_Add(__pyx_mstate_global->__pyx_kp_u_fuse_lowlevel_notify_inval_entry, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_8 = 1; { PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_5, __pyx_t_6}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OSError)), __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 987, __pyx_L1_error) /* "pyfuse3/__init__.pyx":986 * with nogil: # might block! * ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_inval_entry returned: ' * + strerror(-ret)) */ } } __pyx_L3:; /* "pyfuse3/__init__.pyx":935 * * * def invalidate_entry(fuse_ino_t inode_p, bytes name, fuse_ino_t deleted=0): # <<<<<<<<<<<<<< * '''Invalidate directory entry * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("pyfuse3.invalidate_entry", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":991 * * * def invalidate_entry_async(inode_p, name, deleted=0, ignore_enoent=False): # <<<<<<<<<<<<<< * '''Asynchronously invalidate directory entry * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_120invalidate_entry_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_119invalidate_entry_async, "Asynchronously invalidate directory entry\n\n This function performs the same operation as `invalidate_entry`, but does so\n asynchronously in a separate thread. This avoids the deadlocks that may\n occur when using `invalidate_entry` from within a request handler, but means\n that the function generally returns before the kernel has actually\n invalidated the entry, and that no errors can be reported (they will be\n logged though).\n\n The directory entries that are to be invalidated are put in an unbounded\n queue which is processed by a single thread. This means that if the entry at\n the beginning of the queue cannot be invalidated yet because a related file\n system operation is still in progress, none of the other entries will be\n processed and repeated calls to this function will result in continued\n growth of the queue.\n\n If there are errors, an exception is logged using the `logging` module.\n\n If *ignore_enoent* is True, ignore ENOENT errors (which occur if the\n kernel doesn't actually have knowledge of the entry that is to be\n removed).\n "); static PyMethodDef __pyx_mdef_7pyfuse3_120invalidate_entry_async = {"invalidate_entry_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_120invalidate_entry_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_119invalidate_entry_async}; static PyObject *__pyx_pw_7pyfuse3_120invalidate_entry_async(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_inode_p = 0; PyObject *__pyx_v_name = 0; PyObject *__pyx_v_deleted = 0; PyObject *__pyx_v_ignore_enoent = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("invalidate_entry_async (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_inode_p,&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_deleted,&__pyx_mstate_global->__pyx_n_u_ignore_enoent,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 991, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 991, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 991, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 991, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 991, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "invalidate_entry_async", 0) < (0)) __PYX_ERR(0, 991, __pyx_L3_error) if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0))); if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("invalidate_entry_async", 0, 2, 4, i); __PYX_ERR(0, 991, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 991, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 991, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 991, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 991, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0))); if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); } __pyx_v_inode_p = values[0]; __pyx_v_name = values[1]; __pyx_v_deleted = values[2]; __pyx_v_ignore_enoent = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("invalidate_entry_async", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 991, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.invalidate_entry_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_119invalidate_entry_async(__pyx_self, __pyx_v_inode_p, __pyx_v_name, __pyx_v_deleted, __pyx_v_ignore_enoent); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_119invalidate_entry_async(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_inode_p, PyObject *__pyx_v_name, PyObject *__pyx_v_deleted, PyObject *__pyx_v_ignore_enoent) { PyObject *__pyx_v_t = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; size_t __pyx_t_6; PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("invalidate_entry_async", 0); /* "pyfuse3/__init__.pyx":1017 * global _notify_queue * * if _notify_queue is None: # <<<<<<<<<<<<<< * log.debug('Starting notify worker.') * _notify_queue = Queue() */ __pyx_t_1 = (__pyx_v_7pyfuse3__notify_queue == Py_None); if (__pyx_t_1) { /* "pyfuse3/__init__.pyx":1018 * * if _notify_queue is None: * log.debug('Starting notify worker.') # <<<<<<<<<<<<<< * _notify_queue = Queue() * t = threading.Thread(target=_notify_loop) */ __pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_3); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Starting_notify_worker}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":1019 * if _notify_queue is None: * log.debug('Starting notify worker.') * _notify_queue = Queue() # <<<<<<<<<<<<<< * t = threading.Thread(target=_notify_loop) * t.daemon = True */ __pyx_t_5 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Queue); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); assert(__pyx_t_5); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_XGOTREF(__pyx_v_7pyfuse3__notify_queue); __Pyx_DECREF_SET(__pyx_v_7pyfuse3__notify_queue, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":1020 * log.debug('Starting notify worker.') * _notify_queue = Queue() * t = threading.Thread(target=_notify_loop) # <<<<<<<<<<<<<< * t.daemon = True * t.start() */ __pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Thread); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_notify_loop); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_3); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_3, NULL}; __pyx_t_7 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_target, __pyx_t_5, __pyx_t_7, __pyx_callargs+1, 0) < (0)) __PYX_ERR(0, 1020, __pyx_L1_error) __pyx_t_2 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_7); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_t = __pyx_t_2; __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":1021 * _notify_queue = Queue() * t = threading.Thread(target=_notify_loop) * t.daemon = True # <<<<<<<<<<<<<< * t.start() * */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_t, __pyx_mstate_global->__pyx_n_u_daemon, Py_True) < (0)) __PYX_ERR(0, 1021, __pyx_L1_error) /* "pyfuse3/__init__.pyx":1022 * t = threading.Thread(target=_notify_loop) * t.daemon = True * t.start() # <<<<<<<<<<<<<< * * _notify_queue.put((inode_p, name, deleted, ignore_enoent)) */ __pyx_t_4 = __pyx_v_t; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_start, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":1017 * global _notify_queue * * if _notify_queue is None: # <<<<<<<<<<<<<< * log.debug('Starting notify worker.') * _notify_queue = Queue() */ } /* "pyfuse3/__init__.pyx":1024 * t.start() * * _notify_queue.put((inode_p, name, deleted, ignore_enoent)) # <<<<<<<<<<<<<< * * */ __pyx_t_4 = __pyx_v_7pyfuse3__notify_queue; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_inode_p); __Pyx_GIVEREF(__pyx_v_inode_p); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_inode_p) != (0)) __PYX_ERR(0, 1024, __pyx_L1_error); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_name) != (0)) __PYX_ERR(0, 1024, __pyx_L1_error); __Pyx_INCREF(__pyx_v_deleted); __Pyx_GIVEREF(__pyx_v_deleted); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_deleted) != (0)) __PYX_ERR(0, 1024, __pyx_L1_error); __Pyx_INCREF(__pyx_v_ignore_enoent); __Pyx_GIVEREF(__pyx_v_ignore_enoent); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_v_ignore_enoent) != (0)) __PYX_ERR(0, 1024, __pyx_L1_error); __pyx_t_6 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_put, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":991 * * * def invalidate_entry_async(inode_p, name, deleted=0, ignore_enoent=False): # <<<<<<<<<<<<<< * '''Asynchronously invalidate directory entry * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("pyfuse3.invalidate_entry_async", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_t); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":1027 * * * def notify_store(inode, offset, data): # <<<<<<<<<<<<<< * '''Store data in kernel page cache * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_122notify_store(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_121notify_store, "Store data in kernel page cache\n\n Sends *data* for the kernel to store it in the page cache for *inode* at\n *offset*. If this provides data beyond the current file size, the file is\n automatically extended.\n\n If this function raises an exception, the store may still have completed\n partially.\n\n If the operation is not supported by the kernel, raises `OSError`\n with errno ENOSYS.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_122notify_store = {"notify_store", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_122notify_store, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_121notify_store}; static PyObject *__pyx_pw_7pyfuse3_122notify_store(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_inode = 0; PyObject *__pyx_v_offset = 0; PyObject *__pyx_v_data = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("notify_store (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_inode,&__pyx_mstate_global->__pyx_n_u_offset,&__pyx_mstate_global->__pyx_n_u_data,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1027, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1027, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1027, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1027, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "notify_store", 0) < (0)) __PYX_ERR(0, 1027, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("notify_store", 1, 3, 3, i); __PYX_ERR(0, 1027, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1027, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1027, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1027, __pyx_L3_error) } __pyx_v_inode = values[0]; __pyx_v_offset = values[1]; __pyx_v_data = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("notify_store", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1027, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.notify_store", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_121notify_store(__pyx_self, __pyx_v_inode, __pyx_v_offset, __pyx_v_data); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_121notify_store(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_inode, PyObject *__pyx_v_offset, PyObject *__pyx_v_data) { int __pyx_v_ret; fuse_ino_t __pyx_v_ino; off_t __pyx_v_off; Py_buffer __pyx_v_pybuf; struct fuse_bufvec __pyx_v_bufvec; struct fuse_buf *__pyx_v_buf; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; struct fuse_buf *__pyx_t_2; void *__pyx_t_3; fuse_ino_t __pyx_t_4; off_t __pyx_t_5; int __pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; size_t __pyx_t_12; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("notify_store", 0); /* "pyfuse3/__init__.pyx":1051 * cdef fuse_buf *buf * * PyObject_GetBuffer(data, &pybuf, PyBUF_CONTIG_RO) # <<<<<<<<<<<<<< * bufvec.count = 1 * bufvec.idx = 0 */ __pyx_t_1 = PyObject_GetBuffer(__pyx_v_data, (&__pyx_v_pybuf), PyBUF_CONTIG_RO); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1051, __pyx_L1_error) /* "pyfuse3/__init__.pyx":1052 * * PyObject_GetBuffer(data, &pybuf, PyBUF_CONTIG_RO) * bufvec.count = 1 # <<<<<<<<<<<<<< * bufvec.idx = 0 * bufvec.off = 0 */ __pyx_v_bufvec.count = 1; /* "pyfuse3/__init__.pyx":1053 * PyObject_GetBuffer(data, &pybuf, PyBUF_CONTIG_RO) * bufvec.count = 1 * bufvec.idx = 0 # <<<<<<<<<<<<<< * bufvec.off = 0 * */ __pyx_v_bufvec.idx = 0; /* "pyfuse3/__init__.pyx":1054 * bufvec.count = 1 * bufvec.idx = 0 * bufvec.off = 0 # <<<<<<<<<<<<<< * * buf = bufvec.buf */ __pyx_v_bufvec.off = 0; /* "pyfuse3/__init__.pyx":1056 * bufvec.off = 0 * * buf = bufvec.buf # <<<<<<<<<<<<<< * buf[0].flags = 0 * buf[0].mem = pybuf.buf */ __pyx_t_2 = __pyx_v_bufvec.buf; __pyx_v_buf = __pyx_t_2; /* "pyfuse3/__init__.pyx":1057 * * buf = bufvec.buf * buf[0].flags = 0 # <<<<<<<<<<<<<< * buf[0].mem = pybuf.buf * buf[0].size = pybuf.len # guaranteed positive */ (__pyx_v_buf[0]).flags = 0; /* "pyfuse3/__init__.pyx":1058 * buf = bufvec.buf * buf[0].flags = 0 * buf[0].mem = pybuf.buf # <<<<<<<<<<<<<< * buf[0].size = pybuf.len # guaranteed positive * */ __pyx_t_3 = __pyx_v_pybuf.buf; (__pyx_v_buf[0]).mem = __pyx_t_3; /* "pyfuse3/__init__.pyx":1059 * buf[0].flags = 0 * buf[0].mem = pybuf.buf * buf[0].size = pybuf.len # guaranteed positive # <<<<<<<<<<<<<< * * ino = inode */ (__pyx_v_buf[0]).size = ((size_t)__pyx_v_pybuf.len); /* "pyfuse3/__init__.pyx":1061 * buf[0].size = pybuf.len # guaranteed positive * * ino = inode # <<<<<<<<<<<<<< * off = offset * with nogil: */ __pyx_t_4 = __Pyx_PyLong_As_fuse_ino_t(__pyx_v_inode); if (unlikely((__pyx_t_4 == ((fuse_ino_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1061, __pyx_L1_error) __pyx_v_ino = __pyx_t_4; /* "pyfuse3/__init__.pyx":1062 * * ino = inode * off = offset # <<<<<<<<<<<<<< * with nogil: * ret = fuse_lowlevel_notify_store(session, ino, off, &bufvec, 0) */ __pyx_t_5 = __Pyx_PyLong_As_off_t(__pyx_v_offset); if (unlikely((__pyx_t_5 == ((off_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1062, __pyx_L1_error) __pyx_v_off = __pyx_t_5; /* "pyfuse3/__init__.pyx":1063 * ino = inode * off = offset * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_store(session, ino, off, &bufvec, 0) * */ { PyThreadState * _save; _save = PyEval_SaveThread(); __Pyx_FastGIL_Remember(); /*try:*/ { /* "pyfuse3/__init__.pyx":1064 * off = offset * with nogil: * ret = fuse_lowlevel_notify_store(session, ino, off, &bufvec, 0) # <<<<<<<<<<<<<< * * PyBuffer_Release(&pybuf) */ __pyx_v_ret = fuse_lowlevel_notify_store(__pyx_v_7pyfuse3_session, __pyx_v_ino, __pyx_v_off, (&__pyx_v_bufvec), 0); } /* "pyfuse3/__init__.pyx":1063 * ino = inode * off = offset * with nogil: # <<<<<<<<<<<<<< * ret = fuse_lowlevel_notify_store(session, ino, off, &bufvec, 0) * */ /*finally:*/ { /*normal exit:*/{ __Pyx_FastGIL_Forget(); PyEval_RestoreThread(_save); goto __pyx_L5; } __pyx_L5:; } } /* "pyfuse3/__init__.pyx":1066 * ret = fuse_lowlevel_notify_store(session, ino, off, &bufvec, 0) * * PyBuffer_Release(&pybuf) # <<<<<<<<<<<<<< * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_store returned: ' + strerror(-ret)) */ PyBuffer_Release((&__pyx_v_pybuf)); /* "pyfuse3/__init__.pyx":1067 * * PyBuffer_Release(&pybuf) * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_store returned: ' + strerror(-ret)) * */ __pyx_t_6 = (__pyx_v_ret != 0); if (unlikely(__pyx_t_6)) { /* "pyfuse3/__init__.pyx":1068 * PyBuffer_Release(&pybuf) * if ret != 0: * raise OSError(-ret, 'fuse_lowlevel_notify_store returned: ' + strerror(-ret)) # <<<<<<<<<<<<<< * * */ __pyx_t_8 = NULL; __pyx_t_9 = __Pyx_PyLong_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __pyx_f_7pyfuse3_strerror((-__pyx_v_ret)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = PyNumber_Add(__pyx_mstate_global->__pyx_kp_u_fuse_lowlevel_notify_store_retur, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_12 = 1; { PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_9, __pyx_t_11}; __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_OSError)), __pyx_callargs+__pyx_t_12, (3-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __PYX_ERR(0, 1068, __pyx_L1_error) /* "pyfuse3/__init__.pyx":1067 * * PyBuffer_Release(&pybuf) * if ret != 0: # <<<<<<<<<<<<<< * raise OSError(-ret, 'fuse_lowlevel_notify_store returned: ' + strerror(-ret)) * */ } /* "pyfuse3/__init__.pyx":1027 * * * def notify_store(inode, offset, data): # <<<<<<<<<<<<<< * '''Store data in kernel page cache * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("pyfuse3.notify_store", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":1071 * * * def get_sup_groups(pid): # <<<<<<<<<<<<<< * '''Return supplementary group ids of *pid* * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_124get_sup_groups(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_123get_sup_groups, "Return supplementary group ids of *pid*\n\n This function is relatively expensive because it has to read the group ids\n from ``/proc/[pid]/status``. For the same reason, it will also not work on\n systems that do not provide a ``/proc`` file system.\n\n Returns a set.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_124get_sup_groups = {"get_sup_groups", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_124get_sup_groups, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_123get_sup_groups}; static PyObject *__pyx_pw_7pyfuse3_124get_sup_groups(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_pid = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_sup_groups (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pid,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1071, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_sup_groups", 0) < (0)) __PYX_ERR(0, 1071, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_sup_groups", 1, 1, 1, i); __PYX_ERR(0, 1071, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1071, __pyx_L3_error) } __pyx_v_pid = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("get_sup_groups", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1071, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.get_sup_groups", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_7pyfuse3_123get_sup_groups(__pyx_self, __pyx_v_pid); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_123get_sup_groups(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pid) { PyObject *__pyx_v_fh = NULL; PyObject *__pyx_v_line = NULL; PyObject *__pyx_v_gids = NULL; PyObject *__pyx_v_x = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; PyObject *(*__pyx_t_11)(PyObject *); int __pyx_t_12; PyObject *__pyx_t_13 = NULL; int __pyx_t_14; int __pyx_t_15; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_sup_groups", 0); /* "pyfuse3/__init__.pyx":1081 * ''' * * with open('/proc/%d/status' % pid, 'r') as fh: # <<<<<<<<<<<<<< * for line in fh: * if line.startswith('Groups:'): */ /*with:*/ { __pyx_t_2 = NULL; __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_proc_d_status, __pyx_v_pid); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; { PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_r}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_open, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = NULL; __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1081, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS if (likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); __pyx_t_4 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1081, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); } __pyx_t_6 = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /*try:*/ { { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); /*try:*/ { __pyx_v_fh = __pyx_t_6; __pyx_t_6 = 0; /* "pyfuse3/__init__.pyx":1082 * * with open('/proc/%d/status' % pid, 'r') as fh: * for line in fh: # <<<<<<<<<<<<<< * if line.startswith('Groups:'): * break */ if (likely(PyList_CheckExact(__pyx_v_fh)) || PyTuple_CheckExact(__pyx_v_fh)) { __pyx_t_6 = __pyx_v_fh; __Pyx_INCREF(__pyx_t_6); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { __pyx_t_10 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_fh); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1082, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1082, __pyx_L7_error) } for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_6))) { { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1082, __pyx_L7_error) #endif if (__pyx_t_10 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_6, __pyx_t_10, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_10; } else { { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_6); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1082, __pyx_L7_error) #endif if (__pyx_t_10 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10)); #else __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_10); #endif ++__pyx_t_10; } if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1082, __pyx_L7_error) } else { __pyx_t_1 = __pyx_t_11(__pyx_t_6); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1082, __pyx_L7_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_line, __pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3/__init__.pyx":1083 * with open('/proc/%d/status' % pid, 'r') as fh: * for line in fh: * if line.startswith('Groups:'): # <<<<<<<<<<<<<< * break * else: */ __pyx_t_3 = __pyx_v_line; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Groups}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_startswith, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1083, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(0, 1083, __pyx_L7_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_12) { /* "pyfuse3/__init__.pyx":1084 * for line in fh: * if line.startswith('Groups:'): * break # <<<<<<<<<<<<<< * else: * raise RuntimeError("Unable to parse %s" % fh.name) */ goto __pyx_L14_break; /* "pyfuse3/__init__.pyx":1083 * with open('/proc/%d/status' % pid, 'r') as fh: * for line in fh: * if line.startswith('Groups:'): # <<<<<<<<<<<<<< * break * else: */ } /* "pyfuse3/__init__.pyx":1082 * * with open('/proc/%d/status' % pid, 'r') as fh: * for line in fh: # <<<<<<<<<<<<<< * if line.startswith('Groups:'): * break */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L16_for_else; __pyx_L14_break:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L17_for_end; /*else*/ { __pyx_L16_for_else:; /* "pyfuse3/__init__.pyx":1086 * break * else: * raise RuntimeError("Unable to parse %s" % fh.name) # <<<<<<<<<<<<<< * gids = set() * for x in line.split()[1:]: */ __pyx_t_1 = NULL; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fh, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1086, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Unable_to_parse_s, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1086, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_2}; __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1086, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 1086, __pyx_L7_error) } __pyx_L17_for_end:; /* "pyfuse3/__init__.pyx":1081 * ''' * * with open('/proc/%d/status' % pid, 'r') as fh: # <<<<<<<<<<<<<< * for line in fh: * if line.startswith('Groups:'): */ } __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L12_try_end; __pyx_L7_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /*except:*/ { __Pyx_AddTraceback("pyfuse3.get_sup_groups", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_1) < 0) __PYX_ERR(0, 1081, __pyx_L9_except_error) __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_Pack(3, __pyx_t_6, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1081, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1081, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_12 < (0)) __PYX_ERR(0, 1081, __pyx_L9_except_error) __pyx_t_14 = (!__pyx_t_12); if (unlikely(__pyx_t_14)) { __Pyx_GIVEREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_1); __Pyx_ErrRestoreWithState(__pyx_t_6, __pyx_t_2, __pyx_t_1); __pyx_t_6 = 0; __pyx_t_2 = 0; __pyx_t_1 = 0; __PYX_ERR(0, 1081, __pyx_L9_except_error) } __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L8_exception_handled; } __pyx_L9_except_error:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); goto __pyx_L1_error; __pyx_L8_exception_handled:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); __pyx_L12_try_end:; } } /*finally:*/ { /*normal exit:*/{ if (__pyx_t_5) { __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } goto __pyx_L6; } __pyx_L6:; } goto __pyx_L21; __pyx_L3_error:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L1_error; __pyx_L21:; } /* "pyfuse3/__init__.pyx":1087 * else: * raise RuntimeError("Unable to parse %s" % fh.name) * gids = set() # <<<<<<<<<<<<<< * for x in line.split()[1:]: * gids.add(int(x)) */ __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_gids = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3/__init__.pyx":1088 * raise RuntimeError("Unable to parse %s" % fh.name) * gids = set() * for x in line.split()[1:]: # <<<<<<<<<<<<<< * gids.add(int(x)) * */ if (unlikely(!__pyx_v_line)) { __Pyx_RaiseUnboundLocalError("line"); __PYX_ERR(0, 1088, __pyx_L1_error) } __pyx_t_2 = __pyx_v_line; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_split, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_1, 1, 0, NULL, NULL, &__pyx_mstate_global->__pyx_slice[0], 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1088, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_1))) { { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1088, __pyx_L1_error) #endif if (__pyx_t_10 >= __pyx_temp) break; } __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_10, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_10; } else { { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1088, __pyx_L1_error) #endif if (__pyx_t_10 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10)); #else __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_10); #endif ++__pyx_t_10; } if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1088, __pyx_L1_error) } else { __pyx_t_2 = __pyx_t_11(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1088, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":1089 * gids = set() * for x in line.split()[1:]: * gids.add(int(x)) # <<<<<<<<<<<<<< * * return gids */ __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_15 = PySet_Add(__pyx_v_gids, __pyx_t_2); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":1088 * raise RuntimeError("Unable to parse %s" % fh.name) * gids = set() * for x in line.split()[1:]: # <<<<<<<<<<<<<< * gids.add(int(x)) * */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyfuse3/__init__.pyx":1091 * gids.add(int(x)) * * return gids # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_gids); __pyx_r = __pyx_v_gids; goto __pyx_L0; /* "pyfuse3/__init__.pyx":1071 * * * def get_sup_groups(pid): # <<<<<<<<<<<<<< * '''Return supplementary group ids of *pid* * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyfuse3.get_sup_groups", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_fh); __Pyx_XDECREF(__pyx_v_line); __Pyx_XDECREF(__pyx_v_gids); __Pyx_XDECREF(__pyx_v_x); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyfuse3/__init__.pyx":1094 * * * def readdir_reply(ReaddirToken token, name, EntryAttributes attr, off_t next_id): # <<<<<<<<<<<<<< * '''Report a directory entry in response to a `~Operations.readdir` request. * */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_126readdir_reply(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_7pyfuse3_125readdir_reply, "Report a directory entry in response to a `~Operations.readdir` request.\n\n This function should be called by the `~Operations.readdir` handler to\n provide the list of directory entries. The function should be called\n once for each directory entry, until it returns False.\n\n *token* must be the token received by the `~Operations.readdir` handler.\n\n *name* and must be the name of the directory entry and *attr* an\n `EntryAttributes` instance holding its attributes.\n\n *next_id* must be a 64-bit integer value that uniquely identifies the\n current position in the list of directory entries. It may be passed back\n to a later `~Operations.readdir` call to start another listing at the\n right position. This value should be robust in the presence of file\n removals and creations, i.e. if files are created or removed after a\n call to `~Operations.readdir` and `~Operations.readdir` is called again\n with *start_id* set to any previously supplied *next_id* values, under\n no circumstances must any file be reported twice or skipped over.\n "); static PyMethodDef __pyx_mdef_7pyfuse3_126readdir_reply = {"readdir_reply", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_126readdir_reply, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_125readdir_reply}; static PyObject *__pyx_pw_7pyfuse3_126readdir_reply(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_token = 0; PyObject *__pyx_v_name = 0; struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_attr = 0; off_t __pyx_v_next_id; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("readdir_reply (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_token,&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_attr,&__pyx_mstate_global->__pyx_n_u_next_id,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1094, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1094, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1094, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1094, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1094, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "readdir_reply", 0) < (0)) __PYX_ERR(0, 1094, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("readdir_reply", 1, 4, 4, i); __PYX_ERR(0, 1094, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1094, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1094, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1094, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1094, __pyx_L3_error) } __pyx_v_token = ((struct __pyx_obj_7pyfuse3_ReaddirToken *)values[0]); __pyx_v_name = values[1]; __pyx_v_attr = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)values[2]); __pyx_v_next_id = __Pyx_PyLong_As_off_t(values[3]); if (unlikely((__pyx_v_next_id == ((off_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1094, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("readdir_reply", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 1094, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.readdir_reply", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_token), __pyx_mstate_global->__pyx_ptype_7pyfuse3_ReaddirToken, 1, "token", 0))) __PYX_ERR(0, 1094, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_attr), __pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes, 1, "attr", 0))) __PYX_ERR(0, 1094, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_125readdir_reply(__pyx_self, __pyx_v_token, __pyx_v_name, __pyx_v_attr, __pyx_v_next_id); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_125readdir_reply(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_7pyfuse3_ReaddirToken *__pyx_v_token, PyObject *__pyx_v_name, struct __pyx_obj_7pyfuse3_EntryAttributes *__pyx_v_attr, off_t __pyx_v_next_id) { char *__pyx_v_cname; PyObject *__pyx_v_len_ = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; void *__pyx_t_2; char *__pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; size_t __pyx_t_6; Py_ssize_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("readdir_reply", 0); /* "pyfuse3/__init__.pyx":1118 * cdef char *cname * * if token.buf_start == NULL: # <<<<<<<<<<<<<< * token.buf_start = calloc_or_raise(token.size, sizeof(char)) * token.buf = token.buf_start */ __pyx_t_1 = (__pyx_v_token->buf_start == NULL); if (__pyx_t_1) { /* "pyfuse3/__init__.pyx":1119 * * if token.buf_start == NULL: * token.buf_start = calloc_or_raise(token.size, sizeof(char)) # <<<<<<<<<<<<<< * token.buf = token.buf_start * */ __pyx_t_2 = __pyx_f_7pyfuse3_calloc_or_raise(__pyx_v_token->size, (sizeof(char))); if (unlikely(__pyx_t_2 == ((void *)NULL))) __PYX_ERR(0, 1119, __pyx_L1_error) __pyx_v_token->buf_start = ((char *)__pyx_t_2); /* "pyfuse3/__init__.pyx":1120 * if token.buf_start == NULL: * token.buf_start = calloc_or_raise(token.size, sizeof(char)) * token.buf = token.buf_start # <<<<<<<<<<<<<< * * cname = PyBytes_AsString(name) */ __pyx_t_3 = __pyx_v_token->buf_start; __pyx_v_token->buf = __pyx_t_3; /* "pyfuse3/__init__.pyx":1118 * cdef char *cname * * if token.buf_start == NULL: # <<<<<<<<<<<<<< * token.buf_start = calloc_or_raise(token.size, sizeof(char)) * token.buf = token.buf_start */ } /* "pyfuse3/__init__.pyx":1122 * token.buf = token.buf_start * * cname = PyBytes_AsString(name) # <<<<<<<<<<<<<< * len_ = fuse_add_direntry_plus(token.req, token.buf, token.size, * cname, &attr.fuse_param, next_id) */ __pyx_t_3 = PyBytes_AsString(__pyx_v_name); if (unlikely(__pyx_t_3 == ((void *)NULL))) __PYX_ERR(0, 1122, __pyx_L1_error) __pyx_v_cname = __pyx_t_3; /* "pyfuse3/__init__.pyx":1123 * * cname = PyBytes_AsString(name) * len_ = fuse_add_direntry_plus(token.req, token.buf, token.size, # <<<<<<<<<<<<<< * cname, &attr.fuse_param, next_id) * if len_ > token.size: */ __pyx_t_4 = __Pyx_PyLong_FromSize_t(fuse_add_direntry_plus(__pyx_v_token->req, __pyx_v_token->buf, __pyx_v_token->size, __pyx_v_cname, (&__pyx_v_attr->fuse_param), __pyx_v_next_id)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_len_ = __pyx_t_4; __pyx_t_4 = 0; /* "pyfuse3/__init__.pyx":1125 * len_ = fuse_add_direntry_plus(token.req, token.buf, token.size, * cname, &attr.fuse_param, next_id) * if len_ > token.size: # <<<<<<<<<<<<<< * return False * */ __pyx_t_4 = __Pyx_PyLong_FromSize_t(__pyx_v_token->size); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_len_, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1125, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1125, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_1) { /* "pyfuse3/__init__.pyx":1126 * cname, &attr.fuse_param, next_id) * if len_ > token.size: * return False # <<<<<<<<<<<<<< * * token.size -= len_ */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_False); __pyx_r = Py_False; goto __pyx_L0; /* "pyfuse3/__init__.pyx":1125 * len_ = fuse_add_direntry_plus(token.req, token.buf, token.size, * cname, &attr.fuse_param, next_id) * if len_ > token.size: # <<<<<<<<<<<<<< * return False * */ } /* "pyfuse3/__init__.pyx":1128 * return False * * token.size -= len_ # <<<<<<<<<<<<<< * token.buf = &token.buf[len_] * return True */ __pyx_t_5 = __Pyx_PyLong_FromSize_t(__pyx_v_token->size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyNumber_InPlaceSubtract(__pyx_t_5, __pyx_v_len_); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyLong_As_size_t(__pyx_t_4); if (unlikely((__pyx_t_6 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1128, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_token->size = __pyx_t_6; /* "pyfuse3/__init__.pyx":1129 * * token.size -= len_ * token.buf = &token.buf[len_] # <<<<<<<<<<<<<< * return True */ __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_len_); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1129, __pyx_L1_error) __pyx_v_token->buf = (&(__pyx_v_token->buf[__pyx_t_7])); /* "pyfuse3/__init__.pyx":1130 * token.size -= len_ * token.buf = &token.buf[len_] * return True # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_True); __pyx_r = Py_True; goto __pyx_L0; /* "pyfuse3/__init__.pyx":1094 * * * def readdir_reply(ReaddirToken token, name, EntryAttributes attr, off_t next_id): # <<<<<<<<<<<<<< * '''Report a directory entry in response to a `~Operations.readdir` request. * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyfuse3.readdir_reply", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_len_); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":4 * int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1 * int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1 * def __pyx_unpickle__WorkerData(__pyx_type, long __pyx_checksum, tuple __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_result * __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2a8cfde, 0x9365cf3, 0xe8d9c4e, b'active_readers, read_lock, task_count, task_serial') */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_128__pyx_unpickle__WorkerData(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_128__pyx_unpickle__WorkerData = {"__pyx_unpickle__WorkerData", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_128__pyx_unpickle__WorkerData, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_128__pyx_unpickle__WorkerData(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_unpickle__WorkerData (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 4, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle__WorkerData", 0) < (0)) __PYX_ERR(2, 4, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__WorkerData", 1, 3, 3, i); __PYX_ERR(2, 4, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error) } __pyx_v___pyx_type = values[0]; __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 4, __pyx_L3_error) __pyx_v___pyx_state = ((PyObject*)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__WorkerData", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 4, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.__pyx_unpickle__WorkerData", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(2, 4, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_127__pyx_unpickle__WorkerData(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_127__pyx_unpickle__WorkerData(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__pyx_unpickle__WorkerData", 0); /* "(tree fragment)":6 * def __pyx_unpickle__WorkerData(__pyx_type, long __pyx_checksum, tuple __pyx_state): * cdef object __pyx_result * __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2a8cfde, 0x9365cf3, 0xe8d9c4e, b'active_readers, read_lock, task_count, task_serial') # <<<<<<<<<<<<<< * __pyx_result = _WorkerData.__new__(__pyx_type) * if __pyx_state is not None: */ __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0x2a8cfde, 0x9365cf3, 0xe8d9c4e, __pyx_k_active_readers_read_lock_task_co); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 6, __pyx_L1_error) /* "(tree fragment)":7 * cdef object __pyx_result * __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2a8cfde, 0x9365cf3, 0xe8d9c4e, b'active_readers, read_lock, task_count, task_serial') * __pyx_result = _WorkerData.__new__(__pyx_type) # <<<<<<<<<<<<<< * if __pyx_state is not None: * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) */ __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3__WorkerData); __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v___pyx_result = __pyx_t_2; __pyx_t_2 = 0; /* "(tree fragment)":8 * __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2a8cfde, 0x9365cf3, 0xe8d9c4e, b'active_readers, read_lock, task_count, task_serial') * __pyx_result = _WorkerData.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) * return __pyx_result */ __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None)); if (__pyx_t_5) { /* "(tree fragment)":9 * __pyx_result = _WorkerData.__new__(__pyx_type) * if __pyx_state is not None: * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) # <<<<<<<<<<<<<< * return __pyx_result * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, __pyx_state: tuple): */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'"); __PYX_ERR(2, 9, __pyx_L1_error) } __pyx_t_2 = __pyx_f_7pyfuse3___pyx_unpickle__WorkerData__set_state(((struct __pyx_obj_7pyfuse3__WorkerData *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "(tree fragment)":8 * __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2a8cfde, 0x9365cf3, 0xe8d9c4e, b'active_readers, read_lock, task_count, task_serial') * __pyx_result = _WorkerData.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) * return __pyx_result */ } /* "(tree fragment)":10 * if __pyx_state is not None: * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) * return __pyx_result # <<<<<<<<<<<<<< * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, __pyx_state: tuple): * __pyx_result.active_readers = __pyx_state[0]; __pyx_result.read_lock = __pyx_state[1]; __pyx_result.task_count = __pyx_state[2]; __pyx_result.task_serial = __pyx_state[3] */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v___pyx_result); __pyx_r = __pyx_v___pyx_result; goto __pyx_L0; /* "(tree fragment)":4 * int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1 * int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1 * def __pyx_unpickle__WorkerData(__pyx_type, long __pyx_checksum, tuple __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_result * __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2a8cfde, 0x9365cf3, 0xe8d9c4e, b'active_readers, read_lock, task_count, task_serial') */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.__pyx_unpickle__WorkerData", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v___pyx_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":11 * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, __pyx_state: tuple): # <<<<<<<<<<<<<< * __pyx_result.active_readers = __pyx_state[0]; __pyx_result.read_lock = __pyx_state[1]; __pyx_result.task_count = __pyx_state[2]; __pyx_result.task_serial = __pyx_state[3] * __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4) */ static PyObject *__pyx_f_7pyfuse3___pyx_unpickle__WorkerData__set_state(struct __pyx_obj_7pyfuse3__WorkerData *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__pyx_unpickle__WorkerData__set_state", 0); /* "(tree fragment)":12 * return __pyx_result * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, __pyx_state: tuple): * __pyx_result.active_readers = __pyx_state[0]; __pyx_result.read_lock = __pyx_state[1]; __pyx_result.task_count = __pyx_state[2]; __pyx_result.task_serial = __pyx_state[3] # <<<<<<<<<<<<<< * __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4) */ __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->active_readers = __pyx_t_2; __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v___pyx_result->read_lock); __Pyx_DECREF(__pyx_v___pyx_result->read_lock); __pyx_v___pyx_result->read_lock = __pyx_t_1; __pyx_t_1 = 0; __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->task_count = __pyx_t_2; __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->task_serial = __pyx_t_2; /* "(tree fragment)":13 * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, __pyx_state: tuple): * __pyx_result.active_readers = __pyx_state[0]; __pyx_result.read_lock = __pyx_state[1]; __pyx_result.task_count = __pyx_state[2]; __pyx_result.task_serial = __pyx_state[3] * __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4) # <<<<<<<<<<<<<< */ __pyx_t_2 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error) /* "(tree fragment)":11 * __pyx_unpickle__WorkerData__set_state(<_WorkerData> __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle__WorkerData__set_state(_WorkerData __pyx_result, __pyx_state: tuple): # <<<<<<<<<<<<<< * __pyx_result.active_readers = __pyx_state[0]; __pyx_result.read_lock = __pyx_state[1]; __pyx_result.task_count = __pyx_state[2]; __pyx_result.task_serial = __pyx_state[3] * __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.__pyx_unpickle__WorkerData__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":4 * int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1 * int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1 * def __pyx_unpickle_RequestContext(__pyx_type, long __pyx_checksum, tuple __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_result * __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe56624f, 0x8a019cd, 0x223b7a8, b'gid, pid, uid, umask') */ /* Python wrapper */ static PyObject *__pyx_pw_7pyfuse3_130__pyx_unpickle_RequestContext(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_7pyfuse3_130__pyx_unpickle_RequestContext = {"__pyx_unpickle_RequestContext", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_130__pyx_unpickle_RequestContext, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_7pyfuse3_130__pyx_unpickle_RequestContext(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_unpickle_RequestContext (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(2, 4, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_RequestContext", 0) < (0)) __PYX_ERR(2, 4, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RequestContext", 1, 3, 3, i); __PYX_ERR(2, 4, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 4, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 4, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 4, __pyx_L3_error) } __pyx_v___pyx_type = values[0]; __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 4, __pyx_L3_error) __pyx_v___pyx_state = ((PyObject*)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RequestContext", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 4, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __Pyx_AddTraceback("pyfuse3.__pyx_unpickle_RequestContext", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(2, 4, __pyx_L1_error) __pyx_r = __pyx_pf_7pyfuse3_129__pyx_unpickle_RequestContext(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } goto __pyx_L7_cleaned_up; __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_7pyfuse3_129__pyx_unpickle_RequestContext(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__pyx_unpickle_RequestContext", 0); /* "(tree fragment)":6 * def __pyx_unpickle_RequestContext(__pyx_type, long __pyx_checksum, tuple __pyx_state): * cdef object __pyx_result * __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe56624f, 0x8a019cd, 0x223b7a8, b'gid, pid, uid, umask') # <<<<<<<<<<<<<< * __pyx_result = RequestContext.__new__(__pyx_type) * if __pyx_state is not None: */ __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xe56624f, 0x8a019cd, 0x223b7a8, __pyx_k_gid_pid_uid_umask); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 6, __pyx_L1_error) /* "(tree fragment)":7 * cdef object __pyx_result * __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe56624f, 0x8a019cd, 0x223b7a8, b'gid, pid, uid, umask') * __pyx_result = RequestContext.__new__(__pyx_type) # <<<<<<<<<<<<<< * if __pyx_state is not None: * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) */ __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_RequestContext); __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v___pyx_result = __pyx_t_2; __pyx_t_2 = 0; /* "(tree fragment)":8 * __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe56624f, 0x8a019cd, 0x223b7a8, b'gid, pid, uid, umask') * __pyx_result = RequestContext.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) * return __pyx_result */ __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None)); if (__pyx_t_5) { /* "(tree fragment)":9 * __pyx_result = RequestContext.__new__(__pyx_type) * if __pyx_state is not None: * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) # <<<<<<<<<<<<<< * return __pyx_result * cdef __pyx_unpickle_RequestContext__set_state(RequestContext __pyx_result, __pyx_state: tuple): */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'"); __PYX_ERR(2, 9, __pyx_L1_error) } __pyx_t_2 = __pyx_f_7pyfuse3___pyx_unpickle_RequestContext__set_state(((struct __pyx_obj_7pyfuse3_RequestContext *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "(tree fragment)":8 * __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe56624f, 0x8a019cd, 0x223b7a8, b'gid, pid, uid, umask') * __pyx_result = RequestContext.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) * return __pyx_result */ } /* "(tree fragment)":10 * if __pyx_state is not None: * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) * return __pyx_result # <<<<<<<<<<<<<< * cdef __pyx_unpickle_RequestContext__set_state(RequestContext __pyx_result, __pyx_state: tuple): * __pyx_result.gid = __pyx_state[0]; __pyx_result.pid = __pyx_state[1]; __pyx_result.uid = __pyx_state[2]; __pyx_result.umask = __pyx_state[3] */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v___pyx_result); __pyx_r = __pyx_v___pyx_result; goto __pyx_L0; /* "(tree fragment)":4 * int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1 * int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1 * def __pyx_unpickle_RequestContext(__pyx_type, long __pyx_checksum, tuple __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_result * __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe56624f, 0x8a019cd, 0x223b7a8, b'gid, pid, uid, umask') */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyfuse3.__pyx_unpickle_RequestContext", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v___pyx_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":11 * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_RequestContext__set_state(RequestContext __pyx_result, __pyx_state: tuple): # <<<<<<<<<<<<<< * __pyx_result.gid = __pyx_state[0]; __pyx_result.pid = __pyx_state[1]; __pyx_result.uid = __pyx_state[2]; __pyx_result.umask = __pyx_state[3] * __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4) */ static PyObject *__pyx_f_7pyfuse3___pyx_unpickle_RequestContext__set_state(struct __pyx_obj_7pyfuse3_RequestContext *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; gid_t __pyx_t_2; pid_t __pyx_t_3; uid_t __pyx_t_4; mode_t __pyx_t_5; int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__pyx_unpickle_RequestContext__set_state", 0); /* "(tree fragment)":12 * return __pyx_result * cdef __pyx_unpickle_RequestContext__set_state(RequestContext __pyx_result, __pyx_state: tuple): * __pyx_result.gid = __pyx_state[0]; __pyx_result.pid = __pyx_state[1]; __pyx_result.uid = __pyx_state[2]; __pyx_result.umask = __pyx_state[3] # <<<<<<<<<<<<<< * __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4) */ __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyLong_As_gid_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((gid_t)-1)) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->gid = __pyx_t_2; __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyLong_As_pid_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((pid_t)-1)) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->pid = __pyx_t_3; __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyLong_As_uid_t(__pyx_t_1); if (unlikely((__pyx_t_4 == ((uid_t)-1)) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->uid = __pyx_t_4; __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyLong_As_mode_t(__pyx_t_1); if (unlikely((__pyx_t_5 == ((mode_t)-1)) && PyErr_Occurred())) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v___pyx_result->umask = __pyx_t_5; /* "(tree fragment)":13 * cdef __pyx_unpickle_RequestContext__set_state(RequestContext __pyx_result, __pyx_state: tuple): * __pyx_result.gid = __pyx_state[0]; __pyx_result.pid = __pyx_state[1]; __pyx_result.uid = __pyx_state[2]; __pyx_result.umask = __pyx_state[3] * __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4) # <<<<<<<<<<<<<< */ __pyx_t_6 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error) /* "(tree fragment)":11 * __pyx_unpickle_RequestContext__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_RequestContext__set_state(RequestContext __pyx_result, __pyx_state: tuple): # <<<<<<<<<<<<<< * __pyx_result.gid = __pyx_state[0]; __pyx_result.pid = __pyx_state[1]; __pyx_result.uid = __pyx_state[2]; __pyx_result.umask = __pyx_state[3] * __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 4) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyfuse3.__pyx_unpickle_RequestContext__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* #### Code section: module_exttypes ### */ static PyObject *__pyx_tp_new_7pyfuse3__Container(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3__Container > 0) & __PYX_CHECK_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, sizeof(struct __pyx_obj_7pyfuse3__Container)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3__Container[--__pyx_mstate_global->__pyx_freecount_7pyfuse3__Container]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3__Container)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif } else #endif { o = __Pyx_AllocateExtensionType(t, 0); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3__Container(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3__Container) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3__Container < 60) & __PYX_CHECK_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3__Container, sizeof(struct __pyx_obj_7pyfuse3__Container)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3__Container[__pyx_mstate_global->__pyx_freecount_7pyfuse3__Container++] = ((struct __pyx_obj_7pyfuse3__Container *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static PyMethodDef __pyx_methods_7pyfuse3__Container[] = { {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10_Container_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10_Container_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3__Container_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3__Container}, {Py_tp_doc, (void *)PyDoc_STR("For internal use by pyfuse3 only.")}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3__Container}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3__Container}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3__Container_spec = { "pyfuse3.__init__._Container", sizeof(struct __pyx_obj_7pyfuse3__Container), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, __pyx_type_7pyfuse3__Container_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3__Container = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""_Container", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3__Container), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3__Container, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ PyDoc_STR("For internal use by pyfuse3 only."), /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3__Container, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3__Container, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3_ReaddirToken(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_ReaddirToken > 0) & __PYX_CHECK_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3_ReaddirToken, sizeof(struct __pyx_obj_7pyfuse3_ReaddirToken)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3_ReaddirToken[--__pyx_mstate_global->__pyx_freecount_7pyfuse3_ReaddirToken]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3_ReaddirToken)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif } else #endif { o = __Pyx_AllocateExtensionType(t, 0); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3_ReaddirToken(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_ReaddirToken) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_ReaddirToken < 10) & __PYX_CHECK_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3_ReaddirToken, sizeof(struct __pyx_obj_7pyfuse3_ReaddirToken)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3_ReaddirToken[__pyx_mstate_global->__pyx_freecount_7pyfuse3_ReaddirToken++] = ((struct __pyx_obj_7pyfuse3_ReaddirToken *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static PyMethodDef __pyx_methods_7pyfuse3_ReaddirToken[] = { {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_12ReaddirToken_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_12ReaddirToken_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_ReaddirToken_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_ReaddirToken}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_ReaddirToken}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_ReaddirToken}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_ReaddirToken_spec = { "pyfuse3.__init__.ReaddirToken", sizeof(struct __pyx_obj_7pyfuse3_ReaddirToken), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, __pyx_type_7pyfuse3_ReaddirToken_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_ReaddirToken = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""ReaddirToken", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_ReaddirToken), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_ReaddirToken, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ 0, /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_ReaddirToken, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_ReaddirToken, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_vtabstruct_7pyfuse3__WorkerData __pyx_vtable_7pyfuse3__WorkerData; static PyObject *__pyx_tp_new_7pyfuse3__WorkerData(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_obj_7pyfuse3__WorkerData *p; PyObject *o; o = __Pyx_AllocateExtensionType(t, 0); if (unlikely(!o)) return 0; p = ((struct __pyx_obj_7pyfuse3__WorkerData *)o); p->__pyx_vtab = __pyx_vtabptr_7pyfuse3__WorkerData; p->read_lock = Py_None; Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_7pyfuse3__WorkerData(PyObject *o) { struct __pyx_obj_7pyfuse3__WorkerData *p = (struct __pyx_obj_7pyfuse3__WorkerData *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3__WorkerData) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->read_lock); PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } static int __pyx_tp_traverse_7pyfuse3__WorkerData(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3__WorkerData *p = (struct __pyx_obj_7pyfuse3__WorkerData *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->read_lock) { e = (*v)(p->read_lock, a); if (e) return e; } return 0; } static int __pyx_tp_clear_7pyfuse3__WorkerData(PyObject *o) { PyObject* tmp; struct __pyx_obj_7pyfuse3__WorkerData *p = (struct __pyx_obj_7pyfuse3__WorkerData *)o; tmp = ((PyObject*)p->read_lock); p->read_lock = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyMethodDef __pyx_methods_7pyfuse3__WorkerData[] = { {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11_WorkerData_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11_WorkerData_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3__WorkerData_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3__WorkerData}, {Py_tp_doc, (void *)PyDoc_STR("For internal use by pyfuse3 only.")}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3__WorkerData}, {Py_tp_clear, (void *)__pyx_tp_clear_7pyfuse3__WorkerData}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3__WorkerData}, {Py_tp_init, (void *)__pyx_pw_7pyfuse3_11_WorkerData_1__init__}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3__WorkerData}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3__WorkerData_spec = { "pyfuse3.__init__._WorkerData", sizeof(struct __pyx_obj_7pyfuse3__WorkerData), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3__WorkerData_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3__WorkerData = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""_WorkerData", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3__WorkerData), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3__WorkerData, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ PyDoc_STR("For internal use by pyfuse3 only."), /*tp_doc*/ __pyx_tp_traverse_7pyfuse3__WorkerData, /*tp_traverse*/ __pyx_tp_clear_7pyfuse3__WorkerData, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3__WorkerData, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif __pyx_pw_7pyfuse3_11_WorkerData_1__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3__WorkerData, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3_RequestContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_RequestContext > 0) & __PYX_CHECK_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3_RequestContext, sizeof(struct __pyx_obj_7pyfuse3_RequestContext)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3_RequestContext[--__pyx_mstate_global->__pyx_freecount_7pyfuse3_RequestContext]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3_RequestContext)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif } else #endif { o = __Pyx_AllocateExtensionType(t, 0); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3_RequestContext(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_RequestContext) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_RequestContext < 10) & __PYX_CHECK_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3_RequestContext, sizeof(struct __pyx_obj_7pyfuse3_RequestContext)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3_RequestContext[__pyx_mstate_global->__pyx_freecount_7pyfuse3_RequestContext++] = ((struct __pyx_obj_7pyfuse3_RequestContext *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static PyObject *__pyx_getprop_7pyfuse3_14RequestContext_uid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_14RequestContext_3uid_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_14RequestContext_pid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_14RequestContext_3pid_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_14RequestContext_gid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_14RequestContext_3gid_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_14RequestContext_umask(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_14RequestContext_5umask_1__get__(o); } static PyMethodDef __pyx_methods_7pyfuse3_RequestContext[] = { {"__getstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_14RequestContext_1__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_14RequestContext_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_14RequestContext_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_7pyfuse3_RequestContext[] = { {"uid", __pyx_getprop_7pyfuse3_14RequestContext_uid, 0, 0, 0}, {"pid", __pyx_getprop_7pyfuse3_14RequestContext_pid, 0, 0, 0}, {"gid", __pyx_getprop_7pyfuse3_14RequestContext_gid, 0, 0, 0}, {"umask", __pyx_getprop_7pyfuse3_14RequestContext_umask, 0, 0, 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_RequestContext_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_RequestContext}, {Py_tp_doc, (void *)PyDoc_STR("\n Instances of this class are passed to some `Operations` methods to\n provide information about the caller of the syscall that initiated\n the request.\n ")}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_RequestContext}, {Py_tp_getset, (void *)__pyx_getsets_7pyfuse3_RequestContext}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_RequestContext}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_RequestContext_spec = { "pyfuse3.__init__.RequestContext", sizeof(struct __pyx_obj_7pyfuse3_RequestContext), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, __pyx_type_7pyfuse3_RequestContext_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_RequestContext = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""RequestContext", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_RequestContext), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_RequestContext, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ PyDoc_STR("\n Instances of this class are passed to some `Operations` methods to\n provide information about the caller of the syscall that initiated\n the request.\n "), /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_RequestContext, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_7pyfuse3_RequestContext, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_RequestContext, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3_SetattrFields(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_obj_7pyfuse3_SetattrFields *p; PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_SetattrFields > 0) & __PYX_CHECK_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3_SetattrFields, sizeof(struct __pyx_obj_7pyfuse3_SetattrFields)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3_SetattrFields[--__pyx_mstate_global->__pyx_freecount_7pyfuse3_SetattrFields]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3_SetattrFields)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 0); if (unlikely(!o)) return 0; } p = ((struct __pyx_obj_7pyfuse3_SetattrFields *)o); p->update_atime = Py_None; Py_INCREF(Py_None); p->update_mtime = Py_None; Py_INCREF(Py_None); p->update_ctime = Py_None; Py_INCREF(Py_None); p->update_mode = Py_None; Py_INCREF(Py_None); p->update_uid = Py_None; Py_INCREF(Py_None); p->update_gid = Py_None; Py_INCREF(Py_None); p->update_size = Py_None; Py_INCREF(Py_None); if (unlikely(__pyx_pw_7pyfuse3_13SetattrFields_1__cinit__(o, __pyx_mstate_global->__pyx_empty_tuple, NULL) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_7pyfuse3_SetattrFields(PyObject *o) { struct __pyx_obj_7pyfuse3_SetattrFields *p = (struct __pyx_obj_7pyfuse3_SetattrFields *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_SetattrFields) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->update_atime); Py_CLEAR(p->update_mtime); Py_CLEAR(p->update_ctime); Py_CLEAR(p->update_mode); Py_CLEAR(p->update_uid); Py_CLEAR(p->update_gid); Py_CLEAR(p->update_size); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_SetattrFields < 10) & __PYX_CHECK_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3_SetattrFields, sizeof(struct __pyx_obj_7pyfuse3_SetattrFields)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3_SetattrFields[__pyx_mstate_global->__pyx_freecount_7pyfuse3_SetattrFields++] = ((struct __pyx_obj_7pyfuse3_SetattrFields *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3_SetattrFields(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3_SetattrFields *p = (struct __pyx_obj_7pyfuse3_SetattrFields *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->update_atime) { e = (*v)(p->update_atime, a); if (e) return e; } if (p->update_mtime) { e = (*v)(p->update_mtime, a); if (e) return e; } if (p->update_ctime) { e = (*v)(p->update_ctime, a); if (e) return e; } if (p->update_mode) { e = (*v)(p->update_mode, a); if (e) return e; } if (p->update_uid) { e = (*v)(p->update_uid, a); if (e) return e; } if (p->update_gid) { e = (*v)(p->update_gid, a); if (e) return e; } if (p->update_size) { e = (*v)(p->update_size, a); if (e) return e; } return 0; } static int __pyx_tp_clear_7pyfuse3_SetattrFields(PyObject *o) { PyObject* tmp; struct __pyx_obj_7pyfuse3_SetattrFields *p = (struct __pyx_obj_7pyfuse3_SetattrFields *)o; tmp = ((PyObject*)p->update_atime); p->update_atime = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->update_mtime); p->update_mtime = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->update_ctime); p->update_ctime = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->update_mode); p->update_mode = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->update_uid); p->update_uid = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->update_gid); p->update_gid = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->update_size); p->update_size = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_atime(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_12update_atime_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_mtime(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_12update_mtime_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_ctime(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_12update_ctime_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_mode(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_11update_mode_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_uid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_10update_uid_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_gid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_10update_gid_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_13SetattrFields_update_size(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_13SetattrFields_11update_size_1__get__(o); } static PyMethodDef __pyx_methods_7pyfuse3_SetattrFields[] = { {"__getstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13SetattrFields_3__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13SetattrFields_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_13SetattrFields_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_7pyfuse3_SetattrFields[] = { {"update_atime", __pyx_getprop_7pyfuse3_13SetattrFields_update_atime, 0, 0, 0}, {"update_mtime", __pyx_getprop_7pyfuse3_13SetattrFields_update_mtime, 0, 0, 0}, {"update_ctime", __pyx_getprop_7pyfuse3_13SetattrFields_update_ctime, 0, 0, 0}, {"update_mode", __pyx_getprop_7pyfuse3_13SetattrFields_update_mode, 0, 0, 0}, {"update_uid", __pyx_getprop_7pyfuse3_13SetattrFields_update_uid, 0, 0, 0}, {"update_gid", __pyx_getprop_7pyfuse3_13SetattrFields_update_gid, 0, 0, 0}, {"update_size", __pyx_getprop_7pyfuse3_13SetattrFields_update_size, 0, 0, 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_SetattrFields_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_SetattrFields}, {Py_tp_doc, (void *)PyDoc_STR("\n `SetattrFields` instances are passed to the `~Operations.setattr` handler\n to specify which attributes should be updated.\n ")}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3_SetattrFields}, {Py_tp_clear, (void *)__pyx_tp_clear_7pyfuse3_SetattrFields}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_SetattrFields}, {Py_tp_getset, (void *)__pyx_getsets_7pyfuse3_SetattrFields}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_SetattrFields}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_SetattrFields_spec = { "pyfuse3.__init__.SetattrFields", sizeof(struct __pyx_obj_7pyfuse3_SetattrFields), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3_SetattrFields_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_SetattrFields = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""SetattrFields", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_SetattrFields), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_SetattrFields, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ PyDoc_STR("\n `SetattrFields` instances are passed to the `~Operations.setattr` handler\n to specify which attributes should be updated.\n "), /*tp_doc*/ __pyx_tp_traverse_7pyfuse3_SetattrFields, /*tp_traverse*/ __pyx_tp_clear_7pyfuse3_SetattrFields, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_SetattrFields, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_7pyfuse3_SetattrFields, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_SetattrFields, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3_EntryAttributes(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_EntryAttributes > 0) & __PYX_CHECK_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes, sizeof(struct __pyx_obj_7pyfuse3_EntryAttributes)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3_EntryAttributes[--__pyx_mstate_global->__pyx_freecount_7pyfuse3_EntryAttributes]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3_EntryAttributes)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif } else #endif { o = __Pyx_AllocateExtensionType(t, 0); if (unlikely(!o)) return 0; } if (unlikely(__pyx_pw_7pyfuse3_15EntryAttributes_1__cinit__(o, __pyx_mstate_global->__pyx_empty_tuple, NULL) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_7pyfuse3_EntryAttributes(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_EntryAttributes) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_EntryAttributes < 30) & __PYX_CHECK_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes, sizeof(struct __pyx_obj_7pyfuse3_EntryAttributes)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3_EntryAttributes[__pyx_mstate_global->__pyx_freecount_7pyfuse3_EntryAttributes++] = ((struct __pyx_obj_7pyfuse3_EntryAttributes *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_ino(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_6st_ino_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_ino(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_6st_ino_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_generation(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_10generation_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_generation(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_10generation_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_attr_timeout(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_12attr_timeout_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_attr_timeout(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_12attr_timeout_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_entry_timeout(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_13entry_timeout_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_entry_timeout(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_13entry_timeout_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_mode(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_7st_mode_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_mode(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_7st_mode_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_nlink(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_8st_nlink_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_nlink(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_8st_nlink_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_uid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_6st_uid_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_uid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_6st_uid_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_gid(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_6st_gid_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_gid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_6st_gid_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_rdev(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_7st_rdev_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_rdev(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_7st_rdev_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_size(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_7st_size_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_size(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_7st_size_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_blocks(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_9st_blocks_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_blocks(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_9st_blocks_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_blksize(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_10st_blksize_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_blksize(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_10st_blksize_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_atime_ns(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_11st_atime_ns_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_atime_ns(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_11st_atime_ns_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_mtime_ns(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_11st_mtime_ns_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_mtime_ns(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_11st_mtime_ns_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_ctime_ns(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_11st_ctime_ns_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_ctime_ns(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_11st_ctime_ns_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_15EntryAttributes_st_birthtime_ns(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_15EntryAttributes_15st_birthtime_ns_1__get__(o); } static int __pyx_setprop_7pyfuse3_15EntryAttributes_st_birthtime_ns(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_15EntryAttributes_15st_birthtime_ns_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyMethodDef __pyx_methods_7pyfuse3_EntryAttributes[] = { {"__getstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_3__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__setstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_5__setstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_15EntryAttributes_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_7pyfuse3_EntryAttributes[] = { {"st_ino", __pyx_getprop_7pyfuse3_15EntryAttributes_st_ino, __pyx_setprop_7pyfuse3_15EntryAttributes_st_ino, 0, 0}, {"generation", __pyx_getprop_7pyfuse3_15EntryAttributes_generation, __pyx_setprop_7pyfuse3_15EntryAttributes_generation, PyDoc_STR("The inode generation number"), 0}, {"attr_timeout", __pyx_getprop_7pyfuse3_15EntryAttributes_attr_timeout, __pyx_setprop_7pyfuse3_15EntryAttributes_attr_timeout, PyDoc_STR("Validity timeout for the attributes of the directory entry\n\n Floating point numbers may be used. Units are seconds.\n "), 0}, {"entry_timeout", __pyx_getprop_7pyfuse3_15EntryAttributes_entry_timeout, __pyx_setprop_7pyfuse3_15EntryAttributes_entry_timeout, PyDoc_STR("Validity timeout for the name/existence of the directory entry\n\n Floating point numbers may be used. Units are seconds.\n "), 0}, {"st_mode", __pyx_getprop_7pyfuse3_15EntryAttributes_st_mode, __pyx_setprop_7pyfuse3_15EntryAttributes_st_mode, 0, 0}, {"st_nlink", __pyx_getprop_7pyfuse3_15EntryAttributes_st_nlink, __pyx_setprop_7pyfuse3_15EntryAttributes_st_nlink, 0, 0}, {"st_uid", __pyx_getprop_7pyfuse3_15EntryAttributes_st_uid, __pyx_setprop_7pyfuse3_15EntryAttributes_st_uid, 0, 0}, {"st_gid", __pyx_getprop_7pyfuse3_15EntryAttributes_st_gid, __pyx_setprop_7pyfuse3_15EntryAttributes_st_gid, 0, 0}, {"st_rdev", __pyx_getprop_7pyfuse3_15EntryAttributes_st_rdev, __pyx_setprop_7pyfuse3_15EntryAttributes_st_rdev, 0, 0}, {"st_size", __pyx_getprop_7pyfuse3_15EntryAttributes_st_size, __pyx_setprop_7pyfuse3_15EntryAttributes_st_size, 0, 0}, {"st_blocks", __pyx_getprop_7pyfuse3_15EntryAttributes_st_blocks, __pyx_setprop_7pyfuse3_15EntryAttributes_st_blocks, 0, 0}, {"st_blksize", __pyx_getprop_7pyfuse3_15EntryAttributes_st_blksize, __pyx_setprop_7pyfuse3_15EntryAttributes_st_blksize, 0, 0}, {"st_atime_ns", __pyx_getprop_7pyfuse3_15EntryAttributes_st_atime_ns, __pyx_setprop_7pyfuse3_15EntryAttributes_st_atime_ns, PyDoc_STR("Time of last access in (integer) nanoseconds"), 0}, {"st_mtime_ns", __pyx_getprop_7pyfuse3_15EntryAttributes_st_mtime_ns, __pyx_setprop_7pyfuse3_15EntryAttributes_st_mtime_ns, PyDoc_STR("Time of last modification in (integer) nanoseconds"), 0}, {"st_ctime_ns", __pyx_getprop_7pyfuse3_15EntryAttributes_st_ctime_ns, __pyx_setprop_7pyfuse3_15EntryAttributes_st_ctime_ns, PyDoc_STR("Time of last inode modification in (integer) nanoseconds"), 0}, {"st_birthtime_ns", __pyx_getprop_7pyfuse3_15EntryAttributes_st_birthtime_ns, __pyx_setprop_7pyfuse3_15EntryAttributes_st_birthtime_ns, PyDoc_STR("Time of inode creation in (integer) nanoseconds.\n\n Only available under BSD and OS X. Will be zero on Linux.\n "), 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_EntryAttributes_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_EntryAttributes}, {Py_tp_doc, (void *)PyDoc_STR("\n Instances of this class store attributes of directory entries.\n Most of the attributes correspond to the elements of the ``stat``\n C struct as returned by e.g. ``fstat`` and should be\n self-explanatory.\n ")}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_EntryAttributes}, {Py_tp_getset, (void *)__pyx_getsets_7pyfuse3_EntryAttributes}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_EntryAttributes}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_EntryAttributes_spec = { "pyfuse3.__init__.EntryAttributes", sizeof(struct __pyx_obj_7pyfuse3_EntryAttributes), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, __pyx_type_7pyfuse3_EntryAttributes_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_EntryAttributes = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""EntryAttributes", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_EntryAttributes), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_EntryAttributes, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ PyDoc_STR("\n Instances of this class store attributes of directory entries.\n Most of the attributes correspond to the elements of the ``stat``\n C struct as returned by e.g. ``fstat`` and should be\n self-explanatory.\n "), /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_EntryAttributes, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_7pyfuse3_EntryAttributes, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_EntryAttributes, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_vtabstruct_7pyfuse3_FileInfo __pyx_vtable_7pyfuse3_FileInfo; static PyObject *__pyx_tp_new_7pyfuse3_FileInfo(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_7pyfuse3_FileInfo *p; PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_FileInfo > 0) & __PYX_CHECK_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3_FileInfo, sizeof(struct __pyx_obj_7pyfuse3_FileInfo)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3_FileInfo[--__pyx_mstate_global->__pyx_freecount_7pyfuse3_FileInfo]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3_FileInfo)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif } else #endif { o = __Pyx_AllocateExtensionType(t, 0); if (unlikely(!o)) return 0; } p = ((struct __pyx_obj_7pyfuse3_FileInfo *)o); p->__pyx_vtab = __pyx_vtabptr_7pyfuse3_FileInfo; if (unlikely(__pyx_pw_7pyfuse3_8FileInfo_1__cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_7pyfuse3_FileInfo(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_FileInfo) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_FileInfo < 10) & __PYX_CHECK_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3_FileInfo, sizeof(struct __pyx_obj_7pyfuse3_FileInfo)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3_FileInfo[__pyx_mstate_global->__pyx_freecount_7pyfuse3_FileInfo++] = ((struct __pyx_obj_7pyfuse3_FileInfo *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static PyObject *__pyx_getprop_7pyfuse3_8FileInfo_fh(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_8FileInfo_2fh_1__get__(o); } static int __pyx_setprop_7pyfuse3_8FileInfo_fh(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_8FileInfo_2fh_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_8FileInfo_direct_io(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_8FileInfo_9direct_io_1__get__(o); } static int __pyx_setprop_7pyfuse3_8FileInfo_direct_io(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_8FileInfo_9direct_io_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_8FileInfo_keep_cache(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_8FileInfo_10keep_cache_1__get__(o); } static int __pyx_setprop_7pyfuse3_8FileInfo_keep_cache(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_8FileInfo_10keep_cache_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_8FileInfo_nonseekable(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_8FileInfo_11nonseekable_1__get__(o); } static int __pyx_setprop_7pyfuse3_8FileInfo_nonseekable(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_8FileInfo_11nonseekable_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyMethodDef __pyx_methods_7pyfuse3_FileInfo[] = { {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_8FileInfo_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_8FileInfo_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_7pyfuse3_FileInfo[] = { {"fh", __pyx_getprop_7pyfuse3_8FileInfo_fh, __pyx_setprop_7pyfuse3_8FileInfo_fh, 0, 0}, {"direct_io", __pyx_getprop_7pyfuse3_8FileInfo_direct_io, __pyx_setprop_7pyfuse3_8FileInfo_direct_io, 0, 0}, {"keep_cache", __pyx_getprop_7pyfuse3_8FileInfo_keep_cache, __pyx_setprop_7pyfuse3_8FileInfo_keep_cache, 0, 0}, {"nonseekable", __pyx_getprop_7pyfuse3_8FileInfo_nonseekable, __pyx_setprop_7pyfuse3_8FileInfo_nonseekable, 0, 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_FileInfo_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_FileInfo}, {Py_tp_doc, (void *)PyDoc_STR("\n Instances of this class store options and data that `Operations.open`\n returns. The attributes correspond to the elements of the ``fuse_file_info``\n struct that are relevant to the `Operations.open` function.\n ")}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_FileInfo}, {Py_tp_getset, (void *)__pyx_getsets_7pyfuse3_FileInfo}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_FileInfo}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_FileInfo_spec = { "pyfuse3.__init__.FileInfo", sizeof(struct __pyx_obj_7pyfuse3_FileInfo), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, __pyx_type_7pyfuse3_FileInfo_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_FileInfo = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""FileInfo", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_FileInfo), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_FileInfo, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ PyDoc_STR("\n Instances of this class store options and data that `Operations.open`\n returns. The attributes correspond to the elements of the ``fuse_file_info``\n struct that are relevant to the `Operations.open` function.\n "), /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_FileInfo, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_7pyfuse3_FileInfo, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_FileInfo, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3_StatvfsData(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_StatvfsData > 0) & __PYX_CHECK_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3_StatvfsData, sizeof(struct __pyx_obj_7pyfuse3_StatvfsData)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3_StatvfsData[--__pyx_mstate_global->__pyx_freecount_7pyfuse3_StatvfsData]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3_StatvfsData)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif } else #endif { o = __Pyx_AllocateExtensionType(t, 0); if (unlikely(!o)) return 0; } if (unlikely(__pyx_pw_7pyfuse3_11StatvfsData_1__cinit__(o, __pyx_mstate_global->__pyx_empty_tuple, NULL) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_7pyfuse3_StatvfsData(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_StatvfsData) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_StatvfsData < 1) & __PYX_CHECK_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3_StatvfsData, sizeof(struct __pyx_obj_7pyfuse3_StatvfsData)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3_StatvfsData[__pyx_mstate_global->__pyx_freecount_7pyfuse3_StatvfsData++] = ((struct __pyx_obj_7pyfuse3_StatvfsData *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_bsize(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_bsize_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_bsize(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_bsize_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_frsize(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_frsize_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_frsize(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_frsize_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_blocks(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_blocks_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_blocks(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_blocks_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_bfree(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_bfree_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_bfree(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_bfree_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_bavail(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_bavail_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_bavail(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_bavail_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_files(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_files_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_files(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_files_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_ffree(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_ffree_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_ffree(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_7f_ffree_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_favail(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_favail_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_favail(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_8f_favail_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_7pyfuse3_11StatvfsData_f_namemax(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_11StatvfsData_9f_namemax_1__get__(o); } static int __pyx_setprop_7pyfuse3_11StatvfsData_f_namemax(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_7pyfuse3_11StatvfsData_9f_namemax_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyMethodDef __pyx_methods_7pyfuse3_StatvfsData[] = { {"__getstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_3__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__setstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_5__setstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_11StatvfsData_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_7pyfuse3_StatvfsData[] = { {"f_bsize", __pyx_getprop_7pyfuse3_11StatvfsData_f_bsize, __pyx_setprop_7pyfuse3_11StatvfsData_f_bsize, 0, 0}, {"f_frsize", __pyx_getprop_7pyfuse3_11StatvfsData_f_frsize, __pyx_setprop_7pyfuse3_11StatvfsData_f_frsize, 0, 0}, {"f_blocks", __pyx_getprop_7pyfuse3_11StatvfsData_f_blocks, __pyx_setprop_7pyfuse3_11StatvfsData_f_blocks, 0, 0}, {"f_bfree", __pyx_getprop_7pyfuse3_11StatvfsData_f_bfree, __pyx_setprop_7pyfuse3_11StatvfsData_f_bfree, 0, 0}, {"f_bavail", __pyx_getprop_7pyfuse3_11StatvfsData_f_bavail, __pyx_setprop_7pyfuse3_11StatvfsData_f_bavail, 0, 0}, {"f_files", __pyx_getprop_7pyfuse3_11StatvfsData_f_files, __pyx_setprop_7pyfuse3_11StatvfsData_f_files, 0, 0}, {"f_ffree", __pyx_getprop_7pyfuse3_11StatvfsData_f_ffree, __pyx_setprop_7pyfuse3_11StatvfsData_f_ffree, 0, 0}, {"f_favail", __pyx_getprop_7pyfuse3_11StatvfsData_f_favail, __pyx_setprop_7pyfuse3_11StatvfsData_f_favail, 0, 0}, {"f_namemax", __pyx_getprop_7pyfuse3_11StatvfsData_f_namemax, __pyx_setprop_7pyfuse3_11StatvfsData_f_namemax, 0, 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_StatvfsData_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_StatvfsData}, {Py_tp_doc, (void *)PyDoc_STR("\n Instances of this class store information about the file system.\n The attributes correspond to the elements of the ``statvfs``\n struct, see :manpage:`statvfs(2)` for details.\n ")}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_StatvfsData}, {Py_tp_getset, (void *)__pyx_getsets_7pyfuse3_StatvfsData}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_StatvfsData}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_StatvfsData_spec = { "pyfuse3.__init__.StatvfsData", sizeof(struct __pyx_obj_7pyfuse3_StatvfsData), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, __pyx_type_7pyfuse3_StatvfsData_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_StatvfsData = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""StatvfsData", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_StatvfsData), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_StatvfsData, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ PyDoc_STR("\n Instances of this class store information about the file system.\n The attributes correspond to the elements of the ``statvfs``\n struct, see :manpage:`statvfs(2)` for details.\n "), /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_StatvfsData, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_7pyfuse3_StatvfsData, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_StatvfsData, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3_FUSEError(PyTypeObject *t, PyObject *a, PyObject *k) { PyObject *o = __Pyx_PyType_GetSlot((((PyTypeObject*)PyExc_Exception)), tp_new, newfunc)(t, a, k); if (unlikely(!o)) return 0; if (unlikely(__pyx_pw_7pyfuse3_9FUSEError_1__cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_7pyfuse3_FUSEError(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_FUSEError) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); PyObject_GC_Track(o); __Pyx_PyType_GetSlot((((PyTypeObject*)PyExc_Exception)), tp_dealloc, destructor)(o); } static int __pyx_tp_traverse_7pyfuse3_FUSEError(PyObject *o, visitproc v, void *a) { int e; { traverseproc traverse = __Pyx_PyType_GetSlot((((PyTypeObject*)PyExc_Exception)), tp_traverse, traverseproc); if (!traverse); else { e = traverse(o,v,a); if (e) return e; } } { e = __Pyx_call_type_traverse(o, 0, v, a); if (e) return e; } return 0; } static int __pyx_tp_clear_7pyfuse3_FUSEError(PyObject *o) { { inquiry clear = __Pyx_PyType_GetSlot((((PyTypeObject*)PyExc_Exception)), tp_clear, inquiry); if (clear) clear(o); } return 0; } static PyObject *__pyx_getprop_7pyfuse3_9FUSEError_errno(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_9FUSEError_5errno_1__get__(o); } static PyObject *__pyx_getprop_7pyfuse3_9FUSEError_errno_(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_7pyfuse3_9FUSEError_6errno__1__get__(o); } static PyMethodDef __pyx_methods_7pyfuse3_FUSEError[] = { {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_9FUSEError_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_9FUSEError_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_7pyfuse3_FUSEError[] = { {"errno", __pyx_getprop_7pyfuse3_9FUSEError_errno, 0, PyDoc_STR("Error code to return to client process"), 0}, {"errno_", __pyx_getprop_7pyfuse3_9FUSEError_errno_, 0, 0, 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_FUSEError_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_FUSEError}, {Py_tp_str, (void *)__pyx_pw_7pyfuse3_9FUSEError_3__str__}, {Py_tp_doc, (void *)PyDoc_STR("\n This exception may be raised by request handlers to indicate that\n the requested operation could not be carried out. The system call\n that resulted in the request (if any) will then fail with error\n code *errno_*.\n ")}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3_FUSEError}, {Py_tp_clear, (void *)__pyx_tp_clear_7pyfuse3_FUSEError}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_FUSEError}, {Py_tp_getset, (void *)__pyx_getsets_7pyfuse3_FUSEError}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_FUSEError}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_FUSEError_spec = { "pyfuse3.__init__.FUSEError", sizeof(struct __pyx_obj_7pyfuse3_FUSEError), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3_FUSEError_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_FUSEError = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""FUSEError", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_FUSEError), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_FUSEError, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ __pyx_pw_7pyfuse3_9FUSEError_3__str__, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ PyDoc_STR("\n This exception may be raised by request handlers to indicate that\n the requested operation could not be carried out. The system call\n that resulted in the request (if any) will then fail with error\n code *errno_*.\n "), /*tp_doc*/ __pyx_tp_traverse_7pyfuse3_FUSEError, /*tp_traverse*/ __pyx_tp_clear_7pyfuse3_FUSEError, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_FUSEError, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_7pyfuse3_FUSEError, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_FUSEError, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_vtabstruct_7pyfuse3_PollHandle __pyx_vtable_7pyfuse3_PollHandle; static PyObject *__pyx_tp_new_7pyfuse3_PollHandle(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_obj_7pyfuse3_PollHandle *p; PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_PollHandle > 0) & __PYX_CHECK_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3_PollHandle, sizeof(struct __pyx_obj_7pyfuse3_PollHandle)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3_PollHandle[--__pyx_mstate_global->__pyx_freecount_7pyfuse3_PollHandle]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3_PollHandle)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif } else #endif { o = __Pyx_AllocateExtensionType(t, 0); if (unlikely(!o)) return 0; } p = ((struct __pyx_obj_7pyfuse3_PollHandle *)o); p->__pyx_vtab = __pyx_vtabptr_7pyfuse3_PollHandle; if (unlikely(__pyx_pw_7pyfuse3_10PollHandle_1__cinit__(o, __pyx_mstate_global->__pyx_empty_tuple, NULL) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_7pyfuse3_PollHandle(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3_PollHandle) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); __pyx_pw_7pyfuse3_10PollHandle_5__dealloc__(o); __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); PyErr_Restore(etype, eval, etb); } #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3_PollHandle < 10) & __PYX_CHECK_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3_PollHandle, sizeof(struct __pyx_obj_7pyfuse3_PollHandle)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3_PollHandle[__pyx_mstate_global->__pyx_freecount_7pyfuse3_PollHandle++] = ((struct __pyx_obj_7pyfuse3_PollHandle *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static PyMethodDef __pyx_methods_7pyfuse3_PollHandle[] = { {"__getstate__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10PollHandle_7__getstate__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"notify", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10PollHandle_9notify, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyfuse3_10PollHandle_8notify}, {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10PollHandle_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyfuse3_10PollHandle_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3_PollHandle_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3_PollHandle}, {Py_tp_doc, (void *)PyDoc_STR("\n Opaque handle for delivering poll(2) readiness notifications.\n\n Instances of this class are created by pyfuse3 and passed to\n `Operations.poll`. The filesystem may keep a reference and later\n call `PollHandle.notify` on the handle to wake up any process currently\n blocked in :manpage:`poll(2)`, :manpage:`select(2)` or\n :manpage:`epoll_wait(2)` for the corresponding file descriptor.\n\n A single notification is sufficient to clear all pending waiters;\n filesystems should normally discard the handle after notifying.\n\n The underlying ``fuse_pollhandle`` is automatically destroyed when\n the Python object is garbage collected, so filesystems should simply\n drop the reference when the notification is no longer needed.\n ")}, {Py_tp_methods, (void *)__pyx_methods_7pyfuse3_PollHandle}, {Py_tp_init, (void *)__pyx_pw_7pyfuse3_10PollHandle_3__init__}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3_PollHandle}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3_PollHandle_spec = { "pyfuse3.__init__.PollHandle", sizeof(struct __pyx_obj_7pyfuse3_PollHandle), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, __pyx_type_7pyfuse3_PollHandle_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3_PollHandle = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""PollHandle", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3_PollHandle), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3_PollHandle, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ PyDoc_STR("\n Opaque handle for delivering poll(2) readiness notifications.\n\n Instances of this class are created by pyfuse3 and passed to\n `Operations.poll`. The filesystem may keep a reference and later\n call `PollHandle.notify` on the handle to wake up any process currently\n blocked in :manpage:`poll(2)`, :manpage:`select(2)` or\n :manpage:`epoll_wait(2)` for the corresponding file descriptor.\n\n A single notification is sufficient to clear all pending waiters;\n filesystems should normally discard the handle after notifying.\n\n The underlying ``fuse_pollhandle`` is automatically destroyed when\n the Python object is garbage collected, so filesystems should simply\n drop the reference when the notification is no longer needed.\n "), /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_7pyfuse3_PollHandle, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif __pyx_pw_7pyfuse3_10PollHandle_3__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3_PollHandle, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_defaults(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_defaults(PyObject *o) { struct __pyx_defaults *p = (struct __pyx_defaults *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_defaults) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->arg0); PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } static int __pyx_tp_traverse_7pyfuse3___pyx_defaults(PyObject *o, visitproc v, void *a) { int e; struct __pyx_defaults *p = (struct __pyx_defaults *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->arg0) { e = (*v)(p->arg0, a); if (e) return e; } return 0; } static int __pyx_tp_clear_7pyfuse3___pyx_defaults(PyObject *o) { PyObject* tmp; struct __pyx_defaults *p = (struct __pyx_defaults *)o; tmp = ((PyObject*)p->arg0); p->arg0 = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_defaults_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_defaults}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_defaults}, {Py_tp_clear, (void *)__pyx_tp_clear_7pyfuse3___pyx_defaults}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_defaults}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_defaults_spec = { "pyfuse3.__init__.__pyx_defaults", sizeof(struct __pyx_defaults), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_defaults_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_defaults = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_defaults", /*tp_name*/ sizeof(struct __pyx_defaults), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_defaults, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_defaults, /*tp_traverse*/ __pyx_tp_clear_7pyfuse3___pyx_defaults, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_defaults, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct__fuse_lookup_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct__fuse_lookup_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct__fuse_lookup_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct__fuse_lookup_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct__fuse_lookup_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct__fuse_lookup_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct__fuse_lookup_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct__fuse_lookup_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct__fuse_lookup_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct__fuse_lookup_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct__fuse_lookup_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct__fuse_lookup_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct__fuse_lookup_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async_spec = { "pyfuse3.__init__.__pyx_scope_struct__fuse_lookup_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct__fuse_lookup_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct__fuse_lookup_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct__fuse_lookup_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct__fuse_lookup_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct__fuse_lookup_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_1_fuse_getattr_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_1_fuse_getattr_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_fh); Py_CLEAR(p->__pyx_v_fields); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_fh) { e = (*v)(p->__pyx_v_fh, a); if (e) return e; } if (p->__pyx_v_fields) { e = (*v)(((PyObject *)p->__pyx_v_fields), a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_2_fuse_setattr_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_2_fuse_setattr_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_target); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_target) { e = (*v)(p->__pyx_v_target, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_3_fuse_readlink_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_3_fuse_readlink_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_4_fuse_mknod_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_4_fuse_mknod_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_5_fuse_mkdir_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_5_fuse_mkdir_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_6_fuse_unlink_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_6_fuse_unlink_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_7_fuse_rmdir_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_7_fuse_rmdir_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_link); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_link) { e = (*v)(p->__pyx_v_link, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_8_fuse_symlink_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_8_fuse_symlink_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_9_fuse_rename_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_9_fuse_rename_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_9_fuse_rename_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_9_fuse_rename_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_9_fuse_rename_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_9_fuse_rename_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_v_newname); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_9_fuse_rename_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_9_fuse_rename_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_9_fuse_rename_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_9_fuse_rename_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_v_newname) { e = (*v)(p->__pyx_v_newname, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_9_fuse_rename_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_9_fuse_rename_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_9_fuse_rename_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_9_fuse_rename_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_9_fuse_rename_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_9_fuse_rename_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_9_fuse_rename_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_9_fuse_rename_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_9_fuse_rename_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_10_fuse_link_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_10_fuse_link_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_10_fuse_link_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_10_fuse_link_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_10_fuse_link_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_10_fuse_link_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_newname); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_10_fuse_link_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_10_fuse_link_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_10_fuse_link_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_10_fuse_link_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_newname) { e = (*v)(p->__pyx_v_newname, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_10_fuse_link_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_10_fuse_link_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_10_fuse_link_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_10_fuse_link_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_10_fuse_link_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_10_fuse_link_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_10_fuse_link_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_10_fuse_link_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_10_fuse_link_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_11_fuse_open_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_11_fuse_open_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_11_fuse_open_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_11_fuse_open_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_11_fuse_open_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_11_fuse_open_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_fi); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_11_fuse_open_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_11_fuse_open_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_11_fuse_open_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_11_fuse_open_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_fi) { e = (*v)(((PyObject *)p->__pyx_v_fi), a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_11_fuse_open_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_11_fuse_open_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_11_fuse_open_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_11_fuse_open_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_11_fuse_open_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_11_fuse_open_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_11_fuse_open_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_11_fuse_open_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_11_fuse_open_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_12_fuse_read_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *p; PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_12_fuse_read_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_12_fuse_read_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_12_fuse_read_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } p = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)o); p->__pyx_v_pybuf.obj = NULL; return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_12_fuse_read_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_12_fuse_read_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_buf); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_12_fuse_read_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_12_fuse_read_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_12_fuse_read_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_12_fuse_read_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_buf) { e = (*v)(p->__pyx_v_buf, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } if (p->__pyx_v_pybuf.obj) { e = (*v)(p->__pyx_v_pybuf.obj, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_12_fuse_read_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_12_fuse_read_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_12_fuse_read_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_12_fuse_read_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_12_fuse_read_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_12_fuse_read_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_12_fuse_read_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_12_fuse_read_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_12_fuse_read_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_13_fuse_write_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_13_fuse_write_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_13_fuse_write_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_13_fuse_write_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_13_fuse_write_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_13_fuse_write_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_pbuf); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_13_fuse_write_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_13_fuse_write_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_13_fuse_write_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_13_fuse_write_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_pbuf) { e = (*v)(p->__pyx_v_pbuf, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_13_fuse_write_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_13_fuse_write_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_13_fuse_write_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_13_fuse_write_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_13_fuse_write_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_13_fuse_write_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_13_fuse_write_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_13_fuse_write_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_13_fuse_write_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_buf); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_buf) { e = (*v)(p->__pyx_v_buf, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_14_fuse_write_buf_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_14_fuse_write_buf_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_15_fuse_flush_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_15_fuse_flush_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_15_fuse_flush_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_15_fuse_flush_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_15_fuse_flush_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_15_fuse_flush_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_15_fuse_flush_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_15_fuse_flush_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_15_fuse_flush_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_15_fuse_flush_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_15_fuse_flush_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_15_fuse_flush_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_15_fuse_flush_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_15_fuse_flush_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_15_fuse_flush_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_15_fuse_flush_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_15_fuse_flush_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_15_fuse_flush_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_15_fuse_flush_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_16_fuse_release_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_16_fuse_release_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_16_fuse_release_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_16_fuse_release_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_16_fuse_release_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_16_fuse_release_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_16_fuse_release_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_16_fuse_release_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_16_fuse_release_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_16_fuse_release_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_16_fuse_release_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_16_fuse_release_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_16_fuse_release_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_16_fuse_release_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_16_fuse_release_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_16_fuse_release_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_16_fuse_release_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_16_fuse_release_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_16_fuse_release_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_17_fuse_fsync_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_17_fuse_fsync_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_18_fuse_opendir_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_18_fuse_opendir_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_token); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_token) { e = (*v)(((PyObject *)p->__pyx_v_token), a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_19_fuse_readdirplus_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_19_fuse_readdirplus_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_20_fuse_releasedir_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_20_fuse_releasedir_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_21_fuse_fsyncdir_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_21_fuse_fsyncdir_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_stats); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_stats) { e = (*v)(((PyObject *)p->__pyx_v_stats), a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_22_fuse_statfs_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_22_fuse_statfs_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_v_value); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); Py_CLEAR(p->__pyx_t_3); Py_CLEAR(p->__pyx_t_4); Py_CLEAR(p->__pyx_t_5); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_v_value) { e = (*v)(p->__pyx_v_value, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } if (p->__pyx_t_3) { e = (*v)(p->__pyx_t_3, a); if (e) return e; } if (p->__pyx_t_4) { e = (*v)(p->__pyx_t_4, a); if (e) return e; } if (p->__pyx_t_5) { e = (*v)(p->__pyx_t_5, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_23_fuse_setxattr_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_23_fuse_setxattr_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_buf); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_buf) { e = (*v)(p->__pyx_v_buf, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_24_fuse_getxattr_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_24_fuse_getxattr_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_buf); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_res); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_res) { e = (*v)(p->__pyx_v_res, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_25_fuse_listxattr_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_25_fuse_listxattr_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_26_fuse_removexattr_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_26_fuse_removexattr_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_27_fuse_access_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_27_fuse_access_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_27_fuse_access_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_27_fuse_access_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_27_fuse_access_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_27_fuse_access_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_allowed); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_27_fuse_access_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_27_fuse_access_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_27_fuse_access_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_27_fuse_access_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_allowed) { e = (*v)(p->__pyx_v_allowed, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_27_fuse_access_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_27_fuse_access_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_27_fuse_access_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_27_fuse_access_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_27_fuse_access_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_27_fuse_access_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_27_fuse_access_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_27_fuse_access_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_27_fuse_access_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_28_fuse_poll_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_28_fuse_poll_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_28_fuse_poll_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_28_fuse_poll_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_28_fuse_poll_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_28_fuse_poll_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_py_ph); Py_CLEAR(p->__pyx_v_result); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_28_fuse_poll_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_28_fuse_poll_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_28_fuse_poll_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_28_fuse_poll_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_py_ph) { e = (*v)(p->__pyx_v_py_ph, a); if (e) return e; } if (p->__pyx_v_result) { e = (*v)(p->__pyx_v_result, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_poll_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_28_fuse_poll_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_28_fuse_poll_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_28_fuse_poll_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_poll_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_28_fuse_poll_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_poll_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_poll_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_28_fuse_poll_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_28_fuse_poll_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_28_fuse_poll_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_28_fuse_poll_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_28_fuse_poll_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_29_fuse_create_async(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_29_fuse_create_async > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_29_fuse_create_async[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_29_fuse_create_async]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_29_fuse_create_async(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_29_fuse_create_async) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_c); Py_CLEAR(p->__pyx_v_ctx); Py_CLEAR(p->__pyx_v_e); Py_CLEAR(p->__pyx_v_entry); Py_CLEAR(p->__pyx_v_fi); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_v_tmp); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_29_fuse_create_async < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_29_fuse_create_async[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_29_fuse_create_async++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_29_fuse_create_async(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_c) { e = (*v)(((PyObject *)p->__pyx_v_c), a); if (e) return e; } if (p->__pyx_v_ctx) { e = (*v)(p->__pyx_v_ctx, a); if (e) return e; } if (p->__pyx_v_e) { e = (*v)(p->__pyx_v_e, a); if (e) return e; } if (p->__pyx_v_entry) { e = (*v)(((PyObject *)p->__pyx_v_entry), a); if (e) return e; } if (p->__pyx_v_fi) { e = (*v)(((PyObject *)p->__pyx_v_fi), a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_v_tmp) { e = (*v)(p->__pyx_v_tmp, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_29_fuse_create_async_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_29_fuse_create_async}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_29_fuse_create_async}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_29_fuse_create_async}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_29_fuse_create_async_spec = { "pyfuse3.__init__.__pyx_scope_struct_29_fuse_create_async", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_29_fuse_create_async_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_29_fuse_create_async = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_29_fuse_create_async", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_29_fuse_create_async), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_29_fuse_create_async, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_29_fuse_create_async, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_29_fuse_create_async, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); Py_CLEAR(p->__pyx_t_3); Py_CLEAR(p->__pyx_t_4); Py_CLEAR(p->__pyx_t_5); Py_CLEAR(p->__pyx_t_6); Py_CLEAR(p->__pyx_t_7); Py_CLEAR(p->__pyx_t_8); Py_CLEAR(p->__pyx_t_9); Py_CLEAR(p->__pyx_t_10); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } if (p->__pyx_t_3) { e = (*v)(p->__pyx_t_3, a); if (e) return e; } if (p->__pyx_t_4) { e = (*v)(p->__pyx_t_4, a); if (e) return e; } if (p->__pyx_t_5) { e = (*v)(p->__pyx_t_5, a); if (e) return e; } if (p->__pyx_t_6) { e = (*v)(p->__pyx_t_6, a); if (e) return e; } if (p->__pyx_t_7) { e = (*v)(p->__pyx_t_7, a); if (e) return e; } if (p->__pyx_t_8) { e = (*v)(p->__pyx_t_8, a); if (e) return e; } if (p->__pyx_t_9) { e = (*v)(p->__pyx_t_9, a); if (e) return e; } if (p->__pyx_t_10) { e = (*v)(p->__pyx_t_10, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable_spec = { "pyfuse3.__init__.__pyx_scope_struct_30__wait_fuse_readable", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_30__wait_fuse_readable", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_31__session_loop(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_31__session_loop > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_31__session_loop[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_31__session_loop]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_31__session_loop(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_31__session_loop) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_name); Py_CLEAR(p->__pyx_v_nursery); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_31__session_loop < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_31__session_loop[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_31__session_loop++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_31__session_loop(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_name) { e = (*v)(p->__pyx_v_name, a); if (e) return e; } if (p->__pyx_v_nursery) { e = (*v)(p->__pyx_v_nursery, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_31__session_loop_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_31__session_loop}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_31__session_loop}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_31__session_loop}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_31__session_loop_spec = { "pyfuse3.__init__.__pyx_scope_struct_31__session_loop", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_31__session_loop_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_31__session_loop = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_31__session_loop", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_31__session_loop), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_31__session_loop, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_31__session_loop, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_31__session_loop, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyObject *__pyx_tp_new_7pyfuse3___pyx_scope_struct_32_main(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_32_main > 0) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(t, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main)))) { o = (PyObject*)__pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_32_main[--__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_32_main]; #if CYTHON_USE_TYPE_SPECS Py_DECREF(Py_TYPE(o)); #endif memset(o, 0, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main)); #if CYTHON_COMPILING_IN_LIMITED_API (void) PyObject_Init(o, t); #else (void) PyObject_INIT(o, t); #endif PyObject_GC_Track(o); } else #endif { o = __Pyx_AllocateExtensionType(t, 1); if (unlikely(!o)) return 0; } return o; } static void __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_32_main(PyObject *o) { struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_32_main) { if (PyObject_CallFinalizerFromDealloc(o)) return; } } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_nursery); Py_CLEAR(p->__pyx_t_0); Py_CLEAR(p->__pyx_t_1); Py_CLEAR(p->__pyx_t_2); Py_CLEAR(p->__pyx_t_3); Py_CLEAR(p->__pyx_t_4); Py_CLEAR(p->__pyx_t_5); Py_CLEAR(p->__pyx_t_6); Py_CLEAR(p->__pyx_t_7); #if CYTHON_USE_FREELISTS if (likely((int)(__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_32_main < 8) & __PYX_CHECK_FINAL_TYPE_FOR_FREELISTS(Py_TYPE(o), __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main, sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main)))) { __pyx_mstate_global->__pyx_freelist_7pyfuse3___pyx_scope_struct_32_main[__pyx_mstate_global->__pyx_freecount_7pyfuse3___pyx_scope_struct_32_main++] = ((struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main *)o); } else #endif { PyTypeObject *tp = Py_TYPE(o); #if CYTHON_USE_TYPE_SLOTS (*tp->tp_free)(o); #else { freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); if (tp_free) tp_free(o); } #endif #if CYTHON_USE_TYPE_SPECS Py_DECREF(tp); #endif } } static int __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_32_main(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main *p = (struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main *)o; { e = __Pyx_call_type_traverse(o, 1, v, a); if (e) return e; } if (p->__pyx_v_nursery) { e = (*v)(p->__pyx_v_nursery, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } if (p->__pyx_t_1) { e = (*v)(p->__pyx_t_1, a); if (e) return e; } if (p->__pyx_t_2) { e = (*v)(p->__pyx_t_2, a); if (e) return e; } if (p->__pyx_t_3) { e = (*v)(p->__pyx_t_3, a); if (e) return e; } if (p->__pyx_t_4) { e = (*v)(p->__pyx_t_4, a); if (e) return e; } if (p->__pyx_t_5) { e = (*v)(p->__pyx_t_5, a); if (e) return e; } if (p->__pyx_t_6) { e = (*v)(p->__pyx_t_6, a); if (e) return e; } if (p->__pyx_t_7) { e = (*v)(p->__pyx_t_7, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_7pyfuse3___pyx_scope_struct_32_main_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_32_main}, {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyfuse3___pyx_scope_struct_32_main}, {Py_tp_new, (void *)__pyx_tp_new_7pyfuse3___pyx_scope_struct_32_main}, {0, 0}, }; static PyType_Spec __pyx_type_7pyfuse3___pyx_scope_struct_32_main_spec = { "pyfuse3.__init__.__pyx_scope_struct_32_main", sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_7pyfuse3___pyx_scope_struct_32_main_slots, }; #else static PyTypeObject __pyx_type_7pyfuse3___pyx_scope_struct_32_main = { PyVarObject_HEAD_INIT(0, 0) "pyfuse3.__init__.""__pyx_scope_struct_32_main", /*tp_name*/ sizeof(struct __pyx_obj_7pyfuse3___pyx_scope_struct_32_main), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_7pyfuse3___pyx_scope_struct_32_main, /*tp_dealloc*/ 0, /*tp_vectorcall_offset*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, /*tp_as_async*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_7pyfuse3___pyx_scope_struct_32_main, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_7pyfuse3___pyx_scope_struct_32_main, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800 0, /*tp_vectorcall*/ #endif #if __PYX_NEED_TP_PRINT_SLOT == 1 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030C0000 0, /*tp_watched*/ #endif #if PY_VERSION_HEX >= 0x030d00A4 0, /*tp_versions_used*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 0, /*tp_pypy_flags*/ #endif }; #endif static PyMethodDef __pyx_methods[] = { {0, 0, 0, 0} }; /* #### Code section: initfunc_declarations ### */ static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate); /*proto*/ /* #### Code section: init_module ### */ static int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations CYTHON_UNUSED_VAR(__pyx_mstate); __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); /*--- Global init code ---*/ __pyx_v_7pyfuse3_operations = Py_None; Py_INCREF(Py_None); __pyx_v_7pyfuse3_mountpoint_b = Py_None; Py_INCREF(Py_None); __pyx_v_7pyfuse3_py_retval = Py_None; Py_INCREF(Py_None); __pyx_v_7pyfuse3__notify_queue = Py_None; Py_INCREF(Py_None); __pyx_v_7pyfuse3_worker_data = ((struct __pyx_obj_7pyfuse3__WorkerData *)Py_None); Py_INCREF(Py_None); __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations CYTHON_UNUSED_VAR(__pyx_mstate); __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); /*--- Variable export code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations CYTHON_UNUSED_VAR(__pyx_mstate); __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); /*--- Function export code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations CYTHON_UNUSED_VAR(__pyx_mstate); PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); /*--- Type init code ---*/ #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3__Container = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3__Container_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3__Container)) __PYX_ERR(3, 13, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3__Container_spec, __pyx_mstate->__pyx_ptype_7pyfuse3__Container) < (0)) __PYX_ERR(3, 13, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3__Container = &__pyx_type_7pyfuse3__Container; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3__Container) < (0)) __PYX_ERR(3, 13, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3__Container); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3__Container->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3__Container->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3__Container->tp_getattro = PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Container, (PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3__Container) < (0)) __PYX_ERR(3, 13, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3__Container) < (0)) __PYX_ERR(3, 13, __pyx_L1_error) #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3_ReaddirToken = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_ReaddirToken_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3_ReaddirToken)) __PYX_ERR(3, 561, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_ReaddirToken_spec, __pyx_mstate->__pyx_ptype_7pyfuse3_ReaddirToken) < (0)) __PYX_ERR(3, 561, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3_ReaddirToken = &__pyx_type_7pyfuse3_ReaddirToken; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3_ReaddirToken) < (0)) __PYX_ERR(3, 561, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3_ReaddirToken); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3_ReaddirToken->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3_ReaddirToken->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3_ReaddirToken->tp_getattro = PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ReaddirToken, (PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_ReaddirToken) < (0)) __PYX_ERR(3, 561, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_ReaddirToken) < (0)) __PYX_ERR(3, 561, __pyx_L1_error) __pyx_vtabptr_7pyfuse3__WorkerData = &__pyx_vtable_7pyfuse3__WorkerData; __pyx_vtable_7pyfuse3__WorkerData.get_name = (PyObject *(*)(struct __pyx_obj_7pyfuse3__WorkerData *))__pyx_f_7pyfuse3_11_WorkerData_get_name; #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3__WorkerData = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3__WorkerData_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3__WorkerData)) __PYX_ERR(1, 182, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3__WorkerData_spec, __pyx_mstate->__pyx_ptype_7pyfuse3__WorkerData) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3__WorkerData = &__pyx_type_7pyfuse3__WorkerData; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3__WorkerData) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3__WorkerData); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3__WorkerData->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3__WorkerData->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3__WorkerData->tp_getattro = PyObject_GenericGetAttr; } #endif if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyfuse3__WorkerData, __pyx_vtabptr_7pyfuse3__WorkerData) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyfuse3__WorkerData) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WorkerData, (PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3__WorkerData) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3__WorkerData) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3_RequestContext = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_RequestContext_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3_RequestContext)) __PYX_ERR(0, 124, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_RequestContext_spec, __pyx_mstate->__pyx_ptype_7pyfuse3_RequestContext) < (0)) __PYX_ERR(0, 124, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3_RequestContext = &__pyx_type_7pyfuse3_RequestContext; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3_RequestContext) < (0)) __PYX_ERR(0, 124, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3_RequestContext); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3_RequestContext->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3_RequestContext->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3_RequestContext->tp_getattro = PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RequestContext, (PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_RequestContext) < (0)) __PYX_ERR(0, 124, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_RequestContext) < (0)) __PYX_ERR(0, 124, __pyx_L1_error) #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3_SetattrFields = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_SetattrFields_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3_SetattrFields)) __PYX_ERR(0, 141, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_SetattrFields_spec, __pyx_mstate->__pyx_ptype_7pyfuse3_SetattrFields) < (0)) __PYX_ERR(0, 141, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3_SetattrFields = &__pyx_type_7pyfuse3_SetattrFields; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3_SetattrFields) < (0)) __PYX_ERR(0, 141, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3_SetattrFields); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3_SetattrFields->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3_SetattrFields->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3_SetattrFields->tp_getattro = PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SetattrFields, (PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_SetattrFields) < (0)) __PYX_ERR(0, 141, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_SetattrFields) < (0)) __PYX_ERR(0, 141, __pyx_L1_error) #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3_EntryAttributes = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_EntryAttributes_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3_EntryAttributes)) __PYX_ERR(0, 169, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_EntryAttributes_spec, __pyx_mstate->__pyx_ptype_7pyfuse3_EntryAttributes) < (0)) __PYX_ERR(0, 169, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3_EntryAttributes = &__pyx_type_7pyfuse3_EntryAttributes; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3_EntryAttributes) < (0)) __PYX_ERR(0, 169, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3_EntryAttributes); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3_EntryAttributes->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3_EntryAttributes->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3_EntryAttributes->tp_getattro = PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EntryAttributes, (PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_EntryAttributes) < (0)) __PYX_ERR(0, 169, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_EntryAttributes) < (0)) __PYX_ERR(0, 169, __pyx_L1_error) __pyx_vtabptr_7pyfuse3_FileInfo = &__pyx_vtable_7pyfuse3_FileInfo; __pyx_vtable_7pyfuse3_FileInfo._copy_to_fuse = (PyObject *(*)(struct __pyx_obj_7pyfuse3_FileInfo *, struct fuse_file_info *))__pyx_f_7pyfuse3_8FileInfo__copy_to_fuse; #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3_FileInfo = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_FileInfo_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3_FileInfo)) __PYX_ERR(0, 349, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_FileInfo_spec, __pyx_mstate->__pyx_ptype_7pyfuse3_FileInfo) < (0)) __PYX_ERR(0, 349, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3_FileInfo = &__pyx_type_7pyfuse3_FileInfo; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3_FileInfo) < (0)) __PYX_ERR(0, 349, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3_FileInfo); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3_FileInfo->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3_FileInfo->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3_FileInfo->tp_getattro = PyObject_GenericGetAttr; } #endif if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyfuse3_FileInfo, __pyx_vtabptr_7pyfuse3_FileInfo) < (0)) __PYX_ERR(0, 349, __pyx_L1_error) if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyfuse3_FileInfo) < (0)) __PYX_ERR(0, 349, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FileInfo, (PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_FileInfo) < (0)) __PYX_ERR(0, 349, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_FileInfo) < (0)) __PYX_ERR(0, 349, __pyx_L1_error) #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3_StatvfsData = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_StatvfsData_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3_StatvfsData)) __PYX_ERR(0, 390, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_StatvfsData_spec, __pyx_mstate->__pyx_ptype_7pyfuse3_StatvfsData) < (0)) __PYX_ERR(0, 390, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3_StatvfsData = &__pyx_type_7pyfuse3_StatvfsData; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3_StatvfsData) < (0)) __PYX_ERR(0, 390, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3_StatvfsData); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3_StatvfsData->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3_StatvfsData->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3_StatvfsData->tp_getattro = PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_StatvfsData, (PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_StatvfsData) < (0)) __PYX_ERR(0, 390, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_StatvfsData) < (0)) __PYX_ERR(0, 390, __pyx_L1_error) #if CYTHON_USE_TYPE_SPECS __pyx_t_1 = PyTuple_Pack(1, (PyObject *)(((PyTypeObject*)PyExc_Exception))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_7pyfuse3_FUSEError = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_FUSEError_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3_FUSEError)) __PYX_ERR(0, 482, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_FUSEError_spec, __pyx_mstate->__pyx_ptype_7pyfuse3_FUSEError) < (0)) __PYX_ERR(0, 482, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3_FUSEError = &__pyx_type_7pyfuse3_FUSEError; #endif if (sizeof(struct __pyx_obj_7pyfuse3_FUSEError) != sizeof(PyBaseExceptionObject)) { if (__Pyx_validate_extern_base((((PyTypeObject*)PyExc_Exception))) < (0)) __PYX_ERR(0, 482, __pyx_L1_error) } #if !CYTHON_COMPILING_IN_LIMITED_API __pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError->tp_base = (((PyTypeObject*)PyExc_Exception)); #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3_FUSEError) < (0)) __PYX_ERR(0, 482, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3_FUSEError); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3_FUSEError->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3_FUSEError->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3_FUSEError->tp_getattro = PyObject_GenericGetAttr; } #endif if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FUSEError, (PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_FUSEError) < (0)) __PYX_ERR(0, 482, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_FUSEError) < (0)) __PYX_ERR(0, 482, __pyx_L1_error) __pyx_vtabptr_7pyfuse3_PollHandle = &__pyx_vtable_7pyfuse3_PollHandle; __pyx_vtable_7pyfuse3_PollHandle.from_ptr = (struct __pyx_obj_7pyfuse3_PollHandle *(*)(struct fuse_pollhandle *))__pyx_f_7pyfuse3_10PollHandle_from_ptr; #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3_PollHandle = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3_PollHandle_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3_PollHandle)) __PYX_ERR(0, 507, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3_PollHandle_spec, __pyx_mstate->__pyx_ptype_7pyfuse3_PollHandle) < (0)) __PYX_ERR(0, 507, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3_PollHandle = &__pyx_type_7pyfuse3_PollHandle; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3_PollHandle) < (0)) __PYX_ERR(0, 507, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3_PollHandle); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3_PollHandle->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3_PollHandle->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3_PollHandle->tp_getattro = PyObject_GenericGetAttr; } #endif if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyfuse3_PollHandle, __pyx_vtabptr_7pyfuse3_PollHandle) < (0)) __PYX_ERR(0, 507, __pyx_L1_error) if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyfuse3_PollHandle) < (0)) __PYX_ERR(0, 507, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PollHandle, (PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_PollHandle) < (0)) __PYX_ERR(0, 507, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyfuse3_PollHandle) < (0)) __PYX_ERR(0, 507, __pyx_L1_error) #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_defaults = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_defaults_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_defaults)) __PYX_ERR(0, 780, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_defaults_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_defaults) < (0)) __PYX_ERR(0, 780, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_defaults = &__pyx_type_7pyfuse3___pyx_defaults; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_defaults) < (0)) __PYX_ERR(0, 780, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_defaults); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_defaults->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_defaults->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_defaults->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async)) __PYX_ERR(3, 59, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async) < (0)) __PYX_ERR(3, 59, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async = &__pyx_type_7pyfuse3___pyx_scope_struct__fuse_lookup_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async) < (0)) __PYX_ERR(3, 59, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct__fuse_lookup_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async)) __PYX_ERR(3, 98, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async) < (0)) __PYX_ERR(3, 98, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async = &__pyx_type_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async) < (0)) __PYX_ERR(3, 98, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_1_fuse_getattr_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async)) __PYX_ERR(3, 127, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async) < (0)) __PYX_ERR(3, 127, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async = &__pyx_type_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async) < (0)) __PYX_ERR(3, 127, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_2_fuse_setattr_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async)) __PYX_ERR(3, 184, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async) < (0)) __PYX_ERR(3, 184, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async = &__pyx_type_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async) < (0)) __PYX_ERR(3, 184, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_3_fuse_readlink_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async)) __PYX_ERR(3, 209, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async) < (0)) __PYX_ERR(3, 209, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async = &__pyx_type_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async) < (0)) __PYX_ERR(3, 209, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_4_fuse_mknod_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async)) __PYX_ERR(3, 234, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async) < (0)) __PYX_ERR(3, 234, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async = &__pyx_type_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async) < (0)) __PYX_ERR(3, 234, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_5_fuse_mkdir_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async)) __PYX_ERR(3, 260, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async) < (0)) __PYX_ERR(3, 260, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async = &__pyx_type_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async) < (0)) __PYX_ERR(3, 260, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_6_fuse_unlink_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async)) __PYX_ERR(3, 281, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async) < (0)) __PYX_ERR(3, 281, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async = &__pyx_type_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async) < (0)) __PYX_ERR(3, 281, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_7_fuse_rmdir_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async)) __PYX_ERR(3, 304, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async) < (0)) __PYX_ERR(3, 304, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async = &__pyx_type_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async) < (0)) __PYX_ERR(3, 304, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_8_fuse_symlink_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async)) __PYX_ERR(3, 332, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async) < (0)) __PYX_ERR(3, 332, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async = &__pyx_type_7pyfuse3___pyx_scope_struct_9_fuse_rename_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async) < (0)) __PYX_ERR(3, 332, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_9_fuse_rename_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async)) __PYX_ERR(3, 357, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async) < (0)) __PYX_ERR(3, 357, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async = &__pyx_type_7pyfuse3___pyx_scope_struct_10_fuse_link_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async) < (0)) __PYX_ERR(3, 357, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_10_fuse_link_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async)) __PYX_ERR(3, 381, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async) < (0)) __PYX_ERR(3, 381, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async = &__pyx_type_7pyfuse3___pyx_scope_struct_11_fuse_open_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async) < (0)) __PYX_ERR(3, 381, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_11_fuse_open_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async)) __PYX_ERR(3, 408, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async) < (0)) __PYX_ERR(3, 408, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async = &__pyx_type_7pyfuse3___pyx_scope_struct_12_fuse_read_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async) < (0)) __PYX_ERR(3, 408, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_12_fuse_read_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async)) __PYX_ERR(3, 438, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async) < (0)) __PYX_ERR(3, 438, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async = &__pyx_type_7pyfuse3___pyx_scope_struct_13_fuse_write_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async) < (0)) __PYX_ERR(3, 438, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_13_fuse_write_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async)) __PYX_ERR(3, 462, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async) < (0)) __PYX_ERR(3, 462, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async = &__pyx_type_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async) < (0)) __PYX_ERR(3, 462, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_14_fuse_write_buf_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async)) __PYX_ERR(3, 483, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async) < (0)) __PYX_ERR(3, 483, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async = &__pyx_type_7pyfuse3___pyx_scope_struct_15_fuse_flush_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async) < (0)) __PYX_ERR(3, 483, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_15_fuse_flush_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async)) __PYX_ERR(3, 503, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async) < (0)) __PYX_ERR(3, 503, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async = &__pyx_type_7pyfuse3___pyx_scope_struct_16_fuse_release_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async) < (0)) __PYX_ERR(3, 503, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_16_fuse_release_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async)) __PYX_ERR(3, 525, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async) < (0)) __PYX_ERR(3, 525, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async = &__pyx_type_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async) < (0)) __PYX_ERR(3, 525, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_17_fuse_fsync_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async)) __PYX_ERR(3, 546, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async) < (0)) __PYX_ERR(3, 546, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async = &__pyx_type_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async) < (0)) __PYX_ERR(3, 546, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_18_fuse_opendir_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async)) __PYX_ERR(3, 578, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async) < (0)) __PYX_ERR(3, 578, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async = &__pyx_type_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async) < (0)) __PYX_ERR(3, 578, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_19_fuse_readdirplus_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async)) __PYX_ERR(3, 607, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async) < (0)) __PYX_ERR(3, 607, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async = &__pyx_type_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async) < (0)) __PYX_ERR(3, 607, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_20_fuse_releasedir_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async)) __PYX_ERR(3, 630, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async) < (0)) __PYX_ERR(3, 630, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async = &__pyx_type_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async) < (0)) __PYX_ERR(3, 630, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_21_fuse_fsyncdir_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async)) __PYX_ERR(3, 650, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async) < (0)) __PYX_ERR(3, 650, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async = &__pyx_type_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async) < (0)) __PYX_ERR(3, 650, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_22_fuse_statfs_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async)) __PYX_ERR(3, 681, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async) < (0)) __PYX_ERR(3, 681, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async = &__pyx_type_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async) < (0)) __PYX_ERR(3, 681, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_23_fuse_setxattr_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async)) __PYX_ERR(3, 726, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async) < (0)) __PYX_ERR(3, 726, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async = &__pyx_type_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async) < (0)) __PYX_ERR(3, 726, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_24_fuse_getxattr_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async)) __PYX_ERR(3, 759, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async) < (0)) __PYX_ERR(3, 759, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async = &__pyx_type_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async) < (0)) __PYX_ERR(3, 759, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_25_fuse_listxattr_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async)) __PYX_ERR(3, 797, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async) < (0)) __PYX_ERR(3, 797, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async = &__pyx_type_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async) < (0)) __PYX_ERR(3, 797, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_26_fuse_removexattr_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async)) __PYX_ERR(3, 819, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async) < (0)) __PYX_ERR(3, 819, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async = &__pyx_type_7pyfuse3___pyx_scope_struct_27_fuse_access_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async) < (0)) __PYX_ERR(3, 819, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_27_fuse_access_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_poll_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async)) __PYX_ERR(3, 855, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_poll_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async) < (0)) __PYX_ERR(3, 855, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async = &__pyx_type_7pyfuse3___pyx_scope_struct_28_fuse_poll_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async) < (0)) __PYX_ERR(3, 855, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_28_fuse_poll_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_29_fuse_create_async_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async)) __PYX_ERR(3, 881, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_29_fuse_create_async_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async) < (0)) __PYX_ERR(3, 881, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async = &__pyx_type_7pyfuse3___pyx_scope_struct_29_fuse_create_async; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async) < (0)) __PYX_ERR(3, 881, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_29_fuse_create_async->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable)) __PYX_ERR(1, 202, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable = &__pyx_type_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_30__wait_fuse_readable->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_31__session_loop_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop)) __PYX_ERR(1, 233, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_31__session_loop_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop) < (0)) __PYX_ERR(1, 233, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop = &__pyx_type_7pyfuse3___pyx_scope_struct_31__session_loop; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop) < (0)) __PYX_ERR(1, 233, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_31__session_loop->tp_getattro = PyObject_GenericGetAttr; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyfuse3___pyx_scope_struct_32_main_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main)) __PYX_ERR(0, 836, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyfuse3___pyx_scope_struct_32_main_spec, __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main) < (0)) __PYX_ERR(0, 836, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main = &__pyx_type_7pyfuse3___pyx_scope_struct_32_main; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main) < (0)) __PYX_ERR(0, 836, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main); #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main->tp_getattro == PyObject_GenericGetAttr)) { __pyx_mstate->__pyx_ptype_7pyfuse3___pyx_scope_struct_32_main->tp_getattro = PyObject_GenericGetAttr; } #endif __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations CYTHON_UNUSED_VAR(__pyx_mstate); PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); /*--- Type import code ---*/ __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_2_4(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyTypeObject), #elif CYTHON_COMPILING_IN_LIMITED_API 0, 0, #else sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyHeapTypeObject), #endif __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7cpython_4type_type) __PYX_ERR(4, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations CYTHON_UNUSED_VAR(__pyx_mstate); __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); /*--- Variable import code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations CYTHON_UNUSED_VAR(__pyx_mstate); __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); /*--- Function import code ---*/ __Pyx_RefNannyFinishContext(); return 0; } #if CYTHON_PEP489_MULTI_PHASE_INIT static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ static int __pyx_pymod_exec_pyfuse3(PyObject* module); /*proto*/ static PyModuleDef_Slot __pyx_moduledef_slots[] = { {Py_mod_create, (void*)__pyx_pymod_create}, {Py_mod_exec, (void*)__pyx_pymod_exec_pyfuse3}, #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING {Py_mod_gil, __Pyx_FREETHREADING_COMPATIBLE}, #endif #if PY_VERSION_HEX >= 0x030C0000 && CYTHON_USE_MODULE_STATE {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED}, #endif {0, NULL} }; #endif #ifdef __cplusplus namespace { struct PyModuleDef __pyx_moduledef = #else static struct PyModuleDef __pyx_moduledef = #endif { PyModuleDef_HEAD_INIT, "pyfuse3", __pyx_k_init___pyx_Copyright_2013_Nik, /* m_doc */ #if CYTHON_USE_MODULE_STATE sizeof(__pyx_mstatetype), /* m_size */ #else (CYTHON_PEP489_MULTI_PHASE_INIT) ? 0 : -1, /* m_size */ #endif __pyx_methods /* m_methods */, #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_moduledef_slots, /* m_slots */ #else NULL, /* m_reload */ #endif #if CYTHON_USE_MODULE_STATE __pyx_m_traverse, /* m_traverse */ __pyx_m_clear, /* m_clear */ NULL /* m_free */ #else NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ #endif }; #ifdef __cplusplus } /* anonymous namespace */ #endif /* PyModInitFuncType */ #ifndef CYTHON_NO_PYINIT_EXPORT #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC #else #ifdef __cplusplus #define __Pyx_PyMODINIT_FUNC extern "C" PyObject * #else #define __Pyx_PyMODINIT_FUNC PyObject * #endif #endif __Pyx_PyMODINIT_FUNC PyInit_pyfuse3(void) CYTHON_SMALL_CODE; /*proto*/ #if !defined(CYTHON_NO_PYINIT_EXPORT) && (defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) __Pyx_PyMODINIT_FUNC PyInit___init__(void) { return PyInit_pyfuse3(); } #endif __Pyx_PyMODINIT_FUNC PyInit_pyfuse3(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); } /* ModuleCreationPEP489 */ #if CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\ || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000)) static PY_INT64_T __Pyx_GetCurrentInterpreterId(void) { { PyObject *module = PyImport_ImportModule("_interpreters"); // 3.13+ I think if (!module) { PyErr_Clear(); // just try the 3.8-3.12 version module = PyImport_ImportModule("_xxsubinterpreters"); if (!module) goto bad; } PyObject *current = PyObject_CallMethod(module, "get_current", NULL); Py_DECREF(module); if (!current) goto bad; if (PyTuple_Check(current)) { PyObject *new_current = PySequence_GetItem(current, 0); Py_DECREF(current); current = new_current; if (!new_current) goto bad; } long long as_c_int = PyLong_AsLongLong(current); Py_DECREF(current); return as_c_int; } bad: PySys_WriteStderr("__Pyx_GetCurrentInterpreterId failed. Try setting the C define CYTHON_PEP489_MULTI_PHASE_INIT=0\n"); return -1; } #endif #if !CYTHON_USE_MODULE_STATE static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { static PY_INT64_T main_interpreter_id = -1; #if CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000 PY_INT64_T current_id = GraalPyInterpreterState_GetIDFromThreadState(PyThreadState_Get()); #elif CYTHON_COMPILING_IN_GRAAL PY_INT64_T current_id = PyInterpreterState_GetIDFromThreadState(PyThreadState_Get()); #elif CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\ || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000)) PY_INT64_T current_id = __Pyx_GetCurrentInterpreterId(); #elif CYTHON_COMPILING_IN_LIMITED_API PY_INT64_T current_id = PyInterpreterState_GetID(PyInterpreterState_Get()); #else PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); #endif if (unlikely(current_id == -1)) { return -1; } if (main_interpreter_id == -1) { main_interpreter_id = current_id; return 0; } else if (unlikely(main_interpreter_id != current_id)) { PyErr_SetString( PyExc_ImportError, "Interpreter change detected - this module can only be loaded into one interpreter per process."); return -1; } return 0; } #endif static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { PyObject *value = PyObject_GetAttrString(spec, from_name); int result = 0; if (likely(value)) { if (allow_none || value != Py_None) { result = PyDict_SetItemString(moddict, to_name, value); } Py_DECREF(value); } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); } else { result = -1; } return result; } static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) { PyObject *module = NULL, *moddict, *modname; CYTHON_UNUSED_VAR(def); #if !CYTHON_USE_MODULE_STATE if (__Pyx_check_single_interpreter()) return NULL; #endif if (__pyx_m) return __Pyx_NewRef(__pyx_m); modname = PyObject_GetAttrString(spec, "name"); if (unlikely(!modname)) goto bad; module = PyModule_NewObject(modname); Py_DECREF(modname); if (unlikely(!module)) goto bad; moddict = PyModule_GetDict(module); if (unlikely(!moddict)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; return module; bad: Py_XDECREF(module); return NULL; } static CYTHON_SMALL_CODE int __pyx_pymod_exec_pyfuse3(PyObject *__pyx_pyinit_module) #endif { int stringtab_initialized = 0; #if CYTHON_USE_MODULE_STATE int pystate_addmodule_run = 0; #endif __pyx_mstatetype *__pyx_mstate = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; Py_ssize_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations #if CYTHON_PEP489_MULTI_PHASE_INIT if (__pyx_m) { if (__pyx_m == __pyx_pyinit_module) return 0; PyErr_SetString(PyExc_RuntimeError, "Module 'pyfuse3' has already been imported. Re-initialisation is not supported."); return -1; } #else if (__pyx_m) return __Pyx_NewRef(__pyx_m); #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_t_1 = __pyx_pyinit_module; Py_INCREF(__pyx_t_1); #else __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) #endif #if CYTHON_USE_MODULE_STATE { int add_module_result = __Pyx_State_AddModule(__pyx_t_1, &__pyx_moduledef); __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "pyfuse3" pseudovariable */ if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error) pystate_addmodule_run = 1; } #else __pyx_m = __pyx_t_1; #endif #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING PyUnstable_Module_SetGIL(__pyx_m, Py_MOD_GIL_USED); #endif __pyx_mstate = __pyx_mstate_global; CYTHON_UNUSED_VAR(__pyx_t_1); __pyx_mstate->__pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_mstate->__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_mstate->__pyx_d); __pyx_mstate->__pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_mstate->__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_mstate->__pyx_cython_runtime = __Pyx_PyImport_AddModuleRef("cython_runtime"); if (unlikely(!__pyx_mstate->__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_mstate->__pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error) /* ImportRefnannyAPI */ #if CYTHON_REFNANNY __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); if (!__Pyx_RefNanny) { PyErr_Clear(); __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); if (!__Pyx_RefNanny) Py_FatalError("failed to import 'refnanny' module"); } #endif __Pyx_RefNannySetupContext("PyInit_pyfuse3", 0); __Pyx_init_runtime_version(); if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_mstate->__pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_mstate->__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_mstate->__pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_mstate->__pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Library function declarations ---*/ /*--- Initialize various global constants etc. ---*/ if (__Pyx_InitConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) stringtab_initialized = 1; if (__Pyx_InitGlobals() < (0)) __PYX_ERR(0, 1, __pyx_L1_error) if (__pyx_module_is_main_pyfuse3____init__) { if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_name_2, __pyx_mstate_global->__pyx_n_u_main_2) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) } if (!CYTHON_PEP489_MULTI_PHASE_INIT) { if (unlikely((__Pyx_SetPackagePathFromImportLib(__pyx_mstate_global->__pyx_kp_u_pyfuse3___init) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) } { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) if (!PyDict_GetItemString(modules, "pyfuse3")) { if (unlikely((PyDict_SetItemString(modules, "pyfuse3", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) } } /*--- Builtin init code ---*/ if (__Pyx_InitCachedBuiltins(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_CreateCodeObjects(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Global type/function init code ---*/ (void)__Pyx_modinit_global_init_code(__pyx_mstate); (void)__Pyx_modinit_variable_export_code(__pyx_mstate); (void)__Pyx_modinit_function_export_code(__pyx_mstate); if (unlikely((__Pyx_modinit_type_init_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_type_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) (void)__Pyx_modinit_variable_import_code(__pyx_mstate); (void)__Pyx_modinit_function_import_code(__pyx_mstate); /*--- Execution code ---*/ /* "pyfuse3/__init__.pyx":58 * ################ * * from pickle import PicklingError # <<<<<<<<<<<<<< * from queue import Queue * import logging */ { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_PicklingError}; __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pickle, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error) } __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_PicklingError}; __pyx_t_3 = 0; { __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":59 * * from pickle import PicklingError * from queue import Queue # <<<<<<<<<<<<<< * import logging * import os */ { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_Queue}; __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_queue, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error) } __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_Queue}; __pyx_t_3 = 0; { __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":60 * from pickle import PicklingError * from queue import Queue * import logging # <<<<<<<<<<<<<< * import os * import os.path */ __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_logging, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_logging, __pyx_t_2) < (0)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":61 * from queue import Queue * import logging * import os # <<<<<<<<<<<<<< * import os.path * import sys */ __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_os, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_os, __pyx_t_2) < (0)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":62 * import logging * import os * import os.path # <<<<<<<<<<<<<< * import sys * import trio */ __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_os_path, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_os, __pyx_t_2) < (0)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":63 * import os * import os.path * import sys # <<<<<<<<<<<<<< * import trio * import threading */ __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_sys, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 63, __pyx_L1_error) __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_sys, __pyx_t_2) < (0)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":64 * import os.path * import sys * import trio # <<<<<<<<<<<<<< * import threading * import typing */ __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_trio, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error) __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_trio, __pyx_t_2) < (0)) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":65 * import sys * import trio * import threading # <<<<<<<<<<<<<< * import typing * */ __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_threading, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 65, __pyx_L1_error) __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_threading, __pyx_t_2) < (0)) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":66 * import trio * import threading * import typing # <<<<<<<<<<<<<< * * from . import _pyfuse3 */ __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_typing, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error) __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_typing, __pyx_t_2) < (0)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":68 * import typing * * from . import _pyfuse3 # <<<<<<<<<<<<<< * _pyfuse3.FUSEError = FUSEError * */ { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_pyfuse3_2}; __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u__5, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u__2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) } __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_pyfuse3_2}; __pyx_t_3 = 0; { __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":69 * * from . import _pyfuse3 * _pyfuse3.FUSEError = FUSEError # <<<<<<<<<<<<<< * * from ._pyfuse3 import (Operations, async_wrapper, FileHandleT, FileNameT, */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyfuse3_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_FUSEError, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyfuse3_FUSEError)) < (0)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":71 * _pyfuse3.FUSEError = FUSEError * * from ._pyfuse3 import (Operations, async_wrapper, FileHandleT, FileNameT, # <<<<<<<<<<<<<< * FlagT, InodeT, ModeT, XAttrNameT) * */ { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_Operations,__pyx_mstate_global->__pyx_n_u_async_wrapper,__pyx_mstate_global->__pyx_n_u_FileHandleT,__pyx_mstate_global->__pyx_n_u_FileNameT,__pyx_mstate_global->__pyx_n_u_FlagT,__pyx_mstate_global->__pyx_n_u_InodeT,__pyx_mstate_global->__pyx_n_u_ModeT,__pyx_mstate_global->__pyx_n_u_XAttrNameT}; __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pyfuse3_2, __pyx_imported_names, 8, __pyx_mstate_global->__pyx_kp_u_pyfuse3_3, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) } __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_Operations,__pyx_mstate_global->__pyx_n_u_async_wrapper,__pyx_mstate_global->__pyx_n_u_FileHandleT,__pyx_mstate_global->__pyx_n_u_FileNameT,__pyx_mstate_global->__pyx_n_u_FlagT,__pyx_mstate_global->__pyx_n_u_InodeT,__pyx_mstate_global->__pyx_n_u_ModeT,__pyx_mstate_global->__pyx_n_u_XAttrNameT}; for (__pyx_t_3=0; __pyx_t_3 < 8; __pyx_t_3++) { __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":79 * ################## * * log = logging.getLogger("pyfuse3") # <<<<<<<<<<<<<< * fse = sys.getfilesystemencoding() * */ __pyx_t_4 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_logging); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_getLogger); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyfuse3}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_log, __pyx_t_2) < (0)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":80 * * log = logging.getLogger("pyfuse3") * fse = sys.getfilesystemencoding() # <<<<<<<<<<<<<< * * cdef object operations */ __pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_getfilesystemencoding); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fse, __pyx_t_2) < (0)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":84 * cdef object operations * cdef object mountpoint_b * cdef fuse_session* session = NULL # <<<<<<<<<<<<<< * cdef fuse_lowlevel_ops fuse_ops * cdef int session_fd */ __pyx_v_7pyfuse3_session = NULL; /* "pyfuse3/__init__.pyx":89 * cdef object py_retval * * cdef object _notify_queue = None # <<<<<<<<<<<<<< * * ROOT_INODE = FUSE_ROOT_ID */ __Pyx_INCREF(Py_None); __Pyx_XGOTREF(__pyx_v_7pyfuse3__notify_queue); __Pyx_DECREF_SET(__pyx_v_7pyfuse3__notify_queue, Py_None); __Pyx_GIVEREF(Py_None); /* "pyfuse3/__init__.pyx":91 * cdef object _notify_queue = None * * ROOT_INODE = FUSE_ROOT_ID # <<<<<<<<<<<<<< * __version__ = _pyfuse3.__version__ * */ __pyx_t_2 = __Pyx_PyLong_From___pyx_anon_enum(FUSE_ROOT_ID); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROOT_INODE, __pyx_t_2) < (0)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyfuse3/__init__.pyx":92 * * ROOT_INODE = FUSE_ROOT_ID * __version__ = _pyfuse3.__version__ # <<<<<<<<<<<<<< * * _NANOS_PER_SEC = 1000000000 */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pyfuse3_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_version); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_version, __pyx_t_5) < (0)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":94 * __version__ = _pyfuse3.__version__ * * _NANOS_PER_SEC = 1000000000 # <<<<<<<<<<<<<< * * # In the Cython source, we want the names to refer to the */ if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NANOS_PER_SEC, __pyx_mstate_global->__pyx_int_1000000000) < (0)) __PYX_ERR(0, 94, __pyx_L1_error) /* "pyfuse3/__init__.pyx":98 * # In the Cython source, we want the names to refer to the * # C constants. Therefore, we assign through globals(). * g = globals() # <<<<<<<<<<<<<< * g['ENOATTR'] = ENOATTR * g['RENAME_EXCHANGE'] = RENAME_EXCHANGE */ __pyx_t_5 = __Pyx_Globals(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_g, __pyx_t_5) < (0)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":99 * # C constants. Therefore, we assign through globals(). * g = globals() * g['ENOATTR'] = ENOATTR # <<<<<<<<<<<<<< * g['RENAME_EXCHANGE'] = RENAME_EXCHANGE * g['RENAME_NOREPLACE'] = RENAME_NOREPLACE */ __pyx_t_5 = __Pyx_PyLong_From___pyx_anon_enum(ENOATTR); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 99, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_g); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 99, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ENOATTR, __pyx_t_5) < 0))) __PYX_ERR(0, 99, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":100 * g = globals() * g['ENOATTR'] = ENOATTR * g['RENAME_EXCHANGE'] = RENAME_EXCHANGE # <<<<<<<<<<<<<< * g['RENAME_NOREPLACE'] = RENAME_NOREPLACE * */ __pyx_t_5 = __Pyx_PyLong_From___pyx_anon_enum(RENAME_EXCHANGE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_g); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RENAME_EXCHANGE, __pyx_t_5) < 0))) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":101 * g['ENOATTR'] = ENOATTR * g['RENAME_EXCHANGE'] = RENAME_EXCHANGE * g['RENAME_NOREPLACE'] = RENAME_NOREPLACE # <<<<<<<<<<<<<< * * trio_token = None */ __pyx_t_5 = __Pyx_PyLong_From___pyx_anon_enum(RENAME_NOREPLACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_g); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RENAME_NOREPLACE, __pyx_t_5) < 0))) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":103 * g['RENAME_NOREPLACE'] = RENAME_NOREPLACE * * trio_token = None # <<<<<<<<<<<<<< * * */ if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_trio_token, Py_None) < (0)) __PYX_ERR(0, 103, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_10_Container_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Container___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_10_Container_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Container___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":59 * save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) * * async def fuse_lookup_async (_Container c, name): # <<<<<<<<<<<<<< * cdef EntryAttributes entry * cdef int ret */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_1fuse_lookup_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_lookup_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_lookup_async, __pyx_t_5) < (0)) __PYX_ERR(3, 59, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":98 * save_retval(fuse_getattr_async(c)) * * async def fuse_getattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_4fuse_getattr_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_getattr_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_getattr_async, __pyx_t_5) < (0)) __PYX_ERR(3, 98, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":127 * save_retval(fuse_setattr_async(c, fh)) * * async def fuse_setattr_async (_Container c, fh): # <<<<<<<<<<<<<< * cdef int ret * cdef timespec now */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_7fuse_setattr_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_setattr_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_setattr_async, __pyx_t_5) < (0)) __PYX_ERR(3, 127, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":184 * save_retval(fuse_readlink_async(c)) * * async def fuse_readlink_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef char* name */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_10fuse_readlink_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_readlink_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_readlink_async, __pyx_t_5) < (0)) __PYX_ERR(3, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":209 * save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) * * async def fuse_mknod_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_13fuse_mknod_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_mknod_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_mknod_async, __pyx_t_5) < (0)) __PYX_ERR(3, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":234 * save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) * * async def fuse_mkdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_16fuse_mkdir_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_mkdir_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_mkdir_async, __pyx_t_5) < (0)) __PYX_ERR(3, 234, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":260 * save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) * * async def fuse_unlink_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_19fuse_unlink_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_unlink_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_unlink_async, __pyx_t_5) < (0)) __PYX_ERR(3, 260, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":281 * save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) * * async def fuse_rmdir_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_22fuse_rmdir_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_rmdir_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_rmdir_async, __pyx_t_5) < (0)) __PYX_ERR(3, 281, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":304 * c, PyBytes_FromString(name), PyBytes_FromString(link))) * * async def fuse_symlink_async (_Container c, name, link): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_25fuse_symlink_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_symlink_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_symlink_async, __pyx_t_5) < (0)) __PYX_ERR(3, 304, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":332 * * * async def fuse_rename_async (_Container c, name, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef unsigned flags = c.flags */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_28fuse_rename_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_rename_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_rename_async, __pyx_t_5) < (0)) __PYX_ERR(3, 332, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":357 * save_retval(fuse_link_async(c, PyBytes_FromString(newname))) * * async def fuse_link_async (_Container c, newname): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_31fuse_link_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_link_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_link_async, __pyx_t_5) < (0)) __PYX_ERR(3, 357, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":381 * save_retval(fuse_open_async(c)) * * async def fuse_open_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef FileInfo fi */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_34fuse_open_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_open_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_open_async, __pyx_t_5) < (0)) __PYX_ERR(3, 381, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":408 * save_retval(fuse_read_async(c)) * * async def fuse_read_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef Py_buffer pybuf */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_37fuse_read_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_read_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_read_async, __pyx_t_5) < (0)) __PYX_ERR(3, 408, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":438 * save_retval(fuse_write_async(c, pbuf)) * * async def fuse_write_async (_Container c, pbuf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_40fuse_write_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_write_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_write_async, __pyx_t_5) < (0)) __PYX_ERR(3, 438, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":462 * save_retval(fuse_write_buf_async(c, buf)) * * async def fuse_write_buf_async (_Container c, buf): # <<<<<<<<<<<<<< * cdef int ret * cdef size_t len_ */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_43fuse_write_buf_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_write_buf_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_write_buf_async, __pyx_t_5) < (0)) __PYX_ERR(3, 462, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":483 * save_retval(fuse_flush_async(c)) * * async def fuse_flush_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_46fuse_flush_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_flush_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_flush_async, __pyx_t_5) < (0)) __PYX_ERR(3, 483, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":503 * save_retval(fuse_release_async(c)) * * async def fuse_release_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_49fuse_release_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_release_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_release_async, __pyx_t_5) < (0)) __PYX_ERR(3, 503, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":525 * save_retval(fuse_fsync_async(c)) * * async def fuse_fsync_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_52fuse_fsync_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_fsync_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_fsync_async, __pyx_t_5) < (0)) __PYX_ERR(3, 525, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":546 * save_retval(fuse_opendir_async(c)) * * async def fuse_opendir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_55fuse_opendir_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_opendir_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_opendir_async, __pyx_t_5) < (0)) __PYX_ERR(3, 546, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_12ReaddirToken_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReaddirToken___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "self.req cannot be converted to a Python object for pickling" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "self.req cannot be converted to a Python object for pickling" */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_12ReaddirToken_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReaddirToken___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":578 * save_retval(fuse_readdirplus_async(c)) * * async def fuse_readdirplus_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ReaddirToken token = ReaddirToken() */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_58fuse_readdirplus_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_readdirplus_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_readdirplus_async, __pyx_t_5) < (0)) __PYX_ERR(3, 578, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":607 * save_retval(fuse_releasedir_async(c)) * * async def fuse_releasedir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_61fuse_releasedir_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_releasedir_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_releasedir_async, __pyx_t_5) < (0)) __PYX_ERR(3, 607, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":630 * save_retval(fuse_fsyncdir_async(c)) * * async def fuse_fsyncdir_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_64fuse_fsyncdir_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_fsyncdir_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_fsyncdir_async, __pyx_t_5) < (0)) __PYX_ERR(3, 630, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":650 * save_retval(fuse_statfs_async(c)) * * async def fuse_statfs_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef StatvfsData stats */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_67fuse_statfs_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_statfs_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_statfs_async, __pyx_t_5) < (0)) __PYX_ERR(3, 650, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":681 * save_retval(fuse_setxattr_async(c, name, value)) * * async def fuse_setxattr_async (_Container c, name, value): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_70fuse_setxattr_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_setxattr_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_setxattr_async, __pyx_t_5) < (0)) __PYX_ERR(3, 681, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":726 * save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) * * async def fuse_getxattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_73fuse_getxattr_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_getxattr_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_getxattr_async, __pyx_t_5) < (0)) __PYX_ERR(3, 726, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":759 * save_retval(fuse_listxattr_async(c)) * * async def fuse_listxattr_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef ssize_t len_s */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_76fuse_listxattr_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_listxattr_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_listxattr_async, __pyx_t_5) < (0)) __PYX_ERR(3, 759, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":797 * save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) * * async def fuse_removexattr_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_79fuse_removexattr_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_removexattr_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_removexattr_async, __pyx_t_5) < (0)) __PYX_ERR(3, 797, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":819 * save_retval(fuse_access_async(c)) * * async def fuse_access_async (_Container c): # <<<<<<<<<<<<<< * cdef int ret * cdef int mask = c.flags */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_82fuse_access_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_access_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_access_async, __pyx_t_5) < (0)) __PYX_ERR(3, 819, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":855 * save_retval(fuse_poll_async(c, py_ph)) * * async def fuse_poll_async (_Container c, object py_ph): # <<<<<<<<<<<<<< * cdef int ret * cdef unsigned revents */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_85fuse_poll_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_poll_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_poll_async, __pyx_t_5) < (0)) __PYX_ERR(3, 855, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/handlers.pxi":881 * save_retval(fuse_create_async(c, PyBytes_FromString(name))) * * async def fuse_create_async (_Container c, name): # <<<<<<<<<<<<<< * cdef int ret * cdef EntryAttributes entry */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_88fuse_create_async, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_fuse_create_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fuse_create_async, __pyx_t_5) < (0)) __PYX_ERR(3, 881, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/internal.pxi":115 * raise * * def _notify_loop(): # <<<<<<<<<<<<<< * '''Process async invalidate_entry calls.''' * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_91_notify_loop, 0, __pyx_mstate_global->__pyx_n_u_notify_loop, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_notify_loop, __pyx_t_5) < (0)) __PYX_ERR(1, 115, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_11_WorkerData_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WorkerData___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyfuse3__WorkerData, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":16 * else: * return __pyx_unpickle__WorkerData, (type(self), 0x2a8cfde, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle__WorkerData__set_state(self, __pyx_state) */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_11_WorkerData_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WorkerData___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyfuse3__WorkerData, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 16, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/internal.pxi":202 * cdef _WorkerData worker_data * * async def _wait_fuse_readable(): # <<<<<<<<<<<<<< * '''Wait for FUSE fd to become readable * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_93_wait_fuse_readable, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_wait_fuse_readable, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_wait_fuse_readable, __pyx_t_5) < (0)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "src/pyfuse3/internal.pxi":233 * return True * * @async_wrapper # <<<<<<<<<<<<<< * async def _session_loop(nursery, int min_tasks, int max_tasks): * cdef int res */ __pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_async_wrapper); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_96_session_loop, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_session_loop, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __pyx_t_7 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_session_loop, __pyx_t_5) < (0)) __PYX_ERR(1, 233, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":137 * cdef readonly mode_t umask * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("RequestContext instances can't be pickled") * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_14RequestContext_1__getstate__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RequestContext___getstate, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyfuse3_RequestContext, __pyx_mstate_global->__pyx_n_u_getstate, __pyx_t_5) < (0)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_14RequestContext_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RequestContext___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyfuse3_RequestContext, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":16 * else: * return __pyx_unpickle_RequestContext, (type(self), 0xe56624f, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_RequestContext__set_state(self, __pyx_state) */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_14RequestContext_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RequestContext___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyfuse3_RequestContext, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 16, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":165 * self.update_size = False * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("SetattrFields instances can't be pickled") * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_13SetattrFields_3__getstate__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SetattrFields___getstate, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyfuse3_SetattrFields, __pyx_mstate_global->__pyx_n_u_getstate, __pyx_t_5) < (0)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_13SetattrFields_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SetattrFields___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_13SetattrFields_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SetattrFields___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":335 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_15EntryAttributes_3__getstate__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EntryAttributes___getstate, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes, __pyx_mstate_global->__pyx_n_u_getstate, __pyx_t_5) < (0)) __PYX_ERR(0, 335, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":344 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_15EntryAttributes_5__setstate__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EntryAttributes___setstate, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyfuse3_EntryAttributes, __pyx_mstate_global->__pyx_n_u_setstate, __pyx_t_5) < (0)) __PYX_ERR(0, 344, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_15EntryAttributes_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EntryAttributes___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_15EntryAttributes_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EntryAttributes___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_8FileInfo_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FileInfo___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_8FileInfo_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FileInfo___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":467 * * # Pickling and copy support * def __getstate__(self): # <<<<<<<<<<<<<< * state = dict() * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_11StatvfsData_3__getstate__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_StatvfsData___getstate, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyfuse3_StatvfsData, __pyx_mstate_global->__pyx_n_u_getstate, __pyx_t_5) < (0)) __PYX_ERR(0, 467, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":475 * return state * * def __setstate__(self, state): # <<<<<<<<<<<<<< * for (k,v) in state.items(): * setattr(self, k, v) */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_11StatvfsData_5__setstate__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_StatvfsData___setstate, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyfuse3_StatvfsData, __pyx_mstate_global->__pyx_n_u_setstate, __pyx_t_5) < (0)) __PYX_ERR(0, 475, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_11StatvfsData_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_StatvfsData___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_11StatvfsData_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_StatvfsData___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_9FUSEError_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FUSEError___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_9FUSEError_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FUSEError___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":550 * self._ph = NULL * * def __getstate__(self): # <<<<<<<<<<<<<< * raise PicklingError("PollHandle instances can't be pickled") * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_10PollHandle_7__getstate__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PollHandle___getstate, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyfuse3_PollHandle, __pyx_mstate_global->__pyx_n_u_getstate, __pyx_t_5) < (0)) __PYX_ERR(0, 550, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":553 * raise PicklingError("PollHandle instances can't be pickled") * * def notify(self): # <<<<<<<<<<<<<< * ''' * Notify IO readiness for this poll handle. */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_10PollHandle_9notify, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PollHandle_notify, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyfuse3_PollHandle, __pyx_mstate_global->__pyx_n_u_notify, __pyx_t_5) < (0)) __PYX_ERR(0, 553, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_10PollHandle_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PollHandle___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_10PollHandle_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PollHandle___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_5) < (0)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":579 * * * def listdir(path): # <<<<<<<<<<<<<< * '''Like `os.listdir`, but releases the GIL. * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_99listdir, 0, __pyx_mstate_global->__pyx_n_u_listdir, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_listdir, __pyx_t_5) < (0)) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":628 * * * def syncfs(path): # <<<<<<<<<<<<<< * '''Sync filesystem mounted at *path* * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_101syncfs, 0, __pyx_mstate_global->__pyx_n_u_syncfs, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_syncfs, __pyx_t_5) < (0)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":647 * * * def setxattr(path, name, bytes value, namespace='user'): # <<<<<<<<<<<<<< * '''Set extended attribute * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_103setxattr, 0, __pyx_mstate_global->__pyx_n_u_setxattr, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[3]); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setxattr, __pyx_t_5) < (0)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":698 * * * def getxattr(path, name, size_t size_guess=128, namespace='user'): # <<<<<<<<<<<<<< * '''Get extended attribute * */ __pyx_t_5 = __Pyx_PyLong_FromSize_t(((size_t)0x80)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_Pack(2, __pyx_t_5, ((PyObject*)__pyx_mstate_global->__pyx_n_u_user)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_105getxattr, 0, __pyx_mstate_global->__pyx_n_u_getxattr, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_getxattr, __pyx_t_5) < (0)) __PYX_ERR(0, 698, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":778 * * * default_options = frozenset(('default_permissions',)) # <<<<<<<<<<<<<< * * def init(ops, mountpoint, options=default_options): */ __pyx_t_5 = __Pyx_PyFrozenSet_New(__pyx_mstate_global->__pyx_tuple[4]); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_default_options, __pyx_t_5) < (0)) __PYX_ERR(0, 778, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":780 * default_options = frozenset(('default_permissions',)) * * def init(ops, mountpoint, options=default_options): # <<<<<<<<<<<<<< * '''Initialize and mount FUSE file system * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_107init, 0, __pyx_mstate_global->__pyx_n_u_init, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, __pyx_mstate_global->__pyx_ptype_7pyfuse3___pyx_defaults)) __PYX_ERR(0, 780, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_default_options); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_t_5)->arg0 = __pyx_t_6; __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_5, __pyx_pf_7pyfuse3_131__defaults__); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_5) < (0)) __PYX_ERR(0, 780, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":836 * * * @async_wrapper # <<<<<<<<<<<<<< * async def main(int min_tasks=1, int max_tasks=99): * '''Run FUSE main loop''' */ __pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_async_wrapper); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); /* "pyfuse3/__init__.pyx":837 * * @async_wrapper * async def main(int min_tasks=1, int max_tasks=99): # <<<<<<<<<<<<<< * '''Run FUSE main loop''' * */ __pyx_t_2 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyLong_From_int(((int)99)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); /* "pyfuse3/__init__.pyx":836 * * * @async_wrapper # <<<<<<<<<<<<<< * async def main(int min_tasks=1, int max_tasks=99): * '''Run FUSE main loop''' */ __pyx_t_9 = PyTuple_Pack(2, __pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_109main, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_main, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_7 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_8}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_main, __pyx_t_5) < (0)) __PYX_ERR(0, 836, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":858 * * * def terminate(): # <<<<<<<<<<<<<< * '''Terminate FUSE main loop. * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_112terminate, 0, __pyx_mstate_global->__pyx_n_u_terminate, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_terminate, __pyx_t_5) < (0)) __PYX_ERR(0, 858, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":873 * * * def close(unmount=True): # <<<<<<<<<<<<<< * '''Clean up and ensure filesystem is unmounted * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_114close, 0, __pyx_mstate_global->__pyx_n_u_close, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[5]); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_close, __pyx_t_5) < (0)) __PYX_ERR(0, 873, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":906 * * * def invalidate_inode(fuse_ino_t inode, attr_only=False): # <<<<<<<<<<<<<< * '''Invalidate cache for *inode* * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_116invalidate_inode, 0, __pyx_mstate_global->__pyx_n_u_invalidate_inode, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[6]); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_invalidate_inode, __pyx_t_5) < (0)) __PYX_ERR(0, 906, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":935 * * * def invalidate_entry(fuse_ino_t inode_p, bytes name, fuse_ino_t deleted=0): # <<<<<<<<<<<<<< * '''Invalidate directory entry * */ __pyx_t_5 = __Pyx_PyLong_From_fuse_ino_t(((fuse_ino_t)0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_118invalidate_entry, 0, __pyx_mstate_global->__pyx_n_u_invalidate_entry, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_invalidate_entry, __pyx_t_5) < (0)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":991 * * * def invalidate_entry_async(inode_p, name, deleted=0, ignore_enoent=False): # <<<<<<<<<<<<<< * '''Asynchronously invalidate directory entry * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_120invalidate_entry_async, 0, __pyx_mstate_global->__pyx_n_u_invalidate_entry_async, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[7]); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_invalidate_entry_async, __pyx_t_5) < (0)) __PYX_ERR(0, 991, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":1027 * * * def notify_store(inode, offset, data): # <<<<<<<<<<<<<< * '''Store data in kernel page cache * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_122notify_store, 0, __pyx_mstate_global->__pyx_n_u_notify_store, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_notify_store, __pyx_t_5) < (0)) __PYX_ERR(0, 1027, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":1071 * * * def get_sup_groups(pid): # <<<<<<<<<<<<<< * '''Return supplementary group ids of *pid* * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_124get_sup_groups, 0, __pyx_mstate_global->__pyx_n_u_get_sup_groups, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_sup_groups, __pyx_t_5) < (0)) __PYX_ERR(0, 1071, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":1094 * * * def readdir_reply(ReaddirToken token, name, EntryAttributes attr, off_t next_id): # <<<<<<<<<<<<<< * '''Report a directory entry in response to a `~Operations.readdir` request. * */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_126readdir_reply, 0, __pyx_mstate_global->__pyx_n_u_readdir_reply, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_readdir_reply, __pyx_t_5) < (0)) __PYX_ERR(0, 1094, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":4 * int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1 * int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1 * def __pyx_unpickle__WorkerData(__pyx_type, long __pyx_checksum, tuple __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_result * __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0x2a8cfde, 0x9365cf3, 0xe8d9c4e, b'active_readers, read_lock, task_count, task_serial') */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_128__pyx_unpickle__WorkerData, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__WorkerData, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__WorkerData, __pyx_t_5) < (0)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "(tree fragment)":1 * cdef extern from *: # <<<<<<<<<<<<<< * int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1 * int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1 */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7pyfuse3_130__pyx_unpickle_RequestContext, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_RequestContext, NULL, __pyx_mstate_global->__pyx_n_u_pyfuse3, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_RequestContext, __pyx_t_5) < (0)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pyfuse3/__init__.pyx":1 * ''' # <<<<<<<<<<<<<< * __init__.pyx * */ __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_5) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /*--- Wrapped vars code ---*/ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); if (__pyx_m) { if (__pyx_mstate->__pyx_d && stringtab_initialized) { __Pyx_AddTraceback("init pyfuse3", __pyx_clineno, __pyx_lineno, __pyx_filename); } #if !CYTHON_USE_MODULE_STATE Py_CLEAR(__pyx_m); #else Py_DECREF(__pyx_m); if (pystate_addmodule_run) { PyObject *tp, *value, *tb; PyErr_Fetch(&tp, &value, &tb); PyState_RemoveModule(&__pyx_moduledef); PyErr_Restore(tp, value, tb); } #endif } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_ImportError, "init pyfuse3"); } __pyx_L0:; __Pyx_RefNannyFinishContext(); #if CYTHON_PEP489_MULTI_PHASE_INIT return (__pyx_m != NULL) ? 0 : -1; #else return __pyx_m; #endif } /* #### Code section: pystring_table ### */ /* #### Code section: cached_builtins ### */ static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(1, 98, __pyx_L1_error) __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_open); if (!__pyx_builtin_open) __PYX_ERR(0, 1081, __pyx_L1_error) /* Cached unbound methods */ __pyx_mstate->__pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type; __pyx_mstate->__pyx_umethod_PyDict_Type_items.method_name = &__pyx_mstate->__pyx_n_u_items; __pyx_mstate->__pyx_umethod_PyDict_Type_pop.type = (PyObject*)&PyDict_Type; __pyx_mstate->__pyx_umethod_PyDict_Type_pop.method_name = &__pyx_mstate->__pyx_n_u_pop; __pyx_mstate->__pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type; __pyx_mstate->__pyx_umethod_PyDict_Type_values.method_name = &__pyx_mstate->__pyx_n_u_values; return 0; __pyx_L1_error:; return -1; } /* #### Code section: cached_constants ### */ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations CYTHON_UNUSED_VAR(__pyx_mstate); __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); /* "src/pyfuse3/internal.pxi":216 * try: * #log.debug('%s: Waiting for read lock...', name) * async with worker_data.read_lock: # <<<<<<<<<<<<<< * #log.debug('%s: Waiting for fuse fd to become readable...', name) * if fuse_session_exited(session): */ __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(1, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]); /* "pyfuse3/__init__.pyx":337 * def __getstate__(self): * state = dict() * for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', # <<<<<<<<<<<<<< * 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', * 'st_size', 'st_blksize', 'st_blocks', 'st_atime_ns', */ __pyx_mstate_global->__pyx_tuple[1] = PyTuple_Pack(16, __pyx_mstate_global->__pyx_n_u_st_ino, __pyx_mstate_global->__pyx_n_u_generation, __pyx_mstate_global->__pyx_n_u_entry_timeout, __pyx_mstate_global->__pyx_n_u_attr_timeout, __pyx_mstate_global->__pyx_n_u_st_mode, __pyx_mstate_global->__pyx_n_u_st_nlink, __pyx_mstate_global->__pyx_n_u_st_uid, __pyx_mstate_global->__pyx_n_u_st_gid, __pyx_mstate_global->__pyx_n_u_st_rdev, __pyx_mstate_global->__pyx_n_u_st_size, __pyx_mstate_global->__pyx_n_u_st_blksize, __pyx_mstate_global->__pyx_n_u_st_blocks, __pyx_mstate_global->__pyx_n_u_st_atime_ns, __pyx_mstate_global->__pyx_n_u_st_ctime_ns, __pyx_mstate_global->__pyx_n_u_st_mtime_ns, __pyx_mstate_global->__pyx_n_u_st_birthtime_ns); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[1]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[1]); /* "pyfuse3/__init__.pyx":469 * def __getstate__(self): * state = dict() * for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', # <<<<<<<<<<<<<< * 'f_bavail', 'f_files', 'f_ffree', 'f_favail', * 'f_namemax'): */ __pyx_mstate_global->__pyx_tuple[2] = PyTuple_Pack(9, __pyx_mstate_global->__pyx_n_u_f_bsize, __pyx_mstate_global->__pyx_n_u_f_frsize, __pyx_mstate_global->__pyx_n_u_f_blocks, __pyx_mstate_global->__pyx_n_u_f_bfree, __pyx_mstate_global->__pyx_n_u_f_bavail, __pyx_mstate_global->__pyx_n_u_f_files, __pyx_mstate_global->__pyx_n_u_f_ffree, __pyx_mstate_global->__pyx_n_u_f_favail, __pyx_mstate_global->__pyx_n_u_f_namemax); if (unlikely(!__pyx_mstate_global->__pyx_tuple[2])) __PYX_ERR(0, 469, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[2]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[2]); /* "pyfuse3/__init__.pyx":1088 * raise RuntimeError("Unable to parse %s" % fh.name) * gids = set() * for x in line.split()[1:]: # <<<<<<<<<<<<<< * gids.add(int(x)) * */ __pyx_mstate_global->__pyx_slice[0] = PySlice_New(__pyx_mstate_global->__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[0])) __PYX_ERR(0, 1088, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[0]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[0]); /* "pyfuse3/__init__.pyx":647 * * * def setxattr(path, name, bytes value, namespace='user'): # <<<<<<<<<<<<<< * '''Set extended attribute * */ __pyx_mstate_global->__pyx_tuple[3] = PyTuple_Pack(1, ((PyObject*)__pyx_mstate_global->__pyx_n_u_user)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[3])) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[3]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[3]); /* "pyfuse3/__init__.pyx":778 * * * default_options = frozenset(('default_permissions',)) # <<<<<<<<<<<<<< * * def init(ops, mountpoint, options=default_options): */ __pyx_mstate_global->__pyx_tuple[4] = PyTuple_Pack(1, __pyx_mstate_global->__pyx_n_u_default_permissions); if (unlikely(!__pyx_mstate_global->__pyx_tuple[4])) __PYX_ERR(0, 778, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[4]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[4]); /* "pyfuse3/__init__.pyx":873 * * * def close(unmount=True): # <<<<<<<<<<<<<< * '''Clean up and ensure filesystem is unmounted * */ __pyx_mstate_global->__pyx_tuple[5] = PyTuple_Pack(1, ((PyObject*)Py_True)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[5])) __PYX_ERR(0, 873, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[5]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[5]); /* "pyfuse3/__init__.pyx":906 * * * def invalidate_inode(fuse_ino_t inode, attr_only=False): # <<<<<<<<<<<<<< * '''Invalidate cache for *inode* * */ __pyx_mstate_global->__pyx_tuple[6] = PyTuple_Pack(1, ((PyObject*)Py_False)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[6])) __PYX_ERR(0, 906, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[6]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[6]); /* "pyfuse3/__init__.pyx":991 * * * def invalidate_entry_async(inode_p, name, deleted=0, ignore_enoent=False): # <<<<<<<<<<<<<< * '''Asynchronously invalidate directory entry * */ __pyx_mstate_global->__pyx_tuple[7] = PyTuple_Pack(2, ((PyObject*)__pyx_mstate_global->__pyx_int_0), ((PyObject*)Py_False)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[7])) __PYX_ERR(0, 991, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[7]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[7]); #if CYTHON_IMMORTAL_CONSTANTS { PyObject **table = __pyx_mstate->__pyx_tuple; for (Py_ssize_t i=0; i<8; ++i) { #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #if PY_VERSION_HEX < 0x030E0000 if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1) #else if (PyUnstable_Object_IsUniquelyReferenced(table[i])) #endif { Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL); } #else Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT); #endif } } #endif #if CYTHON_IMMORTAL_CONSTANTS { PyObject **table = __pyx_mstate->__pyx_slice; for (Py_ssize_t i=0; i<1; ++i) { #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #if PY_VERSION_HEX < 0x030E0000 if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1) #else if (PyUnstable_Object_IsUniquelyReferenced(table[i])) #endif { Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL); } #else Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT); #endif } } #endif __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } /* #### Code section: init_constants ### */ static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); { const struct { const unsigned int length: 9; } index[] = {{28},{26},{24},{28},{27},{72},{70},{7},{20},{53},{20},{33},{179},{42},{37},{29},{41},{40},{23},{18},{35},{1},{1},{8},{7},{6},{9},{42},{26},{42},{41},{41},{44},{43},{44},{40},{45},{42},{38},{43},{43},{36},{37},{41},{41},{43},{40},{40},{47},{44},{43},{46},{47},{42},{41},{25},{25},{37},{60},{43},{44},{42},{43},{42},{45},{41},{2},{9},{42},{35},{56},{50},{35},{15},{93},{9},{16},{11},{61},{14},{60},{60},{24},{24},{24},{14},{25},{19},{8},{19},{10},{28},{30},{7},{15},{28},{33},{28},{35},{9},{27},{29},{11},{8},{26},{28},{9},{5},{6},{4},{5},{14},{11},{10},{13},{10},{23},{28},{30},{17},{20},{5},{15},{16},{10},{12},{30},{32},{14},{27},{32},{34},{13},{26},{31},{33},{11},{24},{29},{24},{31},{6},{11},{29},{31},{10},{0},{7},{6},{10},{9},{7},{13},{18},{4},{9},{12},{9},{3},{7},{6},{1},{4},{18},{5},{5},{10},{5},{6},{3},{12},{18},{6},{6},{4},{5},{6},{15},{19},{7},{8},{5},{9},{4},{1},{10},{22},{6},{9},{5},{13},{9},{5},{5},{3},{9},{8},{6},{8},{7},{8},{7},{8},{7},{7},{8},{9},{2},{2},{2},{6},{5},{5},{6},{3},{5},{8},{8},{17},{17},{16},{16},{19},{18},{19},{15},{20},{17},{16},{16},{15},{18},{15},{15},{22},{19},{18},{21},{22},{17},{16},{18},{19},{15},{17},{18},{17},{16},{20},{1},{10},{3},{9},{14},{7},{21},{12},{8},{4},{13},{4},{3},{5},{7},{16},{22},{16},{13},{5},{4},{1},{10},{4},{5},{4},{4},{7},{9},{3},{7},{6},{8},{4},{8},{4},{9},{9},{5},{5},{10},{10},{4},{8},{6},{5},{9},{7},{7},{9},{4},{7},{11},{6},{14},{12},{12},{3},{7},{3},{6},{4},{12},{7},{3},{7},{2},{7},{4},{6},{4},{6},{3},{4},{3},{3},{5},{5},{7},{8},{14},{12},{11},{10},{29},{26},{14},{12},{5},{1},{4},{7},{13},{8},{10},{17},{13},{7},{10},{11},{6},{3},{3},{6},{3},{7},{5},{4},{4},{13},{12},{7},{10},{12},{19},{8},{10},{4},{5},{11},{15},{10},{9},{11},{6},{6},{7},{11},{8},{7},{7},{6},{10},{5},{10},{10},{5},{6},{5},{8},{19},{15},{7},{6},{3},{6},{1},{6},{9},{8},{9},{5},{3},{6},{5},{4},{10},{6},{6},{7},{6},{12},{4},{1},{5},{6},{11},{19},{13},{5},{1},{1},{160},{362},{125},{142},{68},{11},{75},{70},{54},{26},{11},{9},{79},{95},{22},{110},{103},{2},{7},{11},{2},{193},{109},{57},{55},{59},{86},{217},{200},{2},{7}}; #if (CYTHON_COMPRESS_STRINGS) == 3 && __PYX_LIMITED_VERSION_HEX >= 0x030e0000 /* compression: zstd (3962 bytes) */ const char* const cstring = "(\265/\375`+#\205{\000*\223t\036I\360\3168\007\314\300\244\025\032-d'\330\232\270b\304M\203\351L\321h!\241\001\262a#R\244m\221]\273X\333\\RN\342\253\221\342'7[\344\237\272\267\032(\000\362\323\003\223@\234%;*\t\236\272\036\000\037H\322\026\003\243\001\262\001\347\001\373{wE\276\362i>\206\341\350\332\267g\254\305\025\217\343\316\325\361\356\311cH\343\037WA\205\260a\335\230P+\013\342\204ss\302\035\326q\031\376\360e:\374\375\374>\370[\314/jX\270u\3475\306\373\274\307\336\337Z\360e\017\366\210#Lk\016\313\030\234\271\272L\343/>\202\337\367\373\273\243\211\272\263\337\330zu\334\363\325\025K\003\305\3375F%\205\363\357\272\033\243\363\336\3719\326\331z\336\355@\312\331/\313z\004/\017\337y\207\264uO\245}x\337\316=\360\361\314\356\375\366\327\351\263\357Y\237Vu\277+k\260\352\\9\254\303\"\004\376\035\r\364\276_\334\363\355<\343\256\326\344\220\236\203w\346exc\257B\350\267\353\234/\204\232\377\325\371\025s\0355\255~6\225\304_\244\365\232q\007\361\330\252\237\346\374\202\035\357\335\243\2500\027`ZrP95\357\357\035\2564p\177\013\203\357U\216k\326\257N;\325~_\275~\327)\225\224\214oX_%\005\327\356S\017z\371\276@P\21377;\251\321\376\212\201\364\002\253\3747\006u\325\340\347\375 ^hb\212l\023\303\305Qo\032\036\336\\Y\274\223\372\236\316\277\257\330\371\2171\332\356\371\355\367\353a\360\3122\016[#\2773\244\007[\327\273\277\353\207\272\253[w|{\352\203\370\325S\273\353\202_\355x\366\225\344=\327`W\277Uu\257}\324\255[\275\257\242tvf\362\330\363\271\347Q\2074\275;\177\317f\2159\177n\237\217_ue\014\202\367\024\034\213V\343\214u~\373[g\027\346\036v\271\270\3257\371]\256'\261\250\260\244<\350\341J\3137\254Zg\034\222T\300\333Oj\217\316)u\377\353\362\312\302a\374\366\252S5\206\237x\023$\234\264XK\262\244\021\377\221s\354\342\322\302\240K\250;Rkt\271\270\304p\261\367W\355\267\272\266\256bm\271\374\366\310:M\344\243\213w\342\322\351-\272\274\372\025W\254\355\300\213ex\367\226\354Uk\277\033=[;8\336\357\275\2523\213\311~>\232\324\255\253I\370\235\323\270I*\224\302\005\256T+\225\243\322\003\221\007\322\021YR\333\250\201\220_\363`\013\317\007g\350T1IU\266\014\033\n\272s\312\314\0233d\216:p\035\245\t\347Q\242H\021\327\326\023B]\314\224\322D\215\200F:*9\t\2426\232\310\022)\002r!\340\347\236\006@p \032\271k#\201\312\316\2319+GJ\010!\220\017\315v\262\222\340e\204\002@5\006\230$R\344\221\036\020\245\261\022\223#\036\351\350Vb\253\200^\340)]\344H\201TEN {\r\304#-\335\002\334Pl\026P\232\263tv\230\265@*\n\245\245\363\202ISb E\344\256\301\324:4r\246\033\006\333\243=\347\2003f\202(\025x\244\037\004\322\014\323$$7:\001\234\032f\254\034P\222n\355\003#WS\363Hc$j\0040r\261\262\001\031\"\372)\225\tJ\322P\t*Q\224L\004%\t\231\242\214\221\330T~1\032\031\027)? TB\t\256\344\002\247\312\301\305|\256\317\353\346\341&\243\0007\222\256\332\255\275\324\272\2124\221\"\0309\325m\204\315d\033\321\023\264\344\004\235)\037\270\017\215\224c#\035\201L\n\245\n\231rI\003\000j\261\026\0030R\020\211\222\013\221\020J\244J\215\003#U\231\256RU\312\310K\036\310\270\220\360\003jq1{\231\265\\\266;\027G\335\305\260\367hko\357/\336\216\273F\336\265g\371\316Z{x\224\275\267\277w0\360\3257n\361\214\373\265\030\024y~\220\217.\313y\317/\373mg\277\177\004\357""\030\353\262<\362\337\341hg\226&\276\304>\212\242\026=,\212-K\322\\\324\375\371\367i\332~\276G\321\302\376y\326\331\303v\366\271\347y\313>8z:\3440\216o\350ri\220[\361\037\246Qpl\003/\317\307\217&\352\226\020\007\216\003T\335\" 8A\267d\360\201\033\215\246\220\010\244hd\202,?\"\025\352\240D\"v\236N\021$\241\024\204\266\316\027\2332\344\000\031\322H\013\200\344B\267\215\2243\305\2341\000\222v\\r\244@\254v\n\231$eIn\304\341\361#\202\007\307\263\203\333a\341j|L|>\344\356\355\345F\023\273\235n5\017~b&\004\022U\016\345g\344\223\262\345\230y\315\027\351\346\241\204S1\"19\220!\030)\254\003\225Pq\252\233\203\233gS\3316\304\2447\206\024\t\205P\024\002\223U\262(W\230\316\317$\221\216p\033%\n)\332\310\021\360\220\305J\030\001#[\311\005\363B\311\203V8U,t\34486T5fI\301\3175Q.p\267\005\010E\3010+\210\312\307u\313`\243AKh?]N\230\223\307\0241+\224r#\037\013\267\016\333\001\224%U\235.3C\331s\"\021\231\311Bs\203\271\205\350\003\0244\037\230&!\034\253\366\221q\241\0212Af\003rc$\343b\244\024\"\263Y\265\214\232F\013\365\200\3024\300\345B\005\322\014\261\023\023\200Y?p\252\332\007\307\205H\354\304\246\000\223F\256H\02124R\"\021\3246L\021\"H\033U\2311\252\000*uH\026\002Th\204s\205\214\020\266P\225\016\312\231\020\023\245\334!e\265U\210(5\241\tNX\311\000U\020Ae\312z\310\223\020\332\300\034\211R\220m\303yBe\213A\021\234%\312\005\242\014+\270T\271B\206HT\315C\244\005K\007\247\263\302\255T8\022\237}\243\2518T&B\254\274%K\214<\221\243\307\306E\3751\265(\241<\247\351di\021\"I4V#\024j\242\032\207\311G\304\315\306\206\001\035\241\023r\327T\231&\263\246T\200 \r\361\364\200\317\306\215\206\342Su\266\210p\"\014\271\3229:-\230#s\246,\225\n2.@7?\001\203\247\250\242\223\226e\220\320\310\310H\222\024\322\032B\030\014\024\315\323(\316%}\002\272\250\344\2301\3060\"\"#2\022#\022$)H\323n\276\2603\016Z3\\\344\212+\241Kp\362\252U\2416r\001\276\315[\340O\341y\246\353z\335\000\351T/\266\225\325\250\030\377\350\305\301&\260\252_\177\231\010A\315\265l?\205\352\373\222\036\305h\232\246\212\321E\241.n-\214\200\334G""\033K@\300\270D\257:\231@?\347\235\271n\220\311\361d\240\255F\277\222E\216\025X:\221\014\311\336\346\207\347\026\316g9\n\0022[\340\021\371\356\330\327^\010\201d\275\025\3149r\221\214y\010\3168\201so\1777h{\005\263\305x\273\325\033.\215!`:\004\021\202Hxq\372\351`\352!\0355.\0140O9x\215\206Vx\275:M\3707=\306\025\246\320G\203\273\212\273^\000\035t\304\271c\252\326\225e\361\237\324].\242\214\271\306,E0\302\235\210\2503\364\321\214\266\334\014\022\264q1h|\345\217\010F\314\232#?\211\023\031t\227\247\225\350F\341\333g\\h\331_\337_\355\323\004n\n5^;\247\262\302\200\014\016\352\265j\213c\273&u`\335\275\333u\302BA\242M\032\254\221\352\334\221\300c\302\000\336\034\021\2000\007o\220\022B\342\324\031v\"\231\250\270\034`\213QgQ\340y+\214c\030\032UY\303-\365I`\346\346\036\241e\013\3064\365\376P}rHAp\023\024.i\237\220\341{\256`xCY\372$\272{\337\244/\267\216\356pt\006\236hr\235.\372'@\202\315\030\245\016\315*\244\243\231\370\332m\367\177A\337@\215j\204`w\271\030\351\271\376B\277j\2159l\371&\263\005\317\253f\201\345\274\205\"\305c\243+\274\342\3520d\357\022%z^\310_\3653&\203C\333~\004\233\3142\206\2120\224\371\213\020\362<>B\253\257\321\221\250DB\227\023\373\027c\266\233\202P\214\316\003\257\017d}\r\350\034\227\315\235d\005\344\302=%Q>\002\262\206\344x\216\275\352\235\262x\007~A\017\343\251v\3114\365\204Q\362\233\006dp\361\372Vl~\317\316\275\270\374\235l\032G\244\320\343//%\327\"N9t\032\373\t\016@\357j\035?\006`\006\227\312$\265\t\241u\026\304d\207\211;P ~\335\305\203G\032\236\362\365\330\202\243D\214{\314~\210F\275\355\225\014\204\030\017\0322\320\213\227\016\213\207\037\236\254\202E\244>\216/\341h\377\202\342\302\257W\304E\214_\316\260L\233\326\343g\272.b\346\304\304\363\347\006\024\255\240D\363\331\225I\320\2058\337\3219$\372\242V\325\367\263\203\004a\207\236a\211\020(\2453O\342\320q!\246\243\026\333\274B\026\266T\2303\230\320\0314\300\351\006\020_\337\3270\340\354\252H\256\367\222\r|\256\357\230\312\202\023(+\303j\322T\366FTt\271,\276\351\361\341|\030\331o\220\257^wW\004\344\255O""\264\354\017\351G:\326.\017\324\031u\253\207\330:\223\301\331\245)\033\332\216o\024\344\202\001\2747\255/\230\315\014\276[\210\237\314b\207\0273e\004\326\345\210\203iCl\230 \005\371Q\275hSoP\253\005\235[\305c\245K\312\232\312L\022\312v\312\026\213\251[\305\324\304I\024\016m\235X\362\261Yc\212o\212\002\340oHz\314r\357X\035\305\0147|\263\366\376\224\004\213B-O\264\220\313\r/{H\301ML\242\324;'?s\301\310\364\355\323U\003a>\332z\225\257\314}\234>\314\016\272Cr\022c\\\030]\004\335\312\314\253*\016\357+\210;;\271@\244\225\201yY\225\332\020]\373\302\273\010\344\364\023\220\010&\316b\307Hx\207\t8\001\025\342\236\2337\250m&T\005\241Y\241@x\323\323\035\273\270\366\237&A\333!S\374k\240\266\243\031\022}\236U\265\330$\303\205B\213\013\371\321\250\307|y\334\026\211\004Md\305\237\025^\256y\n\21422\213\246aA\301\345'\030\230\365\205\262Lpp=&\313l\001\346K\264\317\021\000\320X\330\230\n\212\254\321\333\371[\301\223;\214)h\\\212+%G\326p\030\r\204\364\340\360^\330;\357(\274\341\246F\032\352$k\212.\364r\373lI\211\264\365P\313\236/u\000\234uA\024\356\322H\021\"z\\Ds\365\274\2065dhD\001hxn\027#p8\261\205\034\230\242\234\324j\017\016>\2362 R\247\307\216\032\003\226l\374\275h\310\223\266I}l,d\232\005\014m\353M\216\241\033\"\307\033`\236L\233\327nC\036\177\270!p\267\270\013H\211\341u\350\2545\240\316 \360k%\005Lp\305\325\315~\241W\317l!\\ \206\021\\\323\022P\263u\304\335 t\033Hd\276\205\254$\251]\016\177\344\262\211\326\235\272\314|k\036f\026\212\0334\033\265\301\000\332$&\301%\214A\247j\374#\250\2244q\3130=#\255 \233\324\014\242\222\225I\257\314\322\007\223\305$\313\325\313\360\305>\203{4@\211\010\234A\036\007DJ\250\204g\tx\233\304\010\034\303\220`]h\355(G\032:V\233~\376R\"\352\317-\227n\237P\347o\255\004Ii\251\200\350,;\032\026axJ\362T\354gt\324\0025Lk\276\032Nb\001\177\247\021%8\033M\277P,\336\347\222\377W\024\023x\022\262=\235\037\037\3200N\262'xL\373\213\0209\010X\274\t\354iK9\205\2735b\247\340F9$\340Kk\227\330S\225\220\345\254f%\205\3158\244\275\364\312\360O\240\033\034\233U=\312\013s""9j\352+\000\355\035\257zq\224\020\376B\242\266:B\030\361\264\372\026V\024h\257p\332yqPt's\216\307(\362<\215\001\206\354Y\352$\202L\013\220\014!\034\"\247\212\025)+\324\312\320\t\177\3049\265\2555\312\301\336\303\330f\303T\344\373`\204\016\221\367\2739D\261\356\322\007g\002\202\344\340C\354\303\317\324\352\314\264\267\321O\352`\316V\315\000\240\3347\317\232{F\223H;\007\231\370? \335P\340@_\331\037\274\357/\267\222I\010\314\027\246\237n\204\261\303\026\036\220\331\243\2609|\323\300\241\325\342\340\017\253\367O\375n\307\3173(\301K\321\242\333\031\307\242\002\226\373\370D\177\367V\252\2000\332\234\352\345\264RE5\344\340\341\034w\315#\r\225\312\360:\237\220%\311\263\222\253+\267\032{y\307m\013\225\r\211\217\337a\014b\036\246\213\301\275\214\342\375\016t\322,a\301H\256\221T\213\2560\033\361\307F\307\301\252\225W\346\340\244u%\0215\371\311\251K\020\361\30109\312\217\230\216\346\357\314E\303\304\2711\004\022\337\007\221m\022\245vC\214\354\353\276\256f\215|\334:!0J\010q\243\344#\027:<\327;\246\3148\364X\313\021\222$\313\312^\375w\364\216\3628K\354\016\215\363\251\271\221\230+\217\276f7`a\"\002\203(7\321\026\336\033t\216\220\032\2046\005\366p\341\222\006\377\001\022rW`dQ_i$u2\231\242\242w\264y4b\371* \037V\224R\336\215dO\313I\263V`&oZ\205\360o0\345\367a\247\224\247\025\206.\270w+\256\3763\360\2708\222\245\234[\310U\\\271\332\366\215.\235.B\242\007-x(\354\020"; PyObject *data = __Pyx_DecompressString(cstring, 3962, 3); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif #elif (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (4022 bytes) */ const char* const cstring = "BZh91AY&SY\210\024\010\033\000\003I\177\377\377\377\377\377\377\377\377\377\277\377\377\347\277\377\377\367@@@@@@@@@@@@@\000@\000`\020.}W\035\354\317N\267[W[\275\311\253.\216\344AI\205\254%C\035\316:\2066\203]\266\000|\371\364\022\210 \223\n\237\204M\251?SOD\3144\203LM\004\310\3214di\355$cD\332&\206M\003\3114\332i\030\310\305\030\203!\001\032hh\232\230\242y\036\223\"\236\231F\322\036D\320\323@\017P\000\014\200\000\000h\0004\320\006\246\002E=S\310\2034\214@\036\246\203@hi\220\320\000\320\000h\031\003M\032\000\310414\014$\324H\020!\014\244\3656\223'\222i\352h\000\000\032\000\000\323\020\031\000\000\000\323M2\014jh\"\20520!\351\223D\332@\365\006\000!\350\230\232\001\240\310`M\352C\r\t\202m\010\320\003@\000$H F S\321\223JmS\331(<&\2462\232\001\240z\215\006\200\000\r\000\032\000\000\320\000\255\r\272\326j\323\232\374\312h\322\225G\314\312\212Y\377\t\340C\177\007\273\203\217\334\034H8\343G#\207\362)\236\034\356\361f \340\357ew0\205\247\2511\256;\336\257\253\005\"\212\"\305\004DX\212\200\252\262*1T`\305\030\316\224\202\313\260\352\021\377\226\035\305$\205BZ(\256W\203L`6\224\021R(\242\210\206\220433\306Ss\337\346;\367\360\341\215;\03452\244\001\330\032+$LC\267\0233A<\355Id\320\\\325\367\252\203b\345\205Yr\301\355\031\317\023\224\312d\000\275\3315\347\330\326\031M\201X\030\010\367\342\321H\343\262LH\315\034\016`\315*\357\274\026\031(\333\022$\"J\3445\346\316\305\302\215$|\251D|\311\234\347\277\237k\033\331\r\234*\237\343O\221\332\032\262\271\233\320\323\241\035\273\317\335n{'Jd\235\353\177|\357\242\373\263\313\253\277\356m\023\242L$\217\301\265\330\026e cd,\213\215\316\271\341\224\235\241\001\031 )\333S\032\225\333\265`\247&\221ER\352\252\t\312\312r\256\315Oc\256\231\3060_\215\346\021\312\036V\210\233\200\364'\347yU\3012Z\371\327\0025\371\357a\024\004Q\232\326b\203\332\263|\35554K\322\327\257\221\247\t\274\"\026`\327m\206\014\024\";\006P\035\ns^\271\355\241\262Hc\216fX\247\213H\232J\024(\322\212&\352*\367]6gW\260\326\311*\256\341\220\206+\003J\353e\027\307I""\324\232\005q\205R\350m[\267T\001I\246\302\311\002\200m\000Y\225\262X1d\304\221\370\tZ\352\336\211\241t7\214\215s\320\306y\325hU\232/[\020\330U\005o\210Z\336\271\224\350\273k\332d\331\240\365\r\0054\213\371\264\244\305\204\374\273\201\340\336\010\003\331\035\2033\331'\323s\r\312Kc\342\002\236\255\376\030\231\037\020@N\273\\hw\374\"\\\201\034=g?7G\201v0,\304[\313\274\226\232\000\375\206\371\222M\330_\352\020\245\367\010\316!\"A\033\347o[\255Xh\026\025%A\256\332m\211\246\331\221\216\347\"\252\211P9\253\024\352\006ys<\014\344\031\251\325\270\341\343\306\261B\362\203\006\347d\312y+\035\234\346\2304\202\347\223}\357\nD*8ch\352\341\315\266\373\333\275\032||t\361P\264\026\013\216\222\374US\260\310\206\t\251\361\242\252\234\244\000]\"\330\221\313\n7\210\020]#\210\363\307\300\357\251{~\030\2312R\203\2520\033.\203\226\272\340\220\306\315\264\317\036 \007\232\362\343X\360\352\222of\034\212\356l\245\301^\007\007\000 JYs\351\226\256\305^\315\315\225b\034\037v\326\306\0359\227\207\275\357}p\t\010M\3461G\034\320\001q[\321l\n\227\202o\233\373}\034)M7\321\341\027\261D\313.\2152\352\232c\305\357\355oMi:o\n\010J*L\234l5\214\344\242\253\r\340\305\353eheUt\353E\3071\025QU\214veY\016\367N7bI\2502\230\0206\324\236\362$*Fg\266\332n}gs\353/\367\022\227\001\270P\200\002\244\352B\252\006\313\277{\203\313\346\t\360\311C\255\014x\254\206\230h\211@3\2736\301p\213\r\010\340\013\201\254D\202B\024\032\2474\212\211ds\315\023\004\242\304\244\340\350\0371\335\206\224\221\034P^\376-6=(*\325\220\302\351\022M\220\356\005#\021\\\271\263}\202\000\220\026\303s\232\016\234\000rG\307\303!\255s\261\241\261r\210\337y\013[\247[!\235\306\342\004\200\023\337\314\217f\200\245\322\031\242\"'\277\205R\226o\271y\325 \212\021\032%R\256\363a\314\231m\310\262\024~\331\034#\317\301\360\003\260\202c\273\325\265P\372k^k\23379YY\0310\004\000\200=\341\207T\234\226\350\347v1\0270LOq\306\221\240\347|\247\261\0101t\033h\024M\237\013fC\232\371q\322\225UUUj\025H\253UWT\252\252\267\t*\252\234*U\250\350\322\252\355\314\023\271\016""\357F\0209\230\3306l\266|&\363\341\221X)!C\r\026\222\225\236\214\353\246\225\302jRQ\3001\357dw\262\0002m\255\370\302\3153};$\220\272\275\264#{\321\207-\275\02416\"\361zO\305\320N\210\321\276\274\016>4m4\002\333\273\267Dt$\005FY`\020\272\360a\246nj\024\003;\272aK=8\3479\327<\364\027U\007\230\302\223<,ex\013\3556_\257\333cy\227\023fEb\337\002\007C\003\267\270\322\365\343\245r\001\233\221]QTP\204\262\364\020\000\325\357),\243\034\301w yr\366\332\3129\233\203\241\202a\307<\361{$\342N\255t\001\323IT_**\325\035\003\271\3340\327i\021\r4\014\204r:]\305\263\0278j\3568\010CZ\211t3\225ET\001*( \227+\245\252\267XXq\025H\220\362|\263E\367\320/0\303n\330\223\224\257p\351C\265\226\030\275@\232\035\321\246gE\233\313\2115C\310\362\2220\213\266\243c\200\231\271i\345$%\251\3609r\256\313\365i\306\036\332\354YZ\363h\020L;K\032'}\234:v-\267\301\211\252t}:\253\235v\336A\326<\036\357\036\177\0014\350\304l\270\311\n\032V\n\321G\305\260\346\335\\\270\361\3548{/D\266Y\262\272Cf\326\214\323\020\026\250y\265\t\024\311\031D\014&\364\251\267\314{)\224\rY\021\201HM\314L\334&\323\206\333\272\246\246\314\337\212\247L\371Ng2\323\204\217;9\213\242\357\213\214fjDT4\004\2470d\240\222d@\260\224\234\306\275\332\032!\233\354\240\254,\343\271,\346\3346\274\035\262\312D\344k\335\357\272\025\202\364\370\300\337\\[\022-\r\370_}\347\237g1\342X\254\303\t\236h\rde\341.bD\r\240\317A\033\232\243\277\331 \264\320\254\016\246R\333Y\262\263\321\255\362\237\243\226\250\202\004$\357Fn\003\330\002A\327\213\252\002L\216W\005\340\200\233g\2407\t\017'_8py\225\t@\303\243d\202L\3524A\327\301\332\257r\262\310\nP\035\336\247\027\362\\\306'\212Z\001\355\225( \t4\336\"\007\r\317\306\263\227\206l\031 \243\232:\006\202e)\223\272R\302\026\272\202\201\034\263]Q\032\271Y\206\252[D\272\231\342\232\312\326\254\027\230\030\317\032QX\243\006\021\262\246Y\362\331X\303\257\334c\025\n\264j\202\250\215\313\244\242\343\025\212\036\263\267\210_T\354\234\372\307\276zS\264\235\254G'9u)b\230-\3479t\203\026\255c\3038\034\204\2259\353\006w\372\265""\325:\"Q}\221\027C\006#X\234\205tT\266\304M\353C4\034\234\332_\037\316\274\331\205B\327\027\022\037\211\020\261\244\312M\353\264\225]`\223%D\206q8\360\3618\313\212\254\226VX\"\322\236z\270M\021\002aohu\022\"\r\327\025\271\3118W\004y\215\306\020Y\335bP\300B\322\241R\3566]+*\346`p\347\001\215\022\252\220{(G\rq\263X\022t\241vxQ\010\tN\362\337N\356@\305\234+\203a~\230\300\n6.\362i\r\252\245\002\020\032\253!T\031\306\013\333\274\010\200\037 \2504\2535\336\351\263\205\000\226\317f =\t\034\350\241\323\357cR\3612\364\376\321\201b\346\030C~\327\260}\206\210b\212\000\002^\253\327\264\017kt9\360h C\357\316\354\333\256N\342\3654\237\032\306S-H\342\312\327!sf\374\235\tm\271o\243W1\315\333\033\027\272\007\255\242\256jXu\323\343'c\250J!2v\010\345\n\343u\215\270!\030\311\025x8\305L\214\236l\264\340p\341\376\333\316\034wM\330&\326+`\004*\215\230s\240R,\237*\342\313\255\005\242\336\214{x\03320\302\330\2020\2162H&;\257\3312$>\372\243\033j\024@?\004%\305\0010\354\205ld\304\260}\255\363\351F\244\221\216\250\317T\257B\036\270[(\013\3424\206\206\026M\020\332\035\354ln\355K\026\353\340\005\311r<&\276\376:\027ZKv-\3128\325/M\313\272\013'+u\332\323-Y\365\322\322o\2031\024\026s\304H\206I\033\211\334i\243\275\002\026M\013\256$\255\346\n\254\320\316[\326\3777\336s\233\213\36280\327\227gI\262Iv\252f\256EiN\234\305\231\211\231\342\3510\271j\276#PNP\2009\244\224\235\225\221\033\330\323\257\217\rf\310s\226\305\212\215\364\2270\300\342q\230\353j9\266\220\214}\031\211)\315\242\255\262%(`\236\264\204N\rx\245Z\006\224F(\210,`Q\241\324\305D\305\023\025W\023\235\273\337^\313\266X\346\353Vt7X\333\035\0066V\364\236ZDDE\212#\014J?O\354\006O\346\243?4<\002 ~/\263\nB\364\t\244>\370}\357[\326\202\t\021\010kZ\362\241\377y\000}\363\261\377^ \030\212\273Jow=<\036WT\3412M\223\351e\3461\217\333\032\346\344\212\327\013W\033qF\227\204\3540h\214c\025S\177\315\332<\2037\272u\217x\342\352\307\033\332g5\227u\010\014\034\230\376\302\"n\003\256\230R\322L{aq\335\361\231\342\357h\276\262Z\366w \026\223+\006\263\314m\346\3416VY\201\206L\335g\036\021\331\312\233\334\233\373\017\177x\250`s0\363+\323}N2\320-\215C\256\212SP\266\003\323\202\014\025\277\3542\236Q\326\nJ\331\t\300\241\344\303\005]\357\002\177\207\331B\376h(w4\333v|\315'eb9\344qG1p]\3357\367\031\255~\241Y\234e\336\340v\257\304\355p-ZA\0326m\356k6\004\351\343 \271\310*\367P\312y\035Gb\315\035\261\3045\365]\250\261\227\210+\266\243X\216]\304}\205F7\245\036W\035\333g\207\376\037\354\362\226\201q\337{a2\313\340\177D\347k\23601\360m\026\312\312\201\343A\227\231w6\031\226\224\220\307\311:\336kV\300\204\005\020?B\207\216\275\317e\377\376\374\267\337\031\363\374\251\262\356(\276\306wy'1]\002\243I\376\240\201\245\035HK&\020\312\202\355\034 \344C\000\276f-fh1dY2mJ\210D\017\231DI\263\313\212I\231\216\334u\241\263`\211\226&g,.uW\242\227\341\314*d\220w\366\344ZI\"\"3:-IF\024g\233\322A\231\361R\256\203\305\334\323\2737\357\3340\343\226\017{\307e\236\352\361\214{h\366\216\303\300\220\343j\026\215\377\033%\241\330\316\t<\235\375\243\207\273N\026\345\357\020\306\0066b\307\201-\222\372\005\016\223\236w\002~_\343\272i\256\212\002`\223\311-r\236\347x*%u\310\201YO+\3235']\\JU\373\346\200\001d\034'\263\271\365\215\354\326\326f\216\242l\026\340`n\007>\343\003],,v\026\252\303s\003\007\016\023\360?X<\304\021U-\342z\335\306\360\021\275S\303\033\300\361e:\274E\3155\273\340t\336\247\354t2s\352F\353p\351\255\027P\307\326\032e\027[\257\201\317?SC]\317\256o\274U\337\3446\325\267\271\325\r\365\371\332fnukc\363\343\206K\205\007@\237\277I\214Hpz\222\244\237\264\372\344\3327<\300e\337\334\020\237=\263I\002\243\276)\037\342\3579\352\036u\035i\377&+\344\003\026\260\315\334z\366\347\234\232\373e\365Uv\375e.\351\256ol\346\336\274\316""\256\346676\266\324\265\365\215\347\271M\231\037l9\273\314\356m\017\26360;\304\\\177\375\321\337\353\273\377\320\324\320A\003\363CG\365U0}\235\276\203\006g\006\316\031\234\036>\006\275\375\002\177\256\371ZO\263\377\210\276\361\301\003\372&\371\357,\032:vK \204\372A\240%\021\3654O\361\372\276\311\241\315~!\037\024\266\255ms\212,\262\310RU\215\021ja=Z\207\204v(\273\235\003fhT\304 \324j.\2317uL\007\361\001\037\000\200b\214\223\304\350Oul\253,\032\224\300`\022\033\020*\253\024\314\361\343\346o\014\257}\246\353:\336:\334\203\001VU\254\326\331\266\246\357\212\357\034:EU\275\033ZubPVp\272\177\250\007\036}\215P)\000t\333\236\351\250>\231\240\276OU\247\241!W\264\3615C3p\\\321\300\327\017\203%\001\027i\267\360\316N\327%0\026Y\032\227u\211\241\252\0069\216|\311J\\5\035J\227\223\372\024%\251\225\264D\362A\214\253\272\246\357`\236NR\325D\212\242x\021\217\216<\230\215\360M\037&D\215\313\010\031\330\241N?\301\025\226\010\251\027T\004z^P\267\265}\3441x\027<\306\360\242\364\220\206I\216\005\265\220\314\026\344l\001x\205\311\202'gI~%\355\260`\024v\nfA\2303\305\025.*\\\0049\230k\2013Q\235vJT\034\034@\315jO\335\255\ne\367\024\321=\003b\247\336\2760\222\201>m{2\224\024\270\375#\207\003C\224&\366u\3710\211(>{\006Dy\326\327\007^\367\364\251\330\032\350\366/\240\022\253\247+\234\255\277\233\024L\003\243\003\314&5\315\360H\377i=\305L\337()\255w\240\324\277\214\017\211\217\017\213\017\256\256\357\n\217\352\311\345{\347e\312\3363\"3\363\236\001\231\200\017\366\351\373\212\030+\026\231\235D9\250\017\277\327\016\206\310\242T\016\255\024\305w\301D\325dfd\230\"\025\026\376\201\220\330\013\226\035\003(\232\0067\2136\034\002~\343\300k(\335BM/\312z\361P\335\301\317\224\203}\311^\317\250\\gr\265\213U\270H\211\377\212]ww\031s\245\333\302\233U\372\343\204G$\n29H\276ky\226S\304\257\010\316\245\341u\276\030\320'HU\355<\371.\374M\000\023/\021\250\211\006\331\2454F\324\215F\000\314PO*\020\241n\265\347\271-P\257\013}*\225\224\342ACx\311O\2616\" \375\251\246\201b\2013\266K`$\203\177\222\002\020\220\222\240""\223.\330v{\277nP\232\031\340;\235Wv\n\005\374`F\344\022\302K:\023\322E\034\227'\210\351\340_\206\260\270\363\247n\2730\t\371]\3205\r\362 \327q\335\300G\351\341\356\270e\232\224\311p\247Z\240\372\340P\205\304\001cAI\366\3605\230pX\264\023\223\240&U5\262\025\330\362\210\201\024``\26272\212\231}_ 4\376\333\0134K\312x\217\262 \217\3346q\350\344%\313\306\256;wK\262\341\270\332\031`\207j\307\263O\034\274\307\253\245+\243\354\300\365\344\rQ\214y\260\031\333\347\302\253\251,AMjt\277\021\220\212D\250N\354!\361u\274:\241\252'Y8%\246w\220\200\320_-BP\234\303&\270k\231 T5\n@\252\315\321\3346=\177\247\247k\355\322\022\321\242\360\202\206~2K^\351\223\033\341\t\373%\262\322\311\254\300\r\274=\203\355\343\225\354\023\320\232\016\006\211zO\342\350\275\326Ic\246\362\n$\362\325\236\270\000\016q\237Lt&\332\213\247\252\237U\323\355.\347\227n\305\350M\266\316_h\315\334\214~\212\367\252g\252\0075V\177\322\310\266\247\316U\036V\274p.|\022\275\214\177\250\256\264Rs\255\213J|\256\272R}Y{\\\277\335\370\227\306Jkf\266\342\207\337\205\371\326\305+a1z\017\272\037j\217\352\327\033\351\326\314\225\320\214\366ZsW\351N""\255\231\2710\023\237\301\376S\265\317ji\271\354\001d\370\345]\260\323\277\361|\275|4\3369=E+\357DW\242\303\370\260\272_\373X\327\332S\263\315Y\322\311\027U\355\370\363\261\331\313\341J\230\225\2260\365)\250\374\024\362(\335\232:_\371\257h!^\256\245\240\270\203\272F\003\037\302\\\004c\230i\342\246\331\010\266r\256y.\035\247\342\371x\277\372\256v\273>Y\317\267n-VS\325o\252\245\272\260\221\240\362c\205\301\\\246f+\220\363t\345z\010\313\230\256\\\r\307a8F\224\216@u\256\262\322\034\373\276\226?~=>6y3Z\211^\304\351\370q5]]ic\356\t)\000\366%\004<\327\234\273_\315W\315Z\2711}t\025\366\321\022\227\344\330U\\2\205\035a\201\255\0337\243Wq6\316\307Z;Y\366]-]{R_k|8\312\376\351\032\210\002vr\2662W\371\036|^\201klB\r\320\361\3245a\001\211h\273;\364\211VxJ\230\372\004oY\252f\253\357k+\237\262\307\312\330\364\014V\004\341*\214\013k\226\"\rv\227\260v\017Z{^\033\334T\260\325T^6\274\243k\315\374fs\363m\363\355\326'0\177\231lw\246\222\013S\341\335h\275y\367\031$=\367\257\321\177Vo\324\236B\376h\376w\365\357\365\361\326\\:\376\252\006\263I\201p><\300\211\373poR\304\300.\367\260\366f\r+\377\026\355V\277\254e[s\227~o\325\371\312fe?|\027\335\206\274f.\301l^D_G\371O\302\363J\320\\\226\256}\266r/\204\343\336\255\336\203NaS\237\223\376\376\031\276\205\r\343\212\217\260q\232$9\t\003\002\007k\341\007\330\322\207\030{LWn\220\251LW\256\220\261\244\302\313\341fX\216?\217\315\352\036Try\354\354\205J\276yA\211?\203\301\035V\367h5y\251\360\204g$\321\326\305T[J\267\371\325\303\332\217\265m\210A:\357Te\262\262\005Uz$WZ\370\034J\272D(D6\266\202\355\257\214M^\221\2304U\231\016\277\212\307c\350\360xjl\362Be\253\231\272\025\177\023[\265oj\245\306\303\206\200\207\227\342\362K\261\300\260}\341\031\227\351Bst98l\033\017?z\026\027\253y\001\217-\362\271%\322s\355j\375\\\343\361Q\272\335?\262\322=\rl\372\321\243\370r\374\276\372\260:\362a{'\307,W\375\332J\355e\375Y\243x\224o\367\217\300\270\241\243Y%\246\327\004\371\352\355\332\370'\2559v;\326\216o\376\377\202,h\201\213+\361+\370I~\000s\247\317\266a#\347\2607""\354\3541\200h\261\372\250\226j\367\007\214\367\321\017\200\313G\265\353\3654\244\3679LM\032\342C\230\302\2117\315\302dI\2613\347\333\323s\341\355h\272\231\006\032\300\316Z\002\306>\306\205j\226,\374\177#aK\377\214\266\342\033p\311\\-\205-S\227\303\247\210\214Z\353\351\337\353\371\272\321\370\272\221'\031\266'p\247\246\362m\355\034d\272\013\377lM\\\n\377\021_\203<\323\244\210\377\001\3178\002\221\253\271\362c#CH%\355\354\324\205\317\242\235X\213\367z\026\022\312\331\365\365\243\264\\\206Xz|\233\25671)\301\360\304\221\004\022\267\205]\344\311\322\257\221\036\332\330tE\230~s\354N\274w\374\ri\244\013\241\022\013_5V\033{\375\360\370\262\361\240\241\265O\r\312\377qt\353\350Us\353]\363\335\373\346\373\017\302\035O\265\225\343\031\262\341D\301g\221\022\244\333\224\004\\\217\256!N\210\260\031TV+{C\372kO\\\244\004\003q\364\nT%\203\251\200\343\023X\254 \260}]\313\023wsd\210\331\266\014D\010\347\307Kt7!Or\311\3165\2558\335c\374\223\255\376_{b\016H\232'u>\201J6\243\240c\327)J\240\340\252b\274WU)J\260\220\036\375\215\260\013y\3058 \374q\375^#/\363\"\341V\026\305\310\2365g\233g\245\321&\300\322\325TB\230\222\320u\337I\252\234\377\003N\311\004\005"; PyObject *data = __Pyx_DecompressString(cstring, 3978, 1); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif #else /* compression: none (9259 bytes) */ const char* const bytes = "Calling fuse_session_destroyCalling fuse_session_mountCalling fuse_session_newCalling fuse_session_unmountFUSE fd about to be closed.FUSE session exit flag set while waiting for FUSE fd to become readable.Failed to submit invalidate_entry request for parent inode %d, name %sGroups:Initializing pyfuse3Kernel too old, pyfuse3 requires kernel 3.9 or newer!NULL fuse_pollhandleNeed to call init() before main()Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the 'annotation_typing' directive to False.PollHandle cannot be instantiated directlyPollHandle instances can't be pickledPollHandle is no longer validRequestContext instances can't be pickledSetattrFields instances can't be pickledStarting notify worker.Unable to parse %sValue too long to convert to Python.?add_notedisableenableerrno: %dfuse_access(): fuse_reply_* failed with %sfuse_buf_copy failed with fuse_create(): fuse_reply_* failed with %sfuse_flush(): fuse_reply_* failed with %sfuse_fsync(): fuse_reply_* failed with %sfuse_fsyncdir(): fuse_reply_* failed with %sfuse_getattr(): fuse_reply_* failed with %sfuse_getxattr(): fuse_reply_* failed with %sfuse_link(): fuse_reply_* failed with %sfuse_listxattr(): fuse_reply_* failed with %sfuse_lookup(): fuse_reply_* failed with %sfuse_lowlevel_notify_delete returned: fuse_lowlevel_notify_inval_entry returned: fuse_lowlevel_notify_inval_inode returned: fuse_lowlevel_notify_poll returned: fuse_lowlevel_notify_store returned: fuse_mkdir(): fuse_reply_* failed with %sfuse_mknod(): fuse_reply_* failed with %sfuse_opendir(): fuse_reply_* failed with %sfuse_poll(): fuse_reply_* failed with %sfuse_read(): fuse_reply_* failed with %sfuse_readdirplus(): fuse_reply_* failed with %sfuse_readlink(): fuse_reply_* failed with %sfuse_release(): fuse_reply_* failed with %sfuse_releasedir(): fuse_reply_* failed with %sfuse_removexattr(): fuse_reply_* failed with %sfuse_rename(): fuse_reply_* failed wi""th %sfuse_rmdir(): fuse_reply_* failed with %sfuse_session_mount failedfuse_session_new() failedfuse_session_receive_buf failed with fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %sfuse_setattr(): fuse_reply_* failed with %sfuse_setxattr(): fuse_reply_* failed with %sfuse_statfs(): fuse_reply_* failed with %sfuse_symlink(): fuse_reply_* failed with %sfuse_unlink(): fuse_reply_* failed with %sfuse_write_buf(): fuse_reply_* failed with %sfuse_write(): fuse_reply_* failed with %sgcisenabled*mountpoint_* argument must be of type str*name* argument must be of type str*namespace* parameter must be \"system\" or \"user\", not %sno default __reduce__ due to non-trivial __cinit__*path* argument must be of type str/proc/%d/statuspy_retval was not awaited - please report a bug at https://github.com/libfuse/pyfuse3/issues!._pyfuse3pyfuse3.__init__pyfuse-%02d%s: No tasks waiting, starting another worker (now %d total).%s: terminated%s: too many idle tasks (%d total, %d waiting), terminating.self.req cannot be converted to a Python object for picklingsrc/pyfuse3/__init__.pyxsrc/pyfuse3/handlers.pxisrc/pyfuse3/internal.pxiterminating notify threadunknown flag(s): %ous-asciiClosedResourceError_Container_Container.__reduce_cython___Container.__setstate_cython__ENOATTREntryAttributesEntryAttributes.__getstate__EntryAttributes.__reduce_cython__EntryAttributes.__setstate__EntryAttributes.__setstate_cython__FUSEErrorFUSEError.__reduce_cython__FUSEError.__setstate_cython__FileHandleTFileInfoFileInfo.__reduce_cython__FileInfo.__setstate_cython__FileNameTFlagTInodeTLockModeT_NANOS_PER_SECO_DIRECTORYOperationsPicklingErrorPollHandlePollHandle.__getstate__PollHandle.__reduce_cython__PollHandle.__setstate_cython__PollHandle.notify__Pyx_PyDict_NextRefQueueRENAME_EXCHANGERENAME_NOREPLACEROOT_INODEReaddirTokenReaddirToken.__reduce_cython__ReaddirToken.__setstate_cython__RequestContextRequestContext.__getstate__RequestContext.__reduce_cython__RequestContext.__setstate_cy""thon__SetattrFieldsSetattrFields.__getstate__SetattrFields.__reduce_cython__SetattrFields.__setstate_cython__StatvfsDataStatvfsData.__getstate__StatvfsData.__reduce_cython__StatvfsData.__setstate__StatvfsData.__setstate_cython__Thread_WorkerData_WorkerData.__reduce_cython___WorkerData.__setstate_cython__XAttrNameTabspathaccess__aenter____aexit__allowedasync_wrapperasyncio.coroutinesattrattr_onlyattr_timeout__await__bufbufsizebufvecccbufcline_in_tracebackclosecnamecnamespacecpathcreatectxcurrent_taskcurrent_trio_tokencvaluedaemondatadebugdecodedefault_optionsdefault_permissionsdeleted__dict___dictdirect_iodirpeenable_aclenable_writeback_cacheencode__enter__entryentry_timeoutenumerateerrnoerrorexcexception__exit__f_argsf_bavailf_bfreef_blocksf_bsizef_favailf_ffreef_filesf_frsizef_namemaxfdfhfifieldsflagsflushforgetfsefsyncfsyncdir__func__fuse_access_asyncfuse_create_asyncfuse_flush_asyncfuse_fsync_asyncfuse_fsyncdir_asyncfuse_getattr_asyncfuse_getxattr_asyncfuse_link_asyncfuse_listxattr_asyncfuse_lookup_asyncfuse_mkdir_asyncfuse_mknod_asyncfuse_open_asyncfuse_opendir_asyncfuse_poll_asyncfuse_read_asyncfuse_readdirplus_asyncfuse_readlink_asyncfuse_release_asyncfuse_releasedir_asyncfuse_removexattr_asyncfuse_rename_asyncfuse_rmdir_asyncfuse_setattr_asyncfuse_setxattr_asyncfuse_stacktracefuse_statfs_asyncfuse_symlink_asyncfuse_unlink_asyncfuse_write_asyncfuse_write_buf_asyncggenerationgetgetLoggerget_sup_groupsgetattrgetfilesystemencoding__getstate__getxattrgidsignore_enoentinitinoinodeinode_pinvalidate_entryinvalidate_entry_asyncinvalidate_inode_is_coroutineitemsjoinkkeep_cachelen_len_slinelinklistdirlistxattrloglogginglookuplowlevelmain__main__maskmax_tasksmin_tasksmkdirmknod__module__mountpointname__name__name_bnamesnamespace__new__newnamenewparentnextnext_idnonseekablenotifynotify_closing_notify_loopnotify_storenownurseryoffoffsetopenopen_nurseryopendiropsoptionsosos.pathpathpath_bpbufpicklepidpollpopputpy_phpybufpyfuse3_pyfuse3__pyx_checksum__pyx_result__pyx_state__""pyx_type__pyx_unpickle_RequestContext__pyx_unpickle__WorkerData__pyx_vtable____qualname__queuerreadreaddirreaddir_replyreadlink__reduce____reduce_cython____reduce_ex__releasereleasedirremovexattrrenamereqresresultretreventsrmdirselfsend_session_loop__set_name__setattrsetdefault__setstate____setstate_cython__setxattrsize_guessslensplitst_atime_nsst_birthtime_nsst_blksizest_blocksst_ctime_nsst_gidst_inost_modest_mtime_nsst_nlinkst_rdevst_sizest_uidstacktracestartstart_soonstartswithstatestatfsstatsstrerrorsupports_dot_lookupsurrogateescapesymlinksyncfssyssystemttargetterminate__test__threadingthrowtmpto_settokentriotrio_tokentypingunlinkunmountupdateuse_setstateuservvaluevalues__version___wait_fuse_readablewait_readablewritex\000\200\001\3600\000\005\027\220a\220v\230Q\230g\240Q\330\004\n\210)\2201\330\004\n\210'\220\021\330\004\n\210'\220\021\340\004\n\210&\220\001\330\004\007\200q\210\002\210)\2201\330\004\007\200q\210\002\210'\220\025\220a\330\004\007\200q\210\002\210(\220)\2305\240\001\340\004\n\210!\330\004\n\210!\330\t\n\330\010\016\320\016(\250\001\250\031\260%\260u\270A\270X\300Q\340\004\024\220A\220Q\220a\330\004\007\200t\2103\210a\330\010\016\210g\220Q\220a\220u\320\034D\300B\300h\310a\310q\320PQ\320\000\031\320\0310\260\001\360(\000\005\010\200t\210:\220Q\220f\230A\330\010\016\210i\220q\230\001\340\004\007\200t\210:\220Q\220f\230A\330\010\016\210i\220q\230\001\340\004\007\200z\220\030\230\032\2401\330\010\016\210j\230\001\230\021\330\031\033\2301\360\022\000\005\010\200z\220\023\220A\330\010\037\230q\340\010\037\230q\340\004\r\210Y\220a\220q\330\004\r\210Y\220a\220q\330\004\014\210H\220A\330\004\014\210H\220A\340\004\016\210a\330\004\n\210.\230\007\230q\240\010\250\002\250!\340\004\007\200t\2103\210a\330\023\"\240!\340\004\005\330\r\016\330\014\034\230K\240q\250\007\250w\260e\2709\300A\340\010\013\2104\210r\220\022\2209\230G\2408\2501\330\021\022\330\020 \240\013\2501\250G\2607\270&\300\003\3001\330\014\017\210t\2202\220Q\330\020\026\220g\230V\2408\2508""\2606\270\031\300!\330\014\026\220i\230q\330\022\027\220q\230\001\330\014\022\220.\240\007\240q\250\010\260\002\260!\330\014\017\210t\2203\220a\330\033*\250!\340\021\022\330\020 \240\013\2501\250G\2607\270%\270y\310\001\340\010\013\2104\210r\220\021\330\014\022\220'\230\026\230x\240x\250v\260Y\270a\340\010\017\320\017(\250\001\250\025\250a\360\006\000\017\024\2201\220A\200\001\3600\000\005\010\200u\210K\220s\230!\330\010\r\210]\230(\240/\260\021\260%\260w\270a\330\010\r\210W\220E\230\021\340\004\014\320\014\034\230A\230Q\330\004\013\320\013!\240\021\240%\240v\250U\260&\270\005\270Q\330\")\250\021\250$\250m\2701\330\004\007\200u\210B\210e\2201\330\010\017\210q\340\004\t\210\031\220!\330\004\t\210\027\220\001\220\025\220d\230!\2301\330\004\013\2101\320\0005\260Q\360L\001\000\005\034\2301\230F\240!\2407\250!\2501\340\004\013\2109\220A\340\004\007\200q\330\r\016\330\014\022\320\022-\250Q\250i\260y\300\t\310\027\320PQ\330\010\013\2104\210s\220!\330\014\022\220'\230\021\230!\2305\240\001\330\032\034\230H\240A\240Q\240a\340\r\016\330\014\022\320\0222\260!\2609\270I\300W\310A\330\010\013\2104\210s\220!\330\014\022\220'\230\021\230!\2305\240\001\330\032\034\230H\240A\240Q\240a\200\001\360\022\000\005\n\210\022\2105\220\001\220\026\220v\230R\230q\330\004\005\330\010\030\230\007\230q\240\001\340\010\013\2104\210s\220!\330\014\022\220'\230\026\230x\240x\250v\260Y\270a\340\010\n\210&\220\001\220\021\200\001\330\004,\250A\250V\2601\200A\360 \000\t\014\2104\210u\220C\220q\330\014\022\220,\230a\230q\340\r\016\330\014\022\320\022+\2501\250D\260\001\340\010\013\2104\210s\220!\330\014\022\220'\230\021\230!\2305\320 G\300r\310\030\320QR\320RS\320ST\200A\330\010\024\220A\330\010\014\210E\220\021\220*\230N\320*;\2701\330\022\035\230\\\250\032\260:\270Q\330\022\035\230^\250=\270\001\330\022!\240\037\260\001\330\014\021\220\021\220%\220w\230a\230v\240Q\330\010\017\210q\200A\330\010\024\220A\330\010\014\210E\220\021\220+\230\\\250\034\260Q\330\022\036\230k\250\033\260A\330\022\023\330\014""\021\220\021\220%\220w\230a\230v\240Q\330\010\017\210q\200A\330\010\r\210R\210v\220U\230&\240\001\330\014\023\2201\220F\230#\230Q\200A\330\010\016\210m\2301\230A\200\001\330\004\n\210+\220Q\320\000*\250+\260Q\3600\000\005\006\340\004\007\200~\220S\230\001\330\010\013\2106\220\021\220!\330\010\030\230\005\230Q\330\010\014\210I\220W\230A\230W\240A\330\010\t\210\032\2201\330\010\t\210\026\210q\340\004\021\220\024\220R\220y\240\006\240i\250q\200\001\360\024\000\n\016\210Q\320\016 \240\002\240%\240x\250q\330\010\014\210H\220A\330\014\017\210t\220;\230a\230q\330\020\021\340\014\022\220,\230a\320\0374\260B\260b\270\001\330\004\016\210a\330\004\010\210\005\210T\220\026\220r\230\021\230!\330\010\014\210D\220\001\220\023\220A\220Q\340\004\013\2101\200\001\360\026\000\005\026\220Q\220a\330\004\010\210\t\220\037\240\001\240\021\200\001\360\010\000\005\016\210T\320\021\"\240$\240l\260$\260m\3004\300q\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220t\230;\240g\250Q\330\004\007\200q\330\010\017\320\017,\250D\260\001\260\027\270\013\3007\310!\340\010\017\320\017,\250D\260\001\260\027\270\013\3001\200\001\360\010\000\005\016\210T\220\026\220t\2306\240\024\240V\2504\250q\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220q\330\004\007\200q\330\010\017\320\017/\250t\2601\260G\270;\300g\310Q\340\010\017\320\017/\250t\2601\260G\270;\300a\200\001\200\001\330\017 \240\001\200\001\330\004)\250\021\250&\260\001\200a\320\000&\240a\360\034\000\005\010\200t\210:\220Q\220f\230A\330\010\016\210i\220q\230\001\340\004\007\200t\210:\220Q\220f\230A\330\010\016\210i\220q\230\001\340\004\007\200z\220\030\230\032\2401\330\010\016\210j\230\001\230\021\330\031\033\2301\360\022\000\005\010\200z\220\023\220A\330\010\037\230q\340\010\037\230q\340\004\r\210Y\220a\220q\330\004\r\210Y\220a\220q\330\004\033\2301\230G\2401\240H\250A\250Q\330\004\014\210H\220A""\330\004\014\210H\220A\340\t\n\340\010\030\230\013\2401\330\014\023\2207\230(\240)\2506\260\021\340\004\007\200t\2103\210a\330\010\016\210g\220V\2308\2408\2506\260\031\270!\200\001\360\006\000\005\006\330\010\016\210m\2304\230q\330\010\013\2104\210s\220!\330\014\017\210v\220Q\220a\330\014\r\340\t\022\220&\230\t\320!2\260!\330\010\t\330\014\034\230A\230Y\240f\250A\330\010\017\210}\230A\330\014\017\210~\230T\240\032\2501\250E\260\021\360\006\000\021\024\220:\230Q\230a\330:=\270Q\270d\300#\300Q\300a\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220>\240\030\250\021\250!\330\004\007\200|\2207\230!\330\0100\260\001\3201B\300.\320PQ\330\004\013\2101\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\220;\230h\240a\240q\330\004\007\200|\2207\230!\330\010-\250Q\250n\270N\310!\330\004\013\2101\200\n\210!\360&\000\005\006\330\004\005\340\004\007\200q\330\010\013\2106\220\021\220!\330\010\034\230A\230Q\340\004\007\200v\210Q\210a\330\004\030\230\001\230\021\340\004\023\2201\330\004\016\210a\320\000'\240q\360$\000\005\010\200q\330\r\016\330\014\022\320\0222\260!\2609\270H\300C\300q\340\r\016\330\014\022\320\0222\260!\2609\270G\3003\300a\340\004\007\200t\2103\210a\330\010\016\210g\220Q\220a\220u\320\034J\310\"\310H\320TU\320UV\320VW\200\001\360\024\000\005\010\200t\210:\220Q\220f\230A\330\010\016\210i\220q\230\001\360\014\000\005\016\210Y\220a\220q\330\004\n\210(\220!\340\t\n\330\010\031\230\030\240\021\240!\340\004\007\200u\210C\210q\330\010\016\210g\220V\2308\2408\2506\260\031\270!\340\004\020\220\001\330\004\005\330\r\026\220a\330\r\016\330\014\034\230H\240A\240Q\340\010\013\2104\210s\220!\330\013\023\2207\230#\230Q\330\017\025\220W\230F\240(\250(\260&\270\t\300\021\340\017\020\330\010\021\220\027\230\001\230\023\230I\240V\2503\250b\260\001\330\021\030\230\001\230\023\230I\240W\250C\250q\330\014\r\340\010\r\210W\220A\220Y\230a\320\0371\260\021\260#\260Q\340\t\n\330\022\033\2301\230A\340\004\013\2101\320\000\"\240!\360,\000\005\010\200v\210Q""\210a\360\010\000\005\010\200t\210:\220Q\220l\240!\330\010\016\210i\220q\230\001\340\004\005\330\004\005\330\004\005\330\004\005\330\004\005\330\004\005\340\004\022\220+\230Q\330\004\023\2209\230A\230R\230u\240H\250A\250Q\330\004\021\220\021\340\004\022\220!\2209\230A\230Q\340\004\007\200v\210Q\210a\330\004\021\220\021\330\004\016\320\016\036\230a\230q\240\010\250\001\250\032\2607\270+\300Q\330\004\007\200t\2101\330\010\016\210l\230!\2301\340\004\007\200v\210Q\210a\330\004\n\320\n\034\230A\230Y\240g\250Q\330\004\007\200t\2103\210a\330\010\016\210l\230!\2301\340\004\021\220\037\240\001\240\021-opyfuse3"; PyObject *data = NULL; CYTHON_UNUSED_VAR(__Pyx_DecompressString); #endif PyObject **stringtab = __pyx_mstate->__pyx_string_tab; Py_ssize_t pos = 0; for (int i = 0; i < 420; i++) { Py_ssize_t bytes_length = index[i].length; PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL); if (likely(string) && i >= 89) PyUnicode_InternInPlace(&string); if (unlikely(!string)) { Py_XDECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } stringtab[i] = string; pos += bytes_length; } for (int i = 420; i < 452; i++) { Py_ssize_t bytes_length = index[i].length; PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length); stringtab[i] = string; pos += bytes_length; if (unlikely(!string)) { Py_XDECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } } Py_XDECREF(data); for (Py_ssize_t i = 0; i < 452; i++) { if (unlikely(PyObject_Hash(stringtab[i]) == -1)) { __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { PyObject **table = stringtab + 420; for (Py_ssize_t i=0; i<32; ++i) { #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #if PY_VERSION_HEX < 0x030E0000 if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1) #else if (PyUnstable_Object_IsUniquelyReferenced(table[i])) #endif { Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL); } #else Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT); #endif } } #endif } { PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 0; int8_t const cint_constants_1[] = {0,1}; int32_t const cint_constants_4[] = {44617694L,240542287L,1000000000L}; for (int i = 0; i < 5; i++) { numbertab[i] = PyLong_FromLong((i < 2 ? cint_constants_1[i - 0] : cint_constants_4[i - 2])); if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { PyObject **table = __pyx_mstate->__pyx_number_tab; for (Py_ssize_t i=0; i<5; ++i) { #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #if PY_VERSION_HEX < 0x030E0000 if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1) #else if (PyUnstable_Object_IsUniquelyReferenced(table[i])) #endif { Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL); } #else Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT); #endif } } #endif return 0; __pyx_L1_error:; return -1; } /* #### Code section: init_codeobjects ### */ typedef struct { unsigned int argcount : 3; unsigned int num_posonly_args : 1; unsigned int num_kwonly_args : 1; unsigned int nlocals : 4; unsigned int flags : 10; unsigned int first_line : 11; } __Pyx_PyCode_New_function_description; /* NewCodeObj.proto */ static PyObject* __Pyx_PyCode_New( const __Pyx_PyCode_New_function_description descr, PyObject * const *varnames, PyObject *filename, PyObject *funcname, PyObject *line_table, PyObject *tuple_dedup_map ); static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { PyObject* tuple_dedup_map = PyDict_New(); if (unlikely(!tuple_dedup_map)) return -1; { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 59}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_entry, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_lookup_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 98}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_entry, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_getattr_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 127}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_fh, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_now, __pyx_mstate->__pyx_n_u_entry, __pyx_mstate->__pyx_n_u_fields, __pyx_mstate->__pyx_n_u_attr, __pyx_mstate->__pyx_n_u_to_set, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_setattr_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 184}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_target, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[3] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_readlink_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[3])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 209}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_entry, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[4] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_mknod_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[4])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 234}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_entry, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[5] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_mkdir_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[5])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 260}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[6] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_unlink_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[6])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 281}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[7] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_rmdir_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[7])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 304}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_link, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_entry, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[8] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_symlink_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[8])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 332}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_newname, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_flags, __pyx_mstate->__pyx_n_u_newparent, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_rename_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 357}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_newname, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_entry, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_link_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 381}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_fi, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_open_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 408}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_pybuf, __pyx_mstate->__pyx_n_u_buf, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_read_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 438}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_pbuf, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_len, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_write_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 462}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_buf, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_len, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_write_buf_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 483}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_flush_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 503}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_release_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 525}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_fsync_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 546}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_opendir_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 578}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_token, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_readdirplus_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 607}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_releasedir_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 630}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_fsyncdir_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 650}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_stats, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_statfs_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 681}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_setxattr_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 726}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_len_s, __pyx_mstate->__pyx_n_u_len, __pyx_mstate->__pyx_n_u_cbuf, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_buf, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_getxattr_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 759}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_len_s, __pyx_mstate->__pyx_n_u_len, __pyx_mstate->__pyx_n_u_cbuf, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_res, __pyx_mstate->__pyx_n_u_e, __pyx_mstate->__pyx_n_u_buf}; __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_listxattr_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 797}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_removexattr_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 819}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_mask, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_allowed, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_access_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 855}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_py_ph, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_revents, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_result, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_poll_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 881}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_c, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_entry, __pyx_mstate->__pyx_n_u_fi, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_tmp, __pyx_mstate->__pyx_n_u_e}; __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_handlers_pxi, __pyx_mstate->__pyx_n_u_fuse_create_async, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 202}; PyObject* const varnames[] = {0}; __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_internal_pxi, __pyx_mstate->__pyx_n_u_wait_fuse_readable, __pyx_mstate->__pyx_kp_b_iso88591_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 233}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_nursery, __pyx_mstate->__pyx_n_u_min_tasks, __pyx_mstate->__pyx_n_u_max_tasks, __pyx_mstate->__pyx_n_u_res, __pyx_mstate->__pyx_n_u_buf, __pyx_mstate->__pyx_n_u_name}; __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_internal_pxi, __pyx_mstate->__pyx_n_u_session_loop, __pyx_mstate->__pyx_kp_b_iso88591__6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 836}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_min_tasks, __pyx_mstate->__pyx_n_u_max_tasks, __pyx_mstate->__pyx_n_u_nursery}; __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_main, __pyx_mstate->__pyx_kp_b_iso88591__7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state}; __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state}; __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 115}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_req, __pyx_mstate->__pyx_n_u_inode_p, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_deleted, __pyx_mstate->__pyx_n_u_ignore_enoent, __pyx_mstate->__pyx_n_u_exc}; __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3_internal_pxi, __pyx_mstate->__pyx_n_u_notify_loop, __pyx_mstate->__pyx_kp_b_iso88591_m4q_4s_vQa_2_AYfA_A_T_1E_Qa_Qd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate}; __pyx_mstate_global->__pyx_codeobj_tab[38] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_l_m4q_G1F_a_vWE_Q_q_t_gQ_q_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[38])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state}; __pyx_mstate_global->__pyx_codeobj_tab[39] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591__8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[39])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 137}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; __pyx_mstate_global->__pyx_codeobj_tab[40] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_getstate, __pyx_mstate->__pyx_kp_b_iso88591_A_m1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[40])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate}; __pyx_mstate_global->__pyx_codeobj_tab[41] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_T_t6_V4q_G1F_a_vWE_Q_q_q_q_t1G, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[41])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state}; __pyx_mstate_global->__pyx_codeobj_tab[42] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_AV1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[42])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 165}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; __pyx_mstate_global->__pyx_codeobj_tab[43] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_getstate, __pyx_mstate->__pyx_kp_b_iso88591_A_m1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[43])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; __pyx_mstate_global->__pyx_codeobj_tab[44] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[44])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state}; __pyx_mstate_global->__pyx_codeobj_tab[45] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[45])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 335}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_k}; __pyx_mstate_global->__pyx_codeobj_tab[46] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_getstate, __pyx_mstate->__pyx_kp_b_iso88591_A_A_E_N_1_Q_wavQ_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[46])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 344}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_v}; __pyx_mstate_global->__pyx_codeobj_tab[47] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_setstate, __pyx_mstate->__pyx_kp_b_iso88591_A_RvU_1F_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[47])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; __pyx_mstate_global->__pyx_codeobj_tab[48] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[48])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state}; __pyx_mstate_global->__pyx_codeobj_tab[49] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[49])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; __pyx_mstate_global->__pyx_codeobj_tab[50] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[50])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state}; __pyx_mstate_global->__pyx_codeobj_tab[51] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[51])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 467}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_k}; __pyx_mstate_global->__pyx_codeobj_tab[52] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_getstate, __pyx_mstate->__pyx_kp_b_iso88591_A_A_E_Q_k_A_wavQ_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[52])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 475}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_v}; __pyx_mstate_global->__pyx_codeobj_tab[53] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_setstate, __pyx_mstate->__pyx_kp_b_iso88591_A_RvU_1F_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[53])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; __pyx_mstate_global->__pyx_codeobj_tab[54] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[54])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state}; __pyx_mstate_global->__pyx_codeobj_tab[55] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[55])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; __pyx_mstate_global->__pyx_codeobj_tab[56] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[56])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state}; __pyx_mstate_global->__pyx_codeobj_tab[57] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[57])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 550}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; __pyx_mstate_global->__pyx_codeobj_tab[58] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_getstate, __pyx_mstate->__pyx_kp_b_iso88591_A_m1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[58])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 553}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_ret}; __pyx_mstate_global->__pyx_codeobj_tab[59] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_notify, __pyx_mstate->__pyx_kp_b_iso88591_A_4uCq_aq_1D_4s_5_Gr_QRRSST, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[59])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; __pyx_mstate_global->__pyx_codeobj_tab[60] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[60])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state}; __pyx_mstate_global->__pyx_codeobj_tab[61] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[61])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 579}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_path, __pyx_mstate->__pyx_n_u_dirp, __pyx_mstate->__pyx_n_u_res, __pyx_mstate->__pyx_n_u_buf, __pyx_mstate->__pyx_n_u_path_b, __pyx_mstate->__pyx_n_u_names}; __pyx_mstate_global->__pyx_codeobj_tab[62] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_listdir, __pyx_mstate->__pyx_kp_b_iso88591_t_QfA_iq_Yaq_uCq_gV886_a_HAQ_4s, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[62])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 628}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_path, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_fd}; __pyx_mstate_global->__pyx_codeobj_tab[63] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_syncfs, __pyx_mstate->__pyx_kp_b_iso88591_5_vRq_q_4s_xxvYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[63])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 647}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_path, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_namespace, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_len, __pyx_mstate->__pyx_n_u_cvalue, __pyx_mstate->__pyx_n_u_cpath, __pyx_mstate->__pyx_n_u_cname, __pyx_mstate->__pyx_n_u_cnamespace, __pyx_mstate->__pyx_n_u_path_b, __pyx_mstate->__pyx_n_u_name_b}; __pyx_mstate_global->__pyx_codeobj_tab[64] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_setxattr, __pyx_mstate->__pyx_kp_b_iso88591_a_t_QfA_iq_t_QfA_iq_z_1_j_1_z_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[64])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 698}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_path, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_size_guess, __pyx_mstate->__pyx_n_u_namespace, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_buf, __pyx_mstate->__pyx_n_u_cpath, __pyx_mstate->__pyx_n_u_cname, __pyx_mstate->__pyx_n_u_bufsize, __pyx_mstate->__pyx_n_u_cnamespace, __pyx_mstate->__pyx_n_u_path_b, __pyx_mstate->__pyx_n_u_name_b}; __pyx_mstate_global->__pyx_codeobj_tab[65] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_getxattr, __pyx_mstate->__pyx_kp_b_iso88591_0_t_QfA_iq_t_QfA_iq_z_1_j_1_z_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[65])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 780}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_ops, __pyx_mstate->__pyx_n_u_mountpoint, __pyx_mstate->__pyx_n_u_options, __pyx_mstate->__pyx_n_u_f_args, __pyx_mstate->__pyx_n_u_res}; __pyx_mstate_global->__pyx_codeobj_tab[66] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_vQa_t_Ql_iq_Q_9ARuHAQ_9AQ_vQa_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[66])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 858}; PyObject* const varnames[] = {0}; __pyx_mstate_global->__pyx_codeobj_tab[67] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_terminate, __pyx_mstate->__pyx_kp_b_iso88591_Qa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[67])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 873}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_unmount}; __pyx_mstate_global->__pyx_codeobj_tab[68] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_kp_b_iso88591_q_6_AQ_vQa_1_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[68])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 906}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_inode, __pyx_mstate->__pyx_n_u_attr_only, __pyx_mstate->__pyx_n_u_ret}; __pyx_mstate_global->__pyx_codeobj_tab[69] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_invalidate_inode, __pyx_mstate->__pyx_kp_b_iso88591_q_q_2_9HCq_2_9G3a_t3a_gQau_J_HT, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[69])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 935}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_inode_p, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_deleted, __pyx_mstate->__pyx_n_u_cname, __pyx_mstate->__pyx_n_u_slen, __pyx_mstate->__pyx_n_u_len, __pyx_mstate->__pyx_n_u_ret}; __pyx_mstate_global->__pyx_codeobj_tab[70] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_invalidate_entry, __pyx_mstate->__pyx_kp_b_iso88591_5QL_1F_7_1_9A_q_Qiy_PQ_4s_5_HAQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[70])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 991}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_inode_p, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_deleted, __pyx_mstate->__pyx_n_u_ignore_enoent, __pyx_mstate->__pyx_n_u_t}; __pyx_mstate_global->__pyx_codeobj_tab[71] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_invalidate_entry_async, __pyx_mstate->__pyx_kp_b_iso88591_Q0_S_6_Q_IWAWA_1_q_Ry_iq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[71])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1027}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_inode, __pyx_mstate->__pyx_n_u_offset, __pyx_mstate->__pyx_n_u_data, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_ino, __pyx_mstate->__pyx_n_u_off, __pyx_mstate->__pyx_n_u_pybuf, __pyx_mstate->__pyx_n_u_bufvec, __pyx_mstate->__pyx_n_u_buf}; __pyx_mstate_global->__pyx_codeobj_tab[72] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_notify_store, __pyx_mstate->__pyx_kp_b_iso88591_0_avQgQ_1_q_1_q_a_q_5_uAXQ_AQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[72])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1071}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pid, __pyx_mstate->__pyx_n_u_fh, __pyx_mstate->__pyx_n_u_line, __pyx_mstate->__pyx_n_u_gids, __pyx_mstate->__pyx_n_u_x}; __pyx_mstate_global->__pyx_codeobj_tab[73] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_get_sup_groups, __pyx_mstate->__pyx_kp_b_iso88591_Q_xq_HA_t_aq_a_4Bb_a_T_r_D_AQ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[73])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1094}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_token, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_attr, __pyx_mstate->__pyx_n_u_next_id, __pyx_mstate->__pyx_n_u_cname, __pyx_mstate->__pyx_n_u_len}; __pyx_mstate_global->__pyx_codeobj_tab[74] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_pyfuse3___init___pyx, __pyx_mstate->__pyx_n_u_readdir_reply, __pyx_mstate->__pyx_kp_b_iso88591_0_uKs_wa_WE_AQ_vU_Q_m1_uBe1_q_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[74])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result}; __pyx_mstate_global->__pyx_codeobj_tab[75] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle__WorkerData, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_haq_7_QnN_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[75])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result}; __pyx_mstate_global->__pyx_codeobj_tab[76] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_RequestContext, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_7_0_1B_PQ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[76])) goto bad; } Py_DECREF(tuple_dedup_map); return 0; bad: Py_DECREF(tuple_dedup_map); return -1; } /* #### Code section: init_globals ### */ static int __Pyx_InitGlobals(void) { /* PythonCompatibility.init */ if (likely(__Pyx_init_co_variables() == 0)); else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error) /* CommonTypesMetaclass.init */ if (likely(__pyx_CommonTypesMetaclass_init(__pyx_m) == 0)); else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error) /* Coroutine.init */ if (likely(__pyx_Coroutine_init(__pyx_m) == 0)); else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error) /* Coro_CheckExact.init */ #if CYTHON_COMPILING_IN_LIMITED_API { PyObject *typesModule=NULL; typesModule = PyImport_ImportModule("types"); if (typesModule) { __pyx_mstate_global->__Pyx_CachedCoroType = PyObject_GetAttrString(typesModule, "CoroutineType"); Py_DECREF(typesModule); } } // error handling follows #endif if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error) /* CachedMethodType.init */ #if CYTHON_COMPILING_IN_LIMITED_API { PyObject *typesModule=NULL; typesModule = PyImport_ImportModule("types"); if (typesModule) { __pyx_mstate_global->__Pyx_CachedMethodType = PyObject_GetAttrString(typesModule, "MethodType"); Py_DECREF(typesModule); } } // error handling follows #endif if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error) /* CythonFunctionShared.init */ if (likely(__pyx_CyFunction_init(__pyx_m) == 0)); else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } /* #### Code section: cleanup_globals ### */ /* #### Code section: cleanup_module ### */ /* #### Code section: main_method ### */ /* #### Code section: utility_code_pragmas ### */ #ifdef _MSC_VER #pragma warning( push ) /* Warning 4127: conditional expression is constant * Cython uses constant conditional expressions to allow in inline functions to be optimized at * compile-time, so this warning is not useful */ #pragma warning( disable : 4127 ) #endif /* #### Code section: utility_code_def ### */ /* --- Runtime support code --- */ /* Refnanny */ #if CYTHON_REFNANNY static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { PyObject *m = NULL, *p = NULL; void *r = NULL; m = PyImport_ImportModule(modname); if (!m) goto end; p = PyObject_GetAttrString(m, "RefNannyAPI"); if (!p) goto end; r = PyLong_AsVoidPtr(p); end: Py_XDECREF(p); Py_XDECREF(m); return (__Pyx_RefNannyAPIStruct *)r; } #endif /* PyErrExceptionMatches (used by PyObjectGetAttrStrNoError) */ #if CYTHON_FAST_THREAD_STATE static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(tuple); for (i=0; i= 0x030C00A6 PyObject *current_exception = tstate->current_exception; if (unlikely(!current_exception)) return 0; exc_type = (PyObject*) Py_TYPE(current_exception); if (exc_type == err) return 1; #else exc_type = tstate->curexc_type; if (exc_type == err) return 1; if (unlikely(!exc_type)) return 0; #endif #if CYTHON_AVOID_BORROWED_REFS Py_INCREF(exc_type); #endif if (unlikely(PyTuple_Check(err))) { result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); } else { result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err); } #if CYTHON_AVOID_BORROWED_REFS Py_DECREF(exc_type); #endif return result; } #endif /* PyErrFetchRestore (used by PyObjectGetAttrStrNoError) */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { #if PY_VERSION_HEX >= 0x030C00A6 PyObject *tmp_value; assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value))); if (value) { #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb)) #endif PyException_SetTraceback(value, tb); } tmp_value = tstate->current_exception; tstate->current_exception = value; Py_XDECREF(tmp_value); Py_XDECREF(type); Py_XDECREF(tb); #else PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->curexc_type; tmp_value = tstate->curexc_value; tmp_tb = tstate->curexc_traceback; tstate->curexc_type = type; tstate->curexc_value = value; tstate->curexc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #endif } static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #if PY_VERSION_HEX >= 0x030C00A6 PyObject* exc_value; exc_value = tstate->current_exception; tstate->current_exception = 0; *value = exc_value; *type = NULL; *tb = NULL; if (exc_value) { *type = (PyObject*) Py_TYPE(exc_value); Py_INCREF(*type); #if CYTHON_COMPILING_IN_CPYTHON *tb = ((PyBaseExceptionObject*) exc_value)->traceback; Py_XINCREF(*tb); #else *tb = PyException_GetTraceback(exc_value); #endif } #else *type = tstate->curexc_type; *value = tstate->curexc_value; *tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; #endif } #endif /* PyObjectGetAttrStr (used by PyObjectGetAttrStrNoError) */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro)) return tp->tp_getattro(obj, attr_name); return PyObject_GetAttr(obj, attr_name); } #endif /* PyObjectGetAttrStrNoError (used by GetBuiltinName) */ #if __PYX_LIMITED_VERSION_HEX < 0x030d0000 static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) __Pyx_PyErr_Clear(); } #endif static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { PyObject *result; #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000 (void) PyObject_GetOptionalAttr(obj, attr_name, &result); return result; #else #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); } #endif result = __Pyx_PyObject_GetAttrStr(obj, attr_name); if (unlikely(!result)) { __Pyx_PyObject_GetAttrStr_ClearAttributeError(); } return result; #endif } /* GetBuiltinName */ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_mstate_global->__pyx_b, name); if (unlikely(!result) && !PyErr_Occurred()) { PyErr_Format(PyExc_NameError, "name '%U' is not defined", name); } return result; } /* TupleAndListFromArray (used by fastcall) */ #if !CYTHON_COMPILING_IN_CPYTHON && CYTHON_METH_FASTCALL static CYTHON_INLINE PyObject * __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n) { PyObject *res; Py_ssize_t i; if (n <= 0) { return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple); } res = PyTuple_New(n); if (unlikely(res == NULL)) return NULL; for (i = 0; i < n; i++) { if (unlikely(__Pyx_PyTuple_SET_ITEM(res, i, src[i]) < (0))) { Py_DECREF(res); return NULL; } Py_INCREF(src[i]); } return res; } #elif CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) { PyObject *v; Py_ssize_t i; for (i = 0; i < length; i++) { v = dest[i] = src[i]; Py_INCREF(v); } } static CYTHON_INLINE PyObject * __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n) { PyObject *res; if (n <= 0) { return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple); } res = PyTuple_New(n); if (unlikely(res == NULL)) return NULL; __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n); return res; } static CYTHON_INLINE PyObject * __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n) { PyObject *res; if (n <= 0) { return PyList_New(0); } res = PyList_New(n); if (unlikely(res == NULL)) return NULL; __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n); return res; } #endif /* BytesEquals (used by UnicodeEquals) */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL ||\ !(CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS) return PyObject_RichCompareBool(s1, s2, equals); #else if (s1 == s2) { return (equals == Py_EQ); } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { const char *ps1, *ps2; Py_ssize_t length = PyBytes_GET_SIZE(s1); if (length != PyBytes_GET_SIZE(s2)) return (equals == Py_NE); ps1 = PyBytes_AS_STRING(s1); ps2 = PyBytes_AS_STRING(s2); if (ps1[0] != ps2[0]) { return (equals == Py_NE); } else if (length == 1) { return (equals == Py_EQ); } else { int result; #if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000) Py_hash_t hash1, hash2; hash1 = ((PyBytesObject*)s1)->ob_shash; hash2 = ((PyBytesObject*)s2)->ob_shash; if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { return (equals == Py_NE); } #endif result = memcmp(ps1, ps2, (size_t)length); return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { return (equals == Py_NE); } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { return (equals == Py_NE); } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } #endif } /* UnicodeEquals (used by fastcall) */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL return PyObject_RichCompareBool(s1, s2, equals); #else int s1_is_unicode, s2_is_unicode; if (s1 == s2) { goto return_eq; } s1_is_unicode = PyUnicode_CheckExact(s1); s2_is_unicode = PyUnicode_CheckExact(s2); if (s1_is_unicode & s2_is_unicode) { Py_ssize_t length, length2; int kind; void *data1, *data2; #if !CYTHON_COMPILING_IN_LIMITED_API if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) return -1; #endif length = __Pyx_PyUnicode_GET_LENGTH(s1); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely(length < 0)) return -1; #endif length2 = __Pyx_PyUnicode_GET_LENGTH(s2); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely(length2 < 0)) return -1; #endif if (length != length2) { goto return_ne; } #if CYTHON_USE_UNICODE_INTERNALS { Py_hash_t hash1, hash2; hash1 = ((PyASCIIObject*)s1)->hash; hash2 = ((PyASCIIObject*)s2)->hash; if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { goto return_ne; } } #endif kind = __Pyx_PyUnicode_KIND(s1); if (kind != __Pyx_PyUnicode_KIND(s2)) { goto return_ne; } data1 = __Pyx_PyUnicode_DATA(s1); data2 = __Pyx_PyUnicode_DATA(s2); if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { goto return_ne; } else if (length == 1) { goto return_eq; } else { int result = memcmp(data1, data2, (size_t)(length * kind)); return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & s2_is_unicode) { goto return_ne; } else if ((s2 == Py_None) & s1_is_unicode) { goto return_ne; } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } return_eq: return (equals == Py_EQ); return_ne: return (equals == Py_NE); #endif } /* fastcall */ #if CYTHON_METH_FASTCALL static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s) { Py_ssize_t i, n = __Pyx_PyTuple_GET_SIZE(kwnames); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely(n == -1)) return NULL; #endif for (i = 0; i < n; i++) { PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i); #if !CYTHON_ASSUME_SAFE_MACROS if (unlikely(!namei)) return NULL; #endif if (s == namei) return kwvalues[i]; } for (i = 0; i < n; i++) { PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i); #if !CYTHON_ASSUME_SAFE_MACROS if (unlikely(!namei)) return NULL; #endif int eq = __Pyx_PyUnicode_Equals(s, namei, Py_EQ); if (unlikely(eq != 0)) { if (unlikely(eq < 0)) return NULL; return kwvalues[i]; } } return NULL; } #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) { Py_ssize_t i, nkwargs; PyObject *dict; #if !CYTHON_ASSUME_SAFE_SIZE nkwargs = PyTuple_Size(kwnames); if (unlikely(nkwargs < 0)) return NULL; #else nkwargs = PyTuple_GET_SIZE(kwnames); #endif dict = PyDict_New(); if (unlikely(!dict)) return NULL; for (i=0; itp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall(" while calling a Python object"))) return NULL; result = (*call)(func, arg, kw); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyObjectCallMethO (used by PyObjectFastCall) */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { PyObject *self, *result; PyCFunction cfunc; cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func); self = __Pyx_CyOrPyCFunction_GET_SELF(func); if (unlikely(Py_EnterRecursiveCall(" while calling a Python object"))) return NULL; result = cfunc(self, arg); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyObjectFastCall (used by PyObjectCallOneArg) */ #if PY_VERSION_HEX < 0x03090000 || CYTHON_COMPILING_IN_LIMITED_API static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs) { PyObject *argstuple; PyObject *result = 0; size_t i; argstuple = PyTuple_New((Py_ssize_t)nargs); if (unlikely(!argstuple)) return NULL; for (i = 0; i < nargs; i++) { Py_INCREF(args[i]); if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) != (0)) goto bad; } result = __Pyx_PyObject_Call(func, argstuple, kwargs); bad: Py_DECREF(argstuple); return result; } #endif #if CYTHON_VECTORCALL && !CYTHON_COMPILING_IN_LIMITED_API #if PY_VERSION_HEX < 0x03090000 #define __Pyx_PyVectorcall_Function(callable) _PyVectorcall_Function(callable) #elif CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE vectorcallfunc __Pyx_PyVectorcall_Function(PyObject *callable) { PyTypeObject *tp = Py_TYPE(callable); #if defined(__Pyx_CyFunction_USED) if (__Pyx_CyFunction_CheckExact(callable)) { return __Pyx_CyFunction_func_vectorcall(callable); } #endif if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) { return NULL; } assert(PyCallable_Check(callable)); Py_ssize_t offset = tp->tp_vectorcall_offset; assert(offset > 0); vectorcallfunc ptr; memcpy(&ptr, (char *) callable + offset, sizeof(ptr)); return ptr; } #else #define __Pyx_PyVectorcall_Function(callable) PyVectorcall_Function(callable) #endif #endif static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject *const *args, size_t _nargs, PyObject *kwargs) { Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs); #if CYTHON_COMPILING_IN_CPYTHON if (nargs == 0 && kwargs == NULL) { if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS)) return __Pyx_PyObject_CallMethO(func, NULL); } else if (nargs == 1 && kwargs == NULL) { if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O)) return __Pyx_PyObject_CallMethO(func, args[0]); } #endif if (kwargs == NULL) { #if CYTHON_VECTORCALL #if CYTHON_COMPILING_IN_LIMITED_API return PyObject_Vectorcall(func, args, _nargs, NULL); #else vectorcallfunc f = __Pyx_PyVectorcall_Function(func); if (f) { return f(func, args, _nargs, NULL); } #endif #endif } if (nargs == 0) { return __Pyx_PyObject_Call(func, __pyx_mstate_global->__pyx_empty_tuple, kwargs); } #if PY_VERSION_HEX >= 0x03090000 && !CYTHON_COMPILING_IN_LIMITED_API return PyObject_VectorcallDict(func, args, (size_t)nargs, kwargs); #else return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs); #endif } /* PyObjectCallOneArg (used by CallUnboundCMethod0) */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *args[2] = {NULL, arg}; return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } /* UnpackUnboundCMethod (used by CallUnboundCMethod0) */ #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000 static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) { PyObject *result; PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args)); if (unlikely(!selfless_args)) return NULL; result = PyObject_Call(method, selfless_args, kwargs); Py_DECREF(selfless_args); return result; } #elif CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03090000 static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { return _PyObject_Vectorcall (method, args ? args+1 : NULL, nargs ? nargs-1 : 0, kwnames); } #else static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { return #if PY_VERSION_HEX < 0x03090000 _PyObject_Vectorcall #else PyObject_Vectorcall #endif (method, args ? args+1 : NULL, nargs ? (size_t) nargs-1 : 0, kwnames); } #endif static PyMethodDef __Pyx_UnboundCMethod_Def = { "CythonUnboundCMethod", __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall), #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000 METH_VARARGS | METH_KEYWORDS, #else METH_FASTCALL | METH_KEYWORDS, #endif NULL }; static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) { PyObject *method, *result=NULL; method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name); if (unlikely(!method)) return -1; result = method; #if CYTHON_COMPILING_IN_CPYTHON if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type))) { PyMethodDescrObject *descr = (PyMethodDescrObject*) method; target->func = descr->d_method->ml_meth; target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS); } else #endif #if CYTHON_COMPILING_IN_PYPY #else if (PyCFunction_Check(method)) #endif { PyObject *self; int self_found; #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY self = PyObject_GetAttrString(method, "__self__"); if (!self) { PyErr_Clear(); } #else self = PyCFunction_GET_SELF(method); #endif self_found = (self && self != Py_None); #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY Py_XDECREF(self); #endif if (self_found) { PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method); if (unlikely(!unbound_method)) return -1; Py_DECREF(method); result = unbound_method; } } #if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING if (unlikely(target->method)) { Py_DECREF(result); } else #endif target->method = result; return 0; } /* CallUnboundCMethod0 */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) { int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc); if (likely(was_initialized == 2 && cfunc->func)) { if (likely(cfunc->flag == METH_NOARGS)) return __Pyx_CallCFunction(cfunc, self, NULL); if (likely(cfunc->flag == METH_FASTCALL)) return __Pyx_CallCFunctionFast(cfunc, self, NULL, 0); if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS)) return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, NULL, 0, NULL); if (likely(cfunc->flag == (METH_VARARGS | METH_KEYWORDS))) return __Pyx_CallCFunctionWithKeywords(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple, NULL); if (cfunc->flag == METH_VARARGS) return __Pyx_CallCFunction(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple); return __Pyx__CallUnboundCMethod0(cfunc, self); } #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING else if (unlikely(was_initialized == 1)) { __Pyx_CachedCFunction tmp_cfunc = { #ifndef __cplusplus 0 #endif }; tmp_cfunc.type = cfunc->type; tmp_cfunc.method_name = cfunc->method_name; return __Pyx__CallUnboundCMethod0(&tmp_cfunc, self); } #endif PyObject *result = __Pyx__CallUnboundCMethod0(cfunc, self); __Pyx_CachedCFunction_SetFinishedInitializing(cfunc); return result; } #endif static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) { PyObject *result; if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; result = __Pyx_PyObject_CallOneArg(cfunc->method, self); return result; } /* py_dict_items (used by OwnedDictNext) */ static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) { return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_items, d); } /* py_dict_values (used by OwnedDictNext) */ static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) { return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_values, d); } /* OwnedDictNext (used by RejectKeywords) */ #if CYTHON_AVOID_BORROWED_REFS static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue) { PyObject *next = NULL; if (!*ppos) { if (pvalue) { PyObject *dictview = pkey ? __Pyx_PyDict_Items(p) : __Pyx_PyDict_Values(p); if (unlikely(!dictview)) goto bad; *ppos = PyObject_GetIter(dictview); Py_DECREF(dictview); } else { *ppos = PyObject_GetIter(p); } if (unlikely(!*ppos)) goto bad; } next = PyIter_Next(*ppos); if (!next) { if (PyErr_Occurred()) goto bad; return 0; } if (pkey && pvalue) { *pkey = __Pyx_PySequence_ITEM(next, 0); if (unlikely(*pkey)) goto bad; *pvalue = __Pyx_PySequence_ITEM(next, 1); if (unlikely(*pvalue)) goto bad; Py_DECREF(next); } else if (pkey) { *pkey = next; } else { assert(pvalue); *pvalue = next; } return 1; bad: Py_XDECREF(next); #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000 PyErr_FormatUnraisable("Exception ignored in __Pyx_PyDict_NextRef"); #else PyErr_WriteUnraisable(__pyx_mstate_global->__pyx_n_u_Pyx_PyDict_NextRef); #endif if (pkey) *pkey = NULL; if (pvalue) *pvalue = NULL; return 0; } #else // !CYTHON_AVOID_BORROWED_REFS static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue) { int result = PyDict_Next(p, ppos, pkey, pvalue); if (likely(result == 1)) { if (pkey) Py_INCREF(*pkey); if (pvalue) Py_INCREF(*pvalue); } return result; } #endif /* RejectKeywords */ static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds) { PyObject *key = NULL; if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds))) { key = __Pyx_PySequence_ITEM(kwds, 0); } else { #if CYTHON_AVOID_BORROWED_REFS PyObject *pos = NULL; #else Py_ssize_t pos = 0; #endif #if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments) if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return; #endif __Pyx_PyDict_NextRef(kwds, &pos, &key, NULL); #if CYTHON_AVOID_BORROWED_REFS Py_XDECREF(pos); #endif } if (likely(key)) { PyErr_Format(PyExc_TypeError, "%s() got an unexpected keyword argument '%U'", function_name, key); Py_DECREF(key); } } /* RaiseException */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { PyObject* owned_instance = NULL; if (tb == Py_None) { tb = 0; } else if (tb && !PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto bad; } if (value == Py_None) value = 0; if (PyExceptionInstance_Check(type)) { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto bad; } value = type; type = (PyObject*) Py_TYPE(value); } else if (PyExceptionClass_Check(type)) { PyObject *instance_class = NULL; if (value && PyExceptionInstance_Check(value)) { instance_class = (PyObject*) Py_TYPE(value); if (instance_class != type) { int is_subclass = PyObject_IsSubclass(instance_class, type); if (!is_subclass) { instance_class = NULL; } else if (unlikely(is_subclass == -1)) { goto bad; } else { type = instance_class; } } } if (!instance_class) { PyObject *args; if (!value) args = PyTuple_New(0); else if (PyTuple_Check(value)) { Py_INCREF(value); args = value; } else args = PyTuple_Pack(1, value); if (!args) goto bad; owned_instance = PyObject_Call(type, args, NULL); Py_DECREF(args); if (!owned_instance) goto bad; value = owned_instance; if (!PyExceptionInstance_Check(value)) { PyErr_Format(PyExc_TypeError, "calling %R should have returned an instance of " "BaseException, not %R", type, Py_TYPE(value)); goto bad; } } } else { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto bad; } if (cause) { PyObject *fixed_cause; if (cause == Py_None) { fixed_cause = NULL; } else if (PyExceptionClass_Check(cause)) { fixed_cause = PyObject_CallObject(cause, NULL); if (fixed_cause == NULL) goto bad; } else if (PyExceptionInstance_Check(cause)) { fixed_cause = cause; Py_INCREF(fixed_cause); } else { PyErr_SetString(PyExc_TypeError, "exception causes must derive from " "BaseException"); goto bad; } PyException_SetCause(value, fixed_cause); } PyErr_SetObject(type, value); if (tb) { #if PY_VERSION_HEX >= 0x030C00A6 PyException_SetTraceback(value, tb); #elif CYTHON_FAST_THREAD_STATE PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* tmp_tb = tstate->curexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); tstate->curexc_traceback = tb; Py_XDECREF(tmp_tb); } #else PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); Py_INCREF(tb); PyErr_Restore(tmp_type, tmp_value, tb); Py_XDECREF(tmp_tb); #endif } bad: Py_XDECREF(owned_instance); return; } /* RaiseDoubleKeywords (used by ParseKeywordsImpl) */ static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { PyErr_Format(PyExc_TypeError, "%s() got multiple values for keyword argument '%U'", func_name, kw_name); } /* CallUnboundCMethod2 */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) { int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc); if (likely(was_initialized == 2 && cfunc->func)) { PyObject *args[2] = {arg1, arg2}; if (cfunc->flag == METH_FASTCALL) { return __Pyx_CallCFunctionFast(cfunc, self, args, 2); } if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS)) return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, 2, NULL); } #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING else if (unlikely(was_initialized == 1)) { __Pyx_CachedCFunction tmp_cfunc = { #ifndef __cplusplus 0 #endif }; tmp_cfunc.type = cfunc->type; tmp_cfunc.method_name = cfunc->method_name; return __Pyx__CallUnboundCMethod2(&tmp_cfunc, self, arg1, arg2); } #endif PyObject *result = __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2); __Pyx_CachedCFunction_SetFinishedInitializing(cfunc); return result; } #endif static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){ if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; #if CYTHON_COMPILING_IN_CPYTHON if (cfunc->func && (cfunc->flag & METH_VARARGS)) { PyObject *result = NULL; PyObject *args = PyTuple_New(2); if (unlikely(!args)) return NULL; Py_INCREF(arg1); PyTuple_SET_ITEM(args, 0, arg1); Py_INCREF(arg2); PyTuple_SET_ITEM(args, 1, arg2); if (cfunc->flag & METH_KEYWORDS) result = __Pyx_CallCFunctionWithKeywords(cfunc, self, args, NULL); else result = __Pyx_CallCFunction(cfunc, self, args); Py_DECREF(args); return result; } #endif { PyObject *args[4] = {NULL, self, arg1, arg2}; return __Pyx_PyObject_FastCall(cfunc->method, args+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } } /* ParseKeywordsImpl (used by ParseKeywords) */ static int __Pyx_ValidateDuplicatePosArgs( PyObject *kwds, PyObject ** const argnames[], PyObject ** const *first_kw_arg, const char* function_name) { PyObject ** const *name = argnames; while (name != first_kw_arg) { PyObject *key = **name; int found = PyDict_Contains(kwds, key); if (unlikely(found)) { if (found == 1) __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; } name++; } return 0; bad: return -1; } #if CYTHON_USE_UNICODE_INTERNALS static CYTHON_INLINE int __Pyx_UnicodeKeywordsEqual(PyObject *s1, PyObject *s2) { int kind; Py_ssize_t len = PyUnicode_GET_LENGTH(s1); if (len != PyUnicode_GET_LENGTH(s2)) return 0; kind = PyUnicode_KIND(s1); if (kind != PyUnicode_KIND(s2)) return 0; const void *data1 = PyUnicode_DATA(s1); const void *data2 = PyUnicode_DATA(s2); return (memcmp(data1, data2, (size_t) len * (size_t) kind) == 0); } #endif static int __Pyx_MatchKeywordArg_str( PyObject *key, PyObject ** const argnames[], PyObject ** const *first_kw_arg, size_t *index_found, const char *function_name) { PyObject ** const *name; #if CYTHON_USE_UNICODE_INTERNALS Py_hash_t key_hash = ((PyASCIIObject*)key)->hash; if (unlikely(key_hash == -1)) { key_hash = PyObject_Hash(key); if (unlikely(key_hash == -1)) goto bad; } #endif name = first_kw_arg; while (*name) { PyObject *name_str = **name; #if CYTHON_USE_UNICODE_INTERNALS if (key_hash == ((PyASCIIObject*)name_str)->hash && __Pyx_UnicodeKeywordsEqual(name_str, key)) { *index_found = (size_t) (name - argnames); return 1; } #else #if CYTHON_ASSUME_SAFE_SIZE if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key)) #endif { int cmp = PyUnicode_Compare(name_str, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) { *index_found = (size_t) (name - argnames); return 1; } } #endif name++; } name = argnames; while (name != first_kw_arg) { PyObject *name_str = **name; #if CYTHON_USE_UNICODE_INTERNALS if (unlikely(key_hash == ((PyASCIIObject*)name_str)->hash)) { if (__Pyx_UnicodeKeywordsEqual(name_str, key)) goto arg_passed_twice; } #else #if CYTHON_ASSUME_SAFE_SIZE if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key)) #endif { if (unlikely(name_str == key)) goto arg_passed_twice; int cmp = PyUnicode_Compare(name_str, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) goto arg_passed_twice; } #endif name++; } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; bad: return -1; } static int __Pyx_MatchKeywordArg_nostr( PyObject *key, PyObject ** const argnames[], PyObject ** const *first_kw_arg, size_t *index_found, const char *function_name) { PyObject ** const *name; if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type; name = first_kw_arg; while (*name) { int cmp = PyObject_RichCompareBool(**name, key, Py_EQ); if (cmp == 1) { *index_found = (size_t) (name - argnames); return 1; } if (unlikely(cmp == -1)) goto bad; name++; } name = argnames; while (name != first_kw_arg) { int cmp = PyObject_RichCompareBool(**name, key, Py_EQ); if (unlikely(cmp != 0)) { if (cmp == 1) goto arg_passed_twice; else goto bad; } name++; } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%.200s() keywords must be strings", function_name); goto bad; bad: return -1; } static CYTHON_INLINE int __Pyx_MatchKeywordArg( PyObject *key, PyObject ** const argnames[], PyObject ** const *first_kw_arg, size_t *index_found, const char *function_name) { return likely(PyUnicode_CheckExact(key)) ? __Pyx_MatchKeywordArg_str(key, argnames, first_kw_arg, index_found, function_name) : __Pyx_MatchKeywordArg_nostr(key, argnames, first_kw_arg, index_found, function_name); } static void __Pyx_RejectUnknownKeyword( PyObject *kwds, PyObject ** const argnames[], PyObject ** const *first_kw_arg, const char *function_name) { #if CYTHON_AVOID_BORROWED_REFS PyObject *pos = NULL; #else Py_ssize_t pos = 0; #endif PyObject *key = NULL; __Pyx_BEGIN_CRITICAL_SECTION(kwds); while ( #if CYTHON_AVOID_BORROWED_REFS __Pyx_PyDict_NextRef(kwds, &pos, &key, NULL) #else PyDict_Next(kwds, &pos, &key, NULL) #endif ) { PyObject** const *name = first_kw_arg; while (*name && (**name != key)) name++; if (!*name) { size_t index_found = 0; int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name); if (cmp != 1) { if (cmp == 0) { PyErr_Format(PyExc_TypeError, "%s() got an unexpected keyword argument '%U'", function_name, key); } #if CYTHON_AVOID_BORROWED_REFS Py_DECREF(key); #endif break; } } #if CYTHON_AVOID_BORROWED_REFS Py_DECREF(key); #endif } __Pyx_END_CRITICAL_SECTION(); #if CYTHON_AVOID_BORROWED_REFS Py_XDECREF(pos); #endif assert(PyErr_Occurred()); } static int __Pyx_ParseKeywordDict( PyObject *kwds, PyObject ** const argnames[], PyObject *values[], Py_ssize_t num_pos_args, Py_ssize_t num_kwargs, const char* function_name, int ignore_unknown_kwargs) { PyObject** const *name; PyObject** const *first_kw_arg = argnames + num_pos_args; Py_ssize_t extracted = 0; #if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments) if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1; #endif name = first_kw_arg; while (*name && num_kwargs > extracted) { PyObject * key = **name; PyObject *value; int found = 0; #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000 found = PyDict_GetItemRef(kwds, key, &value); #else value = PyDict_GetItemWithError(kwds, key); if (value) { Py_INCREF(value); found = 1; } else { if (unlikely(PyErr_Occurred())) goto bad; } #endif if (found) { if (unlikely(found < 0)) goto bad; values[name-argnames] = value; extracted++; } name++; } if (num_kwargs > extracted) { if (ignore_unknown_kwargs) { if (unlikely(__Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name) == -1)) goto bad; } else { __Pyx_RejectUnknownKeyword(kwds, argnames, first_kw_arg, function_name); goto bad; } } return 0; bad: return -1; } static int __Pyx_ParseKeywordDictToDict( PyObject *kwds, PyObject ** const argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name) { PyObject** const *name; PyObject** const *first_kw_arg = argnames + num_pos_args; Py_ssize_t len; #if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments) if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1; #endif if (PyDict_Update(kwds2, kwds) < 0) goto bad; name = first_kw_arg; while (*name) { PyObject *key = **name; PyObject *value; #if !CYTHON_COMPILING_IN_LIMITED_API && (PY_VERSION_HEX >= 0x030d00A2 || defined(PyDict_Pop)) int found = PyDict_Pop(kwds2, key, &value); if (found) { if (unlikely(found < 0)) goto bad; values[name-argnames] = value; } #elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000 int found = PyDict_GetItemRef(kwds2, key, &value); if (found) { if (unlikely(found < 0)) goto bad; values[name-argnames] = value; if (unlikely(PyDict_DelItem(kwds2, key) < 0)) goto bad; } #else #if CYTHON_COMPILING_IN_CPYTHON value = _PyDict_Pop(kwds2, key, kwds2); #else value = __Pyx_CallUnboundCMethod2(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_pop, kwds2, key, kwds2); #endif if (value == kwds2) { Py_DECREF(value); } else { if (unlikely(!value)) goto bad; values[name-argnames] = value; } #endif name++; } len = PyDict_Size(kwds2); if (len > 0) { return __Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name); } else if (unlikely(len == -1)) { goto bad; } return 0; bad: return -1; } static int __Pyx_ParseKeywordsTuple( PyObject *kwds, PyObject * const *kwvalues, PyObject ** const argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, Py_ssize_t num_kwargs, const char* function_name, int ignore_unknown_kwargs) { PyObject *key = NULL; PyObject** const * name; PyObject** const *first_kw_arg = argnames + num_pos_args; for (Py_ssize_t pos = 0; pos < num_kwargs; pos++) { #if CYTHON_AVOID_BORROWED_REFS key = __Pyx_PySequence_ITEM(kwds, pos); #else key = __Pyx_PyTuple_GET_ITEM(kwds, pos); #endif #if !CYTHON_ASSUME_SAFE_MACROS if (unlikely(!key)) goto bad; #endif name = first_kw_arg; while (*name && (**name != key)) name++; if (*name) { PyObject *value = kwvalues[pos]; values[name-argnames] = __Pyx_NewRef(value); } else { size_t index_found = 0; int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name); if (cmp == 1) { PyObject *value = kwvalues[pos]; values[index_found] = __Pyx_NewRef(value); } else { if (unlikely(cmp == -1)) goto bad; if (kwds2) { PyObject *value = kwvalues[pos]; if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; } else if (!ignore_unknown_kwargs) { goto invalid_keyword; } } } #if CYTHON_AVOID_BORROWED_REFS Py_DECREF(key); key = NULL; #endif } return 0; invalid_keyword: PyErr_Format(PyExc_TypeError, "%s() got an unexpected keyword argument '%U'", function_name, key); goto bad; bad: #if CYTHON_AVOID_BORROWED_REFS Py_XDECREF(key); #endif return -1; } /* ParseKeywords */ static int __Pyx_ParseKeywords( PyObject *kwds, PyObject * const *kwvalues, PyObject ** const argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, Py_ssize_t num_kwargs, const char* function_name, int ignore_unknown_kwargs) { if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds))) return __Pyx_ParseKeywordsTuple(kwds, kwvalues, argnames, kwds2, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs); else if (kwds2) return __Pyx_ParseKeywordDictToDict(kwds, argnames, kwds2, values, num_pos_args, function_name); else return __Pyx_ParseKeywordDict(kwds, argnames, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs); } /* PyObjectFastCallMethod */ #if !CYTHON_VECTORCALL || PY_VERSION_HEX < 0x03090000 static PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf) { PyObject *result; PyObject *attr = PyObject_GetAttr(args[0], name); if (unlikely(!attr)) return NULL; result = __Pyx_PyObject_FastCall(attr, args+1, nargsf - 1); Py_DECREF(attr); return result; } #endif /* PyDictVersioning (used by GetModuleGlobalName) */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { PyObject *dict = Py_TYPE(obj)->tp_dict; return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; } static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { PyObject **dictptr = NULL; Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; if (offset) { #if CYTHON_COMPILING_IN_CPYTHON dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); #else dictptr = _PyObject_GetDictPtr(obj); #endif } return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; } static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { PyObject *dict = Py_TYPE(obj)->tp_dict; if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) return 0; return obj_dict_version == __Pyx_get_object_dict_version(obj); } #endif /* GetModuleGlobalName */ #if CYTHON_USE_DICT_VERSIONS static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) #else static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) #endif { PyObject *result; #if CYTHON_COMPILING_IN_LIMITED_API if (unlikely(!__pyx_m)) { if (!PyErr_Occurred()) PyErr_SetNone(PyExc_NameError); return NULL; } result = PyObject_GetAttr(__pyx_m, name); if (likely(result)) { return result; } PyErr_Clear(); #elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS if (unlikely(__Pyx_PyDict_GetItemRef(__pyx_mstate_global->__pyx_d, name, &result) == -1)) PyErr_Clear(); __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return result; } #else result = _PyDict_GetItem_KnownHash(__pyx_mstate_global->__pyx_d, name, ((PyASCIIObject *) name)->hash); __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } PyErr_Clear(); #endif return __Pyx_GetBuiltinName(name); } /* ArgTypeTestFunc (used by ArgTypeTest) */ static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) { __Pyx_TypeName type_name; __Pyx_TypeName obj_type_name; PyObject *extra_info = __pyx_mstate_global->__pyx_empty_unicode; int from_annotation_subclass = 0; if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } else if (!exact) { if (likely(__Pyx_TypeCheck(obj, type))) return 1; } else if (exact == 2) { if (__Pyx_TypeCheck(obj, type)) { from_annotation_subclass = 1; extra_info = __pyx_mstate_global->__pyx_kp_u_Note_that_Cython_is_deliberately; } } type_name = __Pyx_PyType_GetFullyQualifiedName(type); obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj)); PyErr_Format(PyExc_TypeError, "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME ", got " __Pyx_FMT_TYPENAME ")" #if __PYX_LIMITED_VERSION_HEX < 0x030C0000 "%s%U" #endif , name, type_name, obj_type_name #if __PYX_LIMITED_VERSION_HEX < 0x030C0000 , (from_annotation_subclass ? ". " : ""), extra_info #endif ); #if __PYX_LIMITED_VERSION_HEX >= 0x030C0000 if (exact == 2 && from_annotation_subclass) { PyObject *res; PyObject *vargs[2]; vargs[0] = PyErr_GetRaisedException(); vargs[1] = extra_info; res = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_kp_u_add_note, vargs, 2, NULL); Py_XDECREF(res); PyErr_SetRaisedException(vargs[0]); } #endif __Pyx_DECREF_TypeName(type_name); __Pyx_DECREF_TypeName(obj_type_name); return 0; } /* dict_setdefault (used by FetchCommonType) */ static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value) { PyObject* value; #if __PYX_LIMITED_VERSION_HEX >= 0x030F0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4) PyDict_SetDefaultRef(d, key, default_value, &value); #elif CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x030C0000 PyObject *args[] = {d, key, default_value}; value = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_n_u_setdefault, args, 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL); #elif CYTHON_COMPILING_IN_LIMITED_API value = PyObject_CallMethodObjArgs(d, __pyx_mstate_global->__pyx_n_u_setdefault, key, default_value, NULL); #else value = PyDict_SetDefault(d, key, default_value); if (unlikely(!value)) return NULL; Py_INCREF(value); #endif return value; } /* LimitedApiGetTypeDict (used by SetItemOnTypeDict) */ #if CYTHON_COMPILING_IN_LIMITED_API static Py_ssize_t __Pyx_GetTypeDictOffset(void) { PyObject *tp_dictoffset_o; Py_ssize_t tp_dictoffset; tp_dictoffset_o = PyObject_GetAttrString((PyObject*)(&PyType_Type), "__dictoffset__"); if (unlikely(!tp_dictoffset_o)) return -1; tp_dictoffset = PyLong_AsSsize_t(tp_dictoffset_o); Py_DECREF(tp_dictoffset_o); if (unlikely(tp_dictoffset == 0)) { PyErr_SetString( PyExc_TypeError, "'type' doesn't have a dictoffset"); return -1; } else if (unlikely(tp_dictoffset < 0)) { PyErr_SetString( PyExc_TypeError, "'type' has an unexpected negative dictoffset. " "Please report this as Cython bug"); return -1; } return tp_dictoffset; } static PyObject *__Pyx_GetTypeDict(PyTypeObject *tp) { static Py_ssize_t tp_dictoffset = 0; if (unlikely(tp_dictoffset == 0)) { tp_dictoffset = __Pyx_GetTypeDictOffset(); if (unlikely(tp_dictoffset == -1 && PyErr_Occurred())) { tp_dictoffset = 0; // try again next time? return NULL; } } return *(PyObject**)((char*)tp + tp_dictoffset); } #endif /* SetItemOnTypeDict (used by FixUpExtensionType) */ static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v) { int result; PyObject *tp_dict; #if CYTHON_COMPILING_IN_LIMITED_API tp_dict = __Pyx_GetTypeDict(tp); if (unlikely(!tp_dict)) return -1; #else tp_dict = tp->tp_dict; #endif result = PyDict_SetItem(tp_dict, k, v); if (likely(!result)) { PyType_Modified(tp); if (unlikely(PyObject_HasAttr(v, __pyx_mstate_global->__pyx_n_u_set_name))) { PyObject *setNameResult = PyObject_CallMethodObjArgs(v, __pyx_mstate_global->__pyx_n_u_set_name, (PyObject *) tp, k, NULL); if (!setNameResult) return -1; Py_DECREF(setNameResult); } } return result; } /* FixUpExtensionType (used by FetchCommonType) */ static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) { #if __PYX_LIMITED_VERSION_HEX > 0x030900B1 CYTHON_UNUSED_VAR(spec); CYTHON_UNUSED_VAR(type); CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict); #else const PyType_Slot *slot = spec->slots; int changed = 0; #if !CYTHON_COMPILING_IN_LIMITED_API while (slot && slot->slot && slot->slot != Py_tp_members) slot++; if (slot && slot->slot == Py_tp_members) { #if !CYTHON_COMPILING_IN_CPYTHON const #endif // !CYTHON_COMPILING_IN_CPYTHON) PyMemberDef *memb = (PyMemberDef*) slot->pfunc; while (memb && memb->name) { if (memb->name[0] == '_' && memb->name[1] == '_') { if (strcmp(memb->name, "__weaklistoffset__") == 0) { assert(memb->type == T_PYSSIZET); assert(memb->flags == READONLY); type->tp_weaklistoffset = memb->offset; changed = 1; } else if (strcmp(memb->name, "__dictoffset__") == 0) { assert(memb->type == T_PYSSIZET); assert(memb->flags == READONLY); type->tp_dictoffset = memb->offset; changed = 1; } #if CYTHON_METH_FASTCALL else if (strcmp(memb->name, "__vectorcalloffset__") == 0) { assert(memb->type == T_PYSSIZET); assert(memb->flags == READONLY); type->tp_vectorcall_offset = memb->offset; changed = 1; } #endif // CYTHON_METH_FASTCALL #if !CYTHON_COMPILING_IN_PYPY else if (strcmp(memb->name, "__module__") == 0) { PyObject *descr; assert(memb->type == T_OBJECT); assert(memb->flags == 0 || memb->flags == READONLY); descr = PyDescr_NewMember(type, memb); if (unlikely(!descr)) return -1; int set_item_result = PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr); Py_DECREF(descr); if (unlikely(set_item_result < 0)) { return -1; } changed = 1; } #endif // !CYTHON_COMPILING_IN_PYPY } memb++; } } #endif // !CYTHON_COMPILING_IN_LIMITED_API #if !CYTHON_COMPILING_IN_PYPY slot = spec->slots; while (slot && slot->slot && slot->slot != Py_tp_getset) slot++; if (slot && slot->slot == Py_tp_getset) { PyGetSetDef *getset = (PyGetSetDef*) slot->pfunc; while (getset && getset->name) { if (getset->name[0] == '_' && getset->name[1] == '_' && strcmp(getset->name, "__module__") == 0) { PyObject *descr = PyDescr_NewGetSet(type, getset); if (unlikely(!descr)) return -1; #if CYTHON_COMPILING_IN_LIMITED_API PyObject *pyname = PyUnicode_FromString(getset->name); if (unlikely(!pyname)) { Py_DECREF(descr); return -1; } int set_item_result = __Pyx_SetItemOnTypeDict(type, pyname, descr); Py_DECREF(pyname); #else CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict); int set_item_result = PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr); #endif Py_DECREF(descr); if (unlikely(set_item_result < 0)) { return -1; } changed = 1; } ++getset; } } #else CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict); #endif // !CYTHON_COMPILING_IN_PYPY if (changed) PyType_Modified(type); #endif // PY_VERSION_HEX > 0x030900B1 return 0; } /* AddModuleRef (used by FetchSharedCythonModule) */ #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING static PyObject *__Pyx_PyImport_AddModuleObjectRef(PyObject *name) { PyObject *module_dict = PyImport_GetModuleDict(); PyObject *m; if (PyMapping_GetOptionalItem(module_dict, name, &m) < 0) { return NULL; } if (m != NULL && PyModule_Check(m)) { return m; } Py_XDECREF(m); m = PyModule_NewObject(name); if (m == NULL) return NULL; if (PyDict_CheckExact(module_dict)) { PyObject *new_m; (void)PyDict_SetDefaultRef(module_dict, name, m, &new_m); Py_DECREF(m); return new_m; } else { if (PyObject_SetItem(module_dict, name, m) != 0) { Py_DECREF(m); return NULL; } return m; } } static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) { PyObject *py_name = PyUnicode_FromString(name); if (!py_name) return NULL; PyObject *module = __Pyx_PyImport_AddModuleObjectRef(py_name); Py_DECREF(py_name); return module; } #elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000 #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name) #else static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) { PyObject *module = PyImport_AddModule(name); Py_XINCREF(module); return module; } #endif /* FetchSharedCythonModule (used by FetchCommonType) */ static PyObject *__Pyx_FetchSharedCythonABIModule(void) { return __Pyx_PyImport_AddModuleRef(__PYX_ABI_MODULE_NAME); } /* FetchCommonType (used by CommonTypesMetaclass) */ #if __PYX_LIMITED_VERSION_HEX < 0x030C0000 static PyObject* __Pyx_PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) { PyObject *result = __Pyx_PyType_FromModuleAndSpec(module, spec, bases); if (result && metaclass) { PyObject *old_tp = (PyObject*)Py_TYPE(result); Py_INCREF((PyObject*)metaclass); #if __PYX_LIMITED_VERSION_HEX >= 0x03090000 Py_SET_TYPE(result, metaclass); #else result->ob_type = metaclass; #endif Py_DECREF(old_tp); } return result; } #else #define __Pyx_PyType_FromMetaclass(me, mo, s, b) PyType_FromMetaclass(me, mo, s, b) #endif static int __Pyx_VerifyCachedType(PyObject *cached_type, const char *name, Py_ssize_t expected_basicsize) { Py_ssize_t basicsize; if (!PyType_Check(cached_type)) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s is not a type object", name); return -1; } if (expected_basicsize == 0) { return 0; // size is inherited, nothing useful to check } #if CYTHON_COMPILING_IN_LIMITED_API PyObject *py_basicsize; py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__"); if (unlikely(!py_basicsize)) return -1; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = NULL; if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) return -1; #else basicsize = ((PyTypeObject*) cached_type)->tp_basicsize; #endif if (basicsize != expected_basicsize) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s has the wrong size, try recompiling", name); return -1; } return 0; } static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) { PyObject *abi_module = NULL, *cached_type = NULL, *abi_module_dict, *new_cached_type, *py_object_name; int get_item_ref_result; const char* object_name = strrchr(spec->name, '.'); object_name = object_name ? object_name+1 : spec->name; py_object_name = PyUnicode_FromString(object_name); if (!py_object_name) return NULL; abi_module = __Pyx_FetchSharedCythonABIModule(); if (!abi_module) goto done; abi_module_dict = PyModule_GetDict(abi_module); if (!abi_module_dict) goto done; get_item_ref_result = __Pyx_PyDict_GetItemRef(abi_module_dict, py_object_name, &cached_type); if (get_item_ref_result == 1) { if (__Pyx_VerifyCachedType( cached_type, object_name, spec->basicsize) < 0) { goto bad; } goto done; } else if (unlikely(get_item_ref_result == -1)) { goto bad; } cached_type = __Pyx_PyType_FromMetaclass( metaclass, CYTHON_USE_MODULE_STATE ? module : abi_module, spec, bases); if (unlikely(!cached_type)) goto bad; if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad; new_cached_type = __Pyx_PyDict_SetDefault(abi_module_dict, py_object_name, cached_type); if (unlikely(new_cached_type != cached_type)) { if (unlikely(!new_cached_type)) goto bad; Py_DECREF(cached_type); cached_type = new_cached_type; if (__Pyx_VerifyCachedType( cached_type, object_name, spec->basicsize) < 0) { goto bad; } goto done; } else { Py_DECREF(new_cached_type); } done: Py_XDECREF(abi_module); Py_DECREF(py_object_name); assert(cached_type == NULL || PyType_Check(cached_type)); return (PyTypeObject *) cached_type; bad: Py_XDECREF(cached_type); cached_type = NULL; goto done; } /* CommonTypesMetaclass (used by CoroutineBase) */ static PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) { return PyUnicode_FromString(__PYX_ABI_MODULE_NAME); } #if __PYX_LIMITED_VERSION_HEX < 0x030A0000 static PyObject* __pyx_CommonTypesMetaclass_call(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *args, CYTHON_UNUSED PyObject *kwds) { PyErr_SetString(PyExc_TypeError, "Cannot instantiate Cython internal types"); return NULL; } static int __pyx_CommonTypesMetaclass_setattr(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *attr, CYTHON_UNUSED PyObject *value) { PyErr_SetString(PyExc_TypeError, "Cython internal types are immutable"); return -1; } #endif static PyGetSetDef __pyx_CommonTypesMetaclass_getset[] = { {"__module__", __pyx_CommonTypesMetaclass_get_module, NULL, NULL, NULL}, {0, 0, 0, 0, 0} }; static PyType_Slot __pyx_CommonTypesMetaclass_slots[] = { {Py_tp_getset, (void *)__pyx_CommonTypesMetaclass_getset}, #if __PYX_LIMITED_VERSION_HEX < 0x030A0000 {Py_tp_call, (void*)__pyx_CommonTypesMetaclass_call}, {Py_tp_new, (void*)__pyx_CommonTypesMetaclass_call}, {Py_tp_setattro, (void*)__pyx_CommonTypesMetaclass_setattr}, #endif {0, 0} }; static PyType_Spec __pyx_CommonTypesMetaclass_spec = { __PYX_TYPE_MODULE_PREFIX "_common_types_metatype", 0, 0, Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION | Py_TPFLAGS_DEFAULT, __pyx_CommonTypesMetaclass_slots }; static int __pyx_CommonTypesMetaclass_init(PyObject *module) { __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module); PyObject *bases = PyTuple_Pack(1, &PyType_Type); if (unlikely(!bases)) { return -1; } mstate->__pyx_CommonTypesMetaclassType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CommonTypesMetaclass_spec, bases); Py_DECREF(bases); if (unlikely(mstate->__pyx_CommonTypesMetaclassType == NULL)) { return -1; } return 0; } /* GetTopmostException (used by SaveResetException) */ #if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate) { _PyErr_StackItem *exc_info = tstate->exc_info; while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) && exc_info->previous_item != NULL) { exc_info = exc_info->previous_item; } return exc_info; } #endif /* SaveResetException (used by CoroutineBase) */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4 _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); PyObject *exc_value = exc_info->exc_value; if (exc_value == NULL || exc_value == Py_None) { *value = NULL; *type = NULL; *tb = NULL; } else { *value = exc_value; Py_INCREF(*value); *type = (PyObject*) Py_TYPE(exc_value); Py_INCREF(*type); *tb = PyException_GetTraceback(exc_value); } #elif CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); *type = exc_info->exc_type; *value = exc_info->exc_value; *tb = exc_info->exc_traceback; Py_XINCREF(*type); Py_XINCREF(*value); Py_XINCREF(*tb); #else *type = tstate->exc_type; *value = tstate->exc_value; *tb = tstate->exc_traceback; Py_XINCREF(*type); Py_XINCREF(*value); Py_XINCREF(*tb); #endif } static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4 _PyErr_StackItem *exc_info = tstate->exc_info; PyObject *tmp_value = exc_info->exc_value; exc_info->exc_value = value; Py_XDECREF(tmp_value); Py_XDECREF(type); Py_XDECREF(tb); #else PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = type; exc_info->exc_value = value; exc_info->exc_traceback = tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = type; tstate->exc_value = value; tstate->exc_traceback = tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #endif } #endif /* SwapException (used by CoroutineBase) */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4 _PyErr_StackItem *exc_info = tstate->exc_info; tmp_value = exc_info->exc_value; exc_info->exc_value = *value; if (tmp_value == NULL || tmp_value == Py_None) { Py_XDECREF(tmp_value); tmp_value = NULL; tmp_type = NULL; tmp_tb = NULL; } else { tmp_type = (PyObject*) Py_TYPE(tmp_value); Py_INCREF(tmp_type); #if CYTHON_COMPILING_IN_CPYTHON tmp_tb = ((PyBaseExceptionObject*) tmp_value)->traceback; Py_XINCREF(tmp_tb); #else tmp_tb = PyException_GetTraceback(tmp_value); #endif } #elif CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = *type; exc_info->exc_value = *value; exc_info->exc_traceback = *tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = *type; tstate->exc_value = *value; tstate->exc_traceback = *tb; #endif *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); PyErr_SetExcInfo(*type, *value, *tb); *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #endif /* CallTypeTraverse (used by CoroutineBase) */ #if !CYTHON_USE_TYPE_SPECS || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x03090000) #else static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg) { #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x03090000 if (__Pyx_get_runtime_version() < 0x03090000) return 0; #endif if (!always_call) { PyTypeObject *base = __Pyx_PyObject_GetSlot(o, tp_base, PyTypeObject*); unsigned long flags = PyType_GetFlags(base); if (flags & Py_TPFLAGS_HEAPTYPE) { return 0; } } Py_VISIT((PyObject*)Py_TYPE(o)); return 0; } #endif /* IterNextPlain (used by CoroutineBase) */ #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000 static PyObject *__Pyx_GetBuiltinNext_LimitedAPI(void) { if (unlikely(!__pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache)) __pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache = __Pyx_GetBuiltinName(__pyx_mstate_global->__pyx_n_u_next); return __pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache; } #endif static CYTHON_INLINE PyObject *__Pyx_PyIter_Next_Plain(PyObject *iterator) { #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000 PyObject *result; PyObject *next = __Pyx_GetBuiltinNext_LimitedAPI(); if (unlikely(!next)) return NULL; result = PyObject_CallFunctionObjArgs(next, iterator, NULL); return result; #else (void)__Pyx_GetBuiltinName; // only for early limited API iternextfunc iternext = __Pyx_PyObject_GetIterNextFunc(iterator); assert(iternext); return iternext(iterator); #endif } /* PyObjectCall2Args (used by PyObjectCallMethod1) */ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { PyObject *args[3] = {NULL, arg1, arg2}; return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } /* PyObjectGetMethod (used by PyObjectCallMethod1) */ #if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))) static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) { PyObject *attr; #if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP __Pyx_TypeName type_name; PyTypeObject *tp = Py_TYPE(obj); PyObject *descr; descrgetfunc f = NULL; PyObject **dictptr, *dict; int meth_found = 0; assert (*method == NULL); if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) { attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; } if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) { return 0; } descr = _PyType_Lookup(tp, name); if (likely(descr != NULL)) { Py_INCREF(descr); #if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)) #else #ifdef __Pyx_CyFunction_USED if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr))) #else if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type))) #endif #endif { meth_found = 1; } else { f = Py_TYPE(descr)->tp_descr_get; if (f != NULL && PyDescr_IsData(descr)) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } } } dictptr = _PyObject_GetDictPtr(obj); if (dictptr != NULL && (dict = *dictptr) != NULL) { Py_INCREF(dict); attr = __Pyx_PyDict_GetItemStr(dict, name); if (attr != NULL) { Py_INCREF(attr); Py_DECREF(dict); Py_XDECREF(descr); goto try_unpack; } Py_DECREF(dict); } if (meth_found) { *method = descr; return 1; } if (f != NULL) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } if (likely(descr != NULL)) { *method = descr; return 0; } type_name = __Pyx_PyType_GetFullyQualifiedName(tp); PyErr_Format(PyExc_AttributeError, "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'", type_name, name); __Pyx_DECREF_TypeName(type_name); return 0; #else attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; #endif try_unpack: #if CYTHON_UNPACK_METHODS if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) { PyObject *function = PyMethod_GET_FUNCTION(attr); Py_INCREF(function); Py_DECREF(attr); *method = function; return 1; } #endif *method = attr; return 0; } #endif /* PyObjectCallMethod1 (used by CoroutineBase) */ #if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))) static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) { PyObject *result = __Pyx_PyObject_CallOneArg(method, arg); Py_DECREF(method); return result; } #endif static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) { #if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)) PyObject *args[2] = {obj, arg}; (void) __Pyx_PyObject_CallOneArg; (void) __Pyx_PyObject_Call2Args; return PyObject_VectorcallMethod(method_name, args, 2 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL); #else PyObject *method = NULL, *result; int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); if (likely(is_method)) { result = __Pyx_PyObject_Call2Args(method, obj, arg); Py_DECREF(method); return result; } if (unlikely(!method)) return NULL; return __Pyx__PyObject_CallMethod1(method, arg); #endif } /* PyObjectCallNoArg (used by CoroutineBase) */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { PyObject *arg[2] = {NULL, NULL}; return __Pyx_PyObject_FastCall(func, arg + 1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } /* ReturnWithStopIteration (used by CoroutineBase) */ static void __Pyx__ReturnWithStopIteration(PyObject* value, int async); static CYTHON_INLINE void __Pyx_ReturnWithStopIteration(PyObject* value, int async, int iternext) { if (value == Py_None) { if (async || !iternext) PyErr_SetNone(async ? PyExc_StopAsyncIteration : PyExc_StopIteration); return; } __Pyx__ReturnWithStopIteration(value, async); } static void __Pyx__ReturnWithStopIteration(PyObject* value, int async) { #if CYTHON_COMPILING_IN_CPYTHON __Pyx_PyThreadState_declare #endif PyObject *exc; PyObject *exc_type = async ? PyExc_StopAsyncIteration : PyExc_StopIteration; #if CYTHON_COMPILING_IN_CPYTHON if ((PY_VERSION_HEX >= (0x030C00A6)) || unlikely(PyTuple_Check(value) || PyExceptionInstance_Check(value))) { if (PY_VERSION_HEX >= (0x030e00A1)) { exc = __Pyx_PyObject_CallOneArg(exc_type, value); } else { PyObject *args_tuple = PyTuple_New(1); if (unlikely(!args_tuple)) return; Py_INCREF(value); PyTuple_SET_ITEM(args_tuple, 0, value); exc = PyObject_Call(exc_type, args_tuple, NULL); Py_DECREF(args_tuple); } if (unlikely(!exc)) return; } else { Py_INCREF(value); exc = value; } #if CYTHON_FAST_THREAD_STATE __Pyx_PyThreadState_assign #if CYTHON_USE_EXC_INFO_STACK if (!__pyx_tstate->exc_info->exc_value) #else if (!__pyx_tstate->exc_type) #endif { Py_INCREF(exc_type); __Pyx_ErrRestore(exc_type, exc, NULL); return; } #endif #else exc = __Pyx_PyObject_CallOneArg(exc_type, value); if (unlikely(!exc)) return; #endif PyErr_SetObject(exc_type, exc); Py_DECREF(exc); } /* CoroutineBase (used by Coroutine) */ #if !CYTHON_COMPILING_IN_LIMITED_API #include #if PY_VERSION_HEX >= 0x030b00a6 && !defined(PYPY_VERSION) #ifndef Py_BUILD_CORE #define Py_BUILD_CORE 1 #endif #include "internal/pycore_frame.h" #endif #endif // CYTHON_COMPILING_IN_LIMITED_API static CYTHON_INLINE void __Pyx_Coroutine_Undelegate(__pyx_CoroutineObject *gen) { #if CYTHON_USE_AM_SEND gen->yieldfrom_am_send = NULL; #endif Py_CLEAR(gen->yieldfrom); } static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *__pyx_tstate, PyObject **pvalue) { PyObject *et, *ev, *tb; PyObject *value = NULL; CYTHON_UNUSED_VAR(__pyx_tstate); __Pyx_ErrFetch(&et, &ev, &tb); if (!et) { Py_XDECREF(tb); Py_XDECREF(ev); Py_INCREF(Py_None); *pvalue = Py_None; return 0; } if (likely(et == PyExc_StopIteration)) { if (!ev) { Py_INCREF(Py_None); value = Py_None; } else if (likely(__Pyx_IS_TYPE(ev, (PyTypeObject*)PyExc_StopIteration))) { #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL value = PyObject_GetAttr(ev, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!value)) goto limited_api_failure; #else value = ((PyStopIterationObject *)ev)->value; Py_INCREF(value); #endif Py_DECREF(ev); } else if (unlikely(PyTuple_Check(ev))) { Py_ssize_t tuple_size = __Pyx_PyTuple_GET_SIZE(ev); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely(tuple_size < 0)) { Py_XDECREF(tb); Py_DECREF(ev); Py_DECREF(et); return -1; } #endif if (tuple_size >= 1) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS value = PyTuple_GET_ITEM(ev, 0); Py_INCREF(value); #elif CYTHON_ASSUME_SAFE_MACROS value = PySequence_ITEM(ev, 0); #else value = PySequence_GetItem(ev, 0); if (!value) goto limited_api_failure; #endif } else { Py_INCREF(Py_None); value = Py_None; } Py_DECREF(ev); } else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) { value = ev; } if (likely(value)) { Py_XDECREF(tb); Py_DECREF(et); *pvalue = value; return 0; } } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) { __Pyx_ErrRestore(et, ev, tb); return -1; } PyErr_NormalizeException(&et, &ev, &tb); if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) { __Pyx_ErrRestore(et, ev, tb); return -1; } Py_XDECREF(tb); Py_DECREF(et); #if CYTHON_COMPILING_IN_LIMITED_API value = PyObject_GetAttr(ev, __pyx_mstate_global->__pyx_n_u_value); #else value = ((PyStopIterationObject *)ev)->value; Py_INCREF(value); #endif Py_DECREF(ev); #if CYTHON_COMPILING_IN_LIMITED_API if (unlikely(!value)) return -1; #endif *pvalue = value; return 0; #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL || !CYTHON_ASSUME_SAFE_MACROS limited_api_failure: Py_XDECREF(et); Py_XDECREF(tb); Py_XDECREF(ev); return -1; #endif } static CYTHON_INLINE __Pyx_PySendResult __Pyx_Coroutine_status_from_result(PyObject **retval) { if (*retval) { return PYGEN_NEXT; } else if (likely(__Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, retval) == 0)) { return PYGEN_RETURN; } else { return PYGEN_ERROR; } } static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) { #if PY_VERSION_HEX >= 0x030B00a4 Py_CLEAR(exc_state->exc_value); #else PyObject *t, *v, *tb; t = exc_state->exc_type; v = exc_state->exc_value; tb = exc_state->exc_traceback; exc_state->exc_type = NULL; exc_state->exc_value = NULL; exc_state->exc_traceback = NULL; Py_XDECREF(t); Py_XDECREF(v); Py_XDECREF(tb); #endif } #define __Pyx_Coroutine_AlreadyRunningError(gen) (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL) static void __Pyx__Coroutine_AlreadyRunningError(__pyx_CoroutineObject *gen) { const char *msg; CYTHON_MAYBE_UNUSED_VAR(gen); if ((0)) { #ifdef __Pyx_Coroutine_USED } else if (__Pyx_Coroutine_Check((PyObject*)gen)) { msg = "coroutine already executing"; #endif #ifdef __Pyx_AsyncGen_USED } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) { msg = "async generator already executing"; #endif } else { msg = "generator already executing"; } PyErr_SetString(PyExc_ValueError, msg); } static void __Pyx_Coroutine_AlreadyTerminatedError(PyObject *gen, PyObject *value, int closing) { CYTHON_MAYBE_UNUSED_VAR(gen); CYTHON_MAYBE_UNUSED_VAR(closing); #ifdef __Pyx_Coroutine_USED if (!closing && __Pyx_Coroutine_Check(gen)) { PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine"); } else #endif if (value) { #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(gen)) PyErr_SetNone(PyExc_StopAsyncIteration); else #endif PyErr_SetNone(PyExc_StopIteration); } } static __Pyx_PySendResult __Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, PyObject **result, int closing) { __Pyx_PyThreadState_declare PyThreadState *tstate; __Pyx_ExcInfoStruct *exc_state; PyObject *retval; assert(__Pyx_Coroutine_get_is_running(self)); // Callers should ensure is_running if (unlikely(self->resume_label == -1)) { __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing); return PYGEN_ERROR; } #if CYTHON_FAST_THREAD_STATE __Pyx_PyThreadState_assign tstate = __pyx_tstate; #else tstate = __Pyx_PyThreadState_Current; #endif exc_state = &self->gi_exc_state; if (exc_state->exc_value) { #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY #else PyObject *exc_tb; #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON exc_tb = PyException_GetTraceback(exc_state->exc_value); #elif PY_VERSION_HEX >= 0x030B00a4 exc_tb = ((PyBaseExceptionObject*) exc_state->exc_value)->traceback; #else exc_tb = exc_state->exc_traceback; #endif if (exc_tb) { PyTracebackObject *tb = (PyTracebackObject *) exc_tb; PyFrameObject *f = tb->tb_frame; assert(f->f_back == NULL); #if PY_VERSION_HEX >= 0x030B00A1 f->f_back = PyThreadState_GetFrame(tstate); #else Py_XINCREF(tstate->frame); f->f_back = tstate->frame; #endif #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON Py_DECREF(exc_tb); #endif } #endif } #if CYTHON_USE_EXC_INFO_STACK exc_state->previous_item = tstate->exc_info; tstate->exc_info = exc_state; #else if (exc_state->exc_type) { __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback); } else { __Pyx_Coroutine_ExceptionClear(exc_state); __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback); } #endif retval = self->body(self, tstate, value); #if CYTHON_USE_EXC_INFO_STACK exc_state = &self->gi_exc_state; tstate->exc_info = exc_state->previous_item; exc_state->previous_item = NULL; __Pyx_Coroutine_ResetFrameBackpointer(exc_state); #endif *result = retval; if (self->resume_label == -1) { return likely(retval) ? PYGEN_RETURN : PYGEN_ERROR; } return PYGEN_NEXT; } static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) { #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API CYTHON_UNUSED_VAR(exc_state); #else PyObject *exc_tb; #if PY_VERSION_HEX >= 0x030B00a4 if (!exc_state->exc_value) return; exc_tb = PyException_GetTraceback(exc_state->exc_value); #else exc_tb = exc_state->exc_traceback; #endif if (likely(exc_tb)) { PyTracebackObject *tb = (PyTracebackObject *) exc_tb; PyFrameObject *f = tb->tb_frame; Py_CLEAR(f->f_back); #if PY_VERSION_HEX >= 0x030B00a4 Py_DECREF(exc_tb); #endif } #endif } #define __Pyx_Coroutine_MethodReturnFromResult(gen, result, retval, iternext)\ ((result) == PYGEN_NEXT ? (retval) : __Pyx__Coroutine_MethodReturnFromResult(gen, result, retval, iternext)) static PyObject * __Pyx__Coroutine_MethodReturnFromResult(PyObject* gen, __Pyx_PySendResult result, PyObject *retval, int iternext) { CYTHON_MAYBE_UNUSED_VAR(gen); if (likely(result == PYGEN_RETURN)) { int is_async = 0; #ifdef __Pyx_AsyncGen_USED is_async = __Pyx_AsyncGen_CheckExact(gen); #endif __Pyx_ReturnWithStopIteration(retval, is_async, iternext); Py_XDECREF(retval); } return NULL; } #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) { #if PY_VERSION_HEX <= 0x030A00A1 return _PyGen_Send(gen, arg); #else PyObject *result; if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) { if (PyAsyncGen_CheckExact(gen)) { assert(result == Py_None); PyErr_SetNone(PyExc_StopAsyncIteration); } else if (result == Py_None) { PyErr_SetNone(PyExc_StopIteration); } else { #if PY_VERSION_HEX < 0x030d00A1 _PyGen_SetStopIterationValue(result); #else if (!PyTuple_Check(result) && !PyExceptionInstance_Check(result)) { PyErr_SetObject(PyExc_StopIteration, result); } else { PyObject *exc = __Pyx_PyObject_CallOneArg(PyExc_StopIteration, result); if (likely(exc != NULL)) { PyErr_SetObject(PyExc_StopIteration, exc); Py_DECREF(exc); } } #endif } Py_DECREF(result); result = NULL; } return result; #endif } #endif static CYTHON_INLINE __Pyx_PySendResult __Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen, PyObject** retval) { __Pyx_PySendResult result; PyObject *val = NULL; assert(__Pyx_Coroutine_get_is_running(gen)); __Pyx_Coroutine_Undelegate(gen); __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val); result = __Pyx_Coroutine_SendEx(gen, val, retval, 0); Py_XDECREF(val); return result; } #if CYTHON_USE_AM_SEND static __Pyx_PySendResult __Pyx_Coroutine_SendToDelegate(__pyx_CoroutineObject *gen, __Pyx_pyiter_sendfunc gen_am_send, PyObject *value, PyObject **retval) { PyObject *ret = NULL; __Pyx_PySendResult delegate_result, result; assert(__Pyx_Coroutine_get_is_running(gen)); delegate_result = gen_am_send(gen->yieldfrom, value, &ret); if (delegate_result == PYGEN_NEXT) { assert (ret != NULL); *retval = ret; return PYGEN_NEXT; } assert (delegate_result != PYGEN_ERROR || ret == NULL); __Pyx_Coroutine_Undelegate(gen); result = __Pyx_Coroutine_SendEx(gen, ret, retval, 0); Py_XDECREF(ret); return result; } #endif static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) { PyObject *retval = NULL; __Pyx_PySendResult result = __Pyx_Coroutine_AmSend(self, value, &retval); return __Pyx_Coroutine_MethodReturnFromResult(self, result, retval, 0); } static __Pyx_PySendResult __Pyx_Coroutine_AmSend(PyObject *self, PyObject *value, PyObject **retval) { __Pyx_PySendResult result; __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self; if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) { *retval = __Pyx_Coroutine_AlreadyRunningError(gen); return PYGEN_ERROR; } #if CYTHON_USE_AM_SEND if (gen->yieldfrom_am_send) { result = __Pyx_Coroutine_SendToDelegate(gen, gen->yieldfrom_am_send, value, retval); } else #endif if (gen->yieldfrom) { PyObject *yf = gen->yieldfrom; PyObject *ret; #if !CYTHON_USE_AM_SEND #ifdef __Pyx_Generator_USED if (__Pyx_Generator_CheckExact(yf)) { ret = __Pyx_Coroutine_Send(yf, value); } else #endif #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_Check(yf)) { ret = __Pyx_Coroutine_Send(yf, value); } else #endif #ifdef __Pyx_AsyncGen_USED if (__pyx_PyAsyncGenASend_CheckExact(yf)) { ret = __Pyx_async_gen_asend_send(yf, value); } else #endif #if CYTHON_COMPILING_IN_CPYTHON if (PyGen_CheckExact(yf)) { ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); } else if (PyCoro_CheckExact(yf)) { ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); } else #endif #endif { #if !CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x03080000 if (value == Py_None && PyIter_Check(yf)) ret = __Pyx_PyIter_Next_Plain(yf); else #endif ret = __Pyx_PyObject_CallMethod1(yf, __pyx_mstate_global->__pyx_n_u_send, value); } if (likely(ret)) { __Pyx_Coroutine_unset_is_running(gen); *retval = ret; return PYGEN_NEXT; } result = __Pyx_Coroutine_FinishDelegation(gen, retval); } else { result = __Pyx_Coroutine_SendEx(gen, value, retval, 0); } __Pyx_Coroutine_unset_is_running(gen); return result; } static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) { __Pyx_PySendResult result; PyObject *retval = NULL; CYTHON_UNUSED_VAR(gen); assert(__Pyx_Coroutine_get_is_running(gen)); #ifdef __Pyx_Generator_USED if (__Pyx_Generator_CheckExact(yf)) { result = __Pyx_Coroutine_Close(yf, &retval); } else #endif #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_Check(yf)) { result = __Pyx_Coroutine_Close(yf, &retval); } else if (__Pyx_CoroutineAwait_CheckExact(yf)) { result = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf); } else #endif #ifdef __Pyx_AsyncGen_USED if (__pyx_PyAsyncGenASend_CheckExact(yf)) { retval = __Pyx_async_gen_asend_close(yf, NULL); result = PYGEN_RETURN; } else if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) { retval = __Pyx_async_gen_athrow_close(yf, NULL); result = PYGEN_RETURN; } else #endif { PyObject *meth; result = PYGEN_RETURN; meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_mstate_global->__pyx_n_u_close); if (unlikely(!meth)) { if (unlikely(PyErr_Occurred())) { PyErr_WriteUnraisable(yf); } } else { retval = __Pyx_PyObject_CallNoArg(meth); Py_DECREF(meth); if (unlikely(!retval)) { result = PYGEN_ERROR; } } } Py_XDECREF(retval); return result == PYGEN_ERROR ? -1 : 0; } static PyObject *__Pyx_Generator_Next(PyObject *self) { __Pyx_PySendResult result; PyObject *retval = NULL; __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self; if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) { return __Pyx_Coroutine_AlreadyRunningError(gen); } #if CYTHON_USE_AM_SEND if (gen->yieldfrom_am_send) { result = __Pyx_Coroutine_SendToDelegate(gen, gen->yieldfrom_am_send, Py_None, &retval); } else #endif if (gen->yieldfrom) { PyObject *yf = gen->yieldfrom; PyObject *ret; #ifdef __Pyx_Generator_USED if (__Pyx_Generator_CheckExact(yf)) { ret = __Pyx_Generator_Next(yf); } else #endif #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_CheckExact(yf)) { ret = __Pyx_Coroutine_Send(yf, Py_None); } else #endif #if CYTHON_COMPILING_IN_CPYTHON && (PY_VERSION_HEX < 0x030A00A3 || !CYTHON_USE_AM_SEND) if (PyGen_CheckExact(yf)) { ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL); } else #endif ret = __Pyx_PyIter_Next_Plain(yf); if (likely(ret)) { __Pyx_Coroutine_unset_is_running(gen); return ret; } result = __Pyx_Coroutine_FinishDelegation(gen, &retval); } else { result = __Pyx_Coroutine_SendEx(gen, Py_None, &retval, 0); } __Pyx_Coroutine_unset_is_running(gen); return __Pyx_Coroutine_MethodReturnFromResult(self, result, retval, 1); } static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, PyObject *arg) { PyObject *retval = NULL; __Pyx_PySendResult result; CYTHON_UNUSED_VAR(arg); result = __Pyx_Coroutine_Close(self, &retval); if (unlikely(result == PYGEN_ERROR)) return NULL; Py_XDECREF(retval); Py_RETURN_NONE; } static __Pyx_PySendResult __Pyx_Coroutine_Close(PyObject *self, PyObject **retval) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; __Pyx_PySendResult result; PyObject *yf; int err = 0; if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) { *retval = __Pyx_Coroutine_AlreadyRunningError(gen); return PYGEN_ERROR; } yf = gen->yieldfrom; if (yf) { Py_INCREF(yf); err = __Pyx_Coroutine_CloseIter(gen, yf); __Pyx_Coroutine_Undelegate(gen); Py_DECREF(yf); } if (err == 0) PyErr_SetNone(PyExc_GeneratorExit); result = __Pyx_Coroutine_SendEx(gen, NULL, retval, 1); if (result == PYGEN_ERROR) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_Coroutine_unset_is_running(gen); if (!__Pyx_PyErr_Occurred()) { return PYGEN_RETURN; } else if (likely(__Pyx_PyErr_ExceptionMatches2(PyExc_GeneratorExit, PyExc_StopIteration))) { __Pyx_PyErr_Clear(); return PYGEN_RETURN; } return PYGEN_ERROR; } else if (likely(result == PYGEN_RETURN && *retval == Py_None)) { __Pyx_Coroutine_unset_is_running(gen); return PYGEN_RETURN; } else { const char *msg; Py_DECREF(*retval); *retval = NULL; if ((0)) { #ifdef __Pyx_Coroutine_USED } else if (__Pyx_Coroutine_Check(self)) { msg = "coroutine ignored GeneratorExit"; #endif #ifdef __Pyx_AsyncGen_USED } else if (__Pyx_AsyncGen_CheckExact(self)) { msg = "async generator ignored GeneratorExit"; #endif } else { msg = "generator ignored GeneratorExit"; } PyErr_SetString(PyExc_RuntimeError, msg); __Pyx_Coroutine_unset_is_running(gen); return PYGEN_ERROR; } } static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb, PyObject *args, int close_on_genexit) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; PyObject *yf; if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) return __Pyx_Coroutine_AlreadyRunningError(gen); yf = gen->yieldfrom; if (yf) { __Pyx_PySendResult result; PyObject *ret; Py_INCREF(yf); if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) { int err = __Pyx_Coroutine_CloseIter(gen, yf); Py_DECREF(yf); __Pyx_Coroutine_Undelegate(gen); if (err < 0) goto propagate_exception; goto throw_here; } if (0 #ifdef __Pyx_Generator_USED || __Pyx_Generator_CheckExact(yf) #endif #ifdef __Pyx_Coroutine_USED || __Pyx_Coroutine_Check(yf) #endif ) { ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit); #ifdef __Pyx_Coroutine_USED } else if (__Pyx_CoroutineAwait_CheckExact(yf)) { ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit); #endif } else { PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_mstate_global->__pyx_n_u_throw); if (unlikely(!meth)) { Py_DECREF(yf); if (unlikely(PyErr_Occurred())) { __Pyx_Coroutine_unset_is_running(gen); return NULL; } __Pyx_Coroutine_Undelegate(gen); goto throw_here; } if (likely(args)) { ret = __Pyx_PyObject_Call(meth, args, NULL); } else { PyObject *cargs[4] = {NULL, typ, val, tb}; ret = __Pyx_PyObject_FastCall(meth, cargs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } Py_DECREF(meth); } Py_DECREF(yf); if (ret) { __Pyx_Coroutine_unset_is_running(gen); return ret; } result = __Pyx_Coroutine_FinishDelegation(gen, &ret); __Pyx_Coroutine_unset_is_running(gen); return __Pyx_Coroutine_MethodReturnFromResult(self, result, ret, 0); } throw_here: __Pyx_Raise(typ, val, tb, NULL); propagate_exception: { PyObject *retval = NULL; __Pyx_PySendResult result = __Pyx_Coroutine_SendEx(gen, NULL, &retval, 0); __Pyx_Coroutine_unset_is_running(gen); return __Pyx_Coroutine_MethodReturnFromResult(self, result, retval, 0); } } static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) { PyObject *typ; PyObject *val = NULL; PyObject *tb = NULL; if (unlikely(!PyArg_UnpackTuple(args, "throw", 1, 3, &typ, &val, &tb))) return NULL; return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1); } static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) { #if PY_VERSION_HEX >= 0x030B00a4 Py_VISIT(exc_state->exc_value); #else Py_VISIT(exc_state->exc_type); Py_VISIT(exc_state->exc_value); Py_VISIT(exc_state->exc_traceback); #endif return 0; } static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) { { int e = __Pyx_call_type_traverse((PyObject*)gen, 1, visit, arg); if (e) return e; } Py_VISIT(gen->closure); Py_VISIT(gen->classobj); Py_VISIT(gen->yieldfrom); return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg); } static int __Pyx_Coroutine_clear(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; Py_CLEAR(gen->closure); Py_CLEAR(gen->classobj); __Pyx_Coroutine_Undelegate(gen); __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state); #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(self)) { Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer); } #endif Py_CLEAR(gen->gi_code); Py_CLEAR(gen->gi_frame); Py_CLEAR(gen->gi_name); Py_CLEAR(gen->gi_qualname); Py_CLEAR(gen->gi_modulename); return 0; } static void __Pyx_Coroutine_dealloc(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; PyObject_GC_UnTrack(gen); #if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API if (gen->gi_weakreflist != NULL) #endif PyObject_ClearWeakRefs(self); if (gen->resume_label >= 0) { PyObject_GC_Track(self); #if CYTHON_USE_TP_FINALIZE if (unlikely(PyObject_CallFinalizerFromDealloc(self))) #else { destructor del = __Pyx_PyObject_GetSlot(gen, tp_del, destructor); if (del) del(self); } if (unlikely(Py_REFCNT(self) > 0)) #endif { return; } PyObject_GC_UnTrack(self); } #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(self)) { /* We have to handle this case for asynchronous generators right here, because this code has to be between UNTRACK and GC_Del. */ Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer); } #endif __Pyx_Coroutine_clear(self); __Pyx_PyHeapTypeObject_GC_Del(gen); } #if CYTHON_USE_TP_FINALIZE static void __Pyx_Coroutine_del(PyObject *self) { PyObject *error_type, *error_value, *error_traceback; __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; __Pyx_PyThreadState_declare if (gen->resume_label < 0) { return; } __Pyx_PyThreadState_assign __Pyx_ErrFetch(&error_type, &error_value, &error_traceback); #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(self)) { __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self; PyObject *finalizer = agen->ag_finalizer; if (finalizer && !agen->ag_closed) { PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self); if (unlikely(!res)) { PyErr_WriteUnraisable(self); } else { Py_DECREF(res); } __Pyx_ErrRestore(error_type, error_value, error_traceback); return; } } #endif if (unlikely(gen->resume_label == 0 && !error_value)) { #ifdef __Pyx_Coroutine_USED #ifdef __Pyx_Generator_USED if (!__Pyx_Generator_CheckExact(self)) #endif { PyObject_GC_UnTrack(self); if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0)) PyErr_WriteUnraisable(self); PyObject_GC_Track(self); } #endif } else { PyObject *retval = NULL; __Pyx_PySendResult result = __Pyx_Coroutine_Close(self, &retval); if (result == PYGEN_ERROR) { PyErr_WriteUnraisable(self); } else { Py_XDECREF(retval); } } __Pyx_ErrRestore(error_type, error_value, error_traceback); } #endif static PyObject * __Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, void *context) { PyObject *name = self->gi_name; CYTHON_UNUSED_VAR(context); if (unlikely(!name)) name = Py_None; Py_INCREF(name); return name; } static int __Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); if (unlikely(value == NULL || !PyUnicode_Check(value))) { PyErr_SetString(PyExc_TypeError, "__name__ must be set to a string object"); return -1; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(self->gi_name, value); return 0; } static PyObject * __Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, void *context) { PyObject *name = self->gi_qualname; CYTHON_UNUSED_VAR(context); if (unlikely(!name)) name = Py_None; Py_INCREF(name); return name; } static int __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); if (unlikely(value == NULL || !PyUnicode_Check(value))) { PyErr_SetString(PyExc_TypeError, "__qualname__ must be set to a string object"); return -1; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(self->gi_qualname, value); return 0; } static PyObject * __Pyx__Coroutine_get_frame(__pyx_CoroutineObject *self) { #if !CYTHON_COMPILING_IN_LIMITED_API PyObject *frame; #if PY_VERSION_HEX >= 0x030d0000 Py_BEGIN_CRITICAL_SECTION(self); #endif frame = self->gi_frame; if (!frame) { if (unlikely(!self->gi_code)) { Py_RETURN_NONE; } PyObject *globals = PyDict_New(); if (unlikely(!globals)) return NULL; frame = (PyObject *) PyFrame_New( PyThreadState_Get(), /*PyThreadState *tstate,*/ (PyCodeObject*) self->gi_code, /*PyCodeObject *code,*/ globals, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); Py_DECREF(globals); if (unlikely(!frame)) return NULL; if (unlikely(self->gi_frame)) { Py_DECREF(frame); frame = self->gi_frame; } else { self->gi_frame = frame; } } Py_INCREF(frame); #if PY_VERSION_HEX >= 0x030d0000 Py_END_CRITICAL_SECTION(); #endif return frame; #else CYTHON_UNUSED_VAR(self); Py_RETURN_NONE; #endif } static PyObject * __Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, void *context) { CYTHON_UNUSED_VAR(context); PyObject *frame = self->gi_frame; if (frame) return __Pyx_NewRef(frame); return __Pyx__Coroutine_get_frame(self); } static __pyx_CoroutineObject *__Pyx__Coroutine_New( PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, PyObject *name, PyObject *qualname, PyObject *module_name) { __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type); if (unlikely(!gen)) return NULL; return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name); } static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit( __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, PyObject *name, PyObject *qualname, PyObject *module_name) { gen->body = body; gen->closure = closure; Py_XINCREF(closure); gen->is_running = 0; gen->resume_label = 0; gen->classobj = NULL; gen->yieldfrom = NULL; gen->yieldfrom_am_send = NULL; #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_LIMITED_API gen->gi_exc_state.exc_value = NULL; #else gen->gi_exc_state.exc_type = NULL; gen->gi_exc_state.exc_value = NULL; gen->gi_exc_state.exc_traceback = NULL; #endif #if CYTHON_USE_EXC_INFO_STACK gen->gi_exc_state.previous_item = NULL; #endif #if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API gen->gi_weakreflist = NULL; #endif Py_XINCREF(qualname); gen->gi_qualname = qualname; Py_XINCREF(name); gen->gi_name = name; Py_XINCREF(module_name); gen->gi_modulename = module_name; Py_XINCREF(code); gen->gi_code = code; gen->gi_frame = NULL; PyObject_GC_Track(gen); return gen; } static char __Pyx_Coroutine_test_and_set_is_running(__pyx_CoroutineObject *gen) { char result; #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API Py_BEGIN_CRITICAL_SECTION(gen); #endif result = gen->is_running; gen->is_running = 1; #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API Py_END_CRITICAL_SECTION(); #endif return result; } static void __Pyx_Coroutine_unset_is_running(__pyx_CoroutineObject *gen) { #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API Py_BEGIN_CRITICAL_SECTION(gen); #endif assert(gen->is_running); gen->is_running = 0; #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API Py_END_CRITICAL_SECTION(); #endif } static char __Pyx_Coroutine_get_is_running(__pyx_CoroutineObject *gen) { char result; #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API Py_BEGIN_CRITICAL_SECTION(gen); #endif result = gen->is_running; #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API Py_END_CRITICAL_SECTION(); #endif return result; } static PyObject *__Pyx_Coroutine_get_is_running_getter(PyObject *gen, void *closure) { CYTHON_UNUSED_VAR(closure); char result = __Pyx_Coroutine_get_is_running((__pyx_CoroutineObject*)gen); if (result) Py_RETURN_TRUE; else Py_RETURN_FALSE; } #if __PYX_HAS_PY_AM_SEND == 2 static void __Pyx_SetBackportTypeAmSend(PyTypeObject *type, __Pyx_PyAsyncMethodsStruct *static_amsend_methods, __Pyx_pyiter_sendfunc am_send) { Py_ssize_t ptr_offset = (char*)(type->tp_as_async) - (char*)type; if (ptr_offset < 0 || ptr_offset > type->tp_basicsize) { return; } memcpy((void*)static_amsend_methods, (void*)(type->tp_as_async), sizeof(*type->tp_as_async)); static_amsend_methods->am_send = am_send; type->tp_as_async = __Pyx_SlotTpAsAsync(static_amsend_methods); } #endif static PyObject *__Pyx_Coroutine_fail_reduce_ex(PyObject *self, PyObject *arg) { CYTHON_UNUSED_VAR(arg); __Pyx_TypeName self_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE((PyObject*)self)); PyErr_Format(PyExc_TypeError, "cannot pickle '" __Pyx_FMT_TYPENAME "' object", self_type_name); __Pyx_DECREF_TypeName(self_type_name); return NULL; } /* Coroutine (used by CoroutineYieldFrom) */ static void __Pyx_CoroutineAwait_dealloc(PyObject *self) { PyObject_GC_UnTrack(self); Py_CLEAR(((__pyx_CoroutineAwaitObject*)self)->coroutine); __Pyx_PyHeapTypeObject_GC_Del(self); } static int __Pyx_CoroutineAwait_traverse(__pyx_CoroutineAwaitObject *self, visitproc visit, void *arg) { { int e = __Pyx_call_type_traverse((PyObject*)self, 1, visit, arg); if (e) return e; } Py_VISIT(self->coroutine); return 0; } static int __Pyx_CoroutineAwait_clear(__pyx_CoroutineAwaitObject *self) { Py_CLEAR(self->coroutine); return 0; } static PyObject *__Pyx_CoroutineAwait_Next(__pyx_CoroutineAwaitObject *self) { return __Pyx_Generator_Next(self->coroutine); } static PyObject *__Pyx_CoroutineAwait_Send(__pyx_CoroutineAwaitObject *self, PyObject *value) { return __Pyx_Coroutine_Send(self->coroutine, value); } #if __PYX_HAS_PY_AM_SEND static __Pyx_PySendResult __Pyx_CoroutineAwait_AmSend(PyObject *self, PyObject *value, PyObject **retval) { return __Pyx_Coroutine_AmSend(((__pyx_CoroutineAwaitObject*)self)->coroutine, value, retval); } #endif static PyObject *__Pyx_CoroutineAwait_Throw(__pyx_CoroutineAwaitObject *self, PyObject *args) { return __Pyx_Coroutine_Throw(self->coroutine, args); } static __Pyx_PySendResult __Pyx_CoroutineAwait_Close(__pyx_CoroutineAwaitObject *self) { PyObject *retval = NULL; __Pyx_PySendResult result = __Pyx_Coroutine_Close(self->coroutine, &retval); Py_XDECREF(retval); return result; } static PyObject *__Pyx_CoroutineAwait_Close_Method(__pyx_CoroutineAwaitObject *self, PyObject *arg) { PyObject *retval = NULL; __Pyx_PySendResult result; CYTHON_UNUSED_VAR(arg); result = __Pyx_Coroutine_Close(self->coroutine, &retval); if (unlikely(result == PYGEN_ERROR)) return NULL; Py_XDECREF(retval); Py_RETURN_NONE; } static PyObject *__Pyx_CoroutineAwait_self(PyObject *self) { Py_INCREF(self); return self; } #if !CYTHON_COMPILING_IN_PYPY static PyObject *__Pyx_CoroutineAwait_no_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { CYTHON_UNUSED_VAR(type); CYTHON_UNUSED_VAR(args); CYTHON_UNUSED_VAR(kwargs); PyErr_SetString(PyExc_TypeError, "cannot instantiate type, use 'await coroutine' instead"); return NULL; } #endif static PyMethodDef __pyx_CoroutineAwait_methods[] = { {"send", (PyCFunction) __Pyx_CoroutineAwait_Send, METH_O, PyDoc_STR("send(arg) -> send 'arg' into coroutine,\nreturn next yielded value or raise StopIteration.")}, {"throw", (PyCFunction) __Pyx_CoroutineAwait_Throw, METH_VARARGS, PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in coroutine,\nreturn next yielded value or raise StopIteration.")}, {"close", (PyCFunction) __Pyx_CoroutineAwait_Close_Method, METH_NOARGS, PyDoc_STR("close() -> raise GeneratorExit inside coroutine.")}, {"__reduce_ex__", (PyCFunction) __Pyx_Coroutine_fail_reduce_ex, METH_O, 0}, {"__reduce__", (PyCFunction) __Pyx_Coroutine_fail_reduce_ex, METH_NOARGS, 0}, {0, 0, 0, 0} }; static PyType_Slot __pyx_CoroutineAwaitType_slots[] = { {Py_tp_dealloc, (void *)__Pyx_CoroutineAwait_dealloc}, {Py_tp_traverse, (void *)__Pyx_CoroutineAwait_traverse}, {Py_tp_clear, (void *)__Pyx_CoroutineAwait_clear}, #if !CYTHON_COMPILING_IN_PYPY {Py_tp_new, (void *)__Pyx_CoroutineAwait_no_new}, #endif {Py_tp_methods, (void *)__pyx_CoroutineAwait_methods}, {Py_tp_iter, (void *)__Pyx_CoroutineAwait_self}, {Py_tp_iternext, (void *)__Pyx_CoroutineAwait_Next}, #if __PYX_HAS_PY_AM_SEND == 1 {Py_am_send, (void *)__Pyx_CoroutineAwait_AmSend}, #endif {0, 0}, }; static PyType_Spec __pyx_CoroutineAwaitType_spec = { __PYX_TYPE_MODULE_PREFIX "coroutine_wrapper", sizeof(__pyx_CoroutineAwaitObject), 0, Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION | Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | __Pyx_TPFLAGS_HAVE_AM_SEND, __pyx_CoroutineAwaitType_slots }; #if __PYX_HAS_PY_AM_SEND == 2 // backport static __Pyx_PyAsyncMethodsStruct __pyx_CoroutineAwait_as_async; #endif static CYTHON_INLINE PyObject *__Pyx__Coroutine_await(PyObject *coroutine) { __pyx_CoroutineAwaitObject *await = PyObject_GC_New(__pyx_CoroutineAwaitObject, __pyx_mstate_global->__pyx_CoroutineAwaitType); if (unlikely(!await)) return NULL; Py_INCREF(coroutine); await->coroutine = coroutine; PyObject_GC_Track(await); return (PyObject*)await; } static PyObject *__Pyx_Coroutine_await(PyObject *coroutine) { if (unlikely(!coroutine || !__Pyx_Coroutine_Check(coroutine))) { PyErr_SetString(PyExc_TypeError, "invalid input, expected coroutine"); return NULL; } return __Pyx__Coroutine_await(coroutine); } static PyMethodDef __pyx_Coroutine_methods[] = { {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O, PyDoc_STR("send(arg) -> send 'arg' into coroutine,\nreturn next iterated value or raise StopIteration.")}, {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS, PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in coroutine,\nreturn next iterated value or raise StopIteration.")}, {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS, PyDoc_STR("close() -> raise GeneratorExit inside coroutine.")}, {"__reduce_ex__", (PyCFunction) __Pyx_Coroutine_fail_reduce_ex, METH_O, 0}, {"__reduce__", (PyCFunction) __Pyx_Coroutine_fail_reduce_ex, METH_NOARGS, 0}, {0, 0, 0, 0} }; static PyMemberDef __pyx_Coroutine_memberlist[] = { {"cr_await", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY, PyDoc_STR("object being awaited, or None")}, {"cr_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL}, {"__module__", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_modulename), 0, 0}, #if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CoroutineObject, gi_weakreflist), READONLY, 0}, #endif {0, 0, 0, 0, 0} }; static PyGetSetDef __pyx_Coroutine_getsets[] = { {"__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name, PyDoc_STR("name of the coroutine"), 0}, {"__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname, PyDoc_STR("qualified name of the coroutine"), 0}, {"cr_frame", (getter)__Pyx_Coroutine_get_frame, NULL, PyDoc_STR("Frame of the coroutine"), 0}, {"cr_running", __Pyx_Coroutine_get_is_running_getter, NULL, NULL, NULL}, {0, 0, 0, 0, 0} }; static PyType_Slot __pyx_CoroutineType_slots[] = { {Py_tp_dealloc, (void *)__Pyx_Coroutine_dealloc}, {Py_am_await, (void *)&__Pyx_Coroutine_await}, {Py_tp_traverse, (void *)__Pyx_Coroutine_traverse}, {Py_tp_methods, (void *)__pyx_Coroutine_methods}, {Py_tp_members, (void *)__pyx_Coroutine_memberlist}, {Py_tp_getset, (void *)__pyx_Coroutine_getsets}, {Py_tp_getattro, (void *) PyObject_GenericGetAttr}, #if CYTHON_USE_TP_FINALIZE {Py_tp_finalize, (void *)__Pyx_Coroutine_del}, #endif #if __PYX_HAS_PY_AM_SEND == 1 {Py_am_send, (void *)__Pyx_Coroutine_AmSend}, #endif {0, 0}, }; static PyType_Spec __pyx_CoroutineType_spec = { __PYX_TYPE_MODULE_PREFIX "coroutine", sizeof(__pyx_CoroutineObject), 0, #if PY_VERSION_HEX >= 0x030C0000 && !CYTHON_COMPILING_IN_LIMITED_API Py_TPFLAGS_MANAGED_WEAKREF | #endif Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION | Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | __Pyx_TPFLAGS_HAVE_AM_SEND, __pyx_CoroutineType_slots }; #if __PYX_HAS_PY_AM_SEND == 2 static __Pyx_PyAsyncMethodsStruct __pyx_Coroutine_as_async; #endif static int __pyx_Coroutine_init(PyObject *module) { __pyx_mstatetype *mstate; CYTHON_MAYBE_UNUSED_VAR(module); mstate = __Pyx_PyModule_GetState(module); mstate->__pyx_CoroutineType = __Pyx_FetchCommonTypeFromSpec( mstate->__pyx_CommonTypesMetaclassType, module, &__pyx_CoroutineType_spec, NULL); if (unlikely(!mstate->__pyx_CoroutineType)) return -1; #if __PYX_HAS_PY_AM_SEND == 2 __Pyx_SetBackportTypeAmSend(mstate->__pyx_CoroutineType, &__pyx_Coroutine_as_async, &__Pyx_Coroutine_AmSend); #endif #ifdef __Pyx_IterableCoroutine_USED if (unlikely(__pyx_IterableCoroutine_init(module) == -1)) return -1; #endif mstate->__pyx_CoroutineAwaitType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CoroutineAwaitType_spec, NULL); if (unlikely(!mstate->__pyx_CoroutineAwaitType)) return -1; #if __PYX_HAS_PY_AM_SEND == 2 __Pyx_SetBackportTypeAmSend(mstate->__pyx_CoroutineAwaitType, &__pyx_CoroutineAwait_as_async, &__Pyx_CoroutineAwait_AmSend); #endif return 0; } /* CoroutineSetYieldFrom (used by CoroutineYieldFrom) */ static void __Pyx_Coroutine_Set_Owned_Yield_From(__pyx_CoroutineObject *gen, PyObject *yf) { assert (!gen->yieldfrom); #if CYTHON_USE_AM_SEND assert (!gen->yieldfrom_am_send); #if PY_VERSION_HEX < 0x030A00F0 if (__Pyx_PyType_HasFeature(Py_TYPE(yf), __Pyx_TPFLAGS_HAVE_AM_SEND)) #endif { __Pyx_pyiter_sendfunc am_send; #if __PYX_LIMITED_VERSION_HEX >= 0x030A0000 am_send = __Pyx_PyObject_TryGetSubSlot(yf, tp_as_async, am_send, __Pyx_pyiter_sendfunc); #else __Pyx_PyAsyncMethodsStruct* tp_as_async = (__Pyx_PyAsyncMethodsStruct*) Py_TYPE(yf)->tp_as_async; am_send = tp_as_async ? tp_as_async->am_send : NULL; #endif if (likely(am_send)) { gen->yieldfrom_am_send = am_send; } } #endif gen->yieldfrom = yf; } /* Coro_CheckExact (used by GetAwaitIter) */ #if CYTHON_COMPILING_IN_LIMITED_API static int __Pyx_PyCoro_CheckExact(PyObject *o) { return (PyObject*)Py_TYPE(o) == __pyx_mstate_global->__Pyx_CachedCoroType; } #endif /* GetAwaitIter (used by CoroutineYieldFrom) */ static CYTHON_INLINE PyObject *__Pyx_Coroutine_GetAwaitableIter(PyObject *o) { #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_Check(o)) { return __Pyx_NewRef(o); } #endif return __Pyx__Coroutine_GetAwaitableIter(o); } static void __Pyx_Coroutine_AwaitableIterError(PyObject *source) { #if (PY_VERSION_HEX < 0x030d0000 || defined(_PyErr_FormatFromCause)) && !CYTHON_COMPILING_IN_LIMITED_API __Pyx_TypeName source_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(source)); _PyErr_FormatFromCause(PyExc_TypeError, "'async for' received an invalid object from __anext__: " __Pyx_FMT_TYPENAME, source_type_name); __Pyx_DECREF_TypeName(source_type_name); #else PyObject *exc, *val, *val2, *tb; __Pyx_TypeName source_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(source)); assert(PyErr_Occurred()); PyErr_Fetch(&exc, &val, &tb); PyErr_NormalizeException(&exc, &val, &tb); if (tb != NULL) { PyException_SetTraceback(val, tb); Py_DECREF(tb); } Py_DECREF(exc); assert(!PyErr_Occurred()); PyErr_Format(PyExc_TypeError, "'async for' received an invalid object from __anext__: " __Pyx_FMT_TYPENAME, source_type_name); __Pyx_DECREF_TypeName(source_type_name); PyErr_Fetch(&exc, &val2, &tb); PyErr_NormalizeException(&exc, &val2, &tb); Py_INCREF(val); PyException_SetCause(val2, val); PyException_SetContext(val2, val); PyErr_Restore(exc, val2, tb); #endif } static PyObject *__Pyx__Coroutine_GetAwaitableIter(PyObject *obj) { PyObject *res; unaryfunc am_await; am_await = __Pyx_PyObject_TryGetSubSlot(obj, tp_as_async, am_await, unaryfunc); if (likely(am_await)) { res = (*am_await)(obj); } else #if CYTHON_COMPILING_IN_CPYTHON && defined(CO_ITERABLE_COROUTINE) #if PY_VERSION_HEX >= 0x030C00A6 if (PyGen_CheckExact(obj) && (PyGen_GetCode((PyGenObject*)obj)->co_flags & CO_ITERABLE_COROUTINE)) { #else if (PyGen_CheckExact(obj) && ((PyGenObject*)obj)->gi_code && ((PyCodeObject *)((PyGenObject*)obj)->gi_code)->co_flags & CO_ITERABLE_COROUTINE) { #endif return __Pyx_NewRef(obj); } else #endif { #if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)) PyObject *args[] = { obj }; res = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_n_u_await, args, 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL); if (unlikely(!res)) { if (PyErr_ExceptionMatches(PyExc_AttributeError)) { PyObject *type, *value, *traceback; PyErr_Fetch(&type, &value, &traceback); int has_attr = PyObject_HasAttr(obj, __pyx_mstate_global->__pyx_n_u_await); PyErr_Restore(type, value, traceback); if (!has_attr) goto slot_error; } } #else PyObject *method = NULL; int is_method = __Pyx_PyObject_GetMethod(obj, __pyx_mstate_global->__pyx_n_u_await, &method); if (likely(is_method)) { res = __Pyx_PyObject_CallOneArg(method, obj); } else if (likely(method)) { res = __Pyx_PyObject_CallNoArg(method); } else goto slot_error; Py_DECREF(method); #endif } if (unlikely(!res)) { __Pyx_Coroutine_AwaitableIterError(obj); goto bad; } if (unlikely(!PyIter_Check(res))) { __Pyx_TypeName res_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(res)); PyErr_Format(PyExc_TypeError, "__await__() returned non-iterator of type '" __Pyx_FMT_TYPENAME "'", res_type_name); __Pyx_DECREF_TypeName(res_type_name); Py_CLEAR(res); } else { int is_coroutine = 0; #ifdef __Pyx_Coroutine_USED is_coroutine |= __Pyx_Coroutine_Check(res); #endif is_coroutine |= __Pyx_PyCoro_CheckExact(res); if (unlikely(is_coroutine)) { /* __await__ must return an *iterator*, not a coroutine or another awaitable (see PEP 492) */ PyErr_SetString(PyExc_TypeError, "__await__() returned a coroutine"); Py_CLEAR(res); } } return res; slot_error: { __Pyx_TypeName obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj)); PyErr_Format(PyExc_TypeError, "object " __Pyx_FMT_TYPENAME " can't be used in 'await' expression", obj_type_name); __Pyx_DECREF_TypeName(obj_type_name); } bad: return NULL; } /* CoroutineYieldFrom */ static __Pyx_PySendResult __Pyx_Coroutine_Yield_From_Coroutine(__pyx_CoroutineObject *gen, PyObject *source, PyObject **retval) { __Pyx_PySendResult result; if (unlikely(((__pyx_CoroutineObject*)source)->yieldfrom)) { PyErr_SetString( PyExc_RuntimeError, "coroutine is being awaited already"); return PYGEN_ERROR; } result = __Pyx_Coroutine_AmSend(source, Py_None, retval); if (result == PYGEN_NEXT) { Py_INCREF(source); __Pyx_Coroutine_Set_Owned_Yield_From(gen, source); } return result; } static __Pyx_PySendResult __Pyx_Coroutine_Yield_From_Generic(__pyx_CoroutineObject *gen, PyObject *source, PyObject **retval) { __Pyx_PySendResult result; PyObject *source_gen = NULL; source_gen = __Pyx_Coroutine_GetAwaitableIter(source); if (unlikely(!source_gen)) return PYGEN_ERROR; if (__Pyx_Coroutine_Check(source_gen)) { result = __Pyx_Coroutine_Yield_From_Coroutine(gen, source_gen, retval); Py_DECREF(source_gen); return result; } *retval = __Pyx_PyIter_Next_Plain(source_gen); if (*retval) { __Pyx_Coroutine_Set_Owned_Yield_From(gen, source_gen); return PYGEN_NEXT; } result = __Pyx_Coroutine_status_from_result(retval); Py_XDECREF(source_gen); return result; } static CYTHON_INLINE __Pyx_PySendResult __Pyx_Coroutine_Yield_From(__pyx_CoroutineObject *gen, PyObject *source, PyObject **retval) { if (__Pyx_Coroutine_Check(source)) { return __Pyx_Coroutine_Yield_From_Coroutine(gen, source, retval); } #ifdef __Pyx_AsyncGen_USED if (__pyx_PyAsyncGenASend_CheckExact(source)) { *retval = __Pyx_async_gen_asend_iternext(source); if (*retval) { Py_INCREF(source); __Pyx_Coroutine_Set_Owned_Yield_From(gen, source); return PYGEN_NEXT; } return __Pyx_Coroutine_status_from_result(retval); } #endif return __Pyx_Coroutine_Yield_From_Generic(gen, source, retval); } /* ExtTypeTest */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { __Pyx_TypeName obj_type_name; __Pyx_TypeName type_name; if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } if (likely(__Pyx_TypeCheck(obj, type))) return 1; obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj)); type_name = __Pyx_PyType_GetFullyQualifiedName(type); PyErr_Format(PyExc_TypeError, "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME, obj_type_name, type_name); __Pyx_DECREF_TypeName(obj_type_name); __Pyx_DECREF_TypeName(type_name); return 0; } /* GetException */ #if CYTHON_FAST_THREAD_STATE static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) #endif { PyObject *local_type = NULL, *local_value, *local_tb = NULL; #if CYTHON_FAST_THREAD_STATE PyObject *tmp_type, *tmp_value, *tmp_tb; #if PY_VERSION_HEX >= 0x030C0000 local_value = tstate->current_exception; tstate->current_exception = 0; #else local_type = tstate->curexc_type; local_value = tstate->curexc_value; local_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; #endif #elif __PYX_LIMITED_VERSION_HEX > 0x030C0000 local_value = PyErr_GetRaisedException(); #else PyErr_Fetch(&local_type, &local_value, &local_tb); #endif #if __PYX_LIMITED_VERSION_HEX > 0x030C0000 if (likely(local_value)) { local_type = (PyObject*) Py_TYPE(local_value); Py_INCREF(local_type); local_tb = PyException_GetTraceback(local_value); } #else PyErr_NormalizeException(&local_type, &local_value, &local_tb); #if CYTHON_FAST_THREAD_STATE if (unlikely(tstate->curexc_type)) #else if (unlikely(PyErr_Occurred())) #endif goto bad; if (local_tb) { if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) goto bad; } #endif // __PYX_LIMITED_VERSION_HEX > 0x030C0000 Py_XINCREF(local_tb); Py_XINCREF(local_type); Py_XINCREF(local_value); *type = local_type; *value = local_value; *tb = local_tb; #if CYTHON_FAST_THREAD_STATE #if CYTHON_USE_EXC_INFO_STACK { _PyErr_StackItem *exc_info = tstate->exc_info; #if PY_VERSION_HEX >= 0x030B00a4 tmp_value = exc_info->exc_value; exc_info->exc_value = local_value; tmp_type = NULL; tmp_tb = NULL; Py_XDECREF(local_type); Py_XDECREF(local_tb); #else tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = local_type; exc_info->exc_value = local_value; exc_info->exc_traceback = local_tb; #endif } #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = local_type; tstate->exc_value = local_value; tstate->exc_traceback = local_tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #elif __PYX_LIMITED_VERSION_HEX >= 0x030b0000 PyErr_SetHandledException(local_value); Py_XDECREF(local_value); Py_XDECREF(local_type); Py_XDECREF(local_tb); #else PyErr_SetExcInfo(local_type, local_value, local_tb); #endif return 0; #if __PYX_LIMITED_VERSION_HEX <= 0x030C0000 bad: *type = 0; *value = 0; *tb = 0; Py_XDECREF(local_type); Py_XDECREF(local_value); Py_XDECREF(local_tb); return -1; #endif } /* pep479 */ static void __Pyx_Generator_Replace_StopIteration(int in_async_gen) { PyObject *exc, *val, *tb, *cur_exc, *new_exc; __Pyx_PyThreadState_declare int is_async_stopiteration = 0; CYTHON_MAYBE_UNUSED_VAR(in_async_gen); __Pyx_PyThreadState_assign cur_exc = __Pyx_PyErr_CurrentExceptionType(); if (likely(!__Pyx_PyErr_GivenExceptionMatches(cur_exc, PyExc_StopIteration))) { if (in_async_gen && unlikely(__Pyx_PyErr_GivenExceptionMatches(cur_exc, PyExc_StopAsyncIteration))) { is_async_stopiteration = 1; } else { return; } } __Pyx_GetException(&exc, &val, &tb); Py_XDECREF(exc); Py_XDECREF(tb); new_exc = PyObject_CallFunction(PyExc_RuntimeError, "s", is_async_stopiteration ? "async generator raised StopAsyncIteration" : in_async_gen ? "async generator raised StopIteration" : "generator raised StopIteration"); if (!new_exc) { Py_XDECREF(val); return; } PyException_SetCause(new_exc, val); // steals ref to val PyErr_SetObject(PyExc_RuntimeError, new_exc); } /* StringJoin */ static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values) { (void) __Pyx_PyObject_CallMethod1; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030e0000 || defined(PyBytes_Join) return PyBytes_Join(sep, values); #elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000 || defined(_PyBytes_Join) return _PyBytes_Join(sep, values); #else return __Pyx_PyObject_CallMethod1(sep, __pyx_mstate_global->__pyx_n_u_join, values); #endif } /* GetItemInt */ static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { PyObject *r; if (unlikely(!j)) return NULL; r = PyObject_GetItem(o, j); Py_DECREF(j); return r; } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck, int unsafe_shared) { CYTHON_MAYBE_UNUSED_VAR(unsafe_shared); #if CYTHON_ASSUME_SAFE_SIZE Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyList_GET_SIZE(o); } if ((CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS)) { return __Pyx_PyList_GetItemRefFast(o, wrapped_i, unsafe_shared); } else if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { return __Pyx_NewRef(PyList_GET_ITEM(o, wrapped_i)); } return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i)); #else (void)wraparound; (void)boundscheck; return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck, int unsafe_shared) { CYTHON_MAYBE_UNUSED_VAR(unsafe_shared); #if CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyTuple_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { return __Pyx_NewRef(PyTuple_GET_ITEM(o, wrapped_i)); } return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i)); #else (void)wraparound; (void)boundscheck; return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, int wraparound, int boundscheck, int unsafe_shared) { CYTHON_MAYBE_UNUSED_VAR(unsafe_shared); #if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); if ((CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)) { return __Pyx_PyList_GetItemRefFast(o, n, unsafe_shared); } else if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { return __Pyx_NewRef(PyList_GET_ITEM(o, n)); } } else #if !CYTHON_AVOID_BORROWED_REFS if (PyTuple_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { return __Pyx_NewRef(PyTuple_GET_ITEM(o, n)); } } else #endif #endif #if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY { PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping; PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence; if (!is_list && mm && mm->mp_subscript) { PyObject *r, *key = PyLong_FromSsize_t(i); if (unlikely(!key)) return NULL; r = mm->mp_subscript(o, key); Py_DECREF(key); return r; } if (is_list || likely(sm && sm->sq_item)) { if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) { Py_ssize_t l = sm->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return NULL; PyErr_Clear(); } } return sm->sq_item(o, i); } } #else if (is_list || !PyMapping_Check(o)) { return PySequence_GetItem(o, i); } #endif (void)wraparound; (void)boundscheck; return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i)); } /* RaiseTooManyValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); } /* RaiseNeedMoreValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { PyErr_Format(PyExc_ValueError, "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", index, (index == 1) ? "" : "s"); } /* IterFinish */ static CYTHON_INLINE int __Pyx_IterFinish(void) { PyObject* exc_type; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign exc_type = __Pyx_PyErr_CurrentExceptionType(); if (unlikely(exc_type)) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) return -1; __Pyx_PyErr_Clear(); return 0; } return 0; } /* UnpackItemEndCheck */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { if (unlikely(retval)) { Py_DECREF(retval); __Pyx_RaiseTooManyValuesError(expected); return -1; } return __Pyx_IterFinish(); } /* GetAttr3 */ #if __PYX_LIMITED_VERSION_HEX < 0x030d0000 static PyObject *__Pyx_GetAttr3Default(PyObject *d) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) return NULL; __Pyx_PyErr_Clear(); Py_INCREF(d); return d; } #endif static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) { PyObject *r; #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000 int res = PyObject_GetOptionalAttr(o, n, &r); return (res != 0) ? r : __Pyx_NewRef(d); #else #if CYTHON_USE_TYPE_SLOTS if (likely(PyUnicode_Check(n))) { r = __Pyx_PyObject_GetAttrStrNoError(o, n); if (unlikely(!r) && likely(!PyErr_Occurred())) { r = __Pyx_NewRef(d); } return r; } #endif r = PyObject_GetAttr(o, n); return (likely(r)) ? r : __Pyx_GetAttr3Default(d); #endif } /* RaiseUnexpectedTypeError */ static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj) { __Pyx_TypeName obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj)); PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME, expected, obj_type_name); __Pyx_DECREF_TypeName(obj_type_name); return 0; } /* PyObjectLookupSpecial */ #if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) { PyObject *res; PyTypeObject *tp = Py_TYPE(obj); res = _PyType_Lookup(tp, attr_name); if (likely(res)) { descrgetfunc f = Py_TYPE(res)->tp_descr_get; if (!f) { Py_INCREF(res); } else { res = f(res, obj, (PyObject *)tp); } } else if (with_error) { PyErr_SetObject(PyExc_AttributeError, attr_name); } return res; } #endif /* FastTypeChecks */ #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { while (a) { a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*); if (a == b) return 1; } return b == &PyBaseObject_Type; } static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { PyObject *mro; if (a == b) return 1; mro = a->tp_mro; if (likely(mro)) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(mro); for (i = 0; i < n; i++) { if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) return 1; } return 0; } return __Pyx_InBases(a, b); } static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) { PyObject *mro; if (cls == a || cls == b) return 1; mro = cls->tp_mro; if (likely(mro)) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(mro); for (i = 0; i < n; i++) { PyObject *base = PyTuple_GET_ITEM(mro, i); if (base == (PyObject *)a || base == (PyObject *)b) return 1; } return 0; } return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b); } static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { if (exc_type1) { return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2); } else { return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); } } static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; assert(PyExceptionClass_Check(exc_type)); n = PyTuple_GET_SIZE(tuple); for (i=0; i= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)) PyObject *args[1] = {obj}; (void) __Pyx_PyObject_CallOneArg; (void) __Pyx_PyObject_CallNoArg; return PyObject_VectorcallMethod(method_name, args, 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL); #else PyObject *method = NULL, *result = NULL; int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); if (likely(is_method)) { result = __Pyx_PyObject_CallOneArg(method, obj); Py_DECREF(method); return result; } if (unlikely(!method)) goto bad; result = __Pyx_PyObject_CallNoArg(method); Py_DECREF(method); bad: return result; #endif } /* RaiseNoneIterError (used by UnpackTupleError) */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } /* UnpackTupleError (used by UnpackTuple2) */ static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) { if (t == Py_None) { __Pyx_RaiseNoneNotIterableError(); } else { Py_ssize_t size = __Pyx_PyTuple_GET_SIZE(t); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely(size < 0)) return; #endif if (size < index) { __Pyx_RaiseNeedMoreValuesError(size); } else { __Pyx_RaiseTooManyValuesError(index); } } } /* UnpackTuple2 (used by dict_iter) */ static CYTHON_INLINE int __Pyx_unpack_tuple2( PyObject* tuple, PyObject** value1, PyObject** value2, int is_tuple, int has_known_size, int decref_tuple) { if (likely(is_tuple || PyTuple_Check(tuple))) { Py_ssize_t size; if (has_known_size) { return __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple); } size = __Pyx_PyTuple_GET_SIZE(tuple); if (likely(size == 2)) { return __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple); } if (size >= 0) { __Pyx_UnpackTupleError(tuple, 2); } return -1; } else { return __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple); } } static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) { PyObject *value1 = NULL, *value2 = NULL; #if CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS value1 = __Pyx_PySequence_ITEM(tuple, 0); if (unlikely(!value1)) goto bad; value2 = __Pyx_PySequence_ITEM(tuple, 1); if (unlikely(!value2)) goto bad; #else value1 = PyTuple_GET_ITEM(tuple, 0); Py_INCREF(value1); value2 = PyTuple_GET_ITEM(tuple, 1); Py_INCREF(value2); #endif if (decref_tuple) { Py_DECREF(tuple); } *pvalue1 = value1; *pvalue2 = value2; return 0; #if CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS bad: Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; #endif } static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int has_known_size, int decref_tuple) { Py_ssize_t index; PyObject *value1 = NULL, *value2 = NULL, *iter = NULL; iternextfunc iternext; iter = PyObject_GetIter(tuple); if (unlikely(!iter)) goto bad; if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; } iternext = __Pyx_PyObject_GetIterNextFunc(iter); value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; } value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; } if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad; Py_DECREF(iter); *pvalue1 = value1; *pvalue2 = value2; return 0; unpacking_failed: if (!has_known_size && __Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); bad: Py_XDECREF(iter); Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; } /* dict_iter */ #if CYTHON_COMPILING_IN_PYPY #include #endif static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_source_is_dict) { is_dict = is_dict || likely(PyDict_CheckExact(iterable)); *p_source_is_dict = is_dict; if (is_dict) { #if !CYTHON_COMPILING_IN_PYPY *p_orig_length = PyDict_Size(iterable); Py_INCREF(iterable); return iterable; #else static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL; PyObject **pp = NULL; if (method_name) { const char *name = PyUnicode_AsUTF8(method_name); if (strcmp(name, "iteritems") == 0) pp = &py_items; else if (strcmp(name, "iterkeys") == 0) pp = &py_keys; else if (strcmp(name, "itervalues") == 0) pp = &py_values; if (pp) { if (!*pp) { *pp = PyUnicode_FromString(name + 4); if (!*pp) return NULL; } method_name = *pp; } } #endif } *p_orig_length = 0; if (method_name) { PyObject* iter; iterable = __Pyx_PyObject_CallMethod0(iterable, method_name); if (!iterable) return NULL; #if !CYTHON_COMPILING_IN_PYPY if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable)) return iterable; #endif iter = PyObject_GetIter(iterable); Py_DECREF(iterable); return iter; } return PyObject_GetIter(iterable); } #if !CYTHON_AVOID_BORROWED_REFS static CYTHON_INLINE int __Pyx_dict_iter_next_source_is_dict( PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem) { PyObject *key, *value; if (unlikely(orig_length != PyDict_Size(iter_obj))) { PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration"); return -1; } if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) { return 0; } if (pitem) { PyObject* tuple = PyTuple_New(2); if (unlikely(!tuple)) { return -1; } Py_INCREF(key); Py_INCREF(value); #if CYTHON_ASSUME_SAFE_MACROS PyTuple_SET_ITEM(tuple, 0, key); PyTuple_SET_ITEM(tuple, 1, value); #else if (unlikely(PyTuple_SetItem(tuple, 0, key) < 0)) { Py_DECREF(value); Py_DECREF(tuple); return -1; } if (unlikely(PyTuple_SetItem(tuple, 1, value) < 0)) { Py_DECREF(tuple); return -1; } #endif *pitem = tuple; } else { if (pkey) { Py_INCREF(key); *pkey = key; } if (pvalue) { Py_INCREF(value); *pvalue = value; } } return 1; } #endif static CYTHON_INLINE int __Pyx_dict_iter_next( PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) { PyObject* next_item; #if !CYTHON_AVOID_BORROWED_REFS if (source_is_dict) { int result; #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API Py_BEGIN_CRITICAL_SECTION(iter_obj); #endif result = __Pyx_dict_iter_next_source_is_dict(iter_obj, orig_length, ppos, pkey, pvalue, pitem); #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API Py_END_CRITICAL_SECTION(); #endif return result; } else if (PyTuple_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; Py_ssize_t tuple_size = __Pyx_PyTuple_GET_SIZE(iter_obj); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely(tuple_size < 0)) return -1; #endif if (unlikely(pos >= tuple_size)) return 0; *ppos = pos + 1; #if CYTHON_ASSUME_SAFE_MACROS next_item = PyTuple_GET_ITEM(iter_obj, pos); #else next_item = PyTuple_GetItem(iter_obj, pos); if (unlikely(!next_item)) return -1; #endif Py_INCREF(next_item); } else if (PyList_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; Py_ssize_t list_size = __Pyx_PyList_GET_SIZE(iter_obj); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely(list_size < 0)) return -1; #endif if (unlikely(pos >= list_size)) return 0; *ppos = pos + 1; next_item = __Pyx_PyList_GetItemRef(iter_obj, pos); if (unlikely(!next_item)) return -1; } else #endif { next_item = PyIter_Next(iter_obj); if (unlikely(!next_item)) { return __Pyx_IterFinish(); } } if (pitem) { *pitem = next_item; } else if (pkey && pvalue) { if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1)) return -1; } else if (pkey) { *pkey = next_item; } else { *pvalue = next_item; } return 1; } /* PyObjectSetAttrStr */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_setattro)) return tp->tp_setattro(obj, attr_name, value); return PyObject_SetAttr(obj, attr_name, value); } #endif /* RaiseUnboundLocalError */ static void __Pyx_RaiseUnboundLocalError(const char *varname) { PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); } /* SliceObject */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice, int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) { __Pyx_TypeName obj_type_name; #if CYTHON_USE_TYPE_SLOTS PyMappingMethods* mp = Py_TYPE(obj)->tp_as_mapping; if (likely(mp && mp->mp_subscript)) #endif { PyObject* result; PyObject *py_slice, *py_start, *py_stop; if (_py_slice) { py_slice = *_py_slice; } else { PyObject* owned_start = NULL; PyObject* owned_stop = NULL; if (_py_start) { py_start = *_py_start; } else { if (has_cstart) { owned_start = py_start = PyLong_FromSsize_t(cstart); if (unlikely(!py_start)) goto bad; } else py_start = Py_None; } if (_py_stop) { py_stop = *_py_stop; } else { if (has_cstop) { owned_stop = py_stop = PyLong_FromSsize_t(cstop); if (unlikely(!py_stop)) { Py_XDECREF(owned_start); goto bad; } } else py_stop = Py_None; } py_slice = PySlice_New(py_start, py_stop, Py_None); Py_XDECREF(owned_start); Py_XDECREF(owned_stop); if (unlikely(!py_slice)) goto bad; } #if CYTHON_USE_TYPE_SLOTS result = mp->mp_subscript(obj, py_slice); #else result = PyObject_GetItem(obj, py_slice); #endif if (!_py_slice) { Py_DECREF(py_slice); } return result; } obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj)); PyErr_Format(PyExc_TypeError, "'" __Pyx_FMT_TYPENAME "' object is unsliceable", obj_type_name); __Pyx_DECREF_TypeName(obj_type_name); bad: return NULL; } /* AllocateExtensionType */ static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final) { if (is_final || likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { allocfunc alloc_func = __Pyx_PyType_GetSlot(t, tp_alloc, allocfunc); return alloc_func(t, 0); } else { newfunc tp_new = __Pyx_PyType_TryGetSlot(&PyBaseObject_Type, tp_new, newfunc); #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000 if (!tp_new) { PyObject *new_str = PyUnicode_FromString("__new__"); if (likely(new_str)) { PyObject *o = PyObject_CallMethodObjArgs((PyObject *)&PyBaseObject_Type, new_str, t, NULL); Py_DECREF(new_str); return o; } else return NULL; } else #endif return tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0); } } /* SetPackagePathFromImportLib */ #if !CYTHON_PEP489_MULTI_PHASE_INIT static int __Pyx_SetPackagePathFromImportLib(PyObject *module_name) { PyObject *importlib, *osmod, *ossep, *parts, *package_path; PyObject *file_path = NULL; PyObject *item; int result; PyObject *spec; importlib = PyImport_ImportModule("importlib.util"); if (unlikely(!importlib)) goto bad; spec = PyObject_CallMethod(importlib, "find_spec", "(O)", module_name); Py_DECREF(importlib); if (unlikely(!spec)) goto bad; file_path = PyObject_GetAttrString(spec, "origin"); Py_DECREF(spec); if (unlikely(!file_path)) goto bad; if (unlikely(PyObject_SetAttrString(__pyx_m, "__file__", file_path) < 0)) goto bad; osmod = PyImport_ImportModule("os"); if (unlikely(!osmod)) goto bad; ossep = PyObject_GetAttrString(osmod, "sep"); Py_DECREF(osmod); if (unlikely(!ossep)) goto bad; parts = PyObject_CallMethod(file_path, "rsplit", "(Oi)", ossep, 1); Py_DECREF(file_path); file_path = NULL; Py_DECREF(ossep); if (unlikely(!parts)) goto bad; #if CYTHON_ASSUME_SAFE_MACROS package_path = Py_BuildValue("[O]", PyList_GET_ITEM(parts, 0)); #else item = PyList_GetItem(parts, 0); if (unlikely(!item)) goto bad; package_path = Py_BuildValue("[O]", item); #endif Py_DECREF(parts); if (unlikely(!package_path)) goto bad; goto set_path; bad: PyErr_WriteUnraisable(module_name); Py_XDECREF(file_path); PyErr_Clear(); package_path = PyList_New(0); if (unlikely(!package_path)) return -1; set_path: result = PyObject_SetAttrString(__pyx_m, "__path__", package_path); Py_DECREF(package_path); return result; } #endif /* ValidateBasesTuple (used by PyType_Ready) */ #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) { Py_ssize_t i, n; #if CYTHON_ASSUME_SAFE_SIZE n = PyTuple_GET_SIZE(bases); #else n = PyTuple_Size(bases); if (unlikely(n < 0)) return -1; #endif for (i = 1; i < n; i++) { PyTypeObject *b; #if CYTHON_AVOID_BORROWED_REFS PyObject *b0 = PySequence_GetItem(bases, i); if (!b0) return -1; #elif CYTHON_ASSUME_SAFE_MACROS PyObject *b0 = PyTuple_GET_ITEM(bases, i); #else PyObject *b0 = PyTuple_GetItem(bases, i); if (!b0) return -1; #endif b = (PyTypeObject*) b0; if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE)) { __Pyx_TypeName b_name = __Pyx_PyType_GetFullyQualifiedName(b); PyErr_Format(PyExc_TypeError, "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name); __Pyx_DECREF_TypeName(b_name); #if CYTHON_AVOID_BORROWED_REFS Py_DECREF(b0); #endif return -1; } if (dictoffset == 0) { Py_ssize_t b_dictoffset = 0; #if CYTHON_USE_TYPE_SLOTS b_dictoffset = b->tp_dictoffset; #else PyObject *py_b_dictoffset = PyObject_GetAttrString((PyObject*)b, "__dictoffset__"); if (!py_b_dictoffset) goto dictoffset_return; b_dictoffset = PyLong_AsSsize_t(py_b_dictoffset); Py_DECREF(py_b_dictoffset); if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return; #endif if (b_dictoffset) { { __Pyx_TypeName b_name = __Pyx_PyType_GetFullyQualifiedName(b); PyErr_Format(PyExc_TypeError, "extension type '%.200s' has no __dict__ slot, " "but base type '" __Pyx_FMT_TYPENAME "' has: " "either add 'cdef dict __dict__' to the extension type " "or add '__slots__ = [...]' to the base type", type_name, b_name); __Pyx_DECREF_TypeName(b_name); } #if !CYTHON_USE_TYPE_SLOTS dictoffset_return: #endif #if CYTHON_AVOID_BORROWED_REFS Py_DECREF(b0); #endif return -1; } } #if CYTHON_AVOID_BORROWED_REFS Py_DECREF(b0); #endif } return 0; } #endif /* PyType_Ready */ CYTHON_UNUSED static int __Pyx_PyType_HasMultipleInheritance(PyTypeObject *t) { while (t) { PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*); if (bases) { return 1; } t = __Pyx_PyType_GetSlot(t, tp_base, PyTypeObject*); } return 0; } static int __Pyx_PyType_Ready(PyTypeObject *t) { #if CYTHON_USE_TYPE_SPECS || !CYTHON_COMPILING_IN_CPYTHON || defined(PYSTON_MAJOR_VERSION) (void)__Pyx_PyObject_CallMethod0; #if CYTHON_USE_TYPE_SPECS (void)__Pyx_validate_bases_tuple; #endif return PyType_Ready(t); #else int r; if (!__Pyx_PyType_HasMultipleInheritance(t)) { return PyType_Ready(t); } PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*); if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1)) return -1; #if !defined(PYSTON_MAJOR_VERSION) { int gc_was_enabled; #if PY_VERSION_HEX >= 0x030A00b1 gc_was_enabled = PyGC_Disable(); (void)__Pyx_PyObject_CallMethod0; #else PyObject *ret, *py_status; PyObject *gc = NULL; #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400) &&\ !CYTHON_COMPILING_IN_GRAAL gc = PyImport_GetModule(__pyx_mstate_global->__pyx_kp_u_gc); #endif if (unlikely(!gc)) gc = PyImport_Import(__pyx_mstate_global->__pyx_kp_u_gc); if (unlikely(!gc)) return -1; py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_isenabled); if (unlikely(!py_status)) { Py_DECREF(gc); return -1; } gc_was_enabled = __Pyx_PyObject_IsTrue(py_status); Py_DECREF(py_status); if (gc_was_enabled > 0) { ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_disable); if (unlikely(!ret)) { Py_DECREF(gc); return -1; } Py_DECREF(ret); } else if (unlikely(gc_was_enabled == -1)) { Py_DECREF(gc); return -1; } #endif t->tp_flags |= Py_TPFLAGS_HEAPTYPE; #if PY_VERSION_HEX >= 0x030A0000 t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE; #endif #else (void)__Pyx_PyObject_CallMethod0; #endif r = PyType_Ready(t); #if !defined(PYSTON_MAJOR_VERSION) t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE; #if PY_VERSION_HEX >= 0x030A00b1 if (gc_was_enabled) PyGC_Enable(); #else if (gc_was_enabled) { PyObject *tp, *v, *tb; PyErr_Fetch(&tp, &v, &tb); ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_enable); if (likely(ret || r == -1)) { Py_XDECREF(ret); PyErr_Restore(tp, v, tb); } else { Py_XDECREF(tp); Py_XDECREF(v); Py_XDECREF(tb); r = -1; } } Py_DECREF(gc); #endif } #endif return r; #endif } /* DelItemOnTypeDict (used by SetupReduce) */ static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k) { int result; PyObject *tp_dict; #if CYTHON_COMPILING_IN_LIMITED_API tp_dict = __Pyx_GetTypeDict(tp); if (unlikely(!tp_dict)) return -1; #else tp_dict = tp->tp_dict; #endif result = PyDict_DelItem(tp_dict, k); if (likely(!result)) PyType_Modified(tp); return result; } /* SetupReduce */ static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { int ret; PyObject *name_attr; name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_mstate_global->__pyx_n_u_name_2); if (likely(name_attr)) { ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); } else { ret = -1; } if (unlikely(ret < 0)) { PyErr_Clear(); ret = 0; } Py_XDECREF(name_attr); return ret; } static int __Pyx_setup_reduce(PyObject* type_obj) { int ret = 0; PyObject *object_reduce = NULL; PyObject *object_getstate = NULL; PyObject *object_reduce_ex = NULL; PyObject *reduce = NULL; PyObject *reduce_ex = NULL; PyObject *reduce_cython = NULL; PyObject *setstate = NULL; PyObject *setstate_cython = NULL; PyObject *getstate = NULL; #if CYTHON_USE_PYTYPE_LOOKUP getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_getstate); #else getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_getstate); if (!getstate && PyErr_Occurred()) { goto __PYX_BAD; } #endif if (getstate) { #if CYTHON_USE_PYTYPE_LOOKUP object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_getstate); #else object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_getstate); if (!object_getstate && PyErr_Occurred()) { goto __PYX_BAD; } #endif if (object_getstate != getstate) { goto __PYX_GOOD; } } #if CYTHON_USE_PYTYPE_LOOKUP object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; #else object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; #endif reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; if (reduce_ex == object_reduce_ex) { #if CYTHON_USE_PYTYPE_LOOKUP object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce); if (!object_reduce) goto __PYX_BAD; #else object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce); if (!object_reduce) goto __PYX_BAD; #endif reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce); if (unlikely(!reduce)) goto __PYX_BAD; if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_mstate_global->__pyx_n_u_reduce_cython)) { reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython); if (likely(reduce_cython)) { ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; } else if (reduce == object_reduce || PyErr_Occurred()) { goto __PYX_BAD; } setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate); if (!setstate) PyErr_Clear(); if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_mstate_global->__pyx_n_u_setstate_cython)) { setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython); if (likely(setstate_cython)) { ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; } else if (!setstate || PyErr_Occurred()) { goto __PYX_BAD; } } PyType_Modified((PyTypeObject*)type_obj); } } goto __PYX_GOOD; __PYX_BAD: if (!PyErr_Occurred()) { __Pyx_TypeName type_obj_name = __Pyx_PyType_GetFullyQualifiedName((PyTypeObject*)type_obj); PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for " __Pyx_FMT_TYPENAME, type_obj_name); __Pyx_DECREF_TypeName(type_obj_name); } ret = -1; __PYX_GOOD: #if !CYTHON_USE_PYTYPE_LOOKUP Py_XDECREF(object_reduce); Py_XDECREF(object_reduce_ex); Py_XDECREF(object_getstate); Py_XDECREF(getstate); #endif Py_XDECREF(reduce); Py_XDECREF(reduce_ex); Py_XDECREF(reduce_cython); Py_XDECREF(setstate); Py_XDECREF(setstate_cython); return ret; } /* SetVTable */ static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) { PyObject *ob = PyCapsule_New(vtable, 0, 0); if (unlikely(!ob)) goto bad; #if CYTHON_COMPILING_IN_LIMITED_API if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_mstate_global->__pyx_n_u_pyx_vtable, ob) < 0)) #else if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_mstate_global->__pyx_n_u_pyx_vtable, ob) < 0)) #endif goto bad; Py_DECREF(ob); return 0; bad: Py_XDECREF(ob); return -1; } /* GetVTable (used by MergeVTables) */ static void* __Pyx_GetVtable(PyTypeObject *type) { void* ptr; #if CYTHON_COMPILING_IN_LIMITED_API PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_mstate_global->__pyx_n_u_pyx_vtable); #else PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_mstate_global->__pyx_n_u_pyx_vtable); #endif if (!ob) goto bad; ptr = PyCapsule_GetPointer(ob, 0); if (!ptr && !PyErr_Occurred()) PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type"); Py_DECREF(ob); return ptr; bad: Py_XDECREF(ob); return NULL; } /* MergeVTables */ static int __Pyx_MergeVtables(PyTypeObject *type) { int i=0; Py_ssize_t size; void** base_vtables; __Pyx_TypeName tp_base_name = NULL; __Pyx_TypeName base_name = NULL; void* unknown = (void*)-1; PyObject* bases = __Pyx_PyType_GetSlot(type, tp_bases, PyObject*); int base_depth = 0; { PyTypeObject* base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*); while (base) { base_depth += 1; base = __Pyx_PyType_GetSlot(base, tp_base, PyTypeObject*); } } base_vtables = (void**) PyMem_Malloc(sizeof(void*) * (size_t)(base_depth + 1)); base_vtables[0] = unknown; #if CYTHON_COMPILING_IN_LIMITED_API size = PyTuple_Size(bases); if (size < 0) goto other_failure; #else size = PyTuple_GET_SIZE(bases); #endif for (i = 1; i < size; i++) { PyObject *basei; void* base_vtable; #if CYTHON_AVOID_BORROWED_REFS basei = PySequence_GetItem(bases, i); if (unlikely(!basei)) goto other_failure; #elif !CYTHON_ASSUME_SAFE_MACROS basei = PyTuple_GetItem(bases, i); if (unlikely(!basei)) goto other_failure; #else basei = PyTuple_GET_ITEM(bases, i); #endif base_vtable = __Pyx_GetVtable((PyTypeObject*)basei); #if CYTHON_AVOID_BORROWED_REFS Py_DECREF(basei); #endif if (base_vtable != NULL) { int j; PyTypeObject* base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*); for (j = 0; j < base_depth; j++) { if (base_vtables[j] == unknown) { base_vtables[j] = __Pyx_GetVtable(base); base_vtables[j + 1] = unknown; } if (base_vtables[j] == base_vtable) { break; } else if (base_vtables[j] == NULL) { goto bad; } base = __Pyx_PyType_GetSlot(base, tp_base, PyTypeObject*); } } } PyErr_Clear(); PyMem_Free(base_vtables); return 0; bad: { PyTypeObject* basei = NULL; PyTypeObject* tp_base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*); tp_base_name = __Pyx_PyType_GetFullyQualifiedName(tp_base); #if CYTHON_AVOID_BORROWED_REFS basei = (PyTypeObject*)PySequence_GetItem(bases, i); if (unlikely(!basei)) goto really_bad; #elif !CYTHON_ASSUME_SAFE_MACROS basei = (PyTypeObject*)PyTuple_GetItem(bases, i); if (unlikely(!basei)) goto really_bad; #else basei = (PyTypeObject*)PyTuple_GET_ITEM(bases, i); #endif base_name = __Pyx_PyType_GetFullyQualifiedName(basei); #if CYTHON_AVOID_BORROWED_REFS Py_DECREF(basei); #endif } PyErr_Format(PyExc_TypeError, "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base_name, base_name); #if CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS really_bad: // bad has failed! #endif __Pyx_DECREF_TypeName(tp_base_name); __Pyx_DECREF_TypeName(base_name); #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS other_failure: #endif PyMem_Free(base_vtables); return -1; } /* FormatTypeName (used by ValidateExternBase) */ #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000 static __Pyx_TypeName __Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp) { PyObject *module = NULL, *name = NULL, *result = NULL; #if __PYX_LIMITED_VERSION_HEX < 0x030b0000 name = __Pyx_PyObject_GetAttrStr((PyObject *)tp, __pyx_mstate_global->__pyx_n_u_qualname); #else name = PyType_GetQualName(tp); #endif if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) goto bad; module = __Pyx_PyObject_GetAttrStr((PyObject *)tp, __pyx_mstate_global->__pyx_n_u_module); if (unlikely(module == NULL) || unlikely(!PyUnicode_Check(module))) goto bad; if (PyUnicode_CompareWithASCIIString(module, "builtins") == 0) { result = name; name = NULL; goto done; } result = PyUnicode_FromFormat("%U.%U", module, name); if (unlikely(result == NULL)) goto bad; done: Py_XDECREF(name); Py_XDECREF(module); return result; bad: PyErr_Clear(); if (name) { result = name; name = NULL; } else { result = __Pyx_NewRef(__pyx_mstate_global->__pyx_kp_u__4); } goto done; } #endif /* ValidateExternBase */ static int __Pyx_validate_extern_base(PyTypeObject *base) { Py_ssize_t itemsize; #if CYTHON_COMPILING_IN_LIMITED_API PyObject *py_itemsize; #endif #if !CYTHON_COMPILING_IN_LIMITED_API itemsize = ((PyTypeObject *)base)->tp_itemsize; #else py_itemsize = PyObject_GetAttrString((PyObject*)base, "__itemsize__"); if (!py_itemsize) return -1; itemsize = PyLong_AsSsize_t(py_itemsize); Py_DECREF(py_itemsize); py_itemsize = 0; if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred()) return -1; #endif if (itemsize) { __Pyx_TypeName b_name = __Pyx_PyType_GetFullyQualifiedName(base); PyErr_Format(PyExc_TypeError, "inheritance from PyVarObject types like '" __Pyx_FMT_TYPENAME "' not currently supported", b_name); __Pyx_DECREF_TypeName(b_name); return -1; } return 0; } /* TypeImport */ #ifndef __PYX_HAVE_RT_ImportType_3_2_4 #define __PYX_HAVE_RT_ImportType_3_2_4 static PyTypeObject *__Pyx_ImportType_3_2_4(PyObject *module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_2_4 check_size) { PyObject *result = 0; Py_ssize_t basicsize; Py_ssize_t itemsize; #if defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API) PyObject *py_basicsize; PyObject *py_itemsize; #endif result = PyObject_GetAttrString(module, class_name); if (!result) goto bad; if (!PyType_Check(result)) { PyErr_Format(PyExc_TypeError, "%.200s.%.200s is not a type object", module_name, class_name); goto bad; } #if !( defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API) ) basicsize = ((PyTypeObject *)result)->tp_basicsize; itemsize = ((PyTypeObject *)result)->tp_itemsize; #else if (size == 0) { return (PyTypeObject *)result; } py_basicsize = PyObject_GetAttrString(result, "__basicsize__"); if (!py_basicsize) goto bad; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = 0; if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred()) goto bad; py_itemsize = PyObject_GetAttrString(result, "__itemsize__"); if (!py_itemsize) goto bad; itemsize = PyLong_AsSsize_t(py_itemsize); Py_DECREF(py_itemsize); py_itemsize = 0; if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred()) goto bad; #endif if (itemsize) { if (size % alignment) { alignment = size % alignment; } if (itemsize < (Py_ssize_t)alignment) itemsize = (Py_ssize_t)alignment; } if ((size_t)(basicsize + itemsize) < size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize+itemsize); goto bad; } if (check_size == __Pyx_ImportType_CheckSize_Error_3_2_4 && ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd-%zd from PyObject", module_name, class_name, size, basicsize, basicsize+itemsize); goto bad; } else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_2_4 && (size_t)basicsize > size) { if (PyErr_WarnFormat(NULL, 0, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize) < 0) { goto bad; } } return (PyTypeObject *)result; bad: Py_XDECREF(result); return NULL; } #endif /* HasAttr (used by ImportImpl) */ #if __PYX_LIMITED_VERSION_HEX < 0x030d0000 static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { PyObject *r; if (unlikely(!PyUnicode_Check(n))) { PyErr_SetString(PyExc_TypeError, "hasattr(): attribute name must be string"); return -1; } r = __Pyx_PyObject_GetAttrStrNoError(o, n); if (!r) { return (unlikely(PyErr_Occurred())) ? -1 : 0; } else { Py_DECREF(r); return 1; } } #endif /* ImportImpl (used by Import) */ static int __Pyx__Import_GetModule(PyObject *qualname, PyObject **module) { PyObject *imported_module = PyImport_GetModule(qualname); if (unlikely(!imported_module)) { *module = NULL; if (PyErr_Occurred()) { return -1; } return 0; } *module = imported_module; return 1; } static int __Pyx__Import_Lookup(PyObject *qualname, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject **module) { PyObject *imported_module; PyObject *top_level_package_name; Py_ssize_t i; int status, module_found; Py_ssize_t dot_index; module_found = __Pyx__Import_GetModule(qualname, &imported_module); if (unlikely(!module_found || module_found == -1)) { *module = NULL; return module_found; } if (imported_names) { for (i = 0; i < len_imported_names; i++) { PyObject *imported_name = imported_names[i]; #if __PYX_LIMITED_VERSION_HEX < 0x030d0000 int has_imported_attribute = PyObject_HasAttr(imported_module, imported_name); #else int has_imported_attribute = PyObject_HasAttrWithError(imported_module, imported_name); if (unlikely(has_imported_attribute == -1)) goto error; #endif if (!has_imported_attribute) { goto not_found; } } *module = imported_module; return 1; } dot_index = PyUnicode_FindChar(qualname, '.', 0, PY_SSIZE_T_MAX, 1); if (dot_index == -1) { *module = imported_module; return 1; } if (unlikely(dot_index == -2)) goto error; top_level_package_name = PyUnicode_Substring(qualname, 0, dot_index); if (unlikely(!top_level_package_name)) goto error; Py_DECREF(imported_module); status = __Pyx__Import_GetModule(top_level_package_name, module); Py_DECREF(top_level_package_name); return status; error: Py_DECREF(imported_module); *module = NULL; return -1; not_found: Py_DECREF(imported_module); *module = NULL; return 0; } static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level) { PyObject *module = 0; PyObject *empty_dict = 0; PyObject *from_list = 0; int module_found; if (!qualname) { qualname = name; } module_found = __Pyx__Import_Lookup(qualname, imported_names, len_imported_names, &module); if (likely(module_found == 1)) { return module; } else if (unlikely(module_found == -1)) { return NULL; } empty_dict = PyDict_New(); if (unlikely(!empty_dict)) goto bad; if (imported_names) { #if CYTHON_COMPILING_IN_CPYTHON from_list = __Pyx_PyList_FromArray(imported_names, len_imported_names); if (unlikely(!from_list)) goto bad; #else from_list = PyList_New(len_imported_names); if (unlikely(!from_list)) goto bad; for (Py_ssize_t i=0; i__pyx_d, level); } /* ImportFrom */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { const char* module_name_str = 0; PyObject* module_name = 0; PyObject* module_dot = 0; PyObject* full_name = 0; PyErr_Clear(); module_name_str = PyModule_GetName(module); if (unlikely(!module_name_str)) { goto modbad; } module_name = PyUnicode_FromString(module_name_str); if (unlikely(!module_name)) { goto modbad; } module_dot = PyUnicode_Concat(module_name, __pyx_mstate_global->__pyx_kp_u__2); if (unlikely(!module_dot)) { goto modbad; } full_name = PyUnicode_Concat(module_dot, name); if (unlikely(!full_name)) { goto modbad; } #if (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030400) ||\ CYTHON_COMPILING_IN_GRAAL { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) goto modbad; value = PyObject_GetItem(modules, full_name); } #else value = PyImport_GetModule(full_name); #endif modbad: Py_XDECREF(full_name); Py_XDECREF(module_dot); Py_XDECREF(module_name); } if (unlikely(!value)) { PyErr_Format(PyExc_ImportError, "cannot import name %S", name); } return value; } /* Globals */ static PyObject* __Pyx_Globals(void) { return __Pyx_NewRef(__pyx_mstate_global->__pyx_d); } /* PyMethodNew (used by CythonFunctionShared) */ #if CYTHON_COMPILING_IN_LIMITED_API static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) { PyObject *result; CYTHON_UNUSED_VAR(typ); if (!self) return __Pyx_NewRef(func); #if __PYX_LIMITED_VERSION_HEX >= 0x030C0000 { PyObject *args[] = {func, self}; result = PyObject_Vectorcall(__pyx_mstate_global->__Pyx_CachedMethodType, args, 2, NULL); } #else result = PyObject_CallFunctionObjArgs(__pyx_mstate_global->__Pyx_CachedMethodType, func, self, NULL); #endif return result; } #else static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) { CYTHON_UNUSED_VAR(typ); if (!self) return __Pyx_NewRef(func); return PyMethod_New(func, self); } #endif /* PyVectorcallFastCallDict (used by CythonFunctionShared) */ #if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw) { PyObject *res = NULL; PyObject *kwnames; PyObject **newargs; PyObject **kwvalues; Py_ssize_t i; #if CYTHON_AVOID_BORROWED_REFS PyObject *pos; #else Py_ssize_t pos; #endif size_t j; PyObject *key, *value; unsigned long keys_are_strings; #if !CYTHON_ASSUME_SAFE_SIZE Py_ssize_t nkw = PyDict_Size(kw); if (unlikely(nkw == -1)) return NULL; #else Py_ssize_t nkw = PyDict_GET_SIZE(kw); #endif newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0])); if (unlikely(newargs == NULL)) { PyErr_NoMemory(); return NULL; } for (j = 0; j < nargs; j++) newargs[j] = args[j]; kwnames = PyTuple_New(nkw); if (unlikely(kwnames == NULL)) { PyMem_Free(newargs); return NULL; } kwvalues = newargs + nargs; pos = 0; i = 0; keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS; while (__Pyx_PyDict_NextRef(kw, &pos, &key, &value)) { keys_are_strings &= #if CYTHON_COMPILING_IN_LIMITED_API PyType_GetFlags(Py_TYPE(key)); #else Py_TYPE(key)->tp_flags; #endif #if !CYTHON_ASSUME_SAFE_MACROS if (unlikely(PyTuple_SetItem(kwnames, i, key) < 0)) goto cleanup; #else PyTuple_SET_ITEM(kwnames, i, key); #endif kwvalues[i] = value; i++; } if (unlikely(!keys_are_strings)) { PyErr_SetString(PyExc_TypeError, "keywords must be strings"); goto cleanup; } res = vc(func, newargs, nargs, kwnames); cleanup: #if CYTHON_AVOID_BORROWED_REFS Py_DECREF(pos); #endif Py_DECREF(kwnames); for (i = 0; i < nkw; i++) Py_DECREF(kwvalues[i]); PyMem_Free(newargs); return res; } static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw) { Py_ssize_t kw_size = likely(kw == NULL) ? 0 : #if !CYTHON_ASSUME_SAFE_SIZE PyDict_Size(kw); #else PyDict_GET_SIZE(kw); #endif if (kw_size == 0) { return vc(func, args, nargs, NULL); } #if !CYTHON_ASSUME_SAFE_SIZE else if (unlikely(kw_size == -1)) { return NULL; } #endif return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw); } #endif /* CythonFunctionShared (used by CythonFunction) */ #if CYTHON_COMPILING_IN_LIMITED_API static CYTHON_INLINE int __Pyx__IsSameCyOrCFunctionNoMethod(PyObject *func, void (*cfunc)(void)) { if (__Pyx_CyFunction_Check(func)) { return PyCFunction_GetFunction(((__pyx_CyFunctionObject*)func)->func) == (PyCFunction) cfunc; } else if (PyCFunction_Check(func)) { return PyCFunction_GetFunction(func) == (PyCFunction) cfunc; } return 0; } static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) { if ((PyObject*)Py_TYPE(func) == __pyx_mstate_global->__Pyx_CachedMethodType) { int result; PyObject *newFunc = PyObject_GetAttr(func, __pyx_mstate_global->__pyx_n_u_func); if (unlikely(!newFunc)) { PyErr_Clear(); // It's only an optimization, so don't throw an error return 0; } result = __Pyx__IsSameCyOrCFunctionNoMethod(newFunc, cfunc); Py_DECREF(newFunc); return result; } return __Pyx__IsSameCyOrCFunctionNoMethod(func, cfunc); } #else static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) { if (PyMethod_Check(func)) { func = PyMethod_GET_FUNCTION(func); } return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc; } #endif static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) { #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API __Pyx_Py_XDECREF_SET( __Pyx_CyFunction_GetClassObj(f), ((classobj) ? __Pyx_NewRef(classobj) : NULL)); #else __Pyx_Py_XDECREF_SET( ((PyCMethodObject *) (f))->mm_class, (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL)); #endif } static PyObject * __Pyx_CyFunction_get_doc_locked(__pyx_CyFunctionObject *op) { if (unlikely(op->func_doc == NULL)) { #if CYTHON_COMPILING_IN_LIMITED_API op->func_doc = PyObject_GetAttrString(op->func, "__doc__"); if (unlikely(!op->func_doc)) return NULL; #else if (((PyCFunctionObject*)op)->m_ml->ml_doc) { op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc); if (unlikely(op->func_doc == NULL)) return NULL; } else { Py_INCREF(Py_None); return Py_None; } #endif } Py_INCREF(op->func_doc); return op->func_doc; } static PyObject * __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure) { PyObject *result; CYTHON_UNUSED_VAR(closure); __Pyx_BEGIN_CRITICAL_SECTION(op); result = __Pyx_CyFunction_get_doc_locked(op); __Pyx_END_CRITICAL_SECTION(); return result; } static int __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); if (value == NULL) { value = Py_None; } Py_INCREF(value); __Pyx_BEGIN_CRITICAL_SECTION(op); __Pyx_Py_XDECREF_SET(op->func_doc, value); __Pyx_END_CRITICAL_SECTION(); return 0; } static PyObject * __Pyx_CyFunction_get_name_locked(__pyx_CyFunctionObject *op) { if (unlikely(op->func_name == NULL)) { #if CYTHON_COMPILING_IN_LIMITED_API op->func_name = PyObject_GetAttrString(op->func, "__name__"); #else op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name); #endif if (unlikely(op->func_name == NULL)) return NULL; } Py_INCREF(op->func_name); return op->func_name; } static PyObject * __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context) { PyObject *result = NULL; CYTHON_UNUSED_VAR(context); __Pyx_BEGIN_CRITICAL_SECTION(op); result = __Pyx_CyFunction_get_name_locked(op); __Pyx_END_CRITICAL_SECTION(); return result; } static int __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); if (unlikely(value == NULL || !PyUnicode_Check(value))) { PyErr_SetString(PyExc_TypeError, "__name__ must be set to a string object"); return -1; } Py_INCREF(value); __Pyx_BEGIN_CRITICAL_SECTION(op); __Pyx_Py_XDECREF_SET(op->func_name, value); __Pyx_END_CRITICAL_SECTION(); return 0; } static PyObject * __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(context); PyObject *result; __Pyx_BEGIN_CRITICAL_SECTION(op); Py_INCREF(op->func_qualname); result = op->func_qualname; __Pyx_END_CRITICAL_SECTION(); return result; } static int __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); if (unlikely(value == NULL || !PyUnicode_Check(value))) { PyErr_SetString(PyExc_TypeError, "__qualname__ must be set to a string object"); return -1; } Py_INCREF(value); __Pyx_BEGIN_CRITICAL_SECTION(op); __Pyx_Py_XDECREF_SET(op->func_qualname, value); __Pyx_END_CRITICAL_SECTION(); return 0; } #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000 static PyObject * __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(context); if (unlikely(op->func_dict == NULL)) { op->func_dict = PyDict_New(); if (unlikely(op->func_dict == NULL)) return NULL; } Py_INCREF(op->func_dict); return op->func_dict; } #endif static PyObject * __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(context); Py_INCREF(op->func_globals); return op->func_globals; } static PyObject * __Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(op); CYTHON_UNUSED_VAR(context); Py_INCREF(Py_None); return Py_None; } static PyObject * __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context) { PyObject* result = (op->func_code) ? op->func_code : Py_None; CYTHON_UNUSED_VAR(context); Py_INCREF(result); return result; } static int __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { int result = 0; PyObject *res = op->defaults_getter((PyObject *) op); if (unlikely(!res)) return -1; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS op->defaults_tuple = PyTuple_GET_ITEM(res, 0); Py_INCREF(op->defaults_tuple); op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); Py_INCREF(op->defaults_kwdict); #else op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0); if (unlikely(!op->defaults_tuple)) result = -1; else { op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1); if (unlikely(!op->defaults_kwdict)) result = -1; } #endif Py_DECREF(res); return result; } static int __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) { CYTHON_UNUSED_VAR(context); if (!value) { value = Py_None; } else if (unlikely(value != Py_None && !PyTuple_Check(value))) { PyErr_SetString(PyExc_TypeError, "__defaults__ must be set to a tuple object"); return -1; } PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not " "currently affect the values used in function calls", 1); Py_INCREF(value); __Pyx_BEGIN_CRITICAL_SECTION(op); __Pyx_Py_XDECREF_SET(op->defaults_tuple, value); __Pyx_END_CRITICAL_SECTION(); return 0; } static PyObject * __Pyx_CyFunction_get_defaults_locked(__pyx_CyFunctionObject *op) { PyObject* result = op->defaults_tuple; if (unlikely(!result)) { if (op->defaults_getter) { if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL; result = op->defaults_tuple; } else { result = Py_None; } } Py_INCREF(result); return result; } static PyObject * __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) { PyObject* result = NULL; CYTHON_UNUSED_VAR(context); __Pyx_BEGIN_CRITICAL_SECTION(op); result = __Pyx_CyFunction_get_defaults_locked(op); __Pyx_END_CRITICAL_SECTION(); return result; } static int __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) { CYTHON_UNUSED_VAR(context); if (!value) { value = Py_None; } else if (unlikely(value != Py_None && !PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "__kwdefaults__ must be set to a dict object"); return -1; } PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not " "currently affect the values used in function calls", 1); Py_INCREF(value); __Pyx_BEGIN_CRITICAL_SECTION(op); __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value); __Pyx_END_CRITICAL_SECTION(); return 0; } static PyObject * __Pyx_CyFunction_get_kwdefaults_locked(__pyx_CyFunctionObject *op) { PyObject* result = op->defaults_kwdict; if (unlikely(!result)) { if (op->defaults_getter) { if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL; result = op->defaults_kwdict; } else { result = Py_None; } } Py_INCREF(result); return result; } static PyObject * __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) { PyObject* result; CYTHON_UNUSED_VAR(context); __Pyx_BEGIN_CRITICAL_SECTION(op); result = __Pyx_CyFunction_get_kwdefaults_locked(op); __Pyx_END_CRITICAL_SECTION(); return result; } static int __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) { CYTHON_UNUSED_VAR(context); if (!value || value == Py_None) { value = NULL; } else if (unlikely(!PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "__annotations__ must be set to a dict object"); return -1; } Py_XINCREF(value); __Pyx_BEGIN_CRITICAL_SECTION(op); __Pyx_Py_XDECREF_SET(op->func_annotations, value); __Pyx_END_CRITICAL_SECTION(); return 0; } static PyObject * __Pyx_CyFunction_get_annotations_locked(__pyx_CyFunctionObject *op) { PyObject* result = op->func_annotations; if (unlikely(!result)) { result = PyDict_New(); if (unlikely(!result)) return NULL; op->func_annotations = result; } Py_INCREF(result); return result; } static PyObject * __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) { PyObject *result; CYTHON_UNUSED_VAR(context); __Pyx_BEGIN_CRITICAL_SECTION(op); result = __Pyx_CyFunction_get_annotations_locked(op); __Pyx_END_CRITICAL_SECTION(); return result; } static PyObject * __Pyx_CyFunction_get_is_coroutine_value(__pyx_CyFunctionObject *op) { int is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE; if (is_coroutine) { PyObject *is_coroutine_value, *module, *fromlist, *marker = __pyx_mstate_global->__pyx_n_u_is_coroutine; fromlist = PyList_New(1); if (unlikely(!fromlist)) return NULL; Py_INCREF(marker); #if CYTHON_ASSUME_SAFE_MACROS PyList_SET_ITEM(fromlist, 0, marker); #else if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) { Py_DECREF(marker); Py_DECREF(fromlist); return NULL; } #endif module = PyImport_ImportModuleLevelObject(__pyx_mstate_global->__pyx_n_u_asyncio_coroutines, NULL, NULL, fromlist, 0); Py_DECREF(fromlist); if (unlikely(!module)) goto ignore; is_coroutine_value = __Pyx_PyObject_GetAttrStr(module, marker); Py_DECREF(module); if (likely(is_coroutine_value)) { return is_coroutine_value; } ignore: PyErr_Clear(); } return __Pyx_PyBool_FromLong(is_coroutine); } static PyObject * __Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) { PyObject *result; CYTHON_UNUSED_VAR(context); if (op->func_is_coroutine) { return __Pyx_NewRef(op->func_is_coroutine); } result = __Pyx_CyFunction_get_is_coroutine_value(op); if (unlikely(!result)) return NULL; __Pyx_BEGIN_CRITICAL_SECTION(op); if (op->func_is_coroutine) { Py_DECREF(result); result = __Pyx_NewRef(op->func_is_coroutine); } else { op->func_is_coroutine = __Pyx_NewRef(result); } __Pyx_END_CRITICAL_SECTION(); return result; } static void __Pyx_CyFunction_raise_argument_count_error(__pyx_CyFunctionObject *func, const char* message, Py_ssize_t size) { #if CYTHON_COMPILING_IN_LIMITED_API PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL); if (!py_name) return; PyErr_Format(PyExc_TypeError, "%.200S() %s (%" CYTHON_FORMAT_SSIZE_T "d given)", py_name, message, size); Py_DECREF(py_name); #else const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name; PyErr_Format(PyExc_TypeError, "%.200s() %s (%" CYTHON_FORMAT_SSIZE_T "d given)", name, message, size); #endif } static void __Pyx_CyFunction_raise_type_error(__pyx_CyFunctionObject *func, const char* message) { #if CYTHON_COMPILING_IN_LIMITED_API PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL); if (!py_name) return; PyErr_Format(PyExc_TypeError, "%.200S() %s", py_name, message); Py_DECREF(py_name); #else const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name; PyErr_Format(PyExc_TypeError, "%.200s() %s", name, message); #endif } #if CYTHON_COMPILING_IN_LIMITED_API static PyObject * __Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(context); return PyObject_GetAttrString(op->func, "__module__"); } static int __Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) { CYTHON_UNUSED_VAR(context); return PyObject_SetAttrString(op->func, "__module__", value); } #endif static PyGetSetDef __pyx_CyFunction_getsets[] = { {"func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {"__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {"func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {"__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {"__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0}, #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000 {"func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0}, {"__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0}, #else {"func_dict", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0}, {"__dict__", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0}, #endif {"func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {"__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {"func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {"__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {"func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {"__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {"func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {"__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {"__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0}, {"__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0}, {"_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0}, #if CYTHON_COMPILING_IN_LIMITED_API {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0}, #endif {0, 0, 0, 0, 0} }; static PyMemberDef __pyx_CyFunction_members[] = { #if !CYTHON_COMPILING_IN_LIMITED_API {"__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0}, #endif #if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API {"__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0}, #endif #if CYTHON_METH_FASTCALL #if CYTHON_COMPILING_IN_LIMITED_API {"__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0}, #else {"__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0}, #endif #if CYTHON_COMPILING_IN_LIMITED_API {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0}, #else {"__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0}, #endif #endif {0, 0, 0, 0, 0} }; static PyObject * __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args) { PyObject *result = NULL; CYTHON_UNUSED_VAR(args); __Pyx_BEGIN_CRITICAL_SECTION(m); Py_INCREF(m->func_qualname); result = m->func_qualname; __Pyx_END_CRITICAL_SECTION(); return result; } static PyMethodDef __pyx_CyFunction_methods[] = { {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, {0, 0, 0, 0} }; #if CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist) #else #define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist) #endif static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { #if !CYTHON_COMPILING_IN_LIMITED_API PyCFunctionObject *cf = (PyCFunctionObject*) op; #endif if (unlikely(op == NULL)) return NULL; #if CYTHON_COMPILING_IN_LIMITED_API op->func = PyCFunction_NewEx(ml, (PyObject*)op, module); if (unlikely(!op->func)) return NULL; #endif op->flags = flags; __Pyx_CyFunction_weakreflist(op) = NULL; #if !CYTHON_COMPILING_IN_LIMITED_API cf->m_ml = ml; cf->m_self = (PyObject *) op; #endif Py_XINCREF(closure); op->func_closure = closure; #if !CYTHON_COMPILING_IN_LIMITED_API Py_XINCREF(module); cf->m_module = module; #endif #if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API op->func_dict = NULL; #endif op->func_name = NULL; Py_INCREF(qualname); op->func_qualname = qualname; op->func_doc = NULL; #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API op->func_classobj = NULL; #else ((PyCMethodObject*)op)->mm_class = NULL; #endif op->func_globals = globals; Py_INCREF(op->func_globals); Py_XINCREF(code); op->func_code = code; op->defaults = NULL; op->defaults_tuple = NULL; op->defaults_kwdict = NULL; op->defaults_getter = NULL; op->func_annotations = NULL; op->func_is_coroutine = NULL; #if CYTHON_METH_FASTCALL switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) { case METH_NOARGS: __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS; break; case METH_O: __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O; break; case METH_METHOD | METH_FASTCALL | METH_KEYWORDS: __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD; break; case METH_FASTCALL | METH_KEYWORDS: __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS; break; case METH_VARARGS | METH_KEYWORDS: __Pyx_CyFunction_func_vectorcall(op) = NULL; break; default: PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction"); Py_DECREF(op); return NULL; } #endif return (PyObject *) op; } static int __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) { Py_CLEAR(m->func_closure); #if CYTHON_COMPILING_IN_LIMITED_API Py_CLEAR(m->func); #else Py_CLEAR(((PyCFunctionObject*)m)->m_module); #endif #if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API Py_CLEAR(m->func_dict); #elif PY_VERSION_HEX < 0x030d0000 _PyObject_ClearManagedDict((PyObject*)m); #else PyObject_ClearManagedDict((PyObject*)m); #endif Py_CLEAR(m->func_name); Py_CLEAR(m->func_qualname); Py_CLEAR(m->func_doc); Py_CLEAR(m->func_globals); Py_CLEAR(m->func_code); #if !CYTHON_COMPILING_IN_LIMITED_API #if PY_VERSION_HEX < 0x030900B1 Py_CLEAR(__Pyx_CyFunction_GetClassObj(m)); #else { PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class; ((PyCMethodObject *) (m))->mm_class = NULL; Py_XDECREF(cls); } #endif #endif Py_CLEAR(m->defaults_tuple); Py_CLEAR(m->defaults_kwdict); Py_CLEAR(m->func_annotations); Py_CLEAR(m->func_is_coroutine); Py_CLEAR(m->defaults); return 0; } static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m) { if (__Pyx_CyFunction_weakreflist(m) != NULL) PyObject_ClearWeakRefs((PyObject *) m); __Pyx_CyFunction_clear(m); __Pyx_PyHeapTypeObject_GC_Del(m); } static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) { PyObject_GC_UnTrack(m); __Pyx__CyFunction_dealloc(m); } static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) { { int e = __Pyx_call_type_traverse((PyObject*)m, 1, visit, arg); if (e) return e; } Py_VISIT(m->func_closure); #if CYTHON_COMPILING_IN_LIMITED_API Py_VISIT(m->func); #else Py_VISIT(((PyCFunctionObject*)m)->m_module); #endif #if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API Py_VISIT(m->func_dict); #else { int e = #if PY_VERSION_HEX < 0x030d0000 _PyObject_VisitManagedDict #else PyObject_VisitManagedDict #endif ((PyObject*)m, visit, arg); if (e != 0) return e; } #endif __Pyx_VISIT_CONST(m->func_name); __Pyx_VISIT_CONST(m->func_qualname); Py_VISIT(m->func_doc); Py_VISIT(m->func_globals); __Pyx_VISIT_CONST(m->func_code); #if !CYTHON_COMPILING_IN_LIMITED_API Py_VISIT(__Pyx_CyFunction_GetClassObj(m)); #endif Py_VISIT(m->defaults_tuple); Py_VISIT(m->defaults_kwdict); Py_VISIT(m->func_is_coroutine); Py_VISIT(m->defaults); return 0; } static PyObject* __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) { PyObject *repr; __Pyx_BEGIN_CRITICAL_SECTION(op); repr = PyUnicode_FromFormat("", op->func_qualname, (void *)op); __Pyx_END_CRITICAL_SECTION(); return repr; } static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) { #if CYTHON_COMPILING_IN_LIMITED_API PyObject *f = ((__pyx_CyFunctionObject*)func)->func; PyCFunction meth; int flags; meth = PyCFunction_GetFunction(f); if (unlikely(!meth)) return NULL; flags = PyCFunction_GetFlags(f); if (unlikely(flags < 0)) return NULL; #else PyCFunctionObject* f = (PyCFunctionObject*)func; PyCFunction meth = f->m_ml->ml_meth; int flags = f->m_ml->ml_flags; #endif Py_ssize_t size; switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { case METH_VARARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) return (*meth)(self, arg); break; case METH_VARARGS | METH_KEYWORDS: return (*(PyCFunctionWithKeywords)(void(*)(void))meth)(self, arg, kw); case METH_NOARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { #if CYTHON_ASSUME_SAFE_SIZE size = PyTuple_GET_SIZE(arg); #else size = PyTuple_Size(arg); if (unlikely(size < 0)) return NULL; #endif if (likely(size == 0)) return (*meth)(self, NULL); __Pyx_CyFunction_raise_argument_count_error( (__pyx_CyFunctionObject*)func, "takes no arguments", size); return NULL; } break; case METH_O: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { #if CYTHON_ASSUME_SAFE_SIZE size = PyTuple_GET_SIZE(arg); #else size = PyTuple_Size(arg); if (unlikely(size < 0)) return NULL; #endif if (likely(size == 1)) { PyObject *result, *arg0; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS arg0 = PyTuple_GET_ITEM(arg, 0); #else arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL; #endif result = (*meth)(self, arg0); #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_DECREF(arg0); #endif return result; } __Pyx_CyFunction_raise_argument_count_error( (__pyx_CyFunctionObject*)func, "takes exactly one argument", size); return NULL; } break; default: PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction"); return NULL; } __Pyx_CyFunction_raise_type_error( (__pyx_CyFunctionObject*)func, "takes no keyword arguments"); return NULL; } static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *self, *result; #if CYTHON_COMPILING_IN_LIMITED_API self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func); if (unlikely(!self) && PyErr_Occurred()) return NULL; #else self = ((PyCFunctionObject*)func)->m_self; #endif result = __Pyx_CyFunction_CallMethod(func, self, arg, kw); return result; } static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) { PyObject *result; __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; #if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc); if (vc) { #if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw); #else (void) &__Pyx_PyVectorcall_FastCallDict; return PyVectorcall_Call(func, args, kw); #endif } #endif if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { Py_ssize_t argc; PyObject *new_args; PyObject *self; #if CYTHON_ASSUME_SAFE_SIZE argc = PyTuple_GET_SIZE(args); #else argc = PyTuple_Size(args); if (unlikely(argc < 0)) return NULL; #endif new_args = PyTuple_GetSlice(args, 1, argc); if (unlikely(!new_args)) return NULL; self = PyTuple_GetItem(args, 0); if (unlikely(!self)) { Py_DECREF(new_args); PyErr_Format(PyExc_TypeError, "unbound method %.200S() needs an argument", cyfunc->func_qualname); return NULL; } result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw); Py_DECREF(new_args); } else { result = __Pyx_CyFunction_Call(func, args, kw); } return result; } #if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames) { int ret = 0; if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { if (unlikely(nargs < 1)) { __Pyx_CyFunction_raise_type_error( cyfunc, "needs an argument"); return -1; } ret = 1; } if (unlikely(kwnames) && unlikely(__Pyx_PyTuple_GET_SIZE(kwnames))) { __Pyx_CyFunction_raise_type_error( cyfunc, "takes no keyword arguments"); return -1; } return ret; } static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); PyObject *self; #if CYTHON_COMPILING_IN_LIMITED_API PyCFunction meth = PyCFunction_GetFunction(cyfunc->func); if (unlikely(!meth)) return NULL; #else PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth; #endif switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) { case 1: self = args[0]; args += 1; nargs -= 1; break; case 0: #if CYTHON_COMPILING_IN_LIMITED_API self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func); if (unlikely(!self) && PyErr_Occurred()) return NULL; #else self = ((PyCFunctionObject*)cyfunc)->m_self; #endif break; default: return NULL; } if (unlikely(nargs != 0)) { __Pyx_CyFunction_raise_argument_count_error( cyfunc, "takes no arguments", nargs); return NULL; } return meth(self, NULL); } static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); PyObject *self; #if CYTHON_COMPILING_IN_LIMITED_API PyCFunction meth = PyCFunction_GetFunction(cyfunc->func); if (unlikely(!meth)) return NULL; #else PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth; #endif switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) { case 1: self = args[0]; args += 1; nargs -= 1; break; case 0: #if CYTHON_COMPILING_IN_LIMITED_API self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func); if (unlikely(!self) && PyErr_Occurred()) return NULL; #else self = ((PyCFunctionObject*)cyfunc)->m_self; #endif break; default: return NULL; } if (unlikely(nargs != 1)) { __Pyx_CyFunction_raise_argument_count_error( cyfunc, "takes exactly one argument", nargs); return NULL; } return meth(self, args[0]); } static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); PyObject *self; #if CYTHON_COMPILING_IN_LIMITED_API PyCFunction meth = PyCFunction_GetFunction(cyfunc->func); if (unlikely(!meth)) return NULL; #else PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth; #endif switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) { case 1: self = args[0]; args += 1; nargs -= 1; break; case 0: #if CYTHON_COMPILING_IN_LIMITED_API self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func); if (unlikely(!self) && PyErr_Occurred()) return NULL; #else self = ((PyCFunctionObject*)cyfunc)->m_self; #endif break; default: return NULL; } return ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))meth)(self, args, nargs, kwnames); } static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc); Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); PyObject *self; #if CYTHON_COMPILING_IN_LIMITED_API PyCFunction meth = PyCFunction_GetFunction(cyfunc->func); if (unlikely(!meth)) return NULL; #else PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth; #endif switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) { case 1: self = args[0]; args += 1; nargs -= 1; break; case 0: #if CYTHON_COMPILING_IN_LIMITED_API self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func); if (unlikely(!self) && PyErr_Occurred()) return NULL; #else self = ((PyCFunctionObject*)cyfunc)->m_self; #endif break; default: return NULL; } #if PY_VERSION_HEX < 0x030e00A6 size_t nargs_value = (size_t) nargs; #else Py_ssize_t nargs_value = nargs; #endif return ((__Pyx_PyCMethod)(void(*)(void))meth)(self, cls, args, nargs_value, kwnames); } #endif static PyType_Slot __pyx_CyFunctionType_slots[] = { {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc}, {Py_tp_repr, (void *)__Pyx_CyFunction_repr}, {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod}, {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse}, {Py_tp_clear, (void *)__Pyx_CyFunction_clear}, {Py_tp_methods, (void *)__pyx_CyFunction_methods}, {Py_tp_members, (void *)__pyx_CyFunction_members}, {Py_tp_getset, (void *)__pyx_CyFunction_getsets}, {Py_tp_descr_get, (void *)__Pyx_PyMethod_New}, {0, 0}, }; static PyType_Spec __pyx_CyFunctionType_spec = { __PYX_TYPE_MODULE_PREFIX "cython_function_or_method", sizeof(__pyx_CyFunctionObject), 0, #ifdef Py_TPFLAGS_METHOD_DESCRIPTOR Py_TPFLAGS_METHOD_DESCRIPTOR | #endif #if CYTHON_METH_FASTCALL #if defined(Py_TPFLAGS_HAVE_VECTORCALL) Py_TPFLAGS_HAVE_VECTORCALL | #elif defined(_Py_TPFLAGS_HAVE_VECTORCALL) _Py_TPFLAGS_HAVE_VECTORCALL | #endif #endif // CYTHON_METH_FASTCALL #if PY_VERSION_HEX >= 0x030C0000 && !CYTHON_COMPILING_IN_LIMITED_API Py_TPFLAGS_MANAGED_DICT | #endif Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION | Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, __pyx_CyFunctionType_slots }; static int __pyx_CyFunction_init(PyObject *module) { __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module); mstate->__pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec( mstate->__pyx_CommonTypesMetaclassType, module, &__pyx_CyFunctionType_spec, NULL); if (unlikely(mstate->__pyx_CyFunctionType == NULL)) { return -1; } return 0; } static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func, PyTypeObject *defaults_type) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults = PyObject_CallObject((PyObject*)defaults_type, NULL); // _PyObject_New(defaults_type); if (unlikely(!m->defaults)) return NULL; return m->defaults; } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_tuple = tuple; Py_INCREF(tuple); } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_kwdict = dict; Py_INCREF(dict); } static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->func_annotations = dict; Py_INCREF(dict); } /* CythonFunction */ static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { PyObject *op = __Pyx_CyFunction_Init( PyObject_GC_New(__pyx_CyFunctionObject, __pyx_mstate_global->__pyx_CyFunctionType), ml, flags, qualname, closure, module, globals, code ); if (likely(op)) { PyObject_GC_Track(op); } return op; } /* pyfrozenset_new */ static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it) { if (it) { PyObject* result; #if CYTHON_COMPILING_IN_PYPY PyObject* args; args = PyTuple_Pack(1, it); if (unlikely(!args)) return NULL; result = PyObject_Call((PyObject*)&PyFrozenSet_Type, args, NULL); Py_DECREF(args); return result; #else if (PyFrozenSet_CheckExact(it)) { Py_INCREF(it); return it; } result = PyFrozenSet_New(it); if (unlikely(!result)) return NULL; if ((__PYX_LIMITED_VERSION_HEX >= 0x030A0000) #if CYTHON_COMPILING_IN_LIMITED_API || __Pyx_get_runtime_version() >= 0x030A0000 #endif ) return result; { Py_ssize_t size = __Pyx_PySet_GET_SIZE(result); if (likely(size > 0)) return result; #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely(size < 0)) { Py_DECREF(result); return NULL; } #endif } Py_DECREF(result); #endif } return __Pyx_PyObject_CallNoArg((PyObject*) &PyFrozenSet_Type); } /* CLineInTraceback (used by AddTraceback) */ #if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000 #define __Pyx_PyProbablyModule_GetDict(o) __Pyx_XNewRef(PyModule_GetDict(o)) #elif !CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #define __Pyx_PyProbablyModule_GetDict(o) PyObject_GenericGetDict(o, NULL); #else PyObject* __Pyx_PyProbablyModule_GetDict(PyObject *o) { PyObject **dict_ptr = _PyObject_GetDictPtr(o); return dict_ptr ? __Pyx_XNewRef(*dict_ptr) : NULL; } #endif static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { PyObject *use_cline = NULL; PyObject *ptype, *pvalue, *ptraceback; PyObject *cython_runtime_dict; CYTHON_MAYBE_UNUSED_VAR(tstate); if (unlikely(!__pyx_mstate_global->__pyx_cython_runtime)) { return c_line; } __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); cython_runtime_dict = __Pyx_PyProbablyModule_GetDict(__pyx_mstate_global->__pyx_cython_runtime); if (likely(cython_runtime_dict)) { __PYX_PY_DICT_LOOKUP_IF_MODIFIED( use_cline, cython_runtime_dict, __Pyx_PyDict_SetDefault(cython_runtime_dict, __pyx_mstate_global->__pyx_n_u_cline_in_traceback, Py_False)) } if (use_cline == NULL || use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { c_line = 0; } Py_XDECREF(use_cline); Py_XDECREF(cython_runtime_dict); __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); return c_line; } #endif /* CodeObjectCache (used by AddTraceback) */ static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { int start = 0, mid = 0, end = count - 1; if (end >= 0 && code_line > entries[end].code_line) { return count; } while (start < end) { mid = start + (end - start) / 2; if (code_line < entries[mid].code_line) { end = mid; } else if (code_line > entries[mid].code_line) { start = mid + 1; } else { return mid; } } if (code_line <= entries[mid].code_line) { return mid; } else { return mid + 1; } } static __Pyx_CachedCodeObjectType *__pyx__find_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line) { __Pyx_CachedCodeObjectType* code_object; int pos; if (unlikely(!code_line) || unlikely(!code_cache->entries)) { return NULL; } pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line); if (unlikely(pos >= code_cache->count) || unlikely(code_cache->entries[pos].code_line != code_line)) { return NULL; } code_object = code_cache->entries[pos].code_object; Py_INCREF(code_object); return code_object; } static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line) { #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS (void)__pyx__find_code_object; return NULL; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just miss. #else struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache; #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING __pyx_nonatomic_int_type old_count = __pyx_atomic_incr_acq_rel(&code_cache->accessor_count); if (old_count < 0) { __pyx_atomic_decr_acq_rel(&code_cache->accessor_count); return NULL; } #endif __Pyx_CachedCodeObjectType *result = __pyx__find_code_object(code_cache, code_line); #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING __pyx_atomic_decr_acq_rel(&code_cache->accessor_count); #endif return result; #endif } static void __pyx__insert_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line, __Pyx_CachedCodeObjectType* code_object) { int pos, i; __Pyx_CodeObjectCacheEntry* entries = code_cache->entries; if (unlikely(!code_line)) { return; } if (unlikely(!entries)) { entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); if (likely(entries)) { code_cache->entries = entries; code_cache->max_count = 64; code_cache->count = 1; entries[0].code_line = code_line; entries[0].code_object = code_object; Py_INCREF(code_object); } return; } pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line); if ((pos < code_cache->count) && unlikely(code_cache->entries[pos].code_line == code_line)) { __Pyx_CachedCodeObjectType* tmp = entries[pos].code_object; entries[pos].code_object = code_object; Py_INCREF(code_object); Py_DECREF(tmp); return; } if (code_cache->count == code_cache->max_count) { int new_max = code_cache->max_count + 64; entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( code_cache->entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); if (unlikely(!entries)) { return; } code_cache->entries = entries; code_cache->max_count = new_max; } for (i=code_cache->count; i>pos; i--) { entries[i] = entries[i-1]; } entries[pos].code_line = code_line; entries[pos].code_object = code_object; code_cache->count++; Py_INCREF(code_object); } static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object) { #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS (void)__pyx__insert_code_object; return; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just fail. #else struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache; #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING __pyx_nonatomic_int_type expected = 0; if (!__pyx_atomic_int_cmp_exchange(&code_cache->accessor_count, &expected, INT_MIN)) { return; } #endif __pyx__insert_code_object(code_cache, code_line, code_object); #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING __pyx_atomic_sub(&code_cache->accessor_count, INT_MIN); #endif #endif } /* AddTraceback */ #include "compile.h" #include "frameobject.h" #include "traceback.h" #if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API && !defined(PYPY_VERSION) #ifndef Py_BUILD_CORE #define Py_BUILD_CORE 1 #endif #include "internal/pycore_frame.h" #endif #if CYTHON_COMPILING_IN_LIMITED_API static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict, PyObject *firstlineno, PyObject *name) { PyObject *replace = NULL; if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL; if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL; replace = PyObject_GetAttrString(code, "replace"); if (likely(replace)) { PyObject *result = PyObject_Call(replace, __pyx_mstate_global->__pyx_empty_tuple, scratch_dict); Py_DECREF(replace); return result; } PyErr_Clear(); return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL; PyObject *replace = NULL, *getframe = NULL, *frame = NULL; PyObject *exc_type, *exc_value, *exc_traceback; int success = 0; if (c_line) { c_line = __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line); } PyErr_Fetch(&exc_type, &exc_value, &exc_traceback); code_object = __pyx_find_code_object(c_line ? -c_line : py_line); if (!code_object) { code_object = Py_CompileString("_getframe()", filename, Py_eval_input); if (unlikely(!code_object)) goto bad; py_py_line = PyLong_FromLong(py_line); if (unlikely(!py_py_line)) goto bad; if (c_line) { py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); } else { py_funcname = PyUnicode_FromString(funcname); } if (unlikely(!py_funcname)) goto bad; dict = PyDict_New(); if (unlikely(!dict)) goto bad; { PyObject *old_code_object = code_object; code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname); Py_DECREF(old_code_object); } if (unlikely(!code_object)) goto bad; __pyx_insert_code_object(c_line ? -c_line : py_line, code_object); } else { dict = PyDict_New(); } getframe = PySys_GetObject("_getframe"); if (unlikely(!getframe)) goto bad; if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad; frame = PyEval_EvalCode(code_object, dict, dict); if (unlikely(!frame) || frame == Py_None) goto bad; success = 1; bad: PyErr_Restore(exc_type, exc_value, exc_traceback); Py_XDECREF(code_object); Py_XDECREF(py_py_line); Py_XDECREF(py_funcname); Py_XDECREF(dict); Py_XDECREF(replace); if (success) { PyTraceBack_Here( (struct _frame*)frame); } Py_XDECREF(frame); } #else static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = NULL; PyObject *py_funcname = NULL; if (c_line) { py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); if (!py_funcname) goto bad; funcname = PyUnicode_AsUTF8(py_funcname); if (!funcname) goto bad; } py_code = PyCode_NewEmpty(filename, funcname, py_line); Py_XDECREF(py_funcname); return py_code; bad: Py_XDECREF(py_funcname); return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject *ptype, *pvalue, *ptraceback; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); if (!py_code) { /* If the code object creation fails, then we should clear the fetched exception references and propagate the new exception */ Py_XDECREF(ptype); Py_XDECREF(pvalue); Py_XDECREF(ptraceback); goto bad; } __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( tstate, /*PyThreadState *tstate,*/ py_code, /*PyCodeObject *code,*/ __pyx_mstate_global->__pyx_d, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (!py_frame) goto bad; __Pyx_PyFrame_SetLineNumber(py_frame, py_line); PyTraceBack_Here(py_frame); bad: Py_XDECREF(py_code); Py_XDECREF(py_frame); } #endif /* CIntFromPyVerify */ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ {\ func_type value = func_value;\ if (sizeof(target_type) < sizeof(func_type)) {\ if (unlikely(value != (func_type) (target_type) value)) {\ func_type zero = 0;\ if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ return (target_type) -1;\ if (is_unsigned && unlikely(value < zero))\ goto raise_neg_overflow;\ else\ goto raise_overflow;\ }\ }\ return (target_type) value;\ } /* CheckUnpickleChecksum */ static void __Pyx_RaiseUnpickleChecksumError(long checksum, long checksum1, long checksum2, long checksum3, const char *members) { PyObject *pickle_module = PyImport_ImportModule("pickle"); if (unlikely(!pickle_module)) return; PyObject *pickle_error = PyObject_GetAttrString(pickle_module, "PickleError"); Py_DECREF(pickle_module); if (unlikely(!pickle_error)) return; if (checksum2 == checksum1) { PyErr_Format(pickle_error, "Incompatible checksums (0x%x vs (0x%x) = (%s))", checksum, checksum1, members); } else if (checksum3 == checksum2) { PyErr_Format(pickle_error, "Incompatible checksums (0x%x vs (0x%x, 0x%x) = (%s))", checksum, checksum1, checksum2, members); } else { PyErr_Format(pickle_error, "Incompatible checksums (0x%x vs (0x%x, 0x%x, 0x%x) = (%s))", checksum, checksum1, checksum2, checksum3, members); } Py_DECREF(pickle_error); } static int __Pyx_CheckUnpickleChecksum(long checksum, long checksum1, long checksum2, long checksum3, const char *members) { int found = 0; found |= checksum1 == checksum; found |= checksum2 == checksum; found |= checksum3 == checksum; if (likely(found)) return 0; __Pyx_RaiseUnpickleChecksumError(checksum, checksum1, checksum2, checksum3, members); return -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const int neg_one = (int) -1, const_zero = (int) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(int) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(int) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(int), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const int neg_one = (int) -1, const_zero = (int) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { int val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (int) -1; val = __Pyx_PyLong_As_int(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) { return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 3: if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) { return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 4: if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) { return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(int) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 2: if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -3: if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 3: if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -4: if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) { return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 4: if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) { return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; } } #endif if ((sizeof(int) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { int val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (int) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (int) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (int) -1; } else { stepval = v; } v = NULL; val = (int) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((int) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((int) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (int) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to int"); return (int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to int"); return (int) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_gid_t(gid_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const gid_t neg_one = (gid_t) -1, const_zero = (gid_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(gid_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(gid_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(gid_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(gid_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(gid_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(gid_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(gid_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE gid_t __Pyx_PyLong_As_gid_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const gid_t neg_one = (gid_t) -1, const_zero = (gid_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { gid_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (gid_t) -1; val = __Pyx_PyLong_As_gid_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(gid_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(gid_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) >= 2 * PyLong_SHIFT)) { return (gid_t) (((((gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0])); } } break; case 3: if ((8 * sizeof(gid_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) >= 3 * PyLong_SHIFT)) { return (gid_t) (((((((gid_t)digits[2]) << PyLong_SHIFT) | (gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0])); } } break; case 4: if ((8 * sizeof(gid_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) >= 4 * PyLong_SHIFT)) { return (gid_t) (((((((((gid_t)digits[3]) << PyLong_SHIFT) | (gid_t)digits[2]) << PyLong_SHIFT) | (gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (gid_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(gid_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(gid_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(gid_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(gid_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(gid_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(gid_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) - 1 > 2 * PyLong_SHIFT)) { return (gid_t) (((gid_t)-1)*(((((gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0]))); } } break; case 2: if ((8 * sizeof(gid_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) - 1 > 2 * PyLong_SHIFT)) { return (gid_t) ((((((gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0]))); } } break; case -3: if ((8 * sizeof(gid_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) - 1 > 3 * PyLong_SHIFT)) { return (gid_t) (((gid_t)-1)*(((((((gid_t)digits[2]) << PyLong_SHIFT) | (gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0]))); } } break; case 3: if ((8 * sizeof(gid_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) - 1 > 3 * PyLong_SHIFT)) { return (gid_t) ((((((((gid_t)digits[2]) << PyLong_SHIFT) | (gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0]))); } } break; case -4: if ((8 * sizeof(gid_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) - 1 > 4 * PyLong_SHIFT)) { return (gid_t) (((gid_t)-1)*(((((((((gid_t)digits[3]) << PyLong_SHIFT) | (gid_t)digits[2]) << PyLong_SHIFT) | (gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0]))); } } break; case 4: if ((8 * sizeof(gid_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(gid_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(gid_t) - 1 > 4 * PyLong_SHIFT)) { return (gid_t) ((((((((((gid_t)digits[3]) << PyLong_SHIFT) | (gid_t)digits[2]) << PyLong_SHIFT) | (gid_t)digits[1]) << PyLong_SHIFT) | (gid_t)digits[0]))); } } break; } } #endif if ((sizeof(gid_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(gid_t, long, PyLong_AsLong(x)) } else if ((sizeof(gid_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(gid_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { gid_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (gid_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (gid_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (gid_t) -1; } else { stepval = v; } v = NULL; val = (gid_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(gid_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((gid_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(gid_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((gid_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((gid_t) 1) << (sizeof(gid_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (gid_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to gid_t"); return (gid_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to gid_t"); return (gid_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_pid_t(pid_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const pid_t neg_one = (pid_t) -1, const_zero = (pid_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(pid_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(pid_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(pid_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(pid_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(pid_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(pid_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(pid_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE pid_t __Pyx_PyLong_As_pid_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const pid_t neg_one = (pid_t) -1, const_zero = (pid_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { pid_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (pid_t) -1; val = __Pyx_PyLong_As_pid_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(pid_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(pid_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) >= 2 * PyLong_SHIFT)) { return (pid_t) (((((pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0])); } } break; case 3: if ((8 * sizeof(pid_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) >= 3 * PyLong_SHIFT)) { return (pid_t) (((((((pid_t)digits[2]) << PyLong_SHIFT) | (pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0])); } } break; case 4: if ((8 * sizeof(pid_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) >= 4 * PyLong_SHIFT)) { return (pid_t) (((((((((pid_t)digits[3]) << PyLong_SHIFT) | (pid_t)digits[2]) << PyLong_SHIFT) | (pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (pid_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(pid_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(pid_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(pid_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(pid_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(pid_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(pid_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) - 1 > 2 * PyLong_SHIFT)) { return (pid_t) (((pid_t)-1)*(((((pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0]))); } } break; case 2: if ((8 * sizeof(pid_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) - 1 > 2 * PyLong_SHIFT)) { return (pid_t) ((((((pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0]))); } } break; case -3: if ((8 * sizeof(pid_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) - 1 > 3 * PyLong_SHIFT)) { return (pid_t) (((pid_t)-1)*(((((((pid_t)digits[2]) << PyLong_SHIFT) | (pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0]))); } } break; case 3: if ((8 * sizeof(pid_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) - 1 > 3 * PyLong_SHIFT)) { return (pid_t) ((((((((pid_t)digits[2]) << PyLong_SHIFT) | (pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0]))); } } break; case -4: if ((8 * sizeof(pid_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) - 1 > 4 * PyLong_SHIFT)) { return (pid_t) (((pid_t)-1)*(((((((((pid_t)digits[3]) << PyLong_SHIFT) | (pid_t)digits[2]) << PyLong_SHIFT) | (pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0]))); } } break; case 4: if ((8 * sizeof(pid_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(pid_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(pid_t) - 1 > 4 * PyLong_SHIFT)) { return (pid_t) ((((((((((pid_t)digits[3]) << PyLong_SHIFT) | (pid_t)digits[2]) << PyLong_SHIFT) | (pid_t)digits[1]) << PyLong_SHIFT) | (pid_t)digits[0]))); } } break; } } #endif if ((sizeof(pid_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(pid_t, long, PyLong_AsLong(x)) } else if ((sizeof(pid_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(pid_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { pid_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (pid_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (pid_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (pid_t) -1; } else { stepval = v; } v = NULL; val = (pid_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(pid_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((pid_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(pid_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((pid_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((pid_t) 1) << (sizeof(pid_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (pid_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to pid_t"); return (pid_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to pid_t"); return (pid_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_uid_t(uid_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const uid_t neg_one = (uid_t) -1, const_zero = (uid_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(uid_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(uid_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(uid_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(uid_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(uid_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(uid_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(uid_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE uid_t __Pyx_PyLong_As_uid_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const uid_t neg_one = (uid_t) -1, const_zero = (uid_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { uid_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (uid_t) -1; val = __Pyx_PyLong_As_uid_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(uid_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(uid_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) >= 2 * PyLong_SHIFT)) { return (uid_t) (((((uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0])); } } break; case 3: if ((8 * sizeof(uid_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) >= 3 * PyLong_SHIFT)) { return (uid_t) (((((((uid_t)digits[2]) << PyLong_SHIFT) | (uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0])); } } break; case 4: if ((8 * sizeof(uid_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) >= 4 * PyLong_SHIFT)) { return (uid_t) (((((((((uid_t)digits[3]) << PyLong_SHIFT) | (uid_t)digits[2]) << PyLong_SHIFT) | (uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (uid_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(uid_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(uid_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(uid_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(uid_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(uid_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(uid_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) - 1 > 2 * PyLong_SHIFT)) { return (uid_t) (((uid_t)-1)*(((((uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0]))); } } break; case 2: if ((8 * sizeof(uid_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) - 1 > 2 * PyLong_SHIFT)) { return (uid_t) ((((((uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0]))); } } break; case -3: if ((8 * sizeof(uid_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) - 1 > 3 * PyLong_SHIFT)) { return (uid_t) (((uid_t)-1)*(((((((uid_t)digits[2]) << PyLong_SHIFT) | (uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0]))); } } break; case 3: if ((8 * sizeof(uid_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) - 1 > 3 * PyLong_SHIFT)) { return (uid_t) ((((((((uid_t)digits[2]) << PyLong_SHIFT) | (uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0]))); } } break; case -4: if ((8 * sizeof(uid_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) - 1 > 4 * PyLong_SHIFT)) { return (uid_t) (((uid_t)-1)*(((((((((uid_t)digits[3]) << PyLong_SHIFT) | (uid_t)digits[2]) << PyLong_SHIFT) | (uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0]))); } } break; case 4: if ((8 * sizeof(uid_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uid_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uid_t) - 1 > 4 * PyLong_SHIFT)) { return (uid_t) ((((((((((uid_t)digits[3]) << PyLong_SHIFT) | (uid_t)digits[2]) << PyLong_SHIFT) | (uid_t)digits[1]) << PyLong_SHIFT) | (uid_t)digits[0]))); } } break; } } #endif if ((sizeof(uid_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(uid_t, long, PyLong_AsLong(x)) } else if ((sizeof(uid_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(uid_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { uid_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (uid_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (uid_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (uid_t) -1; } else { stepval = v; } v = NULL; val = (uid_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(uid_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((uid_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(uid_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((uid_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((uid_t) 1) << (sizeof(uid_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (uid_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to uid_t"); return (uid_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to uid_t"); return (uid_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_mode_t(mode_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const mode_t neg_one = (mode_t) -1, const_zero = (mode_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(mode_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(mode_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(mode_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(mode_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(mode_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(mode_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(mode_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE mode_t __Pyx_PyLong_As_mode_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const mode_t neg_one = (mode_t) -1, const_zero = (mode_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { mode_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (mode_t) -1; val = __Pyx_PyLong_As_mode_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(mode_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(mode_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) >= 2 * PyLong_SHIFT)) { return (mode_t) (((((mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0])); } } break; case 3: if ((8 * sizeof(mode_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) >= 3 * PyLong_SHIFT)) { return (mode_t) (((((((mode_t)digits[2]) << PyLong_SHIFT) | (mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0])); } } break; case 4: if ((8 * sizeof(mode_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) >= 4 * PyLong_SHIFT)) { return (mode_t) (((((((((mode_t)digits[3]) << PyLong_SHIFT) | (mode_t)digits[2]) << PyLong_SHIFT) | (mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (mode_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(mode_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(mode_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(mode_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(mode_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(mode_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(mode_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) - 1 > 2 * PyLong_SHIFT)) { return (mode_t) (((mode_t)-1)*(((((mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0]))); } } break; case 2: if ((8 * sizeof(mode_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) - 1 > 2 * PyLong_SHIFT)) { return (mode_t) ((((((mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0]))); } } break; case -3: if ((8 * sizeof(mode_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) - 1 > 3 * PyLong_SHIFT)) { return (mode_t) (((mode_t)-1)*(((((((mode_t)digits[2]) << PyLong_SHIFT) | (mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0]))); } } break; case 3: if ((8 * sizeof(mode_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) - 1 > 3 * PyLong_SHIFT)) { return (mode_t) ((((((((mode_t)digits[2]) << PyLong_SHIFT) | (mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0]))); } } break; case -4: if ((8 * sizeof(mode_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) - 1 > 4 * PyLong_SHIFT)) { return (mode_t) (((mode_t)-1)*(((((((((mode_t)digits[3]) << PyLong_SHIFT) | (mode_t)digits[2]) << PyLong_SHIFT) | (mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0]))); } } break; case 4: if ((8 * sizeof(mode_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(mode_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(mode_t) - 1 > 4 * PyLong_SHIFT)) { return (mode_t) ((((((((((mode_t)digits[3]) << PyLong_SHIFT) | (mode_t)digits[2]) << PyLong_SHIFT) | (mode_t)digits[1]) << PyLong_SHIFT) | (mode_t)digits[0]))); } } break; } } #endif if ((sizeof(mode_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(mode_t, long, PyLong_AsLong(x)) } else if ((sizeof(mode_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(mode_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { mode_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (mode_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (mode_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (mode_t) -1; } else { stepval = v; } v = NULL; val = (mode_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(mode_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((mode_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(mode_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((mode_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((mode_t) 1) << (sizeof(mode_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (mode_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to mode_t"); return (mode_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to mode_t"); return (mode_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From___pyx_anon_enum(int value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const int neg_one = (int) -1, const_zero = (int) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(int) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(int) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(int), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE size_t __Pyx_PyLong_As_size_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const size_t neg_one = (size_t) -1, const_zero = (size_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { size_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (size_t) -1; val = __Pyx_PyLong_As_size_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) >= 2 * PyLong_SHIFT)) { return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; case 3: if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) >= 3 * PyLong_SHIFT)) { return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; case 4: if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) >= 4 * PyLong_SHIFT)) { return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (size_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(size_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) { return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 2: if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) { return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case -3: if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) { return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 3: if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) { return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case -4: if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) { return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 4: if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) { return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; } } #endif if ((sizeof(size_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) } else if ((sizeof(size_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { size_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (size_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (size_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (size_t) -1; } else { stepval = v; } v = NULL; val = (size_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(size_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((size_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(size_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((size_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((size_t) 1) << (sizeof(size_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (size_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to size_t"); return (size_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to size_t"); return (size_t) -1; } /* CIntFromPy */ static CYTHON_INLINE fuse_ino_t __Pyx_PyLong_As_fuse_ino_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const fuse_ino_t neg_one = (fuse_ino_t) -1, const_zero = (fuse_ino_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { fuse_ino_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (fuse_ino_t) -1; val = __Pyx_PyLong_As_fuse_ino_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(fuse_ino_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) >= 2 * PyLong_SHIFT)) { return (fuse_ino_t) (((((fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0])); } } break; case 3: if ((8 * sizeof(fuse_ino_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) >= 3 * PyLong_SHIFT)) { return (fuse_ino_t) (((((((fuse_ino_t)digits[2]) << PyLong_SHIFT) | (fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0])); } } break; case 4: if ((8 * sizeof(fuse_ino_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) >= 4 * PyLong_SHIFT)) { return (fuse_ino_t) (((((((((fuse_ino_t)digits[3]) << PyLong_SHIFT) | (fuse_ino_t)digits[2]) << PyLong_SHIFT) | (fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (fuse_ino_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(fuse_ino_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(fuse_ino_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(fuse_ino_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(fuse_ino_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(fuse_ino_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) - 1 > 2 * PyLong_SHIFT)) { return (fuse_ino_t) (((fuse_ino_t)-1)*(((((fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0]))); } } break; case 2: if ((8 * sizeof(fuse_ino_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) - 1 > 2 * PyLong_SHIFT)) { return (fuse_ino_t) ((((((fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0]))); } } break; case -3: if ((8 * sizeof(fuse_ino_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) - 1 > 3 * PyLong_SHIFT)) { return (fuse_ino_t) (((fuse_ino_t)-1)*(((((((fuse_ino_t)digits[2]) << PyLong_SHIFT) | (fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0]))); } } break; case 3: if ((8 * sizeof(fuse_ino_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) - 1 > 3 * PyLong_SHIFT)) { return (fuse_ino_t) ((((((((fuse_ino_t)digits[2]) << PyLong_SHIFT) | (fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0]))); } } break; case -4: if ((8 * sizeof(fuse_ino_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) - 1 > 4 * PyLong_SHIFT)) { return (fuse_ino_t) (((fuse_ino_t)-1)*(((((((((fuse_ino_t)digits[3]) << PyLong_SHIFT) | (fuse_ino_t)digits[2]) << PyLong_SHIFT) | (fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0]))); } } break; case 4: if ((8 * sizeof(fuse_ino_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fuse_ino_t) - 1 > 4 * PyLong_SHIFT)) { return (fuse_ino_t) ((((((((((fuse_ino_t)digits[3]) << PyLong_SHIFT) | (fuse_ino_t)digits[2]) << PyLong_SHIFT) | (fuse_ino_t)digits[1]) << PyLong_SHIFT) | (fuse_ino_t)digits[0]))); } } break; } } #endif if ((sizeof(fuse_ino_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(fuse_ino_t, long, PyLong_AsLong(x)) } else if ((sizeof(fuse_ino_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(fuse_ino_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { fuse_ino_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (fuse_ino_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (fuse_ino_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (fuse_ino_t) -1; } else { stepval = v; } v = NULL; val = (fuse_ino_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(fuse_ino_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((fuse_ino_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(fuse_ino_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((fuse_ino_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((fuse_ino_t) 1) << (sizeof(fuse_ino_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (fuse_ino_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to fuse_ino_t"); return (fuse_ino_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to fuse_ino_t"); return (fuse_ino_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_fuse_ino_t(fuse_ino_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const fuse_ino_t neg_one = (fuse_ino_t) -1, const_zero = (fuse_ino_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(fuse_ino_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(fuse_ino_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(fuse_ino_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(fuse_ino_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(fuse_ino_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(fuse_ino_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(fuse_ino_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE off_t __Pyx_PyLong_As_off_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const off_t neg_one = (off_t) -1, const_zero = (off_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { off_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (off_t) -1; val = __Pyx_PyLong_As_off_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(off_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(off_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) >= 2 * PyLong_SHIFT)) { return (off_t) (((((off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0])); } } break; case 3: if ((8 * sizeof(off_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) >= 3 * PyLong_SHIFT)) { return (off_t) (((((((off_t)digits[2]) << PyLong_SHIFT) | (off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0])); } } break; case 4: if ((8 * sizeof(off_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) >= 4 * PyLong_SHIFT)) { return (off_t) (((((((((off_t)digits[3]) << PyLong_SHIFT) | (off_t)digits[2]) << PyLong_SHIFT) | (off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (off_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(off_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(off_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(off_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(off_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(off_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(off_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) - 1 > 2 * PyLong_SHIFT)) { return (off_t) (((off_t)-1)*(((((off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0]))); } } break; case 2: if ((8 * sizeof(off_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) - 1 > 2 * PyLong_SHIFT)) { return (off_t) ((((((off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0]))); } } break; case -3: if ((8 * sizeof(off_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) - 1 > 3 * PyLong_SHIFT)) { return (off_t) (((off_t)-1)*(((((((off_t)digits[2]) << PyLong_SHIFT) | (off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0]))); } } break; case 3: if ((8 * sizeof(off_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) - 1 > 3 * PyLong_SHIFT)) { return (off_t) ((((((((off_t)digits[2]) << PyLong_SHIFT) | (off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0]))); } } break; case -4: if ((8 * sizeof(off_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) - 1 > 4 * PyLong_SHIFT)) { return (off_t) (((off_t)-1)*(((((((((off_t)digits[3]) << PyLong_SHIFT) | (off_t)digits[2]) << PyLong_SHIFT) | (off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0]))); } } break; case 4: if ((8 * sizeof(off_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(off_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(off_t) - 1 > 4 * PyLong_SHIFT)) { return (off_t) ((((((((((off_t)digits[3]) << PyLong_SHIFT) | (off_t)digits[2]) << PyLong_SHIFT) | (off_t)digits[1]) << PyLong_SHIFT) | (off_t)digits[0]))); } } break; } } #endif if ((sizeof(off_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(off_t, long, PyLong_AsLong(x)) } else if ((sizeof(off_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(off_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { off_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (off_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (off_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (off_t) -1; } else { stepval = v; } v = NULL; val = (off_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(off_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((off_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(off_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((off_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((off_t) 1) << (sizeof(off_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (off_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to off_t"); return (off_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to off_t"); return (off_t) -1; } /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const long neg_one = (long) -1, const_zero = (long) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { long val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (long) -1; val = __Pyx_PyLong_As_long(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) { return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 3: if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) { return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 4: if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) { return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (long) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(long) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 2: if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -3: if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 3: if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -4: if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) { return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 4: if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) { return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; } } #endif if ((sizeof(long) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { long val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (long) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (long) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (long) -1; } else { stepval = v; } v = NULL; val = (long) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((long) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((long) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (long) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to long"); return (long) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(unsigned int) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(unsigned int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(unsigned int) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(unsigned int), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(unsigned int)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_uint64_t(uint64_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const uint64_t neg_one = (uint64_t) -1, const_zero = (uint64_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(uint64_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(uint64_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(uint64_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(uint64_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(uint64_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(uint64_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(uint64_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_dev_t(dev_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const dev_t neg_one = (dev_t) -1, const_zero = (dev_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(dev_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(dev_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(dev_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(dev_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(dev_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(dev_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(dev_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_off_t(off_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const off_t neg_one = (off_t) -1, const_zero = (off_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(off_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(off_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(off_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(off_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(off_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(off_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(off_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE uint64_t __Pyx_PyLong_As_uint64_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const uint64_t neg_one = (uint64_t) -1, const_zero = (uint64_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { uint64_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (uint64_t) -1; val = __Pyx_PyLong_As_uint64_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(uint64_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(uint64_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) >= 2 * PyLong_SHIFT)) { return (uint64_t) (((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])); } } break; case 3: if ((8 * sizeof(uint64_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) >= 3 * PyLong_SHIFT)) { return (uint64_t) (((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])); } } break; case 4: if ((8 * sizeof(uint64_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) >= 4 * PyLong_SHIFT)) { return (uint64_t) (((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (uint64_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(uint64_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(uint64_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(uint64_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(uint64_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(uint64_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(uint64_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT)) { return (uint64_t) (((uint64_t)-1)*(((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]))); } } break; case 2: if ((8 * sizeof(uint64_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT)) { return (uint64_t) ((((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]))); } } break; case -3: if ((8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT)) { return (uint64_t) (((uint64_t)-1)*(((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]))); } } break; case 3: if ((8 * sizeof(uint64_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT)) { return (uint64_t) ((((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]))); } } break; case -4: if ((8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) - 1 > 4 * PyLong_SHIFT)) { return (uint64_t) (((uint64_t)-1)*(((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]))); } } break; case 4: if ((8 * sizeof(uint64_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(uint64_t) - 1 > 4 * PyLong_SHIFT)) { return (uint64_t) ((((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]))); } } break; } } #endif if ((sizeof(uint64_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(uint64_t, long, PyLong_AsLong(x)) } else if ((sizeof(uint64_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(uint64_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { uint64_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (uint64_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (uint64_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (uint64_t) -1; } else { stepval = v; } v = NULL; val = (uint64_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(uint64_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((uint64_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(uint64_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((uint64_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((uint64_t) 1) << (sizeof(uint64_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (uint64_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to uint64_t"); return (uint64_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to uint64_t"); return (uint64_t) -1; } /* CIntFromPy */ static CYTHON_INLINE unsigned int __Pyx_PyLong_As_unsigned_int(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { unsigned int val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (unsigned int) -1; val = __Pyx_PyLong_As_unsigned_int(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT)) { return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; case 3: if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT)) { return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; case 4: if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT)) { return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (unsigned int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(unsigned int) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) { return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 2: if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) { return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case -3: if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) { return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 3: if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) { return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case -4: if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) { return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 4: if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) { return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; } } #endif if ((sizeof(unsigned int) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x)) } else if ((sizeof(unsigned int) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { unsigned int val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (unsigned int) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (unsigned int) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (unsigned int) -1; } else { stepval = v; } v = NULL; val = (unsigned int) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(unsigned int) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((unsigned int) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(unsigned int) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((unsigned int) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((unsigned int) 1) << (sizeof(unsigned int) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (unsigned int) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to unsigned int"); return (unsigned int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned int"); return (unsigned int) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const long neg_one = (long) -1, const_zero = (long) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(long) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(long) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(long) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(long), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE ino_t __Pyx_PyLong_As_ino_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const ino_t neg_one = (ino_t) -1, const_zero = (ino_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { ino_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (ino_t) -1; val = __Pyx_PyLong_As_ino_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(ino_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(ino_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) >= 2 * PyLong_SHIFT)) { return (ino_t) (((((ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0])); } } break; case 3: if ((8 * sizeof(ino_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) >= 3 * PyLong_SHIFT)) { return (ino_t) (((((((ino_t)digits[2]) << PyLong_SHIFT) | (ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0])); } } break; case 4: if ((8 * sizeof(ino_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) >= 4 * PyLong_SHIFT)) { return (ino_t) (((((((((ino_t)digits[3]) << PyLong_SHIFT) | (ino_t)digits[2]) << PyLong_SHIFT) | (ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (ino_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(ino_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(ino_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(ino_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(ino_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(ino_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(ino_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) - 1 > 2 * PyLong_SHIFT)) { return (ino_t) (((ino_t)-1)*(((((ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0]))); } } break; case 2: if ((8 * sizeof(ino_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) - 1 > 2 * PyLong_SHIFT)) { return (ino_t) ((((((ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0]))); } } break; case -3: if ((8 * sizeof(ino_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) - 1 > 3 * PyLong_SHIFT)) { return (ino_t) (((ino_t)-1)*(((((((ino_t)digits[2]) << PyLong_SHIFT) | (ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0]))); } } break; case 3: if ((8 * sizeof(ino_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) - 1 > 3 * PyLong_SHIFT)) { return (ino_t) ((((((((ino_t)digits[2]) << PyLong_SHIFT) | (ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0]))); } } break; case -4: if ((8 * sizeof(ino_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) - 1 > 4 * PyLong_SHIFT)) { return (ino_t) (((ino_t)-1)*(((((((((ino_t)digits[3]) << PyLong_SHIFT) | (ino_t)digits[2]) << PyLong_SHIFT) | (ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0]))); } } break; case 4: if ((8 * sizeof(ino_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(ino_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(ino_t) - 1 > 4 * PyLong_SHIFT)) { return (ino_t) ((((((((((ino_t)digits[3]) << PyLong_SHIFT) | (ino_t)digits[2]) << PyLong_SHIFT) | (ino_t)digits[1]) << PyLong_SHIFT) | (ino_t)digits[0]))); } } break; } } #endif if ((sizeof(ino_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(ino_t, long, PyLong_AsLong(x)) } else if ((sizeof(ino_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(ino_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { ino_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (ino_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (ino_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (ino_t) -1; } else { stepval = v; } v = NULL; val = (ino_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(ino_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((ino_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(ino_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((ino_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((ino_t) 1) << (sizeof(ino_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (ino_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to ino_t"); return (ino_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to ino_t"); return (ino_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_nlink_t(nlink_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const nlink_t neg_one = (nlink_t) -1, const_zero = (nlink_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(nlink_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(nlink_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(nlink_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(nlink_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(nlink_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(nlink_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(nlink_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE nlink_t __Pyx_PyLong_As_nlink_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const nlink_t neg_one = (nlink_t) -1, const_zero = (nlink_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { nlink_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (nlink_t) -1; val = __Pyx_PyLong_As_nlink_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(nlink_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(nlink_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) >= 2 * PyLong_SHIFT)) { return (nlink_t) (((((nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0])); } } break; case 3: if ((8 * sizeof(nlink_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) >= 3 * PyLong_SHIFT)) { return (nlink_t) (((((((nlink_t)digits[2]) << PyLong_SHIFT) | (nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0])); } } break; case 4: if ((8 * sizeof(nlink_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) >= 4 * PyLong_SHIFT)) { return (nlink_t) (((((((((nlink_t)digits[3]) << PyLong_SHIFT) | (nlink_t)digits[2]) << PyLong_SHIFT) | (nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (nlink_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(nlink_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(nlink_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(nlink_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(nlink_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(nlink_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(nlink_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) - 1 > 2 * PyLong_SHIFT)) { return (nlink_t) (((nlink_t)-1)*(((((nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0]))); } } break; case 2: if ((8 * sizeof(nlink_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) - 1 > 2 * PyLong_SHIFT)) { return (nlink_t) ((((((nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0]))); } } break; case -3: if ((8 * sizeof(nlink_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) - 1 > 3 * PyLong_SHIFT)) { return (nlink_t) (((nlink_t)-1)*(((((((nlink_t)digits[2]) << PyLong_SHIFT) | (nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0]))); } } break; case 3: if ((8 * sizeof(nlink_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) - 1 > 3 * PyLong_SHIFT)) { return (nlink_t) ((((((((nlink_t)digits[2]) << PyLong_SHIFT) | (nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0]))); } } break; case -4: if ((8 * sizeof(nlink_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) - 1 > 4 * PyLong_SHIFT)) { return (nlink_t) (((nlink_t)-1)*(((((((((nlink_t)digits[3]) << PyLong_SHIFT) | (nlink_t)digits[2]) << PyLong_SHIFT) | (nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0]))); } } break; case 4: if ((8 * sizeof(nlink_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(nlink_t) - 1 > 4 * PyLong_SHIFT)) { return (nlink_t) ((((((((((nlink_t)digits[3]) << PyLong_SHIFT) | (nlink_t)digits[2]) << PyLong_SHIFT) | (nlink_t)digits[1]) << PyLong_SHIFT) | (nlink_t)digits[0]))); } } break; } } #endif if ((sizeof(nlink_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(nlink_t, long, PyLong_AsLong(x)) } else if ((sizeof(nlink_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(nlink_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { nlink_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (nlink_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (nlink_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (nlink_t) -1; } else { stepval = v; } v = NULL; val = (nlink_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(nlink_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((nlink_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(nlink_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((nlink_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((nlink_t) 1) << (sizeof(nlink_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (nlink_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to nlink_t"); return (nlink_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to nlink_t"); return (nlink_t) -1; } /* CIntFromPy */ static CYTHON_INLINE dev_t __Pyx_PyLong_As_dev_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const dev_t neg_one = (dev_t) -1, const_zero = (dev_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { dev_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (dev_t) -1; val = __Pyx_PyLong_As_dev_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(dev_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(dev_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) >= 2 * PyLong_SHIFT)) { return (dev_t) (((((dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0])); } } break; case 3: if ((8 * sizeof(dev_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) >= 3 * PyLong_SHIFT)) { return (dev_t) (((((((dev_t)digits[2]) << PyLong_SHIFT) | (dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0])); } } break; case 4: if ((8 * sizeof(dev_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) >= 4 * PyLong_SHIFT)) { return (dev_t) (((((((((dev_t)digits[3]) << PyLong_SHIFT) | (dev_t)digits[2]) << PyLong_SHIFT) | (dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (dev_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(dev_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(dev_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(dev_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(dev_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(dev_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(dev_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) - 1 > 2 * PyLong_SHIFT)) { return (dev_t) (((dev_t)-1)*(((((dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0]))); } } break; case 2: if ((8 * sizeof(dev_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) - 1 > 2 * PyLong_SHIFT)) { return (dev_t) ((((((dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0]))); } } break; case -3: if ((8 * sizeof(dev_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) - 1 > 3 * PyLong_SHIFT)) { return (dev_t) (((dev_t)-1)*(((((((dev_t)digits[2]) << PyLong_SHIFT) | (dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0]))); } } break; case 3: if ((8 * sizeof(dev_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) - 1 > 3 * PyLong_SHIFT)) { return (dev_t) ((((((((dev_t)digits[2]) << PyLong_SHIFT) | (dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0]))); } } break; case -4: if ((8 * sizeof(dev_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) - 1 > 4 * PyLong_SHIFT)) { return (dev_t) (((dev_t)-1)*(((((((((dev_t)digits[3]) << PyLong_SHIFT) | (dev_t)digits[2]) << PyLong_SHIFT) | (dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0]))); } } break; case 4: if ((8 * sizeof(dev_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(dev_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(dev_t) - 1 > 4 * PyLong_SHIFT)) { return (dev_t) ((((((((((dev_t)digits[3]) << PyLong_SHIFT) | (dev_t)digits[2]) << PyLong_SHIFT) | (dev_t)digits[1]) << PyLong_SHIFT) | (dev_t)digits[0]))); } } break; } } #endif if ((sizeof(dev_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(dev_t, long, PyLong_AsLong(x)) } else if ((sizeof(dev_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(dev_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { dev_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (dev_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (dev_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (dev_t) -1; } else { stepval = v; } v = NULL; val = (dev_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(dev_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((dev_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(dev_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((dev_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((dev_t) 1) << (sizeof(dev_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (dev_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to dev_t"); return (dev_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to dev_t"); return (dev_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_blkcnt_t(blkcnt_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const blkcnt_t neg_one = (blkcnt_t) -1, const_zero = (blkcnt_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(blkcnt_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(blkcnt_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(blkcnt_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(blkcnt_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(blkcnt_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(blkcnt_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(blkcnt_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE blkcnt_t __Pyx_PyLong_As_blkcnt_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const blkcnt_t neg_one = (blkcnt_t) -1, const_zero = (blkcnt_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { blkcnt_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (blkcnt_t) -1; val = __Pyx_PyLong_As_blkcnt_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(blkcnt_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) >= 2 * PyLong_SHIFT)) { return (blkcnt_t) (((((blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0])); } } break; case 3: if ((8 * sizeof(blkcnt_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) >= 3 * PyLong_SHIFT)) { return (blkcnt_t) (((((((blkcnt_t)digits[2]) << PyLong_SHIFT) | (blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0])); } } break; case 4: if ((8 * sizeof(blkcnt_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) >= 4 * PyLong_SHIFT)) { return (blkcnt_t) (((((((((blkcnt_t)digits[3]) << PyLong_SHIFT) | (blkcnt_t)digits[2]) << PyLong_SHIFT) | (blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (blkcnt_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(blkcnt_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(blkcnt_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(blkcnt_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(blkcnt_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(blkcnt_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) - 1 > 2 * PyLong_SHIFT)) { return (blkcnt_t) (((blkcnt_t)-1)*(((((blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0]))); } } break; case 2: if ((8 * sizeof(blkcnt_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) - 1 > 2 * PyLong_SHIFT)) { return (blkcnt_t) ((((((blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0]))); } } break; case -3: if ((8 * sizeof(blkcnt_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) - 1 > 3 * PyLong_SHIFT)) { return (blkcnt_t) (((blkcnt_t)-1)*(((((((blkcnt_t)digits[2]) << PyLong_SHIFT) | (blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0]))); } } break; case 3: if ((8 * sizeof(blkcnt_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) - 1 > 3 * PyLong_SHIFT)) { return (blkcnt_t) ((((((((blkcnt_t)digits[2]) << PyLong_SHIFT) | (blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0]))); } } break; case -4: if ((8 * sizeof(blkcnt_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) - 1 > 4 * PyLong_SHIFT)) { return (blkcnt_t) (((blkcnt_t)-1)*(((((((((blkcnt_t)digits[3]) << PyLong_SHIFT) | (blkcnt_t)digits[2]) << PyLong_SHIFT) | (blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0]))); } } break; case 4: if ((8 * sizeof(blkcnt_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blkcnt_t) - 1 > 4 * PyLong_SHIFT)) { return (blkcnt_t) ((((((((((blkcnt_t)digits[3]) << PyLong_SHIFT) | (blkcnt_t)digits[2]) << PyLong_SHIFT) | (blkcnt_t)digits[1]) << PyLong_SHIFT) | (blkcnt_t)digits[0]))); } } break; } } #endif if ((sizeof(blkcnt_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(blkcnt_t, long, PyLong_AsLong(x)) } else if ((sizeof(blkcnt_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(blkcnt_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { blkcnt_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (blkcnt_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (blkcnt_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (blkcnt_t) -1; } else { stepval = v; } v = NULL; val = (blkcnt_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(blkcnt_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((blkcnt_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(blkcnt_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((blkcnt_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((blkcnt_t) 1) << (sizeof(blkcnt_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (blkcnt_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to blkcnt_t"); return (blkcnt_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to blkcnt_t"); return (blkcnt_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_blksize_t(blksize_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const blksize_t neg_one = (blksize_t) -1, const_zero = (blksize_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(blksize_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(blksize_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(blksize_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(blksize_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(blksize_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(blksize_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(blksize_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE blksize_t __Pyx_PyLong_As_blksize_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const blksize_t neg_one = (blksize_t) -1, const_zero = (blksize_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { blksize_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (blksize_t) -1; val = __Pyx_PyLong_As_blksize_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(blksize_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(blksize_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) >= 2 * PyLong_SHIFT)) { return (blksize_t) (((((blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0])); } } break; case 3: if ((8 * sizeof(blksize_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) >= 3 * PyLong_SHIFT)) { return (blksize_t) (((((((blksize_t)digits[2]) << PyLong_SHIFT) | (blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0])); } } break; case 4: if ((8 * sizeof(blksize_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) >= 4 * PyLong_SHIFT)) { return (blksize_t) (((((((((blksize_t)digits[3]) << PyLong_SHIFT) | (blksize_t)digits[2]) << PyLong_SHIFT) | (blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (blksize_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(blksize_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(blksize_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(blksize_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(blksize_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(blksize_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(blksize_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) - 1 > 2 * PyLong_SHIFT)) { return (blksize_t) (((blksize_t)-1)*(((((blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0]))); } } break; case 2: if ((8 * sizeof(blksize_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) - 1 > 2 * PyLong_SHIFT)) { return (blksize_t) ((((((blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0]))); } } break; case -3: if ((8 * sizeof(blksize_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) - 1 > 3 * PyLong_SHIFT)) { return (blksize_t) (((blksize_t)-1)*(((((((blksize_t)digits[2]) << PyLong_SHIFT) | (blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0]))); } } break; case 3: if ((8 * sizeof(blksize_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) - 1 > 3 * PyLong_SHIFT)) { return (blksize_t) ((((((((blksize_t)digits[2]) << PyLong_SHIFT) | (blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0]))); } } break; case -4: if ((8 * sizeof(blksize_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) - 1 > 4 * PyLong_SHIFT)) { return (blksize_t) (((blksize_t)-1)*(((((((((blksize_t)digits[3]) << PyLong_SHIFT) | (blksize_t)digits[2]) << PyLong_SHIFT) | (blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0]))); } } break; case 4: if ((8 * sizeof(blksize_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(blksize_t) - 1 > 4 * PyLong_SHIFT)) { return (blksize_t) ((((((((((blksize_t)digits[3]) << PyLong_SHIFT) | (blksize_t)digits[2]) << PyLong_SHIFT) | (blksize_t)digits[1]) << PyLong_SHIFT) | (blksize_t)digits[0]))); } } break; } } #endif if ((sizeof(blksize_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(blksize_t, long, PyLong_AsLong(x)) } else if ((sizeof(blksize_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(blksize_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { blksize_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (blksize_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (blksize_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (blksize_t) -1; } else { stepval = v; } v = NULL; val = (blksize_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(blksize_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((blksize_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(blksize_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((blksize_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((blksize_t) 1) << (sizeof(blksize_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (blksize_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to blksize_t"); return (blksize_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to blksize_t"); return (blksize_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_time_t(time_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const time_t neg_one = (time_t) -1, const_zero = (time_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(time_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(time_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(time_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(time_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(time_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(time_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(time_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE time_t __Pyx_PyLong_As_time_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const time_t neg_one = (time_t) -1, const_zero = (time_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { time_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (time_t) -1; val = __Pyx_PyLong_As_time_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(time_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(time_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) >= 2 * PyLong_SHIFT)) { return (time_t) (((((time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0])); } } break; case 3: if ((8 * sizeof(time_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) >= 3 * PyLong_SHIFT)) { return (time_t) (((((((time_t)digits[2]) << PyLong_SHIFT) | (time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0])); } } break; case 4: if ((8 * sizeof(time_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) >= 4 * PyLong_SHIFT)) { return (time_t) (((((((((time_t)digits[3]) << PyLong_SHIFT) | (time_t)digits[2]) << PyLong_SHIFT) | (time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (time_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(time_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(time_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(time_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(time_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(time_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(time_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) - 1 > 2 * PyLong_SHIFT)) { return (time_t) (((time_t)-1)*(((((time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0]))); } } break; case 2: if ((8 * sizeof(time_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) - 1 > 2 * PyLong_SHIFT)) { return (time_t) ((((((time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0]))); } } break; case -3: if ((8 * sizeof(time_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) - 1 > 3 * PyLong_SHIFT)) { return (time_t) (((time_t)-1)*(((((((time_t)digits[2]) << PyLong_SHIFT) | (time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0]))); } } break; case 3: if ((8 * sizeof(time_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) - 1 > 3 * PyLong_SHIFT)) { return (time_t) ((((((((time_t)digits[2]) << PyLong_SHIFT) | (time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0]))); } } break; case -4: if ((8 * sizeof(time_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) - 1 > 4 * PyLong_SHIFT)) { return (time_t) (((time_t)-1)*(((((((((time_t)digits[3]) << PyLong_SHIFT) | (time_t)digits[2]) << PyLong_SHIFT) | (time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0]))); } } break; case 4: if ((8 * sizeof(time_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(time_t) - 1 > 4 * PyLong_SHIFT)) { return (time_t) ((((((((((time_t)digits[3]) << PyLong_SHIFT) | (time_t)digits[2]) << PyLong_SHIFT) | (time_t)digits[1]) << PyLong_SHIFT) | (time_t)digits[0]))); } } break; } } #endif if ((sizeof(time_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(time_t, long, PyLong_AsLong(x)) } else if ((sizeof(time_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(time_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { time_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (time_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (time_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (time_t) -1; } else { stepval = v; } v = NULL; val = (time_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(time_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((time_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(time_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((time_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((time_t) 1) << (sizeof(time_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (time_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to time_t"); return (time_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to time_t"); return (time_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_long(unsigned long value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const unsigned long neg_one = (unsigned long) -1, const_zero = (unsigned long) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(unsigned long) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(unsigned long) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(unsigned long) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(unsigned long) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(unsigned long) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(unsigned long), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(unsigned long)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE unsigned long __Pyx_PyLong_As_unsigned_long(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const unsigned long neg_one = (unsigned long) -1, const_zero = (unsigned long) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { unsigned long val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (unsigned long) -1; val = __Pyx_PyLong_As_unsigned_long(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(unsigned long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(unsigned long) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) >= 2 * PyLong_SHIFT)) { return (unsigned long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); } } break; case 3: if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) >= 3 * PyLong_SHIFT)) { return (unsigned long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); } } break; case 4: if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) >= 4 * PyLong_SHIFT)) { return (unsigned long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (unsigned long) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(unsigned long) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(unsigned long, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(unsigned long) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(unsigned long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(unsigned long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(unsigned long) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) - 1 > 2 * PyLong_SHIFT)) { return (unsigned long) (((unsigned long)-1)*(((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); } } break; case 2: if ((8 * sizeof(unsigned long) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) - 1 > 2 * PyLong_SHIFT)) { return (unsigned long) ((((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); } } break; case -3: if ((8 * sizeof(unsigned long) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) - 1 > 3 * PyLong_SHIFT)) { return (unsigned long) (((unsigned long)-1)*(((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); } } break; case 3: if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) - 1 > 3 * PyLong_SHIFT)) { return (unsigned long) ((((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); } } break; case -4: if ((8 * sizeof(unsigned long) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) - 1 > 4 * PyLong_SHIFT)) { return (unsigned long) (((unsigned long)-1)*(((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); } } break; case 4: if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(unsigned long) - 1 > 4 * PyLong_SHIFT)) { return (unsigned long) ((((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); } } break; } } #endif if ((sizeof(unsigned long) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(unsigned long, long, PyLong_AsLong(x)) } else if ((sizeof(unsigned long) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(unsigned long, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { unsigned long val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (unsigned long) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (unsigned long) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (unsigned long) -1; } else { stepval = v; } v = NULL; val = (unsigned long) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(unsigned long) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((unsigned long) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(unsigned long) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((unsigned long) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((unsigned long) 1) << (sizeof(unsigned long) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (unsigned long) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to unsigned long"); return (unsigned long) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned long"); return (unsigned long) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_fsblkcnt_t(fsblkcnt_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const fsblkcnt_t neg_one = (fsblkcnt_t) -1, const_zero = (fsblkcnt_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(fsblkcnt_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(fsblkcnt_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(fsblkcnt_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(fsblkcnt_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(fsblkcnt_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(fsblkcnt_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(fsblkcnt_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE fsblkcnt_t __Pyx_PyLong_As_fsblkcnt_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const fsblkcnt_t neg_one = (fsblkcnt_t) -1, const_zero = (fsblkcnt_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { fsblkcnt_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (fsblkcnt_t) -1; val = __Pyx_PyLong_As_fsblkcnt_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(fsblkcnt_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) >= 2 * PyLong_SHIFT)) { return (fsblkcnt_t) (((((fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0])); } } break; case 3: if ((8 * sizeof(fsblkcnt_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) >= 3 * PyLong_SHIFT)) { return (fsblkcnt_t) (((((((fsblkcnt_t)digits[2]) << PyLong_SHIFT) | (fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0])); } } break; case 4: if ((8 * sizeof(fsblkcnt_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) >= 4 * PyLong_SHIFT)) { return (fsblkcnt_t) (((((((((fsblkcnt_t)digits[3]) << PyLong_SHIFT) | (fsblkcnt_t)digits[2]) << PyLong_SHIFT) | (fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (fsblkcnt_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(fsblkcnt_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(fsblkcnt_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(fsblkcnt_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(fsblkcnt_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(fsblkcnt_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) - 1 > 2 * PyLong_SHIFT)) { return (fsblkcnt_t) (((fsblkcnt_t)-1)*(((((fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0]))); } } break; case 2: if ((8 * sizeof(fsblkcnt_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) - 1 > 2 * PyLong_SHIFT)) { return (fsblkcnt_t) ((((((fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0]))); } } break; case -3: if ((8 * sizeof(fsblkcnt_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) - 1 > 3 * PyLong_SHIFT)) { return (fsblkcnt_t) (((fsblkcnt_t)-1)*(((((((fsblkcnt_t)digits[2]) << PyLong_SHIFT) | (fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0]))); } } break; case 3: if ((8 * sizeof(fsblkcnt_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) - 1 > 3 * PyLong_SHIFT)) { return (fsblkcnt_t) ((((((((fsblkcnt_t)digits[2]) << PyLong_SHIFT) | (fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0]))); } } break; case -4: if ((8 * sizeof(fsblkcnt_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) - 1 > 4 * PyLong_SHIFT)) { return (fsblkcnt_t) (((fsblkcnt_t)-1)*(((((((((fsblkcnt_t)digits[3]) << PyLong_SHIFT) | (fsblkcnt_t)digits[2]) << PyLong_SHIFT) | (fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0]))); } } break; case 4: if ((8 * sizeof(fsblkcnt_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsblkcnt_t) - 1 > 4 * PyLong_SHIFT)) { return (fsblkcnt_t) ((((((((((fsblkcnt_t)digits[3]) << PyLong_SHIFT) | (fsblkcnt_t)digits[2]) << PyLong_SHIFT) | (fsblkcnt_t)digits[1]) << PyLong_SHIFT) | (fsblkcnt_t)digits[0]))); } } break; } } #endif if ((sizeof(fsblkcnt_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(fsblkcnt_t, long, PyLong_AsLong(x)) } else if ((sizeof(fsblkcnt_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(fsblkcnt_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { fsblkcnt_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (fsblkcnt_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (fsblkcnt_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (fsblkcnt_t) -1; } else { stepval = v; } v = NULL; val = (fsblkcnt_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(fsblkcnt_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((fsblkcnt_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(fsblkcnt_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((fsblkcnt_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((fsblkcnt_t) 1) << (sizeof(fsblkcnt_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (fsblkcnt_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to fsblkcnt_t"); return (fsblkcnt_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to fsblkcnt_t"); return (fsblkcnt_t) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_fsfilcnt_t(fsfilcnt_t value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const fsfilcnt_t neg_one = (fsfilcnt_t) -1, const_zero = (fsfilcnt_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(fsfilcnt_t) < sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(fsfilcnt_t) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #if !CYTHON_COMPILING_IN_PYPY } else if (sizeof(fsfilcnt_t) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(fsfilcnt_t) <= sizeof(long)) { return PyLong_FromLong((long) value); } else if (sizeof(fsfilcnt_t) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); } } { unsigned char *bytes = (unsigned char *)&value; #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 if (is_unsigned) { return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); } else { return PyLong_FromNativeBytes(bytes, sizeof(value), -1); } #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 int one = 1; int little = (int)*(unsigned char *)&one; return _PyLong_FromByteArray(bytes, sizeof(fsfilcnt_t), little, !is_unsigned); #else int one = 1; int little = (int)*(unsigned char *)&one; PyObject *from_bytes, *result = NULL, *kwds = NULL; PyObject *py_bytes = NULL, *order_str = NULL; from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); if (!from_bytes) return NULL; py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(fsfilcnt_t)); if (!py_bytes) goto limited_bad; order_str = PyUnicode_FromString(little ? "little" : "big"); if (!order_str) goto limited_bad; { PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; if (!is_unsigned) { kwds = __Pyx_MakeVectorcallBuilderKwds(1); if (!kwds) goto limited_bad; if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; } result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); } limited_bad: Py_XDECREF(kwds); Py_XDECREF(order_str); Py_XDECREF(py_bytes); Py_XDECREF(from_bytes); return result; #endif } } /* CIntFromPy */ static CYTHON_INLINE fsfilcnt_t __Pyx_PyLong_As_fsfilcnt_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const fsfilcnt_t neg_one = (fsfilcnt_t) -1, const_zero = (fsfilcnt_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (unlikely(!PyLong_Check(x))) { fsfilcnt_t val; PyObject *tmp = __Pyx_PyNumber_Long(x); if (!tmp) return (fsfilcnt_t) -1; val = __Pyx_PyLong_As_fsfilcnt_t(tmp); Py_DECREF(tmp); return val; } if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS if (unlikely(__Pyx_PyLong_IsNeg(x))) { goto raise_neg_overflow; } else if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_DigitCount(x)) { case 2: if ((8 * sizeof(fsfilcnt_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) >= 2 * PyLong_SHIFT)) { return (fsfilcnt_t) (((((fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0])); } } break; case 3: if ((8 * sizeof(fsfilcnt_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) >= 3 * PyLong_SHIFT)) { return (fsfilcnt_t) (((((((fsfilcnt_t)digits[2]) << PyLong_SHIFT) | (fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0])); } } break; case 4: if ((8 * sizeof(fsfilcnt_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) >= 4 * PyLong_SHIFT)) { return (fsfilcnt_t) (((((((((fsfilcnt_t)digits[3]) << PyLong_SHIFT) | (fsfilcnt_t)digits[2]) << PyLong_SHIFT) | (fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0])); } } break; } } #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (fsfilcnt_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(fsfilcnt_t) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(fsfilcnt_t, unsigned long, PyLong_AsUnsignedLong(x)) } else if ((sizeof(fsfilcnt_t) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(fsfilcnt_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) } } else { #if CYTHON_USE_PYLONG_INTERNALS if (__Pyx_PyLong_IsCompact(x)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) } else { const digit* digits = __Pyx_PyLong_Digits(x); assert(__Pyx_PyLong_DigitCount(x) > 1); switch (__Pyx_PyLong_SignedDigitCount(x)) { case -2: if ((8 * sizeof(fsfilcnt_t) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) - 1 > 2 * PyLong_SHIFT)) { return (fsfilcnt_t) (((fsfilcnt_t)-1)*(((((fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0]))); } } break; case 2: if ((8 * sizeof(fsfilcnt_t) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) - 1 > 2 * PyLong_SHIFT)) { return (fsfilcnt_t) ((((((fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0]))); } } break; case -3: if ((8 * sizeof(fsfilcnt_t) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) - 1 > 3 * PyLong_SHIFT)) { return (fsfilcnt_t) (((fsfilcnt_t)-1)*(((((((fsfilcnt_t)digits[2]) << PyLong_SHIFT) | (fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0]))); } } break; case 3: if ((8 * sizeof(fsfilcnt_t) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) - 1 > 3 * PyLong_SHIFT)) { return (fsfilcnt_t) ((((((((fsfilcnt_t)digits[2]) << PyLong_SHIFT) | (fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0]))); } } break; case -4: if ((8 * sizeof(fsfilcnt_t) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) - 1 > 4 * PyLong_SHIFT)) { return (fsfilcnt_t) (((fsfilcnt_t)-1)*(((((((((fsfilcnt_t)digits[3]) << PyLong_SHIFT) | (fsfilcnt_t)digits[2]) << PyLong_SHIFT) | (fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0]))); } } break; case 4: if ((8 * sizeof(fsfilcnt_t) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(fsfilcnt_t) - 1 > 4 * PyLong_SHIFT)) { return (fsfilcnt_t) ((((((((((fsfilcnt_t)digits[3]) << PyLong_SHIFT) | (fsfilcnt_t)digits[2]) << PyLong_SHIFT) | (fsfilcnt_t)digits[1]) << PyLong_SHIFT) | (fsfilcnt_t)digits[0]))); } } break; } } #endif if ((sizeof(fsfilcnt_t) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(fsfilcnt_t, long, PyLong_AsLong(x)) } else if ((sizeof(fsfilcnt_t) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(fsfilcnt_t, PY_LONG_LONG, PyLong_AsLongLong(x)) } } { fsfilcnt_t val; int ret = -1; #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API Py_ssize_t bytes_copied = PyLong_AsNativeBytes( x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); if (unlikely(bytes_copied == -1)) { } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { goto raise_overflow; } else { ret = 0; } #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; ret = _PyLong_AsByteArray((PyLongObject *)x, bytes, sizeof(val), is_little, !is_unsigned); #else PyObject *v; PyObject *stepval = NULL, *mask = NULL, *shift = NULL; int bits, remaining_bits, is_negative = 0; int chunk_size = (sizeof(long) < 8) ? 30 : 62; if (likely(PyLong_CheckExact(x))) { v = __Pyx_NewRef(x); } else { v = PyNumber_Long(x); if (unlikely(!v)) return (fsfilcnt_t) -1; assert(PyLong_CheckExact(v)); } { int result = PyObject_RichCompareBool(v, Py_False, Py_LT); if (unlikely(result < 0)) { Py_DECREF(v); return (fsfilcnt_t) -1; } is_negative = result == 1; } if (is_unsigned && unlikely(is_negative)) { Py_DECREF(v); goto raise_neg_overflow; } else if (is_negative) { stepval = PyNumber_Invert(v); Py_DECREF(v); if (unlikely(!stepval)) return (fsfilcnt_t) -1; } else { stepval = v; } v = NULL; val = (fsfilcnt_t) 0; mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; for (bits = 0; bits < (int) sizeof(fsfilcnt_t) * 8 - chunk_size; bits += chunk_size) { PyObject *tmp, *digit; long idigit; digit = PyNumber_And(stepval, mask); if (unlikely(!digit)) goto done; idigit = PyLong_AsLong(digit); Py_DECREF(digit); if (unlikely(idigit < 0)) goto done; val |= ((fsfilcnt_t) idigit) << bits; tmp = PyNumber_Rshift(stepval, shift); if (unlikely(!tmp)) goto done; Py_DECREF(stepval); stepval = tmp; } Py_DECREF(shift); shift = NULL; Py_DECREF(mask); mask = NULL; { long idigit = PyLong_AsLong(stepval); if (unlikely(idigit < 0)) goto done; remaining_bits = ((int) sizeof(fsfilcnt_t) * 8) - bits - (is_unsigned ? 0 : 1); if (unlikely(idigit >= (1L << remaining_bits))) goto raise_overflow; val |= ((fsfilcnt_t) idigit) << bits; } if (!is_unsigned) { if (unlikely(val & (((fsfilcnt_t) 1) << (sizeof(fsfilcnt_t) * 8 - 1)))) goto raise_overflow; if (is_negative) val = ~val; } ret = 0; done: Py_XDECREF(shift); Py_XDECREF(mask); Py_XDECREF(stepval); #endif if (unlikely(ret)) return (fsfilcnt_t) -1; return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to fsfilcnt_t"); return (fsfilcnt_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to fsfilcnt_t"); return (fsfilcnt_t) -1; } /* UpdateUnpickledDict */ static int __Pyx__UpdateUnpickledDict(PyObject *obj, PyObject *state, Py_ssize_t index) { PyObject *state_dict = __Pyx_PySequence_ITEM(state, index); if (unlikely(!state_dict)) { return -1; } int non_empty = PyObject_IsTrue(state_dict); if (non_empty == 0) { Py_DECREF(state_dict); return 0; } else if (unlikely(non_empty == -1)) { return -1; } PyObject *dict; #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000 dict = PyObject_GetAttrString(obj, "__dict__"); #else dict = PyObject_GenericGetDict(obj, NULL); #endif if (unlikely(!dict)) { Py_DECREF(state_dict); return -1; } int result; if (likely(PyDict_CheckExact(dict))) { result = PyDict_Update(dict, state_dict); } else { PyObject *obj_result = __Pyx_PyObject_CallMethod1(dict, __pyx_mstate_global->__pyx_n_u_update, state_dict); if (likely(obj_result)) { Py_DECREF(obj_result); result = 0; } else { result = -1; } } Py_DECREF(state_dict); Py_DECREF(dict); return result; } static int __Pyx_UpdateUnpickledDict(PyObject *obj, PyObject *state, Py_ssize_t index) { Py_ssize_t state_size = __Pyx_PyTuple_GET_SIZE(state); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely(state_size == -1)) return -1; #endif if (state_size <= index) { return 0; } return __Pyx__UpdateUnpickledDict(obj, state, index); } /* GetRuntimeVersion */ #if __PYX_LIMITED_VERSION_HEX < 0x030b0000 void __Pyx_init_runtime_version(void) { if (__Pyx_cached_runtime_version == 0) { const char* rt_version = Py_GetVersion(); unsigned long version = 0; unsigned long factor = 0x01000000UL; unsigned int digit = 0; int i = 0; while (factor) { while ('0' <= rt_version[i] && rt_version[i] <= '9') { digit = digit * 10 + (unsigned int) (rt_version[i] - '0'); ++i; } version += factor * digit; if (rt_version[i] != '.') break; digit = 0; factor >>= 8; ++i; } __Pyx_cached_runtime_version = version; } } #endif static unsigned long __Pyx_get_runtime_version(void) { #if __PYX_LIMITED_VERSION_HEX >= 0x030b0000 return Py_Version & ~0xFFUL; #else return __Pyx_cached_runtime_version; #endif } /* CheckBinaryVersion */ static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) { const unsigned long MAJOR_MINOR = 0xFFFF0000UL; if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR)) return 0; if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR))) return 1; { char message[200]; PyOS_snprintf(message, sizeof(message), "compile time Python version %d.%d " "of module '%.100s' " "%s " "runtime version %d.%d", (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF), __Pyx_MODULE_NAME, (allow_newer) ? "was newer than" : "does not match", (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF) ); return PyErr_WarnEx(NULL, message, 1); } } /* NewCodeObj */ #if CYTHON_COMPILING_IN_LIMITED_API static PyObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f, PyObject *code, PyObject *c, PyObject* n, PyObject *v, PyObject *fv, PyObject *cell, PyObject* fn, PyObject *name, int fline, PyObject *lnos) { PyObject *exception_table = NULL; PyObject *types_module=NULL, *code_type=NULL, *result=NULL; #if __PYX_LIMITED_VERSION_HEX < 0x030b0000 PyObject *version_info; PyObject *py_minor_version = NULL; #endif long minor_version = 0; PyObject *type, *value, *traceback; PyErr_Fetch(&type, &value, &traceback); #if __PYX_LIMITED_VERSION_HEX >= 0x030b0000 minor_version = 11; #else if (!(version_info = PySys_GetObject("version_info"))) goto end; if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end; minor_version = PyLong_AsLong(py_minor_version); Py_DECREF(py_minor_version); if (minor_version == -1 && PyErr_Occurred()) goto end; #endif if (!(types_module = PyImport_ImportModule("types"))) goto end; if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end; if (minor_version <= 7) { (void)p; result = PyObject_CallFunction(code_type, "iiiiiOOOOOOiOOO", a, k, l, s, f, code, c, n, v, fn, name, fline, lnos, fv, cell); } else if (minor_version <= 10) { result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOOO", a,p, k, l, s, f, code, c, n, v, fn, name, fline, lnos, fv, cell); } else { if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end; result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOOOO", a,p, k, l, s, f, code, c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell); } end: Py_XDECREF(code_type); Py_XDECREF(exception_table); Py_XDECREF(types_module); if (type) { PyErr_Restore(type, value, traceback); } return result; } #elif PY_VERSION_HEX >= 0x030B0000 static PyCodeObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f, PyObject *code, PyObject *c, PyObject* n, PyObject *v, PyObject *fv, PyObject *cell, PyObject* fn, PyObject *name, int fline, PyObject *lnos) { PyCodeObject *result; result = #if PY_VERSION_HEX >= 0x030C0000 PyUnstable_Code_NewWithPosOnlyArgs #else PyCode_NewWithPosOnlyArgs #endif (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, __pyx_mstate_global->__pyx_empty_bytes); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030c00A1 if (likely(result)) result->_co_firsttraceable = 0; #endif return result; } #elif !CYTHON_COMPILING_IN_PYPY #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif static PyObject* __Pyx_PyCode_New( const __Pyx_PyCode_New_function_description descr, PyObject * const *varnames, PyObject *filename, PyObject *funcname, PyObject *line_table, PyObject *tuple_dedup_map ) { PyObject *code_obj = NULL, *varnames_tuple_dedup = NULL, *code_bytes = NULL; Py_ssize_t var_count = (Py_ssize_t) descr.nlocals; PyObject *varnames_tuple = PyTuple_New(var_count); if (unlikely(!varnames_tuple)) return NULL; for (Py_ssize_t i=0; i < var_count; i++) { Py_INCREF(varnames[i]); if (__Pyx_PyTuple_SET_ITEM(varnames_tuple, i, varnames[i]) != (0)) goto done; } #if CYTHON_COMPILING_IN_LIMITED_API varnames_tuple_dedup = PyDict_GetItem(tuple_dedup_map, varnames_tuple); if (!varnames_tuple_dedup) { if (unlikely(PyDict_SetItem(tuple_dedup_map, varnames_tuple, varnames_tuple) < 0)) goto done; varnames_tuple_dedup = varnames_tuple; } #else varnames_tuple_dedup = PyDict_SetDefault(tuple_dedup_map, varnames_tuple, varnames_tuple); if (unlikely(!varnames_tuple_dedup)) goto done; #endif #if CYTHON_AVOID_BORROWED_REFS Py_INCREF(varnames_tuple_dedup); #endif if (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table != NULL && !CYTHON_COMPILING_IN_GRAAL) { Py_ssize_t line_table_length = __Pyx_PyBytes_GET_SIZE(line_table); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely(line_table_length == -1)) goto done; #endif Py_ssize_t code_len = (line_table_length * 2 + 4) & ~3LL; code_bytes = PyBytes_FromStringAndSize(NULL, code_len); if (unlikely(!code_bytes)) goto done; char* c_code_bytes = PyBytes_AsString(code_bytes); if (unlikely(!c_code_bytes)) goto done; memset(c_code_bytes, 0, (size_t) code_len); } code_obj = (PyObject*) __Pyx__PyCode_New( (int) descr.argcount, (int) descr.num_posonly_args, (int) descr.num_kwonly_args, (int) descr.nlocals, 0, (int) descr.flags, code_bytes ? code_bytes : __pyx_mstate_global->__pyx_empty_bytes, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_empty_tuple, varnames_tuple_dedup, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_empty_tuple, filename, funcname, (int) descr.first_line, (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table) ? line_table : __pyx_mstate_global->__pyx_empty_bytes ); done: Py_XDECREF(code_bytes); #if CYTHON_AVOID_BORROWED_REFS Py_XDECREF(varnames_tuple_dedup); #endif Py_DECREF(varnames_tuple); return code_obj; } /* DecompressString */ static PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo) { PyObject *module = NULL, *decompress, *compressed_bytes, *decompressed; const char* module_name = algo == 3 ? "compression.zstd" : algo == 2 ? "bz2" : "zlib"; PyObject *methodname = PyUnicode_FromString("decompress"); if (unlikely(!methodname)) return NULL; #if __PYX_LIMITED_VERSION_HEX >= 0x030e0000 if (algo == 3) { PyObject *fromlist = Py_BuildValue("[O]", methodname); if (unlikely(!fromlist)) goto bad; module = PyImport_ImportModuleLevel("compression.zstd", NULL, NULL, fromlist, 0); Py_DECREF(fromlist); } else #endif module = PyImport_ImportModule(module_name); if (unlikely(!module)) goto import_failed; decompress = PyObject_GetAttr(module, methodname); if (unlikely(!decompress)) goto import_failed; { #ifdef __cplusplus char *memview_bytes = const_cast(s); #else #if defined(__clang__) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wcast-qual" #elif !defined(__INTEL_COMPILER) && defined(__GNUC__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wcast-qual" #endif char *memview_bytes = (char*) s; #if defined(__clang__) #pragma clang diagnostic pop #elif !defined(__INTEL_COMPILER) && defined(__GNUC__) #pragma GCC diagnostic pop #endif #endif #if CYTHON_COMPILING_IN_LIMITED_API && !defined(PyBUF_READ) int memview_flags = 0x100; #else int memview_flags = PyBUF_READ; #endif compressed_bytes = PyMemoryView_FromMemory(memview_bytes, length, memview_flags); } if (unlikely(!compressed_bytes)) { Py_DECREF(decompress); goto bad; } decompressed = PyObject_CallFunctionObjArgs(decompress, compressed_bytes, NULL); Py_DECREF(compressed_bytes); Py_DECREF(decompress); Py_DECREF(module); Py_DECREF(methodname); return decompressed; import_failed: PyErr_Format(PyExc_ImportError, "Failed to import '%.20s.decompress' - cannot initialise module strings. " "String compression was configured with the C macro 'CYTHON_COMPRESS_STRINGS=%d'.", module_name, algo); bad: Py_XDECREF(module); Py_DECREF(methodname); return NULL; } #include static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) { size_t len = strlen(s); if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) { PyErr_SetString(PyExc_OverflowError, "byte string is too long"); return -1; } return (Py_ssize_t) len; } static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { Py_ssize_t len = __Pyx_ssize_strlen(c_str); if (unlikely(len < 0)) return NULL; return __Pyx_PyUnicode_FromStringAndSize(c_str, len); } static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) { Py_ssize_t len = __Pyx_ssize_strlen(c_str); if (unlikely(len < 0)) return NULL; return PyByteArray_FromStringAndSize(c_str, len); } static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { Py_ssize_t ignore; return __Pyx_PyObject_AsStringAndSize(o, &ignore); } #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; #if CYTHON_COMPILING_IN_LIMITED_API { const char* result; Py_ssize_t unicode_length; CYTHON_MAYBE_UNUSED_VAR(unicode_length); // only for __PYX_DEFAULT_STRING_ENCODING_IS_ASCII #if __PYX_LIMITED_VERSION_HEX < 0x030A0000 if (unlikely(PyArg_Parse(o, "s#", &result, length) < 0)) return NULL; #else result = PyUnicode_AsUTF8AndSize(o, length); #endif #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII unicode_length = PyUnicode_GetLength(o); if (unlikely(unicode_length < 0)) return NULL; if (unlikely(unicode_length != *length)) { PyUnicode_AsASCIIString(o); return NULL; } #endif return result; } #else #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII if (likely(PyUnicode_IS_ASCII(o))) { *length = PyUnicode_GET_LENGTH(o); return PyUnicode_AsUTF8(o); } else { PyUnicode_AsASCIIString(o); return NULL; } #else return PyUnicode_AsUTF8AndSize(o, length); #endif #endif } #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 if (PyUnicode_Check(o)) { return __Pyx_PyUnicode_AsStringAndSize(o, length); } else #endif if (PyByteArray_Check(o)) { #if (CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS) || (CYTHON_COMPILING_IN_PYPY && (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))) *length = PyByteArray_GET_SIZE(o); return PyByteArray_AS_STRING(o); #else *length = PyByteArray_Size(o); if (*length == -1) return NULL; return PyByteArray_AsString(o); #endif } else { char* result; int r = PyBytes_AsStringAndSize(o, &result, length); if (unlikely(r < 0)) { return NULL; } else { return result; } } } static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { int is_true = x == Py_True; if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { int retval; if (unlikely(!x)) return -1; retval = __Pyx_PyObject_IsTrue(x); Py_DECREF(x); return retval; } static PyObject* __Pyx_PyNumber_LongWrongResultType(PyObject* result) { __Pyx_TypeName result_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(result)); if (PyLong_Check(result)) { if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, "__int__ returned non-int (type " __Pyx_FMT_TYPENAME "). " "The ability to return an instance of a strict subclass of int is deprecated, " "and may be removed in a future version of Python.", result_type_name)) { __Pyx_DECREF_TypeName(result_type_name); Py_DECREF(result); return NULL; } __Pyx_DECREF_TypeName(result_type_name); return result; } PyErr_Format(PyExc_TypeError, "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ")", result_type_name); __Pyx_DECREF_TypeName(result_type_name); Py_DECREF(result); return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x) { #if CYTHON_USE_TYPE_SLOTS PyNumberMethods *m; #endif PyObject *res = NULL; if (likely(PyLong_Check(x))) return __Pyx_NewRef(x); #if CYTHON_USE_TYPE_SLOTS m = Py_TYPE(x)->tp_as_number; if (likely(m && m->nb_int)) { res = m->nb_int(x); } #else if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { res = PyNumber_Long(x); } #endif if (likely(res)) { if (unlikely(!PyLong_CheckExact(res))) { return __Pyx_PyNumber_LongWrongResultType(res); } } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "an integer is required"); } return res; } static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_ssize_t ival; PyObject *x; if (likely(PyLong_CheckExact(b))) { #if CYTHON_USE_PYLONG_INTERNALS if (likely(__Pyx_PyLong_IsCompact(b))) { return __Pyx_PyLong_CompactValue(b); } else { const digit* digits = __Pyx_PyLong_Digits(b); const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b); switch (size) { case 2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; } } #endif return PyLong_AsSsize_t(b); } x = PyNumber_Index(b); if (!x) return -1; ival = PyLong_AsSsize_t(x); Py_DECREF(x); return ival; } static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); } else { Py_ssize_t ival; PyObject *x; x = PyNumber_Index(o); if (!x) return -1; ival = PyLong_AsLong(x); Py_DECREF(x); return ival; } } static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b) { CYTHON_UNUSED_VAR(b); return __Pyx_NewRef(Py_None); } static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { return __Pyx_NewRef(b ? Py_True: Py_False); } static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t ival) { return PyLong_FromSize_t(ival); } /* MultiPhaseInitModuleState */ #if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE #ifndef CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE #if (CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX >= 0x030C0000) #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 1 #else #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 0 #endif #endif #if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE && !CYTHON_ATOMICS #error "Module state with PEP489 requires atomics. Currently that's one of\ C11, C++11, gcc atomic intrinsics or MSVC atomic intrinsics" #endif #if !CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE #define __Pyx_ModuleStateLookup_Lock() #define __Pyx_ModuleStateLookup_Unlock() #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000 static PyMutex __Pyx_ModuleStateLookup_mutex = {0}; #define __Pyx_ModuleStateLookup_Lock() PyMutex_Lock(&__Pyx_ModuleStateLookup_mutex) #define __Pyx_ModuleStateLookup_Unlock() PyMutex_Unlock(&__Pyx_ModuleStateLookup_mutex) #elif defined(__cplusplus) && __cplusplus >= 201103L #include static std::mutex __Pyx_ModuleStateLookup_mutex; #define __Pyx_ModuleStateLookup_Lock() __Pyx_ModuleStateLookup_mutex.lock() #define __Pyx_ModuleStateLookup_Unlock() __Pyx_ModuleStateLookup_mutex.unlock() #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201112L) && !defined(__STDC_NO_THREADS__) #include static mtx_t __Pyx_ModuleStateLookup_mutex; static once_flag __Pyx_ModuleStateLookup_mutex_once_flag = ONCE_FLAG_INIT; static void __Pyx_ModuleStateLookup_initialize_mutex(void) { mtx_init(&__Pyx_ModuleStateLookup_mutex, mtx_plain); } #define __Pyx_ModuleStateLookup_Lock()\ call_once(&__Pyx_ModuleStateLookup_mutex_once_flag, __Pyx_ModuleStateLookup_initialize_mutex);\ mtx_lock(&__Pyx_ModuleStateLookup_mutex) #define __Pyx_ModuleStateLookup_Unlock() mtx_unlock(&__Pyx_ModuleStateLookup_mutex) #elif defined(HAVE_PTHREAD_H) #include static pthread_mutex_t __Pyx_ModuleStateLookup_mutex = PTHREAD_MUTEX_INITIALIZER; #define __Pyx_ModuleStateLookup_Lock() pthread_mutex_lock(&__Pyx_ModuleStateLookup_mutex) #define __Pyx_ModuleStateLookup_Unlock() pthread_mutex_unlock(&__Pyx_ModuleStateLookup_mutex) #elif defined(_WIN32) #include // synchapi.h on its own doesn't work static SRWLOCK __Pyx_ModuleStateLookup_mutex = SRWLOCK_INIT; #define __Pyx_ModuleStateLookup_Lock() AcquireSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex) #define __Pyx_ModuleStateLookup_Unlock() ReleaseSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex) #else #error "No suitable lock available for CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE.\ Requires C standard >= C11, or C++ standard >= C++11,\ or pthreads, or the Windows 32 API, or Python >= 3.13." #endif typedef struct { int64_t id; PyObject *module; } __Pyx_InterpreterIdAndModule; typedef struct { char interpreter_id_as_index; Py_ssize_t count; Py_ssize_t allocated; __Pyx_InterpreterIdAndModule table[1]; } __Pyx_ModuleStateLookupData; #define __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE 32 #if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE static __pyx_atomic_int_type __Pyx_ModuleStateLookup_read_counter = 0; #endif #if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE static __pyx_atomic_ptr_type __Pyx_ModuleStateLookup_data = 0; #else static __Pyx_ModuleStateLookupData* __Pyx_ModuleStateLookup_data = NULL; #endif static __Pyx_InterpreterIdAndModule* __Pyx_State_FindModuleStateLookupTableLowerBound( __Pyx_InterpreterIdAndModule* table, Py_ssize_t count, int64_t interpreterId) { __Pyx_InterpreterIdAndModule* begin = table; __Pyx_InterpreterIdAndModule* end = begin + count; if (begin->id == interpreterId) { return begin; } while ((end - begin) > __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) { __Pyx_InterpreterIdAndModule* halfway = begin + (end - begin)/2; if (halfway->id == interpreterId) { return halfway; } if (halfway->id < interpreterId) { begin = halfway; } else { end = halfway; } } for (; begin < end; ++begin) { if (begin->id >= interpreterId) return begin; } return begin; } static PyObject *__Pyx_State_FindModule(CYTHON_UNUSED void* dummy) { int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get()); if (interpreter_id == -1) return NULL; #if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE __Pyx_ModuleStateLookupData* data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data); { __pyx_atomic_incr_acq_rel(&__Pyx_ModuleStateLookup_read_counter); if (likely(data)) { __Pyx_ModuleStateLookupData* new_data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_acquire(&__Pyx_ModuleStateLookup_data); if (likely(data == new_data)) { goto read_finished; } } __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter); __Pyx_ModuleStateLookup_Lock(); __pyx_atomic_incr_relaxed(&__Pyx_ModuleStateLookup_read_counter); data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data); __Pyx_ModuleStateLookup_Unlock(); } read_finished:; #else __Pyx_ModuleStateLookupData* data = __Pyx_ModuleStateLookup_data; #endif __Pyx_InterpreterIdAndModule* found = NULL; if (unlikely(!data)) goto end; if (data->interpreter_id_as_index) { if (interpreter_id < data->count) { found = data->table+interpreter_id; } } else { found = __Pyx_State_FindModuleStateLookupTableLowerBound( data->table, data->count, interpreter_id); } end: { PyObject *result=NULL; if (found && found->id == interpreter_id) { result = found->module; } #if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter); #endif return result; } } #if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE static void __Pyx_ModuleStateLookup_wait_until_no_readers(void) { while (__pyx_atomic_load(&__Pyx_ModuleStateLookup_read_counter) != 0); } #else #define __Pyx_ModuleStateLookup_wait_until_no_readers() #endif static int __Pyx_State_AddModuleInterpIdAsIndex(__Pyx_ModuleStateLookupData **old_data, PyObject* module, int64_t interpreter_id) { Py_ssize_t to_allocate = (*old_data)->allocated; while (to_allocate <= interpreter_id) { if (to_allocate == 0) to_allocate = 1; else to_allocate *= 2; } __Pyx_ModuleStateLookupData *new_data = *old_data; if (to_allocate != (*old_data)->allocated) { new_data = (__Pyx_ModuleStateLookupData *)realloc( *old_data, sizeof(__Pyx_ModuleStateLookupData)+(to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule)); if (!new_data) { PyErr_NoMemory(); return -1; } for (Py_ssize_t i = new_data->allocated; i < to_allocate; ++i) { new_data->table[i].id = i; new_data->table[i].module = NULL; } new_data->allocated = to_allocate; } new_data->table[interpreter_id].module = module; if (new_data->count < interpreter_id+1) { new_data->count = interpreter_id+1; } *old_data = new_data; return 0; } static void __Pyx_State_ConvertFromInterpIdAsIndex(__Pyx_ModuleStateLookupData *data) { __Pyx_InterpreterIdAndModule *read = data->table; __Pyx_InterpreterIdAndModule *write = data->table; __Pyx_InterpreterIdAndModule *end = read + data->count; for (; readmodule) { write->id = read->id; write->module = read->module; ++write; } } data->count = write - data->table; for (; writeid = 0; write->module = NULL; } data->interpreter_id_as_index = 0; } static int __Pyx_State_AddModule(PyObject* module, CYTHON_UNUSED void* dummy) { int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get()); if (interpreter_id == -1) return -1; int result = 0; __Pyx_ModuleStateLookup_Lock(); #if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE __Pyx_ModuleStateLookupData *old_data = (__Pyx_ModuleStateLookupData *) __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0); #else __Pyx_ModuleStateLookupData *old_data = __Pyx_ModuleStateLookup_data; #endif __Pyx_ModuleStateLookupData *new_data = old_data; if (!new_data) { new_data = (__Pyx_ModuleStateLookupData *)calloc(1, sizeof(__Pyx_ModuleStateLookupData)); if (!new_data) { result = -1; PyErr_NoMemory(); goto end; } new_data->allocated = 1; new_data->interpreter_id_as_index = 1; } __Pyx_ModuleStateLookup_wait_until_no_readers(); if (new_data->interpreter_id_as_index) { if (interpreter_id < __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) { result = __Pyx_State_AddModuleInterpIdAsIndex(&new_data, module, interpreter_id); goto end; } __Pyx_State_ConvertFromInterpIdAsIndex(new_data); } { Py_ssize_t insert_at = 0; { __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound( new_data->table, new_data->count, interpreter_id); assert(lower_bound); insert_at = lower_bound - new_data->table; if (unlikely(insert_at < new_data->count && lower_bound->id == interpreter_id)) { lower_bound->module = module; goto end; // already in table, nothing more to do } } if (new_data->count+1 >= new_data->allocated) { Py_ssize_t to_allocate = (new_data->count+1)*2; new_data = (__Pyx_ModuleStateLookupData*)realloc( new_data, sizeof(__Pyx_ModuleStateLookupData) + (to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule)); if (!new_data) { result = -1; new_data = old_data; PyErr_NoMemory(); goto end; } new_data->allocated = to_allocate; } ++new_data->count; int64_t last_id = interpreter_id; PyObject *last_module = module; for (Py_ssize_t i=insert_at; icount; ++i) { int64_t current_id = new_data->table[i].id; new_data->table[i].id = last_id; last_id = current_id; PyObject *current_module = new_data->table[i].module; new_data->table[i].module = last_module; last_module = current_module; } } end: #if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, new_data); #else __Pyx_ModuleStateLookup_data = new_data; #endif __Pyx_ModuleStateLookup_Unlock(); return result; } static int __Pyx_State_RemoveModule(CYTHON_UNUSED void* dummy) { int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get()); if (interpreter_id == -1) return -1; __Pyx_ModuleStateLookup_Lock(); #if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE __Pyx_ModuleStateLookupData *data = (__Pyx_ModuleStateLookupData *) __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0); #else __Pyx_ModuleStateLookupData *data = __Pyx_ModuleStateLookup_data; #endif if (data->interpreter_id_as_index) { if (interpreter_id < data->count) { data->table[interpreter_id].module = NULL; } goto done; } { __Pyx_ModuleStateLookup_wait_until_no_readers(); __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound( data->table, data->count, interpreter_id); if (!lower_bound) goto done; if (lower_bound->id != interpreter_id) goto done; __Pyx_InterpreterIdAndModule *end = data->table+data->count; for (;lower_boundid = (lower_bound+1)->id; lower_bound->module = (lower_bound+1)->module; } } --data->count; if (data->count == 0) { free(data); data = NULL; } done: #if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, data); #else __Pyx_ModuleStateLookup_data = data; #endif __Pyx_ModuleStateLookup_Unlock(); return 0; } #endif /* #### Code section: utility_code_pragmas_end ### */ #ifdef _MSC_VER #pragma warning( pop ) #endif /* #### Code section: end ### */ #endif /* Py_PYTHON_H */ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778335858.0 pyfuse3-3.5.0/src/pyfuse3/__init__.pyi0000644000175000017500000000770015177640162020063 0ustar00nikrationikratio''' __init__.pyi Type annotation stubs for the external API in __init__.pyx. Copyright © 2021 Oliver Galvin This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' from typing import List, Literal, Mapping, Optional, Union from trio.lowlevel import TrioToken # Need to explicitly import with the same name to prevent mypy from # complaining that these types do not exist. from ._pyfuse3 import ( FileHandleT as FileHandleT, FileNameT as FileNameT, FlagT as FlagT, InodeT as InodeT, ModeT as ModeT, Operations as Operations, XAttrNameT as XAttrNameT, ) ENOATTR: int RENAME_EXCHANGE: FlagT RENAME_NOREPLACE: FlagT ROOT_INODE: InodeT trio_token: Optional[TrioToken] __version__: str _NANOS_PER_SEC: int NamespaceT = Literal["system", "user"] StatDict = Mapping[str, int] default_options: frozenset[str] class ReaddirToken: pass class RequestContext: @property def uid(self) -> int: ... @property def pid(self) -> int: ... @property def gid(self) -> int: ... @property def umask(self) -> int: ... def __getstate__(self) -> None: ... class SetattrFields: @property def update_atime(self) -> bool: ... @property def update_mtime(self) -> bool: ... @property def update_ctime(self) -> bool: ... @property def update_mode(self) -> bool: ... @property def update_uid(self) -> bool: ... @property def update_gid(self) -> bool: ... @property def update_size(self) -> bool: ... def __init__(self) -> None: ... def __getstate__(self) -> None: ... class EntryAttributes: st_ino: InodeT generation: int entry_timeout: Union[float, int] attr_timeout: Union[float, int] st_mode: ModeT st_nlink: int st_uid: int st_gid: int st_rdev: int st_size: int st_blksize: int st_blocks: int st_atime_ns: int st_ctime_ns: int st_mtime_ns: int st_birthtime_ns: int def __init__(self) -> None: ... def __getstate__(self) -> StatDict: ... def __setstate__(self, state: StatDict) -> None: ... class FileInfo: fh: FileHandleT direct_io: bool keep_cache: bool nonseekable: bool def __init__( self, fh: FileHandleT = ..., direct_io: bool = ..., keep_cache: bool = ..., nonseekable: bool = ..., ) -> None: ... class StatvfsData: f_bsize: int f_frsize: int f_blocks: int f_bfree: int f_bavail: int f_files: int f_ffree: int f_favail: int f_namemax: int def __init__(self) -> None: ... def __getstate__(self) -> StatDict: ... def __setstate__(self, state: StatDict) -> None: ... class FUSEError(Exception): @property def errno(self) -> int: ... @property def errno_(self) -> int: ... def __init__(self, errno: int) -> None: ... def __str__(self) -> str: ... class PollHandle: def __getstate__(self) -> None: ... def notify(self) -> None: ... def listdir(path: str) -> List[str]: ... def syncfs(path: str) -> str: ... def setxattr(path: str, name: str, value: bytes, namespace: NamespaceT = ...) -> None: ... def getxattr(path: str, name: str, size_guess: int = ..., namespace: NamespaceT = ...) -> bytes: ... def init(ops: Operations, mountpoint: str, options: set[str] = ...) -> None: ... async def main(min_tasks: int = ..., max_tasks: int = ...) -> None: ... def terminate() -> None: ... def close(unmount: bool = ...) -> None: ... def invalidate_inode(inode: InodeT, attr_only: bool = ...) -> None: ... def invalidate_entry(inode_p: InodeT, name: FileNameT, deleted: InodeT = ...) -> None: ... def invalidate_entry_async( inode_p: InodeT, name: FileNameT, deleted: InodeT = ..., ignore_enoent: bool = ... ) -> None: ... def notify_store(inode: InodeT, offset: int, data: bytes) -> None: ... def get_sup_groups(pid: int) -> set[int]: ... def readdir_reply( token: ReaddirToken, name: FileNameT, attr: EntryAttributes, next_id: int ) -> bool: ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778671983.0 pyfuse3-3.5.0/src/pyfuse3/__init__.pyx0000644000175000017500000010335515201060557020075 0ustar00nikrationikratio''' __init__.pyx Copyright © 2013 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' cdef extern from "pyfuse3.h": int PLATFORM enum: PLATFORM_LINUX PLATFORM_BSD PLATFORM_DARWIN ########### # C IMPORTS ########### from fuse_lowlevel cimport * from .macros cimport * from posix.stat cimport struct_stat, S_IFMT, S_IFDIR, S_IFREG from posix.types cimport mode_t, dev_t, off_t from libc.stdint cimport uint32_t from libc.stdlib cimport const_char from libc cimport stdlib, string, errno from posix cimport unistd from libc.errno cimport EACCES, ETIMEDOUT, EPROTO, EINVAL, ENOMSG, ENOATTR from posix.unistd cimport getpid from posix.time cimport timespec from cpython.bytes cimport (PyBytes_AsStringAndSize, PyBytes_FromStringAndSize, PyBytes_AsString, PyBytes_FromString, PyBytes_AS_STRING) from cpython.buffer cimport (PyObject_GetBuffer, PyBuffer_Release, PyBUF_CONTIG_RO, PyBUF_CONTIG) cimport cpython.exc cimport cython cimport libc_extra ######################## # EXTERNAL DEFINITIONS # ######################## cdef extern from "" nogil: enum: RENAME_EXCHANGE RENAME_NOREPLACE cdef extern from "Python.h" nogil: int PY_SSIZE_T_MAX ################ # PYTHON IMPORTS ################ from pickle import PicklingError from queue import Queue import logging import os import os.path import sys import trio import threading import typing from . import _pyfuse3 _pyfuse3.FUSEError = FUSEError from ._pyfuse3 import (Operations, async_wrapper, FileHandleT, FileNameT, FlagT, InodeT, ModeT, XAttrNameT) ################## # GLOBAL VARIABLES ################## log = logging.getLogger("pyfuse3") fse = sys.getfilesystemencoding() cdef object operations cdef object mountpoint_b cdef fuse_session* session = NULL cdef fuse_lowlevel_ops fuse_ops cdef int session_fd cdef object py_retval cdef object _notify_queue = None ROOT_INODE = FUSE_ROOT_ID __version__ = _pyfuse3.__version__ _NANOS_PER_SEC = 1000000000 # In the Cython source, we want the names to refer to the # C constants. Therefore, we assign through globals(). g = globals() g['ENOATTR'] = ENOATTR g['RENAME_EXCHANGE'] = RENAME_EXCHANGE g['RENAME_NOREPLACE'] = RENAME_NOREPLACE trio_token = None ####################### # FUSE REQUEST HANDLERS ####################### include "handlers.pxi" ######################################## # INTERNAL FUNCTIONS & DATA STRUCTURES # ######################################## include "internal.pxi" ###################### # EXTERNAL API # ###################### @cython.freelist(10) cdef class RequestContext: ''' Instances of this class are passed to some `Operations` methods to provide information about the caller of the syscall that initiated the request. ''' cdef readonly uid_t uid cdef readonly pid_t pid cdef readonly gid_t gid cdef readonly mode_t umask def __getstate__(self): raise PicklingError("RequestContext instances can't be pickled") @cython.freelist(10) cdef class SetattrFields: ''' `SetattrFields` instances are passed to the `~Operations.setattr` handler to specify which attributes should be updated. ''' cdef readonly object update_atime cdef readonly object update_mtime cdef readonly object update_ctime cdef readonly object update_mode cdef readonly object update_uid cdef readonly object update_gid cdef readonly object update_size def __cinit__(self): self.update_atime = False self.update_mtime = False self.update_ctime = False self.update_mode = False self.update_uid = False self.update_gid = False self.update_size = False def __getstate__(self): raise PicklingError("SetattrFields instances can't be pickled") @cython.freelist(30) cdef class EntryAttributes: ''' Instances of this class store attributes of directory entries. Most of the attributes correspond to the elements of the ``stat`` C struct as returned by e.g. ``fstat`` and should be self-explanatory. ''' # Attributes are documented in rst/data.rst cdef fuse_entry_param fuse_param cdef struct_stat *attr def __cinit__(self): string.memset(&self.fuse_param, 0, sizeof(fuse_entry_param)) self.attr = &self.fuse_param.attr self.fuse_param.generation = 0 self.fuse_param.entry_timeout = 300 self.fuse_param.attr_timeout = 300 self.attr.st_mode = S_IFREG self.attr.st_blksize = 4096 self.attr.st_nlink = 1 @property def st_ino(self): return self.fuse_param.ino @st_ino.setter def st_ino(self, val): self.fuse_param.ino = val self.attr.st_ino = val @property def generation(self): '''The inode generation number''' return self.fuse_param.generation @generation.setter def generation(self, val): self.fuse_param.generation = val @property def attr_timeout(self): '''Validity timeout for the attributes of the directory entry Floating point numbers may be used. Units are seconds. ''' return self.fuse_param.attr_timeout @attr_timeout.setter def attr_timeout(self, val): self.fuse_param.attr_timeout = val @property def entry_timeout(self): '''Validity timeout for the name/existence of the directory entry Floating point numbers may be used. Units are seconds. ''' return self.fuse_param.entry_timeout @entry_timeout.setter def entry_timeout(self, val): self.fuse_param.entry_timeout = val @property def st_mode(self): return self.attr.st_mode @st_mode.setter def st_mode(self, val): self.attr.st_mode = val @property def st_nlink(self): return self.attr.st_nlink @st_nlink.setter def st_nlink(self, val): self.attr.st_nlink = val @property def st_uid(self): return self.attr.st_uid @st_uid.setter def st_uid(self, val): self.attr.st_uid = val @property def st_gid(self): return self.attr.st_gid @st_gid.setter def st_gid(self, val): self.attr.st_gid = val @property def st_rdev(self): return self.attr.st_rdev @st_rdev.setter def st_rdev(self, val): self.attr.st_rdev = val @property def st_size(self): return self.attr.st_size @st_size.setter def st_size(self, val): self.attr.st_size = val @property def st_blocks(self): return self.attr.st_blocks @st_blocks.setter def st_blocks(self, val): self.attr.st_blocks = val @property def st_blksize(self): return self.attr.st_blksize @st_blksize.setter def st_blksize(self, val): self.attr.st_blksize = val @property def st_atime_ns(self): '''Time of last access in (integer) nanoseconds''' return (int(self.attr.st_atime) * _NANOS_PER_SEC + GET_ATIME_NS(self.attr)) @st_atime_ns.setter def st_atime_ns(self, val): self.attr.st_atime = val // _NANOS_PER_SEC SET_ATIME_NS(self.attr, val % _NANOS_PER_SEC) @property def st_mtime_ns(self): '''Time of last modification in (integer) nanoseconds''' return (int(self.attr.st_mtime) * _NANOS_PER_SEC + GET_MTIME_NS(self.attr)) @st_mtime_ns.setter def st_mtime_ns(self, val): self.attr.st_mtime = val // _NANOS_PER_SEC SET_MTIME_NS(self.attr, val % _NANOS_PER_SEC) @property def st_ctime_ns(self): '''Time of last inode modification in (integer) nanoseconds''' return (int(self.attr.st_ctime) * _NANOS_PER_SEC + GET_CTIME_NS(self.attr)) @st_ctime_ns.setter def st_ctime_ns(self, val): self.attr.st_ctime = val // _NANOS_PER_SEC SET_CTIME_NS(self.attr, val % _NANOS_PER_SEC) @property def st_birthtime_ns(self): '''Time of inode creation in (integer) nanoseconds. Only available under BSD and OS X. Will be zero on Linux. ''' # Use C macro to prevent compiler error on Linux # (where st_birthtime does not exist) return int(GET_BIRTHTIME(self.attr) * _NANOS_PER_SEC + GET_BIRTHTIME_NS(self.attr)) @st_birthtime_ns.setter def st_birthtime_ns(self, val): # Use C macro to prevent compiler error on Linux # (where st_birthtime does not exist) SET_BIRTHTIME(self.attr, val // _NANOS_PER_SEC) SET_BIRTHTIME_NS(self.attr, val % _NANOS_PER_SEC) # Pickling and copy support def __getstate__(self): state = dict() for k in ('st_ino', 'generation', 'entry_timeout', 'attr_timeout', 'st_mode', 'st_nlink', 'st_uid', 'st_gid', 'st_rdev', 'st_size', 'st_blksize', 'st_blocks', 'st_atime_ns', 'st_ctime_ns', 'st_mtime_ns', 'st_birthtime_ns'): state[k] = getattr(self, k) return state def __setstate__(self, state): for (k,v) in state.items(): setattr(self, k, v) @cython.freelist(10) cdef class FileInfo: ''' Instances of this class store options and data that `Operations.open` returns. The attributes correspond to the elements of the ``fuse_file_info`` struct that are relevant to the `Operations.open` function. ''' cdef public uint64_t fh cdef public bint direct_io cdef public bint keep_cache cdef public bint nonseekable def __cinit__(self, fh=0, direct_io=0, keep_cache=1, nonseekable=0): self.fh = fh self.direct_io = direct_io self.keep_cache = keep_cache self.nonseekable = nonseekable cdef _copy_to_fuse(self, fuse_file_info *out): out.fh = self.fh # Due to how Cython generates its C code, GCC will complain about # assigning to the bitfields in the fuse_file_info struct. # This is the workaround. if self.direct_io: out.direct_io = 1 else: out.direct_io = 0 if self.keep_cache: out.keep_cache = 1 else: out.keep_cache = 0 if self.nonseekable: out.nonseekable = 1 else: out.nonseekable = 0 @cython.freelist(1) cdef class StatvfsData: ''' Instances of this class store information about the file system. The attributes correspond to the elements of the ``statvfs`` struct, see :manpage:`statvfs(2)` for details. ''' cdef statvfs stat def __cinit__(self): string.memset(&self.stat, 0, sizeof(statvfs)) @property def f_bsize(self): return self.stat.f_bsize @f_bsize.setter def f_bsize(self, val): self.stat.f_bsize = val @property def f_frsize(self): return self.stat.f_frsize @f_frsize.setter def f_frsize(self, val): self.stat.f_frsize = val @property def f_blocks(self): return self.stat.f_blocks @f_blocks.setter def f_blocks(self, val): self.stat.f_blocks = val @property def f_bfree(self): return self.stat.f_bfree @f_bfree.setter def f_bfree(self, val): self.stat.f_bfree = val @property def f_bavail(self): return self.stat.f_bavail @f_bavail.setter def f_bavail(self, val): self.stat.f_bavail = val @property def f_files(self): return self.stat.f_files @f_files.setter def f_files(self, val): self.stat.f_files = val @property def f_ffree(self): return self.stat.f_ffree @f_ffree.setter def f_ffree(self, val): self.stat.f_ffree = val @property def f_favail(self): return self.stat.f_favail @f_favail.setter def f_favail(self, val): self.stat.f_favail = val @property def f_namemax(self): return self.stat.f_namemax @f_namemax.setter def f_namemax(self, val): self.stat.f_namemax = val # Pickling and copy support def __getstate__(self): state = dict() for k in ('f_bsize', 'f_frsize', 'f_blocks', 'f_bfree', 'f_bavail', 'f_files', 'f_ffree', 'f_favail', 'f_namemax'): state[k] = getattr(self, k) return state def __setstate__(self, state): for (k,v) in state.items(): setattr(self, k, v) # As of Cython 0.28.1, @cython.freelist cannot be used for # classes that derive from a builtin type. cdef class FUSEError(Exception): ''' This exception may be raised by request handlers to indicate that the requested operation could not be carried out. The system call that resulted in the request (if any) will then fail with error code *errno_*. ''' # If we call this variable "errno", we will get syntax errors # during C compilation (maybe something else declares errno as # a macro?) cdef readonly int errno_ @property def errno(self): '''Error code to return to client process''' return self.errno_ def __cinit__(self, errno): self.errno_ = errno def __str__(self): return strerror(self.errno_) @cython.freelist(10) cdef class PollHandle: ''' Opaque handle for delivering poll(2) readiness notifications. Instances of this class are created by pyfuse3 and passed to `Operations.poll`. The filesystem may keep a reference and later call `PollHandle.notify` on the handle to wake up any process currently blocked in :manpage:`poll(2)`, :manpage:`select(2)` or :manpage:`epoll_wait(2)` for the corresponding file descriptor. A single notification is sufficient to clear all pending waiters; filesystems should normally discard the handle after notifying. The underlying ``fuse_pollhandle`` is automatically destroyed when the Python object is garbage collected, so filesystems should simply drop the reference when the notification is no longer needed. ''' cdef fuse_pollhandle *_ph def __cinit__(self): self._ph = NULL def __init__(self): raise TypeError('PollHandle cannot be instantiated directly') @staticmethod cdef PollHandle from_ptr(fuse_pollhandle *ph): cdef PollHandle self if ph == NULL: raise ValueError('NULL fuse_pollhandle') self = PollHandle.__new__(PollHandle) self._ph = ph return self def __dealloc__(self): if self._ph is not NULL: fuse_pollhandle_destroy(self._ph) self._ph = NULL def __getstate__(self): raise PicklingError("PollHandle instances can't be pickled") def notify(self): ''' Notify IO readiness for this poll handle. After this returns, any process waiting in :manpage:`poll(2)`, :manpage:`select(2)` or :manpage:`epoll_wait(2)` on the corresponding file descriptor will be woken so it can re-poll the filesystem for the current readiness mask. Each `PollHandle` is intended for a single notification. After a successful call, the filesystem should discard the handle and not call this method again. ''' cdef int ret if self._ph == NULL: raise RuntimeError('PollHandle is no longer valid') with nogil: ret = fuse_lowlevel_notify_poll(self._ph) if ret != 0: raise OSError(-ret, 'fuse_lowlevel_notify_poll returned: ' + strerror(-ret)) def listdir(path): '''Like `os.listdir`, but releases the GIL. This function returns an iterator over the directory entries in *path*. The returned values are of type :ref:`str `. Surrogate escape coding (cf. `PEP 383 `_) is used for directory names that do not have a string representation. ''' if not isinstance(path, str): raise TypeError('*path* argument must be of type str') cdef libc_extra.DIR* dirp cdef libc_extra.dirent* res cdef char* buf path_b = str2bytes(path) buf = path_b with nogil: dirp = libc_extra.opendir(buf) if dirp == NULL: raise OSError(errno.errno, strerror(errno.errno), path) names = list() while True: errno.errno = 0 with nogil: res = libc_extra.readdir(dirp) if res is NULL: if errno.errno != 0: raise OSError(errno.errno, strerror(errno.errno), path) else: break if string.strcmp(res.d_name, b'.') == 0 or \ string.strcmp(res.d_name, b'..') == 0: continue names.append(bytes2str(PyBytes_FromString(res.d_name))) with nogil: libc_extra.closedir(dirp) return names def syncfs(path): '''Sync filesystem mounted at *path* This is a Python interface to the syncfs(2) system call. There is no particular relation to libfuse, it is provided by pyfuse3 as a convenience. ''' cdef int ret fd = os.open(path, flags=os.O_DIRECTORY) try: ret = libc_extra.syncfs(fd) if ret != 0: raise OSError(errno.errno, strerror(errno.errno), path) finally: os.close(fd) def setxattr(path, name, bytes value, namespace='user'): '''Set extended attribute *path* and *name* have to be of type `str`. In Python 3.x, they may contain surrogates. *value* has to be of type `bytes`. Under FreeBSD, the *namespace* parameter may be set to *system* or *user* to select the namespace for the extended attribute. For other platforms, this parameter is ignored. In contrast to the `os.setxattr` function from the standard library, the method provided by pyfuse3 is also available for non-Linux systems. ''' if not isinstance(path, str): raise TypeError('*path* argument must be of type str') if not isinstance(name, str): raise TypeError('*name* argument must be of type str') if namespace not in ('system', 'user'): raise ValueError('*namespace* parameter must be "system" or "user", not %s' % namespace) cdef int ret cdef Py_ssize_t len_ cdef char *cvalue cdef char *cpath cdef char *cname cdef int cnamespace if namespace == 'system': cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM else: cnamespace = libc_extra.EXTATTR_NAMESPACE_USER path_b = str2bytes(path) name_b = str2bytes(name) PyBytes_AsStringAndSize(value, &cvalue, &len_) cpath = path_b cname = name_b with nogil: # len_ is guaranteed positive ret = libc_extra.setxattr_p( cpath, cname, cvalue, len_, cnamespace) if ret != 0: raise OSError(errno.errno, strerror(errno.errno), path) def getxattr(path, name, size_t size_guess=128, namespace='user'): '''Get extended attribute *path* and *name* have to be of type `str`. In Python 3.x, they may contain surrogates. Returns a value of type `bytes`. If the caller knows the approximate size of the attribute value, it should be supplied in *size_guess*. If the guess turns out to be wrong, the system call has to be carried out three times (the first call will fail, the second determines the size and the third finally gets the value). Under FreeBSD, the *namespace* parameter may be set to *system* or *user* to select the namespace for the extended attribute. For other platforms, this parameter is ignored. In contrast to the `os.getxattr` function from the standard library, the method provided by pyfuse3 is also available for non-Linux systems. ''' if not isinstance(path, str): raise TypeError('*path* argument must be of type str') if not isinstance(name, str): raise TypeError('*name* argument must be of type str') if namespace not in ('system', 'user'): raise ValueError('*namespace* parameter must be "system" or "user", not %s' % namespace) cdef ssize_t ret cdef char *buf cdef char *cpath cdef char *cname cdef size_t bufsize cdef int cnamespace if namespace == 'system': cnamespace = libc_extra.EXTATTR_NAMESPACE_SYSTEM else: cnamespace = libc_extra.EXTATTR_NAMESPACE_USER path_b = str2bytes(path) name_b = str2bytes(name) cpath = path_b cname = name_b bufsize = size_guess buf = stdlib.malloc(bufsize * sizeof(char)) if buf is NULL: cpython.exc.PyErr_NoMemory() try: with nogil: ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) if ret < 0 and errno.errno == errno.ERANGE: with nogil: ret = libc_extra.getxattr_p(cpath, cname, NULL, 0, cnamespace) if ret < 0: raise OSError(errno.errno, strerror(errno.errno), path) bufsize = ret stdlib.free(buf) buf = stdlib.malloc(bufsize * sizeof(char)) if buf is NULL: cpython.exc.PyErr_NoMemory() with nogil: ret = libc_extra.getxattr_p(cpath, cname, buf, bufsize, cnamespace) if ret < 0: raise OSError(errno.errno, strerror(errno.errno), path) return PyBytes_FromStringAndSize(buf, ret) finally: stdlib.free(buf) default_options = frozenset(('default_permissions',)) def init(ops, mountpoint, options=default_options): '''Initialize and mount FUSE file system *ops* has to be an instance of the `Operations` class (or another class defining the same methods). *args* has to be a set of strings. `default_options` provides some reasonable defaults. It is recommended to use these options as a basis and add or remove options as necessary. For example:: my_opts = set(pyfuse3.default_options) my_opts.add('allow_other') my_opts.discard('default_permissions') pyfuse3.init(ops, mountpoint, my_opts) Valid options are listed under ``struct fuse_opt fuse_mount_opts[]`` (in `mount.c `_) and ``struct fuse_opt fuse_ll_opts[]`` (in `fuse_lowlevel_c `_). ''' log.debug('Initializing pyfuse3') cdef fuse_args f_args cdef int res if not isinstance(mountpoint, str): raise TypeError('*mountpoint_* argument must be of type str') global operations global fuse_ops global mountpoint_b global session global session_fd global worker_data worker_data = _WorkerData() mountpoint_b = str2bytes(os.path.abspath(mountpoint)) operations = ops make_fuse_args(options, &f_args) log.debug('Calling fuse_session_new') init_fuse_ops() session = fuse_session_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL) if not session: raise RuntimeError("fuse_session_new() failed") log.debug('Calling fuse_session_mount') res = fuse_session_mount(session, mountpoint_b) if res != 0: raise RuntimeError('fuse_session_mount failed') session_fd = fuse_session_fd(session) @async_wrapper async def main(int min_tasks=1, int max_tasks=99): '''Run FUSE main loop''' if session == NULL: raise RuntimeError('Need to call init() before main()') global trio_token trio_token = trio.lowlevel.current_trio_token() try: async with trio.open_nursery() as nursery: worker_data.task_count = 1 worker_data.task_serial = 1 nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, name=worker_data.get_name()) finally: trio_token = None if _notify_queue is not None: _notify_queue.put(None) def terminate(): '''Terminate FUSE main loop. This function gracefully terminates the FUSE main loop (resulting in the call to main() to return). When called by a thread different from the one that runs the main loop, the call must be wrapped with `trio.from_thread.run_sync`. The necessary *trio_token* argument can (for convenience) be retrieved from the `trio_token` module attribute. ''' fuse_session_exit(session) trio.lowlevel.notify_closing(session_fd) def close(unmount=True): '''Clean up and ensure filesystem is unmounted If *unmount* is False, only clean up operations are performed, but the file system is not explicitly unmounted. Normally, the filesystem is unmounted by the user calling umount(8) or fusermount(1), which then terminates the FUSE main loop. However, the loop may also terminate as a result of an exception or a signal. In this case the filesystem remains mounted, but any attempt to access it will block (while the filesystem process is still running) or (after the filesystem process has terminated) return an error. If *unmount* is True, this function will ensure that the filesystem is properly unmounted. Note: if the connection to the kernel is terminated via the ``/sys/fs/fuse/connections/`` interface, this function will *not* unmount the filesystem even if *unmount* is True. ''' global mountpoint_b global session if unmount: log.debug('Calling fuse_session_unmount') fuse_session_unmount(session) log.debug('Calling fuse_session_destroy') fuse_session_destroy(session) mountpoint_b = None session = NULL def invalidate_inode(fuse_ino_t inode, attr_only=False): '''Invalidate cache for *inode* Instructs the FUSE kernel module to forget cached attributes and data (unless *attr_only* is True) for *inode*. **This operation may block** if writeback caching is active and there is dirty data for the inode that is to be invalidated. Unfortunately there is no way to return control to the event loop until writeback is complete (leading to a deadlock if the necessary write() requests cannot be processed by the filesystem). Unless writeback caching is disabled, this function should therefore be called from a separate thread. If the operation is not supported by the kernel, raises `OSError` with errno ENOSYS. ''' cdef int ret if attr_only: with nogil: ret = fuse_lowlevel_notify_inval_inode(session, inode, -1, 0) else: with nogil: ret = fuse_lowlevel_notify_inval_inode(session, inode, 0, 0) if ret != 0: raise OSError(-ret, 'fuse_lowlevel_notify_inval_inode returned: ' + strerror(-ret)) def invalidate_entry(fuse_ino_t inode_p, bytes name, fuse_ino_t deleted=0): '''Invalidate directory entry Instructs the FUSE kernel module to forget about the directory entry *name* in the directory with inode *inode_p*. If the inode passed as *deleted* matches the inode that is currently associated with *name* by the kernel, any inotify watchers of this inode are informed that the entry has been deleted. If there is a pending filesystem operation that is related to the parent directory or directory entry, this function will block until that operation has completed. Therefore, to avoid a deadlock this function must not be called while handling a related request, nor while holding a lock that could be needed for handling such a request. As for kernel 4.18, a "related operation" is a `~Operations.lookup`, `~Operations.symlink`, `~Operations.mknod`, `~Operations.mkdir`, `~Operations.unlink`, `~Operations.rename`, `~Operations.link` or `~Operations.create` request for the parent, and a `~Operations.setattr`, `~Operations.unlink`, `~Operations.rmdir`, `~Operations.rename`, `~Operations.setxattr`, `~Operations.removexattr` or `~Operations.readdir` request for the inode itself. For technical reasons, this function can also not return control to the main event loop but will actually block. To return control to the event loop while this function is running, call it in a separate thread using `trio.run_sync_in_worker_thread `_. A less complicated alternative is to use the `invalidate_entry_async` function instead. ''' cdef char *cname cdef ssize_t slen cdef size_t len_ cdef int ret PyBytes_AsStringAndSize(name, &cname, &slen) # len_ is guaranteed positive len_ = slen if deleted: with nogil: # might block! ret = fuse_lowlevel_notify_delete(session, inode_p, deleted, cname, len_) if ret != 0: raise OSError(-ret, 'fuse_lowlevel_notify_delete returned: ' + strerror(-ret)) else: with nogil: # might block! ret = fuse_lowlevel_notify_inval_entry(session, inode_p, cname, len_) if ret != 0: raise OSError(-ret, 'fuse_lowlevel_notify_inval_entry returned: ' + strerror(-ret)) def invalidate_entry_async(inode_p, name, deleted=0, ignore_enoent=False): '''Asynchronously invalidate directory entry This function performs the same operation as `invalidate_entry`, but does so asynchronously in a separate thread. This avoids the deadlocks that may occur when using `invalidate_entry` from within a request handler, but means that the function generally returns before the kernel has actually invalidated the entry, and that no errors can be reported (they will be logged though). The directory entries that are to be invalidated are put in an unbounded queue which is processed by a single thread. This means that if the entry at the beginning of the queue cannot be invalidated yet because a related file system operation is still in progress, none of the other entries will be processed and repeated calls to this function will result in continued growth of the queue. If there are errors, an exception is logged using the `logging` module. If *ignore_enoent* is True, ignore ENOENT errors (which occur if the kernel doesn't actually have knowledge of the entry that is to be removed). ''' global _notify_queue if _notify_queue is None: log.debug('Starting notify worker.') _notify_queue = Queue() t = threading.Thread(target=_notify_loop) t.daemon = True t.start() _notify_queue.put((inode_p, name, deleted, ignore_enoent)) def notify_store(inode, offset, data): '''Store data in kernel page cache Sends *data* for the kernel to store it in the page cache for *inode* at *offset*. If this provides data beyond the current file size, the file is automatically extended. If this function raises an exception, the store may still have completed partially. If the operation is not supported by the kernel, raises `OSError` with errno ENOSYS. ''' # This should not block, but the kernel may need to do some work so release # the GIL to give other threads a chance to run. cdef int ret cdef fuse_ino_t ino cdef off_t off cdef Py_buffer pybuf cdef fuse_bufvec bufvec cdef fuse_buf *buf PyObject_GetBuffer(data, &pybuf, PyBUF_CONTIG_RO) bufvec.count = 1 bufvec.idx = 0 bufvec.off = 0 buf = bufvec.buf buf[0].flags = 0 buf[0].mem = pybuf.buf buf[0].size = pybuf.len # guaranteed positive ino = inode off = offset with nogil: ret = fuse_lowlevel_notify_store(session, ino, off, &bufvec, 0) PyBuffer_Release(&pybuf) if ret != 0: raise OSError(-ret, 'fuse_lowlevel_notify_store returned: ' + strerror(-ret)) def get_sup_groups(pid): '''Return supplementary group ids of *pid* This function is relatively expensive because it has to read the group ids from ``/proc/[pid]/status``. For the same reason, it will also not work on systems that do not provide a ``/proc`` file system. Returns a set. ''' with open('/proc/%d/status' % pid, 'r') as fh: for line in fh: if line.startswith('Groups:'): break else: raise RuntimeError("Unable to parse %s" % fh.name) gids = set() for x in line.split()[1:]: gids.add(int(x)) return gids def readdir_reply(ReaddirToken token, name, EntryAttributes attr, off_t next_id): '''Report a directory entry in response to a `~Operations.readdir` request. This function should be called by the `~Operations.readdir` handler to provide the list of directory entries. The function should be called once for each directory entry, until it returns False. *token* must be the token received by the `~Operations.readdir` handler. *name* and must be the name of the directory entry and *attr* an `EntryAttributes` instance holding its attributes. *next_id* must be a 64-bit integer value that uniquely identifies the current position in the list of directory entries. It may be passed back to a later `~Operations.readdir` call to start another listing at the right position. This value should be robust in the presence of file removals and creations, i.e. if files are created or removed after a call to `~Operations.readdir` and `~Operations.readdir` is called again with *start_id* set to any previously supplied *next_id* values, under no circumstances must any file be reported twice or skipped over. ''' cdef char *cname if token.buf_start == NULL: token.buf_start = calloc_or_raise(token.size, sizeof(char)) token.buf = token.buf_start cname = PyBytes_AsString(name) len_ = fuse_add_direntry_plus(token.req, token.buf, token.size, cname, &attr.fuse_param, next_id) if len_ > token.size: return False token.size -= len_ token.buf = &token.buf[len_] return True ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778672018.0 pyfuse3-3.5.0/src/pyfuse3/_pyfuse3.py0000644000175000017500000006225515201060622017677 0ustar00nikrationikratio''' _pyfuse3.py Pure-Python components of pyfuse3. Copyright © 2018 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' import errno import functools import logging from importlib.metadata import PackageNotFoundError, version as package_version from typing import TYPE_CHECKING, Any, Callable, Optional, Sequence, Tuple # Version information try: __version__ = package_version('pyfuse3') except PackageNotFoundError: __version__ = 'unknown' FileHandleT = int FileNameT = bytes FlagT = int InodeT = int ModeT = int XAttrNameT = bytes if TYPE_CHECKING: # These types are defined elsewhere in the C code from pyfuse3 import ( EntryAttributes, FileInfo, FUSEError, PollHandle, ReaddirToken, RequestContext, SetattrFields, StatvfsData, ) else: # Will be injected by pyfuse3 extension module FUSEError = None __all__ = ['Operations', 'async_wrapper'] log = logging.getLogger(__name__) # Any top level trio coroutines (i.e., coroutines that are passed # to trio.run) must be pure-Python. This wrapper ensures that this # is the case for Cython-defined async functions. def async_wrapper(fn: Callable[..., Any]) -> Callable[..., Any]: @functools.wraps(fn) async def wrapper(*args, **kwargs): await fn(*args, **kwargs) return wrapper class Operations: ''' This class defines the request handler methods that an pyfuse3 file system may implement. If a particular request handler has not been implemented, it must raise `FUSEError` with an errorcode of `errno.ENOSYS`. Further requests of this type will then be handled directly by the FUSE kernel module without calling the handler again. The only exception that request handlers are allowed to raise is `FUSEError`. This will cause the specified errno to be returned by the syscall that is being handled. It is recommended that file systems are derived from this class and only overwrite the handlers that they actually implement. (The methods defined in this class all just raise ``FUSEError(ENOSYS)`` or do nothing). ''' supports_dot_lookup: bool = True enable_writeback_cache: bool = False enable_acl: bool = False def init(self) -> None: '''Initialize operations. This method will be called just before the file system starts handling requests. It must not raise any exceptions (not even `FUSEError`), since it is not handling a particular client request. ''' pass async def lookup( self, parent_inode: InodeT, name: FileNameT, ctx: "RequestContext" ) -> "EntryAttributes": '''Look up a directory entry by name and get its attributes. This method should return an `EntryAttributes` instance for the directory entry *name* in the directory with inode *parent_inode*. If there is no such entry, the method should either return an `EntryAttributes` instance with zero ``st_ino`` value (in which case the negative lookup will be cached as specified by ``entry_timeout``), or it should raise `FUSEError` with an errno of `errno.ENOENT` (in this case the negative result will not be cached). *ctx* will be a `RequestContext` instance. The file system must be able to handle lookups for :file:`.` and :file:`..`, no matter if these entries are returned by `readdir` or not. (Successful) execution of this handler increases the lookup count for the returned inode by one. ''' raise FUSEError(errno.ENOSYS) async def forget(self, inode_list: Sequence[Tuple[InodeT, int]]) -> None: '''Decrease lookup counts for inodes in *inode_list*. *inode_list* is a list of ``(inode, nlookup)`` tuples. This method should reduce the lookup count for each *inode* by *nlookup*. If the lookup count reaches zero, the inode is currently not known to the kernel. In this case, the file system will typically check if there are still directory entries referring to this inode and, if not, remove the inode. If the file system is unmounted, it may not have received `forget` calls to bring all lookup counts to zero. The filesystem needs to take care to clean up inodes that at that point still have non-zero lookup count (e.g. by explicitly calling `forget` with the current lookup count for every such inode after `main` has returned). This method must not raise any exceptions (not even `FUSEError`), since it is not handling a particular client request. ''' pass async def getattr(self, inode: InodeT, ctx: "RequestContext") -> "EntryAttributes": '''Get attributes for *inode*. *ctx* will be a `RequestContext` instance. This method should return an `EntryAttributes` instance with the attributes of *inode*. The `~EntryAttributes.entry_timeout` attribute is ignored in this context. ''' raise FUSEError(errno.ENOSYS) async def setattr( self, inode: InodeT, attr: "EntryAttributes", fields: "SetattrFields", fh: Optional[FileHandleT], ctx: "RequestContext", ) -> "EntryAttributes": '''Change attributes of *inode*. *fields* will be an `SetattrFields` instance that specifies which attributes are to be updated. *attr* will be an `EntryAttributes` instance for *inode* that contains the new values for changed attributes, and undefined values for all other attributes. Most file systems will additionally set the `~EntryAttributes.st_ctime_ns` attribute to the current time (to indicate that the inode metadata was changed). If the syscall that is being processed received a file descriptor argument (like e.g. :manpage:`ftruncate(2)` or :manpage:`fchmod(2)`), *fh* will be the file handle returned by the corresponding call to the `open` handler. If the syscall was path based (like e.g. :manpage:`truncate(2)` or :manpage:`chmod(2)`), *fh* will be `None`. *ctx* will be a `RequestContext` instance. The method should return an `EntryAttributes` instance (containing both the changed and unchanged values). ''' raise FUSEError(errno.ENOSYS) async def readlink(self, inode: InodeT, ctx: "RequestContext") -> FileNameT: '''Return target of symbolic link *inode*. *ctx* will be a `RequestContext` instance. ''' raise FUSEError(errno.ENOSYS) async def mknod( self, parent_inode: InodeT, name: FileNameT, mode: ModeT, rdev: int, ctx: "RequestContext", ) -> "EntryAttributes": '''Create (possibly special) file. This method must create a (special or regular) file *name* in the directory with inode *parent_inode*. Whether the file is special or regular is determined by its *mode*. If the file is neither a block nor character device, *rdev* can be ignored. *ctx* will be a `RequestContext` instance. The method must return an `EntryAttributes` instance with the attributes of the newly created directory entry. (Successful) execution of this handler increases the lookup count for the returned inode by one. ''' raise FUSEError(errno.ENOSYS) async def mkdir( self, parent_inode: InodeT, name: FileNameT, mode: ModeT, ctx: "RequestContext" ) -> "EntryAttributes": '''Create a directory. This method must create a new directory *name* with mode *mode* in the directory with inode *parent_inode*. *ctx* will be a `RequestContext` instance. This method must return an `EntryAttributes` instance with the attributes of the newly created directory entry. (Successful) execution of this handler increases the lookup count for the returned inode by one. ''' raise FUSEError(errno.ENOSYS) async def unlink(self, parent_inode: InodeT, name: FileNameT, ctx: "RequestContext") -> None: '''Remove a (possibly special) file. This method must remove the (special or regular) file *name* from the directory with inode *parent_inode*. *ctx* will be a `RequestContext` instance. If the inode associated with *file* (i.e., not the *parent_inode*) has a non-zero lookup count, or if there are still other directory entries referring to this inode (due to hardlinks), the file system must remove only the directory entry (so that future calls to `readdir` for *parent_inode* will no longer include *name*, but e.g. calls to `getattr` for *file*'s inode still succeed). (Potential) removal of the associated inode with the file contents and metadata must be deferred to the `forget` method to be carried out when the lookup count reaches zero (and of course only if at that point there are no more directory entries associated with the inode either). ''' raise FUSEError(errno.ENOSYS) async def rmdir(self, parent_inode: InodeT, name: FileNameT, ctx: "RequestContext") -> None: '''Remove directory *name*. This method must remove the directory *name* from the directory with inode *parent_inode*. *ctx* will be a `RequestContext` instance. If there are still entries in the directory, the method should raise ``FUSEError(errno.ENOTEMPTY)``. If the inode associated with *name* (i.e., not the *parent_inode*) has a non-zero lookup count, the file system must remove only the directory entry (so that future calls to `readdir` for *parent_inode* will no longer include *name*, but e.g. calls to `getattr` for *file*'s inode still succeed). Removal of the associated inode holding the directory contents and metadata must be deferred to the `forget` method to be carried out when the lookup count reaches zero. (Since hard links to directories are not allowed by POSIX, this method is not required to check if there are still other directory entries referring to the same inode. This conveniently avoids the ambiguities associated with the ``.`` and ``..`` entries). ''' raise FUSEError(errno.ENOSYS) async def symlink( self, parent_inode: InodeT, name: FileNameT, target: FileNameT, ctx: "RequestContext", ) -> "EntryAttributes": '''Create a symbolic link. This method must create a symbolink link named *name* in the directory with inode *parent_inode*, pointing to *target*. *ctx* will be a `RequestContext` instance. The method must return an `EntryAttributes` instance with the attributes of the newly created directory entry. (Successful) execution of this handler increases the lookup count for the returned inode by one. ''' raise FUSEError(errno.ENOSYS) async def rename( self, parent_inode_old: InodeT, name_old: FileNameT, parent_inode_new: InodeT, name_new: FileNameT, flags: FlagT, ctx: "RequestContext", ) -> None: '''Rename a directory entry. This method must rename *name_old* in the directory with inode *parent_inode_old* to *name_new* in the directory with inode *parent_inode_new*. If *name_new* already exists, it should be overwritten. *flags* may be `RENAME_EXCHANGE` or `RENAME_NOREPLACE`. If `RENAME_NOREPLACE` is specified, the filesystem must not overwrite *name_new* if it exists and return an error instead. If `RENAME_EXCHANGE` is specified, the filesystem must atomically exchange the two files, i.e. both must exist and neither may be deleted. *ctx* will be a `RequestContext` instance. Let the inode associated with *name_old* in *parent_inode_old* be *inode_moved*, and the inode associated with *name_new* in *parent_inode_new* (if it exists) be called *inode_deref*. If *inode_deref* exists and has a non-zero lookup count, or if there are other directory entries referring to *inode_deref*), the file system must update only the directory entry for *name_new* to point to *inode_moved* instead of *inode_deref*. (Potential) removal of *inode_deref* (containing the previous contents of *name_new*) must be deferred to the `forget` method to be carried out when the lookup count reaches zero (and of course only if at that point there are no more directory entries associated with *inode_deref* either). ''' raise FUSEError(errno.ENOSYS) async def link( self, inode: InodeT, new_parent_inode: InodeT, new_name: FileNameT, ctx: "RequestContext", ) -> "EntryAttributes": '''Create directory entry *name* in *parent_inode* referring to *inode*. *ctx* will be a `RequestContext` instance. The method must return an `EntryAttributes` instance with the attributes of the newly created directory entry. (Successful) execution of this handler increases the lookup count for the returned inode by one. ''' raise FUSEError(errno.ENOSYS) async def open(self, inode: InodeT, flags: FlagT, ctx: "RequestContext") -> "FileInfo": '''Open a inode *inode* with *flags*. *ctx* will be a `RequestContext` instance. *flags* will be a bitwise or of the open flags described in the :manpage:`open(2)` manpage and defined in the `os` module (with the exception of ``O_CREAT``, ``O_EXCL``, ``O_NOCTTY`` and ``O_TRUNC``) This method must return a `FileInfo` instance. The `FileInfo.fh` field must contain an integer file handle, which will be passed to the `read`, `write`, `flush`, `fsync` and `release` methods to identify the open file. The `FileInfo` instance may also have relevant configuration attributes set; see the `FileInfo` documentation for more information. ''' raise FUSEError(errno.ENOSYS) async def read(self, fh: FileHandleT, off: int, size: int) -> bytes: '''Read *size* bytes from *fh* at position *off*. *fh* will be an integer filehandle returned by a prior `open` or `create` call. This function should return exactly the number of bytes requested except on EOF or error, otherwise the rest of the data will be substituted with zeroes. ''' raise FUSEError(errno.ENOSYS) async def write(self, fh: FileHandleT, off: int, buf: bytes) -> int: '''Write *buf* into *fh* at *off*. *fh* will be an integer filehandle returned by a prior `open` or `create` call. This method must return the number of bytes written. However, unless the file system has been mounted with the ``direct_io`` option, the file system *must* always write *all* the provided data (i.e., return ``len(buf)``). ''' raise FUSEError(errno.ENOSYS) async def flush(self, fh: FileHandleT) -> None: '''Handle close() syscall. *fh* will be an integer filehandle returned by a prior `open` or `create` call. This method is called whenever a file descriptor is closed. It may be called multiple times for the same open file (e.g. if the file handle has been duplicated). ''' raise FUSEError(errno.ENOSYS) async def release(self, fh: FileHandleT) -> None: '''Release open file. This method will be called when the last file descriptor of *fh* has been closed, i.e. when the file is no longer opened by any client process. *fh* will be an integer filehandle returned by a prior `open` or `create` call. Once `release` has been called, no future requests for *fh* will be received (until the value is re-used in the return value of another `open` or `create` call). This method may return an error by raising `FUSEError`, but the error will be discarded because there is no corresponding client request. ''' raise FUSEError(errno.ENOSYS) async def fsync(self, fh: FileHandleT, datasync: bool) -> None: '''Flush buffers for open file *fh*. If *datasync* is true, only the file contents should be flushed (in contrast to the metadata about the file). *fh* will be an integer filehandle returned by a prior `open` or `create` call. ''' raise FUSEError(errno.ENOSYS) async def poll( self, inode: InodeT, fh: FileHandleT, poll_handle: Optional["PollHandle"], ctx: "RequestContext", ) -> int: '''Check IO readiness on an open file. This method is called when a process performs :manpage:`poll(2)`, :manpage:`select(2)` or :manpage:`epoll_wait(2)` on a file descriptor backed by *fh* (returned by a prior `open` or `create` call). *inode* identifies the inode that *fh* refers to. The method will return the bitwise-or of the currently active poll events, for example ``select.POLLIN``, ``select.POLLOUT`` or ``select.POLLPRI``. If no events are currently ready, it will return ``0``. If *poll_handle* is `None`, the kernel has not provided a notification handle for this request. The filesystem should only return the current readiness mask and must not attempt to store a handle or arrange a later `PollHandle.notify` call for this poll request. If *poll_handle* is not `None`, the kernel has provided a notification handle that may be used to wake waiters if readiness changes after this method returns. The filesystem may store the handle and later call `PollHandle.notify` when a relevant event becomes available. Each `~Operations.poll` call produces a fresh handle; storing a new handle should replace any previously held one, allowing the old handle to be destroyed. If this method raises ``FUSEError(errno.ENOSYS)`` (the default), the kernel will fall back to a default poll implementation and will not call this handler again for the lifetime of the mount. ''' raise FUSEError(errno.ENOSYS) async def opendir(self, inode: InodeT, ctx: "RequestContext") -> FileHandleT: '''Open the directory with inode *inode*. *ctx* will be a `RequestContext` instance. This method should return an integer file handle. The file handle will be passed to the `readdir`, `fsyncdir` and `releasedir` methods to identify the directory. ''' raise FUSEError(errno.ENOSYS) async def readdir(self, fh: FileHandleT, start_id: int, token: "ReaddirToken") -> None: '''Read entries in open directory *fh*. This method should list the contents of directory *fh* (as returned by a prior `opendir` call), starting at the entry identified by *start_id*. Instead of returning the directory entries directly, the method must call `readdir_reply` for each directory entry. If `readdir_reply` returns True, the file system must increase the lookup count for the provided directory entry by one and call `readdir_reply` again for the next entry (if any). If `readdir_reply` returns False, the lookup count must *not* be increased and the method should return without further calls to `readdir_reply`. The *start_id* parameter will be either zero (in which case listing should begin with the first entry) or it will correspond to a value that was previously passed by the file system to the `readdir_reply` function in the *next_id* parameter. If entries are added or removed during a `readdir` cycle, they may or may not be returned. However, they must not cause other entries to be skipped or returned more than once. :file:`.` and :file:`..` entries may be included but are not required. However, if they are reported the filesystem *must not* increase the lookup count for the corresponding inodes (even if `readdir_reply` returns True). ''' raise FUSEError(errno.ENOSYS) async def releasedir(self, fh: FileHandleT) -> None: '''Release open directory. This method will be called exactly once for each `opendir` call. After *fh* has been released, no further `readdir` requests will be received for it (until it is opened again with `opendir`). ''' raise FUSEError(errno.ENOSYS) async def fsyncdir(self, fh: FileHandleT, datasync: bool) -> None: '''Flush buffers for open directory *fh*. If *datasync* is true, only the directory contents should be flushed (in contrast to metadata about the directory itself). ''' raise FUSEError(errno.ENOSYS) async def statfs(self, ctx: "RequestContext") -> "StatvfsData": '''Get file system statistics. *ctx* will be a `RequestContext` instance. The method must return an appropriately filled `StatvfsData` instance. ''' raise FUSEError(errno.ENOSYS) def stacktrace(self) -> None: '''Asynchronous debugging. This method will be called when the ``fuse_stacktrace`` extended attribute is set on the mountpoint. The default implementation logs the current stack trace of every running Python thread. This can be quite useful to debug file system deadlocks. ''' import sys import traceback from os.path import basename code = list() for threadId, frame in sys._current_frames().items(): code.append(f"\n# ThreadID: {threadId}") for filename, lineno, name, line in traceback.extract_stack(frame): code.append(f'{basename(filename)}:{lineno}, in {name}') if line: code.append(f" {line.strip()}") log.error("\n".join(code)) async def setxattr( self, inode: InodeT, name: XAttrNameT, value: bytes, ctx: "RequestContext" ) -> None: '''Set extended attribute *name* of *inode* to *value*. *ctx* will be a `RequestContext` instance. The attribute may or may not exist already. Both *name* and *value* will be of type `bytes`. *name* is guaranteed not to contain zero-bytes (``\\0``). ''' raise FUSEError(errno.ENOSYS) async def getxattr(self, inode: InodeT, name: XAttrNameT, ctx: "RequestContext") -> bytes: '''Return extended attribute *name* of *inode*. *ctx* will be a `RequestContext` instance. If the attribute does not exist, the method must raise `FUSEError` with an error code of `ENOATTR`. *name* will be of type `bytes`, but is guaranteed not to contain zero-bytes (``\\0``). ''' raise FUSEError(errno.ENOSYS) async def listxattr(self, inode: InodeT, ctx: "RequestContext") -> Sequence[XAttrNameT]: '''Get list of extended attributes for *inode*. *ctx* will be a `RequestContext` instance. This method must return a sequence of `bytes` objects. The objects must not include zero-bytes (``\\0``). ''' raise FUSEError(errno.ENOSYS) async def removexattr(self, inode: InodeT, name: XAttrNameT, ctx: "RequestContext") -> None: '''Remove extended attribute *name* of *inode*. *ctx* will be a `RequestContext` instance. If the attribute does not exist, the method must raise `FUSEError` with an error code of `ENOATTR`. *name* will be of type `bytes`, but is guaranteed not to contain zero-bytes (``\\0``). ''' raise FUSEError(errno.ENOSYS) async def access(self, inode: InodeT, mode: ModeT, ctx: "RequestContext") -> bool: '''Check if requesting process has *mode* rights on *inode*. *ctx* will be a `RequestContext` instance. The method must return a boolean value. If the ``default_permissions`` mount option is given, this method is not called. When implementing this method, the `get_sup_groups` function may be useful. ''' raise FUSEError(errno.ENOSYS) async def create( self, parent_inode: InodeT, name: FileNameT, mode: ModeT, flags: FlagT, ctx: "RequestContext", ) -> Tuple["FileInfo", "EntryAttributes"]: '''Create a file with permissions *mode* and open it with *flags*. *ctx* will be a `RequestContext` instance. The method must return a tuple of the form *(fi, attr)*, where *fi* is a FileInfo instance handle like the one returned by `open` and *attr* is an `EntryAttributes` instance with the attributes of the newly created directory entry. (Successful) execution of this handler increases the lookup count for the returned inode by one. ''' raise FUSEError(errno.ENOSYS) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778672018.0 pyfuse3-3.5.0/src/pyfuse3/asyncio.py0000644000175000017500000000577215201060622017610 0ustar00nikrationikratio''' asyncio.py asyncio compatibility layer for pyfuse3 Copyright © 2018 Nikolaus Rath Copyright © 2018 JustAnotherArchivist This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' import asyncio import collections import sys from typing import Any, Callable, Iterable, Optional, Set, Type import pyfuse3 from ._pyfuse3 import FileHandleT Lock = asyncio.Lock def enable() -> None: '''Switch pyfuse3 to asyncio mode.''' fake_trio = sys.modules['pyfuse3.asyncio'] fake_trio.lowlevel = fake_trio # type: ignore fake_trio.from_thread = fake_trio # type: ignore pyfuse3.trio = fake_trio # type: ignore def disable() -> None: '''Switch pyfuse3 to default (trio) mode.''' pyfuse3.trio = sys.modules['trio'] # type: ignore def current_trio_token() -> str: return 'asyncio' _read_futures: dict[FileHandleT, set[asyncio.Future[Any]]] = collections.defaultdict(set) async def wait_readable(fd: FileHandleT) -> None: loop = asyncio.get_running_loop() future: 'asyncio.Future[Any]' = loop.create_future() _read_futures[fd].add(future) try: loop.add_reader(fd, future.set_result, None) future.add_done_callback(lambda f: loop.remove_reader(fd)) await future finally: _read_futures[fd].remove(future) if not _read_futures[fd]: del _read_futures[fd] def notify_closing(fd: FileHandleT) -> None: for f in _read_futures[fd]: f.set_exception(ClosedResourceError()) class ClosedResourceError(Exception): pass def current_task() -> 'Optional[asyncio.Task[Any]]': if sys.version_info < (3, 7): return asyncio.Task.current_task() else: return asyncio.current_task() class _Nursery: async def __aenter__(self) -> "_Nursery": self.tasks: 'Set[asyncio.Task[Any]]' = set() return self def start_soon( self, func: Callable[..., Any], *args: Iterable[Any], name: Optional[str] = None ) -> None: if sys.version_info < (3, 7): task = asyncio.ensure_future(func(*args)) else: task = asyncio.create_task(func(*args)) task.name = name # type: ignore self.tasks.add(task) async def __aexit__( self, exc_type: Optional[Type[BaseException]], exc_value: Optional[BaseException], traceback: Optional[Any], ) -> None: # Wait for tasks to finish while len(self.tasks): # Create a copy of the task list to ensure that it's not a problem # when self.tasks is modified done, pending = await asyncio.wait(tuple(self.tasks)) for task in done: self.tasks.discard(task) # We waited for ALL_COMPLETED (default value of 'when' arg to # asyncio.wait), so all tasks should be completed. If that's not the # case, something's seriously wrong. assert len(pending) == 0 def open_nursery() -> _Nursery: return _Nursery() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766923958.0 pyfuse3-3.5.0/src/pyfuse3/darwin_compat.c0000644000175000017500000001400115124217266020561 0ustar00nikrationikratio/* * Copyright (c) 2006-2008 Amit Singh/Google Inc. * Copyright (c) 2012 Anatol Pomozov * Copyright (c) 2011-2013 Benjamin Fleischer */ #include "darwin_compat.h" #include #include #include /* * Semaphore implementation based on: * * Copyright (C) 2000,02 Free Software Foundation, Inc. * This file is part of the GNU C Library. * Written by Gal Le Mignot * * The GNU C Library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * The GNU C Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the GNU C Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* Semaphores */ #define __SEM_ID_NONE ((int)0x0) #define __SEM_ID_LOCAL ((int)0xcafef00d) /* http://www.opengroup.org/onlinepubs/007908799/xsh/sem_init.html */ int darwin_sem_init(darwin_sem_t *sem, int pshared, unsigned int value) { if (pshared) { errno = ENOSYS; return -1; } sem->id = __SEM_ID_NONE; if (pthread_cond_init(&sem->__data.local.count_cond, NULL)) { goto cond_init_fail; } if (pthread_mutex_init(&sem->__data.local.count_lock, NULL)) { goto mutex_init_fail; } sem->__data.local.count = value; sem->id = __SEM_ID_LOCAL; return 0; mutex_init_fail: pthread_cond_destroy(&sem->__data.local.count_cond); cond_init_fail: return -1; } /* http://www.opengroup.org/onlinepubs/007908799/xsh/sem_destroy.html */ int darwin_sem_destroy(darwin_sem_t *sem) { int res = 0; pthread_mutex_lock(&sem->__data.local.count_lock); sem->id = __SEM_ID_NONE; pthread_cond_broadcast(&sem->__data.local.count_cond); if (pthread_cond_destroy(&sem->__data.local.count_cond)) { res = -1; } pthread_mutex_unlock(&sem->__data.local.count_lock); if (pthread_mutex_destroy(&sem->__data.local.count_lock)) { res = -1; } return res; } int darwin_sem_getvalue(darwin_sem_t *sem, unsigned int *sval) { int res = 0; pthread_mutex_lock(&sem->__data.local.count_lock); if (sem->id != __SEM_ID_LOCAL) { res = -1; errno = EINVAL; } else { *sval = sem->__data.local.count; } pthread_mutex_unlock(&sem->__data.local.count_lock); return res; } /* http://www.opengroup.org/onlinepubs/007908799/xsh/sem_post.html */ int darwin_sem_post(darwin_sem_t *sem) { int res = 0; pthread_mutex_lock(&sem->__data.local.count_lock); if (sem->id != __SEM_ID_LOCAL) { res = -1; errno = EINVAL; } else if (sem->__data.local.count < DARWIN_SEM_VALUE_MAX) { sem->__data.local.count++; if (sem->__data.local.count == 1) { pthread_cond_signal(&sem->__data.local.count_cond); } } else { errno = ERANGE; res = -1; } pthread_mutex_unlock(&sem->__data.local.count_lock); return res; } /* http://www.opengroup.org/onlinepubs/009695399/functions/sem_timedwait.html */ int darwin_sem_timedwait(darwin_sem_t *sem, const struct timespec *abs_timeout) { int res = 0; if (abs_timeout && (abs_timeout->tv_nsec < 0 || abs_timeout->tv_nsec >= 1000000000)) { errno = EINVAL; return -1; } pthread_cleanup_push((void(*)(void*))&pthread_mutex_unlock, &sem->__data.local.count_lock); pthread_mutex_lock(&sem->__data.local.count_lock); if (sem->id != __SEM_ID_LOCAL) { errno = EINVAL; res = -1; } else { if (!sem->__data.local.count) { res = pthread_cond_timedwait(&sem->__data.local.count_cond, &sem->__data.local.count_lock, abs_timeout); } if (res) { assert(res == ETIMEDOUT); res = -1; errno = ETIMEDOUT; } else if (sem->id != __SEM_ID_LOCAL) { res = -1; errno = EINVAL; } else { sem->__data.local.count--; } } pthread_cleanup_pop(1); return res; } /* http://www.opengroup.org/onlinepubs/007908799/xsh/sem_trywait.html */ int darwin_sem_trywait(darwin_sem_t *sem) { int res = 0; pthread_mutex_lock(&sem->__data.local.count_lock); if (sem->id != __SEM_ID_LOCAL) { res = -1; errno = EINVAL; } else if (sem->__data.local.count) { sem->__data.local.count--; } else { res = -1; errno = EAGAIN; } pthread_mutex_unlock (&sem->__data.local.count_lock); return res; } /* http://www.opengroup.org/onlinepubs/007908799/xsh/sem_wait.html */ int darwin_sem_wait(darwin_sem_t *sem) { /* Must be volatile or will be clobbered by longjmp */ volatile int res = 0; pthread_cleanup_push((void(*)(void*))&pthread_mutex_unlock, &sem->__data.local.count_lock); pthread_mutex_lock(&sem->__data.local.count_lock); if (sem->id != __SEM_ID_LOCAL) { errno = EINVAL; res = -1; } else { if (!sem->__data.local.count) { pthread_cond_wait(&sem->__data.local.count_cond, &sem->__data.local.count_lock); if (!sem->__data.local.count) { /* spurious wakeup, assume it is an interruption */ res = -1; errno = EINTR; goto out; } } if (sem->id != __SEM_ID_LOCAL) { res = -1; errno = EINVAL; } else { sem->__data.local.count--; } } out: pthread_cleanup_pop(1); return res; } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766923958.0 pyfuse3-3.5.0/src/pyfuse3/darwin_compat.h0000644000175000017500000000254015124217266020573 0ustar00nikrationikratio/* * Copyright (c) 2006-2008 Amit Singh/Google Inc. * Copyright (c) 2011-2013 Benjamin Fleischer */ #ifndef _DARWIN_COMPAT_ #define _DARWIN_COMPAT_ #include /* Semaphores */ typedef struct darwin_sem { int id; union { struct { unsigned int count; pthread_mutex_t count_lock; pthread_cond_t count_cond; } local; } __data; } darwin_sem_t; #define DARWIN_SEM_VALUE_MAX ((int32_t)32767) int darwin_sem_init(darwin_sem_t *sem, int pshared, unsigned int value); int darwin_sem_destroy(darwin_sem_t *sem); int darwin_sem_getvalue(darwin_sem_t *sem, unsigned int *value); int darwin_sem_post(darwin_sem_t *sem); int darwin_sem_timedwait(darwin_sem_t *sem, const struct timespec *abs_timeout); int darwin_sem_trywait(darwin_sem_t *sem); int darwin_sem_wait(darwin_sem_t *sem); /* Caller must not include */ typedef darwin_sem_t sem_t; #define sem_init(s, p, v) darwin_sem_init(s, p, v) #define sem_destroy(s) darwin_sem_destroy(s) #define sem_getvalue(s, v) darwin_sem_getvalue(s, v) #define sem_post(s) darwin_sem_post(s) #define sem_timedwait(s, t) darwin_sem_timedwait(s, t) #define sem_trywait(s) darwin_sem_trywait(s) #define sem_wait(s) darwin_sem_wait(s) #define SEM_VALUE_MAX DARWIN_SEM_VALUE_MAX #endif /* _DARWIN_COMPAT_ */ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766923958.0 pyfuse3-3.5.0/src/pyfuse3/gettime.h0000644000175000017500000000167515124217266017412 0ustar00nikrationikratio/* * gettime.h * * Platform-independent interface to system clock * * Copyright © 2015 Nikolaus Rath * * This file is part of pyfuse3. This work may be distributed under the * terms of the GNU LGPL. */ /* * Linux */ #if PLATFORM == PLATFORM_LINUX #include static int gettime_realtime(struct timespec *tp) { return clock_gettime(CLOCK_REALTIME, tp); } /* * FreeBSD & NetBSD */ #elif PLATFORM == PLATFORM_BSD #include static int gettime_realtime(struct timespec *tp) { return clock_gettime(CLOCK_REALTIME, tp); } /* * Darwin */ #elif PLATFORM == PLATFORM_DARWIN #include static int gettime_realtime(struct timespec *tp) { struct timeval tv; int res; res = gettimeofday(&tv, NULL); if(res != 0) return -1; tp->tv_sec = tv.tv_sec; tp->tv_nsec = tv.tv_usec * 1000; return 0; } /* * Unknown system */ #else #error This should not happen #endif ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778335858.0 pyfuse3-3.5.0/src/pyfuse3/handlers.pxi0000644000175000017500000006336715177640162020136 0ustar00nikrationikratio''' handlers.pxi This file defines the FUSE request handlers. It is included by __init__.pyx. Copyright © 2013 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' @cython.freelist(60) cdef class _Container: """For internal use by pyfuse3 only.""" # This serves as a generic container to pass C variables # through Python. Which fields have valid data depends on # context. cdef dev_t rdev cdef fuse_file_info fi cdef fuse_ino_t ino cdef fuse_ino_t parent cdef fuse_req_t req cdef int flags cdef mode_t mode cdef off_t off cdef size_t size cdef struct_stat stat cdef uint64_t fh cdef void fuse_init (void *userdata, fuse_conn_info *conn): if not conn.capable & FUSE_CAP_READDIRPLUS: raise RuntimeError('Kernel too old, pyfuse3 requires kernel 3.9 or newer!') conn.want &= ~( FUSE_CAP_READDIRPLUS_AUTO) if (operations.supports_dot_lookup and conn.capable & FUSE_CAP_EXPORT_SUPPORT): conn.want |= FUSE_CAP_EXPORT_SUPPORT if (operations.enable_writeback_cache and conn.capable & FUSE_CAP_WRITEBACK_CACHE): conn.want |= FUSE_CAP_WRITEBACK_CACHE if (operations.enable_acl and conn.capable & FUSE_CAP_POSIX_ACL): conn.want |= FUSE_CAP_POSIX_ACL # Blocking rather than async, in case we decide to let the # init handler modify `conn` in the future. operations.init() cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent, const_char *name): cdef _Container c = _Container() c.req = req c.parent = parent save_retval(fuse_lookup_async(c, PyBytes_FromString(name))) async def fuse_lookup_async (_Container c, name): cdef EntryAttributes entry cdef int ret ctx = get_request_context(c.req) try: entry = await operations.lookup( c.parent, name, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_entry(c.req, &entry.fuse_param) if ret != 0: log.error('fuse_lookup(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_forget (fuse_req_t req, fuse_ino_t ino, uint64_t nlookup): save_retval(operations.forget([(ino, nlookup)])) fuse_reply_none(req) cdef void fuse_forget_multi(fuse_req_t req, size_t count, fuse_forget_data *forgets): forget_list = list() for el in forgets[:count]: forget_list.append((el.ino, el.nlookup)) save_retval(operations.forget(forget_list)) fuse_reply_none(req) cdef void fuse_getattr (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.ino = ino save_retval(fuse_getattr_async(c)) async def fuse_getattr_async (_Container c): cdef int ret cdef EntryAttributes entry ctx = get_request_context(c.req) try: entry = await operations.getattr(c.ino, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) if ret != 0: log.error('fuse_getattr(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_setattr (fuse_req_t req, fuse_ino_t ino, struct_stat *stat, int to_set, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.ino = ino c.stat = stat[0] c.flags = to_set if fi is NULL: fh = None else: fh = fi.fh save_retval(fuse_setattr_async(c, fh)) async def fuse_setattr_async (_Container c, fh): cdef int ret cdef timespec now cdef EntryAttributes entry cdef SetattrFields fields cdef struct_stat *attr cdef int to_set = c.flags ctx = get_request_context(c.req) entry = EntryAttributes() fields = SetattrFields.__new__(SetattrFields) string.memcpy(entry.attr, &c.stat, sizeof(struct_stat)) attr = entry.attr if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW): ret = libc_extra.gettime_realtime(&now) if ret != 0: log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s', strerror(errno.errno)) if to_set & FUSE_SET_ATTR_ATIME: fields.update_atime = True elif to_set & FUSE_SET_ATTR_ATIME_NOW: fields.update_atime = True attr.st_atime = now.tv_sec SET_ATIME_NS(attr, now.tv_nsec) if to_set & FUSE_SET_ATTR_MTIME: fields.update_mtime = True elif to_set & FUSE_SET_ATTR_MTIME_NOW: fields.update_mtime = True attr.st_mtime = now.tv_sec SET_MTIME_NS(attr, now.tv_nsec) fields.update_ctime = bool(to_set & FUSE_SET_ATTR_CTIME) fields.update_mode = bool(to_set & FUSE_SET_ATTR_MODE) fields.update_uid = bool(to_set & FUSE_SET_ATTR_UID) fields.update_gid = bool(to_set & FUSE_SET_ATTR_GID) fields.update_size = bool(to_set & FUSE_SET_ATTR_SIZE) try: entry = await operations.setattr(c.ino, entry, fields, fh, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_attr(c.req, entry.attr, entry.fuse_param.attr_timeout) if ret != 0: log.error('fuse_setattr(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_readlink (fuse_req_t req, fuse_ino_t ino): cdef _Container c = _Container() c.req = req c.ino = ino save_retval(fuse_readlink_async(c)) async def fuse_readlink_async (_Container c): cdef int ret cdef char* name ctx = get_request_context(c.req) try: target = await operations.readlink(c.ino, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: name = PyBytes_AsString(target) ret = fuse_reply_readlink(c.req, name) if ret != 0: log.error('fuse_readlink(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_mknod (fuse_req_t req, fuse_ino_t parent, const_char *name, mode_t mode, dev_t rdev): cdef _Container c = _Container() c.req = req c.parent = parent c.mode = mode c.rdev = rdev save_retval(fuse_mknod_async(c, PyBytes_FromString(name))) async def fuse_mknod_async (_Container c, name): cdef int ret cdef EntryAttributes entry ctx = get_request_context(c.req) try: entry = await operations.mknod( c.parent, name, c.mode, c.rdev, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_entry(c.req, &entry.fuse_param) if ret != 0: log.error('fuse_mknod(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_mkdir (fuse_req_t req, fuse_ino_t parent, const_char *name, mode_t mode): cdef _Container c = _Container() c.req = req c.parent = parent c.mode = mode save_retval(fuse_mkdir_async(c, PyBytes_FromString(name))) async def fuse_mkdir_async (_Container c, name): cdef int ret cdef EntryAttributes entry # Force the entry type to directory. We need to explicitly cast, # because on BSD the S_* are not of type mode_t. c.mode = (c.mode & ~ S_IFMT) | S_IFDIR ctx = get_request_context(c.req) try: entry = await operations.mkdir( c.parent, name, c.mode, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_entry(c.req, &entry.fuse_param) if ret != 0: log.error('fuse_mkdir(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_unlink (fuse_req_t req, fuse_ino_t parent, const_char *name): cdef _Container c = _Container() c.req = req c.parent = parent save_retval(fuse_unlink_async(c, PyBytes_FromString(name))) async def fuse_unlink_async (_Container c, name): cdef int ret ctx = get_request_context(c.req) try: await operations.unlink(c.parent, name, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_unlink(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_rmdir (fuse_req_t req, fuse_ino_t parent, const_char *name): cdef _Container c = _Container() c.req = req c.parent = parent save_retval(fuse_rmdir_async(c, PyBytes_FromString(name))) async def fuse_rmdir_async (_Container c, name): cdef int ret ctx = get_request_context(c.req) try: await operations.rmdir(c.parent, name, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_rmdir(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_symlink (fuse_req_t req, const_char *link, fuse_ino_t parent, const_char *name): cdef _Container c = _Container() c.req = req c.parent = parent save_retval(fuse_symlink_async( c, PyBytes_FromString(name), PyBytes_FromString(link))) async def fuse_symlink_async (_Container c, name, link): cdef int ret cdef EntryAttributes entry ctx = get_request_context(c.req) try: entry = await operations.symlink( c.parent, name, link, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_entry(c.req, &entry.fuse_param) if ret != 0: log.error('fuse_symlink(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_rename (fuse_req_t req, fuse_ino_t parent, const_char *name, fuse_ino_t newparent, const_char *newname, unsigned flags): cdef _Container c = _Container() c.req = req c.parent = parent c.ino = newparent c.flags = flags save_retval(fuse_rename_async( c, PyBytes_FromString(name), PyBytes_FromString(newname))) async def fuse_rename_async (_Container c, name, newname): cdef int ret cdef unsigned flags = c.flags cdef fuse_ino_t newparent = c.ino ctx = get_request_context(c.req) try: await operations.rename(c.parent, name, newparent, newname, flags, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_rename(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_link (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent, const_char *newname): cdef _Container c = _Container() c.req = req c.ino = ino c.parent = newparent save_retval(fuse_link_async(c, PyBytes_FromString(newname))) async def fuse_link_async (_Container c, newname): cdef int ret cdef EntryAttributes entry ctx = get_request_context(c.req) try: entry = await operations.link( c.ino, c.parent, newname, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_entry(c.req, &entry.fuse_param) if ret != 0: log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_open (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.ino = ino c.fi = fi[0] save_retval(fuse_open_async(c)) async def fuse_open_async (_Container c): cdef int ret cdef FileInfo fi ctx = get_request_context(c.req) try: fi = await operations.open(c.ino, c.fi.flags, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: fi._copy_to_fuse(&c.fi) ret = fuse_reply_open(c.req, &c.fi) if ret != 0: log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_read (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.size = size c.off = off c.fh = fi.fh save_retval(fuse_read_async(c)) async def fuse_read_async (_Container c): cdef int ret cdef Py_buffer pybuf try: buf = await operations.read(c.fh, c.off, c.size) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: PyObject_GetBuffer(buf, &pybuf, PyBUF_CONTIG_RO) ret = fuse_reply_buf(c.req, pybuf.buf, pybuf.len) PyBuffer_Release(&pybuf) if ret != 0: log.error('fuse_read(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_write (fuse_req_t req, fuse_ino_t ino, const_char *buf, size_t size, off_t off, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.size = size c.off = off c.fh = fi.fh if size > PY_SSIZE_T_MAX: raise OverflowError('Value too long to convert to Python') pbuf = PyBytes_FromStringAndSize(buf, size) save_retval(fuse_write_async(c, pbuf)) async def fuse_write_async (_Container c, pbuf): cdef int ret cdef size_t len_ try: len_ = await operations.write(c.fh, c.off, pbuf) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_write(c.req, len_) if ret != 0: log.error('fuse_write(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_write_buf(fuse_req_t req, fuse_ino_t ino, fuse_bufvec *bufv, off_t off, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.off = off c.fh = fi.fh buf = PyBytes_from_bufvec(bufv) save_retval(fuse_write_buf_async(c, buf)) async def fuse_write_buf_async (_Container c, buf): cdef int ret cdef size_t len_ try: len_ = await operations.write(c.fh, c.off, buf) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_write(c.req, len_) if ret != 0: log.error('fuse_write_buf(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_flush (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.fh = fi.fh save_retval(fuse_flush_async(c)) async def fuse_flush_async (_Container c): cdef int ret try: await operations.flush(c.fh) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_flush(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_release (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.fh = fi.fh save_retval(fuse_release_async(c)) async def fuse_release_async (_Container c): cdef int ret try: await operations.release(c.fh) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_release(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_fsync (fuse_req_t req, fuse_ino_t ino, int datasync, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.flags = datasync c.fh = fi.fh save_retval(fuse_fsync_async(c)) async def fuse_fsync_async (_Container c): cdef int ret try: await operations.fsync(c.fh, c.flags != 0) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_fsync(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_opendir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.ino = ino c.fi = fi[0] save_retval(fuse_opendir_async(c)) async def fuse_opendir_async (_Container c): cdef int ret ctx = get_request_context(c.req) try: c.fi.fh = await operations.opendir(c.ino, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_open(c.req, &c.fi) if ret != 0: log.error('fuse_opendir(): fuse_reply_* failed with %s', strerror(-ret)) @cython.freelist(10) cdef class ReaddirToken: cdef fuse_req_t req cdef char *buf_start cdef char *buf cdef size_t size cdef void fuse_readdirplus (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, fuse_file_info *fi): global py_retval cdef _Container c = _Container() c.req = req c.size = size c.off = off c.fh = fi.fh save_retval(fuse_readdirplus_async(c)) async def fuse_readdirplus_async (_Container c): cdef int ret cdef ReaddirToken token = ReaddirToken() token.buf_start = NULL token.size = c.size token.req = c.req try: await operations.readdir(c.fh, c.off, token) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: if token.buf_start == NULL: ret = fuse_reply_buf(c.req, NULL, 0) else: ret = fuse_reply_buf(c.req, token.buf_start, c.size - token.size) finally: stdlib.free(token.buf_start) if ret != 0: log.error('fuse_readdirplus(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_releasedir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.fh = fi.fh save_retval(fuse_releasedir_async(c)) async def fuse_releasedir_async (_Container c): cdef int ret try: await operations.releasedir(c.fh) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_releasedir(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_fsyncdir (fuse_req_t req, fuse_ino_t ino, int datasync, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.flags = datasync c.fh = fi.fh save_retval(fuse_fsyncdir_async(c)) async def fuse_fsyncdir_async (_Container c): cdef int ret try: await operations.fsyncdir(c.fh, c.flags != 0) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_fsyncdir(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_statfs (fuse_req_t req, fuse_ino_t ino): cdef _Container c = _Container() c.req = req save_retval(fuse_statfs_async(c)) async def fuse_statfs_async (_Container c): cdef int ret cdef StatvfsData stats ctx = get_request_context(c.req) try: stats = await operations.statfs(ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_statfs(c.req, &stats.stat) if ret != 0: log.error('fuse_statfs(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_setxattr (fuse_req_t req, fuse_ino_t ino, const_char *cname, const_char *cvalue, size_t size, int flags): cdef _Container c = _Container() c.req = req c.ino = ino c.size = size c.flags = flags name = PyBytes_FromString(cname) if c.size > PY_SSIZE_T_MAX: raise OverflowError('Value too long to convert to Python') value = PyBytes_FromStringAndSize(cvalue, c.size) save_retval(fuse_setxattr_async(c, name, value)) async def fuse_setxattr_async (_Container c, name, value): cdef int ret # Special case for deadlock debugging if c.ino == FUSE_ROOT_ID and name == 'fuse_stacktrace': operations.stacktrace() fuse_reply_err(c.req, 0) return # Make sure we know all the flags if c.flags & ~(libc_extra.XATTR_CREATE | libc_extra.XATTR_REPLACE): raise ValueError('unknown flag(s): %o' % c.flags) ctx = get_request_context(c.req) try: if c.flags & libc_extra.XATTR_CREATE: # Attribute must not exist try: await operations.getxattr(c.ino, name, ctx) except FUSEError as e: if e.errno != ENOATTR: raise else: raise FUSEError(errno.EEXIST) elif c.flags & libc_extra.XATTR_REPLACE: # Attribute must exist await operations.getxattr(c.ino, name, ctx) await operations.setxattr(c.ino, name, value, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_setxattr(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_getxattr (fuse_req_t req, fuse_ino_t ino, const_char *name, size_t size): cdef _Container c = _Container() c.req = req c.ino = ino c.size = size save_retval(fuse_getxattr_async(c, PyBytes_FromString(name))) async def fuse_getxattr_async (_Container c, name): cdef int ret cdef ssize_t len_s cdef size_t len_ cdef char *cbuf ctx = get_request_context(c.req) try: buf = await operations.getxattr(c.ino, name, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: PyBytes_AsStringAndSize(buf, &cbuf, &len_s) len_ = len_s # guaranteed positive if c.size == 0: ret = fuse_reply_xattr(c.req, len_) elif len_ <= c.size: ret = fuse_reply_buf(c.req, cbuf, len_) else: ret = fuse_reply_err(c.req, errno.ERANGE) if ret != 0: log.error('fuse_getxattr(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size): cdef _Container c = _Container() c.req = req c.ino = ino c.size = size save_retval(fuse_listxattr_async(c)) async def fuse_listxattr_async (_Container c): cdef int ret cdef ssize_t len_s cdef size_t len_ cdef char *cbuf ctx = get_request_context(c.req) try: res = await operations.listxattr(c.ino, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: buf = b'\0'.join(res) + b'\0' PyBytes_AsStringAndSize(buf, &cbuf, &len_s) len_ = len_s # guaranteed positive if len_ == 1: # No attributes len_ = 0 if c.size == 0: ret = fuse_reply_xattr(c.req, len_) elif len_ <= c.size: ret = fuse_reply_buf(c.req, cbuf, len_) else: ret = fuse_reply_err(c.req, errno.ERANGE) if ret != 0: log.error('fuse_listxattr(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *name): cdef _Container c = _Container() c.req = req c.ino = ino save_retval(fuse_removexattr_async(c, PyBytes_FromString(name))) async def fuse_removexattr_async (_Container c, name): cdef int ret ctx = get_request_context(c.req) try: await operations.removexattr(c.ino, name, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: ret = fuse_reply_err(c.req, 0) if ret != 0: log.error('fuse_removexattr(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_access (fuse_req_t req, fuse_ino_t ino, int mask): cdef _Container c = _Container() c.req = req c.ino = ino c.flags = mask save_retval(fuse_access_async(c)) async def fuse_access_async (_Container c): cdef int ret cdef int mask = c.flags ctx = get_request_context(c.req) try: allowed = await operations.access(c.ino, mask, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: if allowed: ret = fuse_reply_err(c.req, 0) else: ret = fuse_reply_err(c.req, EACCES) if ret != 0: log.error('fuse_access(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_poll (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi, fuse_pollhandle *ph): cdef _Container c = _Container() cdef object py_ph c.req = req c.ino = ino if fi is NULL: c.fh = 0 else: c.fh = fi.fh if ph == NULL: py_ph = None else: py_ph = PollHandle.from_ptr(ph) save_retval(fuse_poll_async(c, py_ph)) async def fuse_poll_async (_Container c, object py_ph): cdef int ret cdef unsigned revents ctx = get_request_context(c.req) try: result = await operations.poll(c.ino, c.fh, py_ph, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: revents = (result if result is not None else 0) ret = fuse_reply_poll(c.req, revents) if ret != 0: log.error('fuse_poll(): fuse_reply_* failed with %s', strerror(-ret)) cdef void fuse_create (fuse_req_t req, fuse_ino_t parent, const_char *name, mode_t mode, fuse_file_info *fi): cdef _Container c = _Container() c.req = req c.parent = parent c.mode = mode c.fi = fi[0] save_retval(fuse_create_async(c, PyBytes_FromString(name))) async def fuse_create_async (_Container c, name): cdef int ret cdef EntryAttributes entry cdef FileInfo fi ctx = get_request_context(c.req) try: tmp = await operations.create(c.parent, name, c.mode, c.fi.flags, ctx) except FUSEError as e: ret = fuse_reply_err(c.req, e.errno) else: fi = tmp[0] entry = tmp[1] fi._copy_to_fuse(&c.fi) ret = fuse_reply_create(c.req, &entry.fuse_param, &c.fi) if ret != 0: log.error('fuse_create(): fuse_reply_* failed with %s', strerror(-ret)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778335858.0 pyfuse3-3.5.0/src/pyfuse3/internal.pxi0000644000175000017500000002057115177640162020140 0ustar00nikrationikratio''' internal.pxi This file defines functions and data structures that are used internally by pyfuse3. It is included by __init__.pyx. Copyright © 2013 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' cdef void save_retval(object val): global py_retval if py_retval is not None and val is not None: log.error('py_retval was not awaited - please report a bug at ' 'https://github.com/libfuse/pyfuse3/issues!') py_retval = val cdef object get_request_context(fuse_req_t req): '''Get RequestContext() object''' cdef const_fuse_ctx* context cdef RequestContext ctx context = fuse_req_ctx(req) ctx = RequestContext.__new__(RequestContext) ctx.pid = context.pid ctx.uid = context.uid ctx.gid = context.gid ctx.umask = context.umask return ctx cdef void init_fuse_ops(): '''Initialize fuse_lowlevel_ops structure''' string.memset(&fuse_ops, 0, sizeof(fuse_lowlevel_ops)) fuse_ops.init = fuse_init fuse_ops.lookup = fuse_lookup fuse_ops.forget = fuse_forget fuse_ops.getattr = fuse_getattr fuse_ops.setattr = fuse_setattr fuse_ops.readlink = fuse_readlink fuse_ops.mknod = fuse_mknod fuse_ops.mkdir = fuse_mkdir fuse_ops.unlink = fuse_unlink fuse_ops.rmdir = fuse_rmdir fuse_ops.symlink = fuse_symlink fuse_ops.rename = fuse_rename fuse_ops.link = fuse_link fuse_ops.open = fuse_open fuse_ops.read = fuse_read fuse_ops.write = fuse_write fuse_ops.flush = fuse_flush fuse_ops.release = fuse_release fuse_ops.fsync = fuse_fsync fuse_ops.opendir = fuse_opendir fuse_ops.readdirplus = fuse_readdirplus fuse_ops.releasedir = fuse_releasedir fuse_ops.fsyncdir = fuse_fsyncdir fuse_ops.statfs = fuse_statfs ASSIGN_NOT_DARWIN(fuse_ops.setxattr, &fuse_setxattr) ASSIGN_NOT_DARWIN(fuse_ops.getxattr, &fuse_getxattr) fuse_ops.listxattr = fuse_listxattr fuse_ops.removexattr = fuse_removexattr fuse_ops.access = fuse_access fuse_ops.create = fuse_create fuse_ops.forget_multi = fuse_forget_multi fuse_ops.write_buf = fuse_write_buf fuse_ops.poll = fuse_poll cdef make_fuse_args(args, fuse_args* f_args): cdef char* arg cdef int i cdef ssize_t size_s cdef size_t size args_new = [ b'pyfuse3' ] for el in args: args_new.append(b'-o') args_new.append(el.encode('us-ascii')) args = args_new f_args.argc = len(args) if f_args.argc == 0: f_args.argv = NULL return f_args.allocated = 1 f_args.argv = stdlib.calloc( f_args.argc, sizeof(char*)) if f_args.argv is NULL: cpython.exc.PyErr_NoMemory() try: for (i, el) in enumerate(args): PyBytes_AsStringAndSize(el, &arg, &size_s) size = size_s # guaranteed positive f_args.argv[i] = stdlib.malloc((size+1)*sizeof(char)) if f_args.argv[i] is NULL: cpython.exc.PyErr_NoMemory() string.strncpy(f_args.argv[i], arg, size+1) except: for i in range(f_args.argc): # Freeing a NULL pointer (if this element has not been allocated # yet) is fine. stdlib.free(f_args.argv[i]) stdlib.free(f_args.argv) raise def _notify_loop(): '''Process async invalidate_entry calls.''' while True: req = _notify_queue.get() if req is None: log.debug('terminating notify thread') break (inode_p, name, deleted, ignore_enoent) = req try: invalidate_entry(inode_p, name, deleted) except Exception as exc: if ignore_enoent and isinstance(exc, FileNotFoundError): pass else: log.exception('Failed to submit invalidate_entry request for ' 'parent inode %d, name %s', req[0], req[1]) cdef str2bytes(s): '''Convert *s* to bytes''' return s.encode(fse, 'surrogateescape') cdef bytes2str(s): '''Convert *s* to str''' return s.decode(fse, 'surrogateescape') cdef strerror(int errno): try: return os.strerror(errno) except ValueError: return 'errno: %d' % errno cdef PyBytes_from_bufvec(fuse_bufvec *src): cdef fuse_bufvec dst cdef size_t len_ cdef ssize_t res len_ = fuse_buf_size(src) - src.off if len_ > PY_SSIZE_T_MAX: raise OverflowError('Value too long to convert to Python') buf = PyBytes_FromStringAndSize(NULL, len_) dst.count = 1 dst.idx = 0 dst.off = 0 dst.buf[0].mem = PyBytes_AS_STRING(buf) dst.buf[0].size = len_ dst.buf[0].flags = 0 res = fuse_buf_copy(&dst, src, 0) if res < 0: raise OSError(errno.errno, 'fuse_buf_copy failed with ' + strerror(errno.errno)) elif res < len_: # This is expected to be rare return buf[:res] else: return buf cdef void* calloc_or_raise(size_t nmemb, size_t size) except NULL: cdef void* mem mem = stdlib.calloc(nmemb, size) if mem is NULL: raise MemoryError() return mem cdef class _WorkerData: """For internal use by pyfuse3 only.""" cdef int task_count cdef int task_serial cdef object read_lock cdef int active_readers def __init__(self): self.read_lock = None self.active_readers = 0 cdef get_name(self): self.task_serial += 1 return 'pyfuse-%02d' % self.task_serial # Delay initialization so that pyfuse3.asyncio can replace # the trio module. cdef _WorkerData worker_data async def _wait_fuse_readable(): '''Wait for FUSE fd to become readable Return True if the fd is readable, or False if the main loop should terminate. ''' if worker_data.read_lock is None: worker_data.read_lock = trio.Lock() #name = trio.lowlevel.current_task().name worker_data.active_readers += 1 try: #log.debug('%s: Waiting for read lock...', name) async with worker_data.read_lock: #log.debug('%s: Waiting for fuse fd to become readable...', name) if fuse_session_exited(session): log.debug('FUSE session exit flag set while waiting for FUSE fd ' 'to become readable.') return False await trio.lowlevel.wait_readable(session_fd) #log.debug('%s: fuse fd readable, unparking next task.', name) except trio.ClosedResourceError: log.debug('FUSE fd about to be closed.') return False finally: worker_data.active_readers -= 1 return True @async_wrapper async def _session_loop(nursery, int min_tasks, int max_tasks): cdef int res cdef fuse_buf buf name = trio.lowlevel.current_task().name buf.mem = NULL buf.size = 0 buf.pos = 0 buf.flags = 0 while not fuse_session_exited(session): if worker_data.active_readers > min_tasks: log.debug('%s: too many idle tasks (%d total, %d waiting), terminating.', name, worker_data.task_count, worker_data.active_readers) break if not await _wait_fuse_readable(): break res = fuse_session_receive_buf(session, &buf) if not worker_data.active_readers and worker_data.task_count < max_tasks: worker_data.task_count += 1 log.debug('%s: No tasks waiting, starting another worker (now %d total).', name, worker_data.task_count) nursery.start_soon(_session_loop, nursery, min_tasks, max_tasks, name=worker_data.get_name()) if res == -errno.EINTR: continue elif res < 0: raise OSError(-res, 'fuse_session_receive_buf failed with ' + strerror(-res)) elif res == 0: break # When fuse_session_process_buf() calls back into one of our handler # methods, the handler will start a co-routine and store it in # py_retval. #log.debug('%s: processing request...', name) save_retval(None) fuse_session_process_buf(session, &buf) if py_retval is not None: await py_retval #log.debug('%s: processing complete.', name) log.debug('%s: terminated', name) stdlib.free(buf.mem) worker_data.task_count -= 1 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766923958.0 pyfuse3-3.5.0/src/pyfuse3/macros.c0000644000175000017500000000347715124217266017235 0ustar00nikrationikratio/* macros.c - Pre-processor macros Copyright © 2013 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. */ /* * Macros to access the nanosecond attributes in struct stat in a * platform independent way. Stolen from fuse_misc.h. */ #if PLATFORM == PLATFORM_LINUX #define GET_ATIME_NS(stbuf) ((stbuf)->st_atim.tv_nsec) #define GET_CTIME_NS(stbuf) ((stbuf)->st_ctim.tv_nsec) #define GET_MTIME_NS(stbuf) ((stbuf)->st_mtim.tv_nsec) #define SET_ATIME_NS(stbuf, val) (stbuf)->st_atim.tv_nsec = (val) #define SET_CTIME_NS(stbuf, val) (stbuf)->st_ctim.tv_nsec = (val) #define SET_MTIME_NS(stbuf, val) (stbuf)->st_mtim.tv_nsec = (val) #define GET_BIRTHTIME_NS(stbuf) (0) #define GET_BIRTHTIME(stbuf) (0) #define SET_BIRTHTIME_NS(stbuf, val) do {} while (0) #define SET_BIRTHTIME(stbuf, val) do {} while (0) /* BSD and OS-X */ #else #define GET_BIRTHTIME(stbuf) ((stbuf)->st_birthtime) #define SET_BIRTHTIME(stbuf, val) ((stbuf)->st_birthtime = (val)) #define GET_ATIME_NS(stbuf) ((stbuf)->st_atimespec.tv_nsec) #define GET_CTIME_NS(stbuf) ((stbuf)->st_ctimespec.tv_nsec) #define GET_MTIME_NS(stbuf) ((stbuf)->st_mtimespec.tv_nsec) #define GET_BIRTHTIME_NS(stbuf) ((stbuf)->st_birthtimespec.tv_nsec) #define SET_ATIME_NS(stbuf, val) ((stbuf)->st_atimespec.tv_nsec = (val)) #define SET_CTIME_NS(stbuf, val) ((stbuf)->st_ctimespec.tv_nsec = (val)) #define SET_MTIME_NS(stbuf, val) ((stbuf)->st_mtimespec.tv_nsec = (val)) #define SET_BIRTHTIME_NS(stbuf, val) ((stbuf)->st_birthtimespec.tv_nsec = (val)) #endif #if PLATFORM == PLATFORM_LINUX || PLATFORM == PLATFORM_BSD #define ASSIGN_DARWIN(x,y) #define ASSIGN_NOT_DARWIN(x,y) ((x) = (y)) #elif PLATFORM == PLATFORM_DARWIN #define ASSIGN_DARWIN(x,y) ((x) = (y)) #define ASSIGN_NOT_DARWIN(x,y) #else #error This should not happen #endif ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766923958.0 pyfuse3-3.5.0/src/pyfuse3/macros.pxd0000644000175000017500000000144615124217266017600 0ustar00nikrationikratio''' macros.pxd Cython definitions for macros.c Copyright © 2018 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' from posix.stat cimport struct_stat cdef extern from "macros.c" nogil: long GET_BIRTHTIME(struct_stat* buf) long GET_ATIME_NS(struct_stat* buf) long GET_CTIME_NS(struct_stat* buf) long GET_MTIME_NS(struct_stat* buf) long GET_BIRTHTIME_NS(struct_stat* buf) void SET_BIRTHTIME(struct_stat* buf, long val) void SET_ATIME_NS(struct_stat* buf, long val) void SET_CTIME_NS(struct_stat* buf, long val) void SET_MTIME_NS(struct_stat* buf, long val) void SET_BIRTHTIME_NS(struct_stat* buf, long val) void ASSIGN_DARWIN(void*, void*) void ASSIGN_NOT_DARWIN(void*, void*) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766923958.0 pyfuse3-3.5.0/src/pyfuse3/py.typed0000644000175000017500000000000015124217266017257 0ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767123354.0 pyfuse3-3.5.0/src/pyfuse3/pyfuse3.h0000644000175000017500000000146615125024632017342 0ustar00nikrationikratio/* pyfuse3.h Copyright © 2013 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. */ #define PLATFORM_LINUX 1 #define PLATFORM_BSD 2 #define PLATFORM_DARWIN 3 #ifdef __linux__ #define PLATFORM PLATFORM_LINUX #elif __FreeBSD_kernel__ && __GLIBC__ #define PLATFORM PLATFORM_LINUX #elif __FreeBSD__ #define PLATFORM PLATFORM_BSD #elif __NetBSD__ #define PLATFORM PLATFORM_BSD #elif __APPLE__ && __MACH__ #define PLATFORM PLATFORM_DARWIN #else #error "Unable to determine system (Linux/FreeBSD/NetBSD/Darwin)" #endif #if PLATFORM == PLATFORM_DARWIN #include "darwin_compat.h" #else /* See also: Include/pthreads.pxd */ #include #endif #include #if FUSE_VERSION < 32 #error FUSE version too old, 3.2.0 or newer required #endif ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766923958.0 pyfuse3-3.5.0/src/pyfuse3/xattr.h0000644000175000017500000000664615124217266017121 0ustar00nikrationikratio/* * xattr.h * * Platform-independent interface to extended attributes * * Copyright © 2015 Nikolaus Rath * * This file is part of pyfuse3. This work may be distributed under the * terms of the GNU LGPL. */ #ifndef UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define UNUSED __attribute__ ((__unused__)) # else # define UNUSED # endif # else # define UNUSED # endif #endif /* * Linux */ #if PLATFORM == PLATFORM_LINUX #include /* * Newer versions of attr deprecate attr/xattr.h which defines ENOATTR as a * synonym for ENODATA. To keep compatibility with the old style and the new, * define this ourselves. */ #ifndef ENOATTR #define ENOATTR ENODATA #endif #define EXTATTR_NAMESPACE_USER 0 #define EXTATTR_NAMESPACE_SYSTEM 0 #define XATTR_NOFOLLOW 0 #define XATTR_NODEFAULT 0 #define XATTR_NOSECURITY 0 static ssize_t getxattr_p (char *path, char *name, void *value, size_t size, UNUSED int namespace) { return getxattr(path, name, value, size); } static int setxattr_p (char *path, char *name, void *value, size_t size, UNUSED int namespace) { return setxattr(path, name, value, size, 0); } /* * FreeBSD & NetBSD */ #elif PLATFORM == PLATFORM_BSD #include #include #include #include #define XATTR_NOFOLLOW 0 #define XATTR_NODEFAULT 0 #define XATTR_NOSECURITY 0 /* FreeBSD doesn't have on operation to only set the attribute if it already exists (XATTR_REPLACE), or only if it does not yet exist (XATTR_CREATE). Setting these values to zero ensures that we can never test positively for them */ #define XATTR_CREATE 0 #define XATTR_REPLACE 0 static ssize_t getxattr_p (char *path, char *name, void *value, size_t size, int namespace) { /* If size > SSIZE_MAX, we cannot determine if we got all the data (because the return value doesn't fit into ssize_t) */ if (size >= SSIZE_MAX) { errno = EINVAL; return -1; } ssize_t ret; ret = extattr_get_file(path, namespace, name, value, size); if (ret > 0 && (size_t) ret == size) { errno = ERANGE; return -1; } return ret; } static int setxattr_p (char *path, char *name, void *value, size_t size, int namespace) { if (size >= SSIZE_MAX) { errno = EINVAL; return -1; } ssize_t ret; ret = extattr_set_file(path, namespace, name, value, size); if (ret < 0) { /* Errno values really ought to fit into int, but better safe than sorry */ if (ret < INT_MIN) return -EOVERFLOW; else return (int) ret; } if ((size_t)ret != size) { errno = ENOSPC; return -1; } return 0; } /* * Darwin */ #elif PLATFORM == PLATFORM_DARWIN #include #define EXTATTR_NAMESPACE_USER 0 #define EXTATTR_NAMESPACE_SYSTEM 0 static ssize_t getxattr_p (char *path, char *name, void *value, size_t size, UNUSED int namespace) { return getxattr(path, name, value, size, 0, 0); } static int setxattr_p (char *path, char *name, void *value, size_t size, UNUSED int namespace) { return setxattr(path, name, value, size, 0, 0); } /* * Unknown system */ #else #error This should not happen #endif ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0750976 pyfuse3-3.5.0/src/pyfuse3.egg-info/0000755000175000017500000000000015201114625017253 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686357.0 pyfuse3-3.5.0/src/pyfuse3.egg-info/PKG-INFO0000644000175000017500000000531715201114625020356 0ustar00nikrationikratioMetadata-Version: 2.4 Name: pyfuse3 Version: 3.5.0 Summary: Python 3 bindings for libfuse 3 with async I/O support Author-email: Nikolaus Rath License-Expression: LGPL-2.1-or-later Project-URL: Homepage, https://github.com/libfuse/pyfuse3 Keywords: FUSE,python Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Programming Language :: Python Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: System :: Filesystems Classifier: Operating System :: POSIX :: Linux Classifier: Typing :: Typed Requires-Python: >=3.10 Description-Content-Type: text/x-rst License-File: LICENSE Requires-Dist: trio>=0.15 Dynamic: license-file .. NOTE: We cannot use sophisticated ReST syntax (like e.g. :file:`foo`) here because this isn't rendered correctly by PyPi. The pyfuse3 Module ================== .. start-intro pyfuse3 is a set of Python 3 bindings for `libfuse 3`_. It provides an asynchronous API compatible with Trio_ and asyncio_, and enables you to easily write a full-featured Linux filesystem in Python. pyfuse3 releases can be downloaded from PyPi_. The documentation can be `read online`__ and is also included in the ``doc/html`` directory of the pyfuse3 tarball. Getting Help ------------ Please report any bugs on the `issue tracker`_. For discussion and questions, please use the general `FUSE mailing list`_ or `GitHub Discussions `_. Development Status ------------------ pyfuse3 is stable when used with Trio. The current maintainers ensure that bugs are addressed and pyfuse3 continues to work with new Python and libfuse versions. There is no plan to add new features or other non-bugfix work. However, pull requests for new features or other improvements may be accepted. Using pyfuse3 with asyncio (rather than Trio) support is less well tested, there may be bugs, and some of them may not be easily fixable. If you need a synchronous (non async) implementation, `mfusepy `_ is a maintained alternative. Contributing ------------ The pyfuse3 source code is available on GitHub_. .. __: https://pyfuse3.readthedocs.io/ .. _`libfuse 3`: http://github.com/libfuse/libfuse .. _FUSE mailing list: https://lists.sourceforge.net/lists/listinfo/fuse-devel .. _issue tracker: https://github.com/libfuse/pyfuse3/issues .. _mailing list archive: http://dir.gmane.org/gmane.comp.file-systems.fuse.devel .. _Gmane: http://www.gmane.org/ .. _PyPi: https://pypi.python.org/pypi/pyfuse3/ .. _GitHub: https://github.com/libfuse/pyfuse3 .. _Trio: https://github.com/python-trio/trio .. _asyncio: https://docs.python.org/3/library/asyncio.html ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686357.0 pyfuse3-3.5.0/src/pyfuse3.egg-info/SOURCES.txt0000644000175000017500000000703415201114625021143 0ustar00nikrationikratioAGENTS.md CLAUDE.md Changes.rst LICENSE README.rst pyproject.toml uv.lock .claude/settings.local.json Include/fuse_common.pxd Include/fuse_lowlevel.pxd Include/fuse_opt.pxd Include/libc_extra.pxd developer-notes/FUSEError Performance.html developer-notes/FUSEError Performance.ipynb developer-notes/Namedtuple.html developer-notes/Namedtuple.ipynb developer-notes/lookup_counts.rst developer-notes/release_process.rst developer-notes/setup.md developer-notes/valgrind.md doc/.placeholder doc/html/.buildinfo doc/html/.buildinfo.bak doc/html/about.html doc/html/asyncio.html doc/html/changes.html doc/html/data.html doc/html/example.html doc/html/fuse_api.html doc/html/general.html doc/html/genindex.html doc/html/gotchas.html doc/html/index.html doc/html/install.html doc/html/objects.inv doc/html/operations.html doc/html/py-modindex.html doc/html/search.html doc/html/searchindex.js doc/html/util.html doc/html/.doctrees/about.doctree doc/html/.doctrees/asyncio.doctree doc/html/.doctrees/changes.doctree doc/html/.doctrees/data.doctree doc/html/.doctrees/environment.pickle doc/html/.doctrees/example.doctree doc/html/.doctrees/fuse_api.doctree doc/html/.doctrees/general.doctree doc/html/.doctrees/gotchas.doctree doc/html/.doctrees/index.doctree doc/html/.doctrees/install.doctree doc/html/.doctrees/operations.doctree doc/html/.doctrees/util.doctree doc/html/.doctrees/__intersphinx_cache__/python_objects.inv doc/html/.doctrees/__intersphinx_cache__/trio_objects.inv doc/html/_sources/about.rst.txt doc/html/_sources/asyncio.rst.txt doc/html/_sources/changes.rst.txt doc/html/_sources/data.rst.txt doc/html/_sources/example.rst.txt doc/html/_sources/fuse_api.rst.txt doc/html/_sources/general.rst.txt doc/html/_sources/gotchas.rst.txt doc/html/_sources/index.rst.txt doc/html/_sources/install.rst.txt doc/html/_sources/operations.rst.txt doc/html/_sources/util.rst.txt doc/html/_static/base-stemmer.js doc/html/_static/basic.css doc/html/_static/classic.css doc/html/_static/default.css doc/html/_static/doctools.js doc/html/_static/documentation_options.js doc/html/_static/english-stemmer.js doc/html/_static/file.png doc/html/_static/language_data.js doc/html/_static/minus.png doc/html/_static/plus.png doc/html/_static/pygments.css doc/html/_static/searchtools.js doc/html/_static/sidebar.js doc/html/_static/sphinx_highlight.js examples/hello.py examples/hello_asyncio.py examples/passthroughfs.py examples/tmpfs.py rst/about.rst rst/asyncio.rst rst/changes.rst rst/conf.py rst/data.rst rst/example.rst rst/fuse_api.rst rst/general.rst rst/gotchas.rst rst/index.rst rst/install.rst rst/operations.rst rst/util.rst rst/_static/.placeholder rst/_templates/localtoc.html signify/pyfuse-3.5.pub signify/pyfuse-next.pub src/pyfuse3/__init__.c src/pyfuse3/__init__.pyi src/pyfuse3/__init__.pyx src/pyfuse3/_pyfuse3.py src/pyfuse3/asyncio.py src/pyfuse3/darwin_compat.c src/pyfuse3/darwin_compat.h src/pyfuse3/gettime.h src/pyfuse3/handlers.pxi src/pyfuse3/internal.pxi src/pyfuse3/macros.c src/pyfuse3/macros.pxd src/pyfuse3/py.typed src/pyfuse3/pyfuse3.h src/pyfuse3/xattr.h src/pyfuse3.egg-info/PKG-INFO src/pyfuse3.egg-info/SOURCES.txt src/pyfuse3.egg-info/dependency_links.txt src/pyfuse3.egg-info/requires.txt src/pyfuse3.egg-info/top_level.txt test/conftest.py test/pytest.ini test/pytest_checklogs.py test/test_api.py test/test_examples.py test/test_fs.py test/test_rounding.py test/util.py test/.pytest_cache/.gitignore test/.pytest_cache/CACHEDIR.TAG test/.pytest_cache/README.md test/.pytest_cache/v/cache/lastfailed test/.pytest_cache/v/cache/nodeids util/build_backend.py util/make_release.py././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686357.0 pyfuse3-3.5.0/src/pyfuse3.egg-info/dependency_links.txt0000644000175000017500000000000115201114625023321 0ustar00nikrationikratio ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686357.0 pyfuse3-3.5.0/src/pyfuse3.egg-info/requires.txt0000644000175000017500000000001315201114625021645 0ustar00nikrationikratiotrio>=0.15 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778686357.0 pyfuse3-3.5.0/src/pyfuse3.egg-info/top_level.txt0000644000175000017500000000001015201114625021774 0ustar00nikrationikratiopyfuse3 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0730977 pyfuse3-3.5.0/test/0000755000175000017500000000000015201114625014353 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0740976 pyfuse3-3.5.0/test/.pytest_cache/0000755000175000017500000000000015201114625017104 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767173474.0 pyfuse3-3.5.0/test/.pytest_cache/.gitignore0000644000175000017500000000004515125166542021105 0ustar00nikrationikratio# Created by pytest automatically. * ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767173474.0 pyfuse3-3.5.0/test/.pytest_cache/CACHEDIR.TAG0000644000175000017500000000027715125166542020623 0ustar00nikrationikratioSignature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by pytest. # For information about cache directory tags, see: # https://bford.info/cachedir/spec.html ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767173474.0 pyfuse3-3.5.0/test/.pytest_cache/README.md0000644000175000017500000000045615125166542020402 0ustar00nikrationikratio# pytest cache directory # This directory contains data from the pytest's cache plugin, which provides the `--lf` and `--ff` options, as well as the `cache` fixture. **Do not** commit this to version control. See [the docs](https://docs.pytest.org/en/stable/how-to/cache.html) for more information. ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1778686357.058098 pyfuse3-3.5.0/test/.pytest_cache/v/0000755000175000017500000000000015201114625017351 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0740976 pyfuse3-3.5.0/test/.pytest_cache/v/cache/0000755000175000017500000000000015201114625020414 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767552162.0 pyfuse3-3.5.0/test/.pytest_cache/v/cache/lastfailed0000644000175000017500000000000215126532242022444 0ustar00nikrationikratio{}././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767552497.0 pyfuse3-3.5.0/test/.pytest_cache/v/cache/nodeids0000644000175000017500000000130515126532761021776 0ustar00nikrationikratio[ "test_api.py::test_copy", "test_api.py::test_entry_res", "test_api.py::test_listdir", "test_api.py::test_sup_groups", "test_api.py::test_syncfs", "test_api.py::test_xattr", "test_examples.py::test_hello[hello.py]", "test_examples.py::test_hello[hello_asyncio.py]", "test_examples.py::test_passthroughfs", "test_examples.py::test_passthroughfs[False]", "test_examples.py::test_passthroughfs[True]", "test_examples.py::test_tmpfs", "test_fs.py::test_attr_timeout", "test_fs.py::test_entry_timeout", "test_fs.py::test_invalidate_entry", "test_fs.py::test_invalidate_inode", "test_fs.py::test_notify_store", "test_fs.py::test_terminate", "test_rounding.py::test_rounding" ]././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767532698.0 pyfuse3-3.5.0/test/conftest.py0000644000175000017500000000712015126464232016562 0ustar00nikrationikratioimport gc import logging import os.path import sys import time import pytest # Enable output checks pytest_plugins = 'pytest_checklogs' # Register false positives @pytest.fixture(autouse=True) def register_false_checklog_pos(reg_output): # DeprecationWarnings are unfortunately quite often a result of indirect # imports via third party modules, so we can't actually fix them. reg_output(r'(Pending)?DeprecationWarning', count=0) # Valgrind output reg_output(r'^==\d+== Memcheck, a memory error detector$') reg_output(r'^==\d+== For counts of detected and suppressed errors, rerun with: -v') reg_output(r'^==\d+== ERROR SUMMARY: 0 errors from 0 contexts') def pytest_addoption(parser): group = parser.getgroup("general") group._addoption( "--installed", action="store_true", default=False, help="Test the installed package." ) group = parser.getgroup("terminal reporting") group._addoption( "--logdebug", action="append", metavar='', help="Activate debugging output from for tests. Use `all` " "to get debug messages from all modules. This option can be " "specified multiple times.", ) # If a test fails, wait a moment before retrieving the captured # stdout/stderr. When using a server process, this makes sure that we capture # any potential output of the server that comes *after* a test has failed. For # example, if a request handler raises an exception, the server first signals an # error to FUSE (causing the test to fail), and then logs the exception. Without # the extra delay, the exception will go into nowhere. @pytest.hookimpl(hookwrapper=True) def pytest_pyfunc_call(pyfuncitem): outcome = yield failed = outcome.excinfo is not None if failed: time.sleep(1) def pytest_configure(config): # If we are running from the source directory, make sure that we load # modules from here basedir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) if not config.getoption('installed'): pyfuse3_path = os.path.join(basedir, 'src') if os.path.exists(os.path.join(basedir, 'setup.py')) and os.path.exists( os.path.join(basedir, 'src', 'pyfuse3', '__init__.pyx') ): sys.path.insert(0, pyfuse3_path) # Make sure that called processes use the same path pp = os.environ.get('PYTHONPATH', None) if pp: pp = '%s:%s' % (pyfuse3_path, pp) else: pp = pyfuse3_path os.environ['PYTHONPATH'] = pp try: import faulthandler except ImportError: pass else: faulthandler.enable() # When running from VCS repo, enable all warnings if os.path.exists(os.path.join(basedir, 'MANIFEST.in')): import warnings warnings.resetwarnings() warnings.simplefilter('default') # Configure logging. We don't set a default handler but rely on # the catchlog pytest plugin. logdebug = config.getoption('logdebug') root_logger = logging.getLogger() if logdebug is not None: logging.disable(logging.NOTSET) if 'all' in logdebug: root_logger.setLevel(logging.DEBUG) else: for module in logdebug: logging.getLogger(module).setLevel(logging.DEBUG) else: root_logger.setLevel(logging.INFO) logging.disable(logging.DEBUG) logging.captureWarnings(capture=True) # Run gc.collect() at the end of every test, so that we get ResourceWarnings # as early as possible. def pytest_runtest_teardown(item, nextitem): gc.collect() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1766924886.0 pyfuse3-3.5.0/test/pytest.ini0000644000175000017500000000012115124221126016375 0ustar00nikrationikratio[pytest] addopts = --verbose --assert=rewrite --tb=native -x markers = uses_fuse ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767545841.0 pyfuse3-3.5.0/test/pytest_checklogs.py0000644000175000017500000001004115126515761020307 0ustar00nikrationikratio#!/usr/bin/env python3 ''' pytest_checklogs.py - this file is part of S3QL. Copyright (C) 2008 Nikolaus Rath This work can be distributed under the terms of the GNU GPLv3. py.test plugin to look for suspicious phrases in messages emitted on stdout/stderr or via the logging module. False positives can be registered via a new `reg_output` fixture (for messages to stdout/stderr), and a `assert_logs` function (for logging messages). ''' import functools import logging import re from collections.abc import Generator from contextlib import contextmanager import pytest class CountMessagesHandler(logging.Handler): def __init__(self, level: int = logging.NOTSET) -> None: super().__init__(level) self.count: int = 0 def emit(self, record: logging.LogRecord) -> None: self.count += 1 @contextmanager def assert_logs( pattern: str, level: int = logging.WARNING, count: int | None = None ) -> Generator[None, None, None]: '''Assert that suite emits specified log message *pattern* is matched against the *unformatted* log message, i.e. before any arguments are merged. If *count* is not None, raise an exception unless exactly *count* matching messages are caught. Matched log records will also be flagged so that the caplog fixture does not generate exceptions for them (no matter their severity). ''' def filter(record: logging.LogRecord) -> bool: if record.levelno == level and re.search(pattern, record.msg): record.checklogs_ignore = True return True return False handler = CountMessagesHandler() handler.setLevel(level) handler.addFilter(filter) logger = logging.getLogger() logger.addHandler(handler) try: yield finally: logger.removeHandler(handler) if count is not None and handler.count != count: pytest.fail( 'Expected to catch %d %r messages, but got only %d' % (count, pattern, handler.count) ) def check_test_output(capfd, item): (stdout, stderr) = capfd.readouterr() # Strip out false positives try: false_pos = item.checklogs_fp except AttributeError: false_pos = () for pattern, flags, count in false_pos: cp = re.compile(pattern, flags) (stdout, cnt) = cp.subn('', stdout, count=count) if count == 0 or count - cnt > 0: stderr = cp.sub('', stderr, count=count - cnt) for pattern in ( 'exception', 'error', 'warning', 'fatal', 'traceback', 'fault', 'crash(?:ed)?', 'abort(?:ed)', 'fishy', ): cp = re.compile(r'\b{}\b'.format(pattern), re.IGNORECASE | re.MULTILINE) hit = cp.search(stderr) if hit: pytest.fail('Suspicious output to stderr (matched "%s")' % hit.group(0)) hit = cp.search(stdout) if hit: pytest.fail('Suspicious output to stdout (matched "%s")' % hit.group(0)) def register_output(item, pattern: str, count: int = 1, flags: int = re.MULTILINE) -> None: '''Register *pattern* as false positive for output checking This prevents the test from failing because the output otherwise appears suspicious. ''' item.checklogs_fp.append((pattern, flags, count)) @pytest.fixture() def reg_output(request): assert not hasattr(request.node, 'checklogs_fp') request.node.checklogs_fp = [] return functools.partial(register_output, request.node) # Autouse fixtures are instantiated before explicitly used fixtures, this should also # catch log messages emitted when e.g. initializing resources in other fixtures. @pytest.fixture(autouse=True) def check_output(caplog, capfd, request): yield for when in ("setup", "call", "teardown"): for record in caplog.get_records(when): if record.levelno >= logging.WARNING and not getattr(record, 'checklogs_ignore', False): pytest.fail('Logger received warning messages.') check_test_output(capfd, request.node) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767545841.0 pyfuse3-3.5.0/test/test_api.py0000755000175000017500000000533715126515761016564 0ustar00nikrationikratio#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' test_api.py - Unit tests for pyfuse3. Copyright © 2015 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' if __name__ == '__main__': import sys import pytest sys.exit(pytest.main([__file__] + sys.argv[1:])) import errno import os import tempfile from copy import copy from pickle import PicklingError import pytest import pyfuse3 from pyfuse3 import EntryAttributes, RequestContext, SetattrFields, StatvfsData def test_listdir(): # There is a race-condition here if /usr/bin is modified while the test # runs - but hopefully this is sufficiently rare. list1 = set(os.listdir('/usr/bin')) list2 = set(pyfuse3.listdir('/usr/bin')) assert list1 == list2 def test_sup_groups(): gids = pyfuse3.get_sup_groups(os.getpid()) gids2 = set(os.getgroups()) assert gids == gids2 def test_syncfs(): pyfuse3.syncfs('.') def _getxattr_helper(path, name): errno = None try: value = pyfuse3.getxattr(path, name) except OSError as exc: errno = exc.errno value = None if not hasattr(os, 'getxattr'): return value try: value2 = os.getxattr(path, name) except OSError as exc: assert exc.errno == errno else: assert value2 is not None assert value2 == value return value def test_entry_res(): a = EntryAttributes() val = 1000.2735 a.st_atime_ns = int(val * 1e9) assert a.st_atime_ns / 1e9 == val def test_xattr(): with tempfile.NamedTemporaryFile() as fh: key = 'user.new_attribute' assert _getxattr_helper(fh.name, key) is None value = b'a nice little bytestring' try: pyfuse3.setxattr(fh.name, key, value) except OSError as exc: if exc.errno == errno.ENOTSUP: pytest.skip('xattrs not supported for %s' % fh.name) raise assert _getxattr_helper(fh.name, key) == value if not hasattr(os, 'setxattr'): return key = 'user.another_new_attribute' assert _getxattr_helper(fh.name, key) is None value = b'a nice little bytestring, but slightly modified' os.setxattr(fh.name, key, value) assert _getxattr_helper(fh.name, key) == value def test_copy(): for obj in (SetattrFields(), RequestContext()): pytest.raises(PicklingError, copy, obj) for inst, attr in ((EntryAttributes(), 'st_mode'), (StatvfsData(), 'f_files')): setattr(inst, attr, 42) inst_copy = copy(inst) assert getattr(inst, attr) == getattr(inst_copy, attr) exc = pyfuse3.FUSEError(10) assert exc.errno == copy(exc).errno ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767552970.0 pyfuse3-3.5.0/test/test_examples.py0000755000175000017500000003425715126533712017630 0ustar00nikrationikratio#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' test_examples.py - Unit tests for pyfuse3. Copyright © 2015 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' if __name__ == '__main__': import sys import pytest sys.exit(pytest.main([__file__] + sys.argv[1:])) import errno import filecmp import os import shutil import stat import subprocess import sys from tempfile import NamedTemporaryFile import pytest from pyfuse3 import _NANOS_PER_SEC from util import cleanup, fuse_test_marker, umount, wait_for_mount basename = os.path.join(os.path.dirname(__file__), '..') TEST_FILE = __file__ pytestmark = fuse_test_marker() with open(TEST_FILE, 'rb') as fh: TEST_DATA = fh.read() def name_generator(__ctr=[0]): __ctr[0] += 1 return 'testfile_%d' % __ctr[0] @pytest.mark.parametrize('filename', ('hello.py', 'hello_asyncio.py')) def test_hello(tmpdir, filename): mnt_dir = str(tmpdir) cmdline = [sys.executable, os.path.join(basename, 'examples', filename), mnt_dir] mount_process = subprocess.Popen(cmdline, stdin=subprocess.DEVNULL, universal_newlines=True) try: wait_for_mount(mount_process, mnt_dir) assert os.listdir(mnt_dir) == ['message'] filename = os.path.join(mnt_dir, 'message') with open(filename, 'r') as fh: assert fh.read() == 'hello world\n' with pytest.raises(IOError) as exc_info: open(filename, 'r+') assert exc_info.value.errno == errno.EACCES with pytest.raises(IOError) as exc_info: open(filename + 'does-not-exist', 'r+') assert exc_info.value.errno == errno.ENOENT except: cleanup(mount_process, mnt_dir) raise else: umount(mount_process, mnt_dir) def test_tmpfs(tmpdir): mnt_dir = str(tmpdir) cmdline = [sys.executable, os.path.join(basename, 'examples', 'tmpfs.py'), mnt_dir] mount_process = subprocess.Popen(cmdline, stdin=subprocess.DEVNULL, universal_newlines=True) try: wait_for_mount(mount_process, mnt_dir) tst_write(mnt_dir) tst_mkdir(mnt_dir) tst_symlink(mnt_dir) tst_mknod(mnt_dir) tst_chown(mnt_dir) tst_chmod(mnt_dir) tst_utimens(mnt_dir) tst_rounding(mnt_dir) tst_link(mnt_dir) tst_rename(mnt_dir) tst_readdir(mnt_dir) tst_statvfs(mnt_dir) tst_truncate_path(mnt_dir) tst_truncate_fd(mnt_dir) tst_unlink(mnt_dir) except: cleanup(mount_process, mnt_dir) raise else: umount(mount_process, mnt_dir) @pytest.mark.parametrize('enable_writeback_cache', (True, False)) def test_passthroughfs(tmpdir, enable_writeback_cache): mnt_dir = str(tmpdir.mkdir('mnt')) src_dir = str(tmpdir.mkdir('src')) cmdline = [ sys.executable, os.path.join(basename, 'examples', 'passthroughfs.py'), src_dir, mnt_dir, ] if enable_writeback_cache: cmdline.append('--enable-writeback-cache') mount_process = subprocess.Popen(cmdline, stdin=subprocess.DEVNULL, universal_newlines=True) try: wait_for_mount(mount_process, mnt_dir) tst_write(mnt_dir) tst_mkdir(mnt_dir) tst_symlink(mnt_dir) tst_mknod(mnt_dir) if os.getuid() == 0: tst_chown(mnt_dir) tst_chmod(mnt_dir) # Underlying fs may not have full nanosecond resolution tst_utimens(mnt_dir, ns_tol=1000) tst_rounding(mnt_dir) tst_link(mnt_dir) tst_rename(mnt_dir) tst_readdir(mnt_dir) tst_statvfs(mnt_dir) tst_truncate_path(mnt_dir) tst_truncate_fd(mnt_dir) tst_unlink(mnt_dir) tst_passthrough(src_dir, mnt_dir, enable_writeback_cache=enable_writeback_cache) except: cleanup(mount_process, mnt_dir) raise else: umount(mount_process, mnt_dir) def checked_unlink(filename, path, isdir=False): fullname = os.path.join(path, filename) if isdir: os.rmdir(fullname) else: os.unlink(fullname) with pytest.raises(OSError) as exc_info: os.stat(fullname) assert exc_info.value.errno == errno.ENOENT assert filename not in os.listdir(path) def tst_mkdir(mnt_dir): dirname = name_generator() fullname = mnt_dir + "/" + dirname os.mkdir(fullname) fstat = os.stat(fullname) assert stat.S_ISDIR(fstat.st_mode) assert os.listdir(fullname) == [] assert fstat.st_nlink in (1, 2) assert dirname in os.listdir(mnt_dir) checked_unlink(dirname, mnt_dir, isdir=True) def tst_symlink(mnt_dir): linkname = name_generator() fullname = mnt_dir + "/" + linkname os.symlink("/imaginary/dest", fullname) fstat = os.lstat(fullname) assert stat.S_ISLNK(fstat.st_mode) assert os.readlink(fullname) == "/imaginary/dest" assert fstat.st_nlink == 1 assert linkname in os.listdir(mnt_dir) checked_unlink(linkname, mnt_dir) def tst_mknod(mnt_dir): filename = os.path.join(mnt_dir, name_generator()) shutil.copyfile(TEST_FILE, filename) fstat = os.lstat(filename) assert stat.S_ISREG(fstat.st_mode) assert fstat.st_nlink == 1 assert os.path.basename(filename) in os.listdir(mnt_dir) assert filecmp.cmp(TEST_FILE, filename, False) checked_unlink(filename, mnt_dir) def tst_chown(mnt_dir): filename = os.path.join(mnt_dir, name_generator()) os.mkdir(filename) fstat = os.lstat(filename) uid = fstat.st_uid gid = fstat.st_gid uid_new = uid + 1 os.chown(filename, uid_new, -1) fstat = os.lstat(filename) assert fstat.st_uid == uid_new assert fstat.st_gid == gid gid_new = gid + 1 os.chown(filename, -1, gid_new) fstat = os.lstat(filename) assert fstat.st_uid == uid_new assert fstat.st_gid == gid_new checked_unlink(filename, mnt_dir, isdir=True) def tst_chmod(mnt_dir): filename = os.path.join(mnt_dir, name_generator()) os.mkdir(filename) fstat = os.lstat(filename) mode = stat.S_IMODE(fstat.st_mode) mode_new = 0o640 assert mode != mode_new os.chmod(filename, mode_new) fstat = os.lstat(filename) assert stat.S_IMODE(fstat.st_mode) == mode_new checked_unlink(filename, mnt_dir, isdir=True) def tst_write(mnt_dir): name = os.path.join(mnt_dir, name_generator()) shutil.copyfile(TEST_FILE, name) assert filecmp.cmp(name, TEST_FILE, False) checked_unlink(name, mnt_dir) def tst_unlink(mnt_dir): name = os.path.join(mnt_dir, name_generator()) data1 = b'foo' data2 = b'bar' with open(os.path.join(mnt_dir, name), 'wb+', buffering=0) as fh: fh.write(data1) checked_unlink(name, mnt_dir) fh.write(data2) fh.seek(0) assert fh.read() == data1 + data2 def tst_statvfs(mnt_dir): os.statvfs(mnt_dir) def tst_link(mnt_dir): name1 = os.path.join(mnt_dir, name_generator()) name2 = os.path.join(mnt_dir, name_generator()) shutil.copyfile(TEST_FILE, name1) assert filecmp.cmp(name1, TEST_FILE, False) os.link(name1, name2) fstat1 = os.lstat(name1) fstat2 = os.lstat(name2) assert fstat1 == fstat2 assert fstat1.st_nlink == 2 assert os.path.basename(name2) in os.listdir(mnt_dir) assert filecmp.cmp(name1, name2, False) os.unlink(name2) fstat1 = os.lstat(name1) assert fstat1.st_nlink == 1 os.unlink(name1) def tst_rename(mnt_dir): name1 = os.path.join(mnt_dir, name_generator()) name2 = os.path.join(mnt_dir, name_generator()) shutil.copyfile(TEST_FILE, name1) assert os.path.basename(name1) in os.listdir(mnt_dir) assert os.path.basename(name2) not in os.listdir(mnt_dir) assert filecmp.cmp(name1, TEST_FILE, False) fstat1 = os.lstat(name1) os.rename(name1, name2) fstat2 = os.lstat(name2) assert fstat1 == fstat2 assert filecmp.cmp(name2, TEST_FILE, False) assert os.path.basename(name1) not in os.listdir(mnt_dir) assert os.path.basename(name2) in os.listdir(mnt_dir) os.unlink(name2) def tst_readdir(mnt_dir): dir_ = os.path.join(mnt_dir, name_generator()) file_ = dir_ + "/" + name_generator() subdir = dir_ + "/" + name_generator() subfile = subdir + "/" + name_generator() os.mkdir(dir_) shutil.copyfile(TEST_FILE, file_) os.mkdir(subdir) shutil.copyfile(TEST_FILE, subfile) listdir_is = os.listdir(dir_) listdir_is.sort() listdir_should = [os.path.basename(file_), os.path.basename(subdir)] listdir_should.sort() assert listdir_is == listdir_should os.unlink(file_) os.unlink(subfile) os.rmdir(subdir) os.rmdir(dir_) def tst_truncate_path(mnt_dir): assert len(TEST_DATA) > 1024 filename = os.path.join(mnt_dir, name_generator()) with open(filename, 'wb') as fh: fh.write(TEST_DATA) fstat = os.stat(filename) size = fstat.st_size assert size == len(TEST_DATA) # Add zeros at the end os.truncate(filename, size + 1024) assert os.stat(filename).st_size == size + 1024 with open(filename, 'rb') as fh: assert fh.read(size) == TEST_DATA assert fh.read(1025) == b'\0' * 1024 # Truncate data os.truncate(filename, size - 1024) assert os.stat(filename).st_size == size - 1024 with open(filename, 'rb') as fh: assert fh.read(size) == TEST_DATA[: size - 1024] os.unlink(filename) def tst_truncate_fd(mnt_dir): assert len(TEST_DATA) > 1024 with NamedTemporaryFile('w+b', 0, dir=mnt_dir) as fh: fd = fh.fileno() fh.write(TEST_DATA) fstat = os.fstat(fd) size = fstat.st_size assert size == len(TEST_DATA) # Add zeros at the end os.ftruncate(fd, size + 1024) assert os.fstat(fd).st_size == size + 1024 fh.seek(0) assert fh.read(size) == TEST_DATA assert fh.read(1025) == b'\0' * 1024 # Truncate data os.ftruncate(fd, size - 1024) assert os.fstat(fd).st_size == size - 1024 fh.seek(0) assert fh.read(size) == TEST_DATA[: size - 1024] def tst_utimens(mnt_dir, ns_tol=0): filename = os.path.join(mnt_dir, name_generator()) os.mkdir(filename) fstat = os.lstat(filename) atime = fstat.st_atime + 42.28 mtime = fstat.st_mtime - 42.23 atime_ns = fstat.st_atime_ns + int(42.28 * 1e9) mtime_ns = fstat.st_mtime_ns - int(42.23 * 1e9) os.utime(filename, None, ns=(atime_ns, mtime_ns)) fstat = os.lstat(filename) assert abs(fstat.st_atime - atime) < 1e-3 assert abs(fstat.st_mtime - mtime) < 1e-3 assert abs(fstat.st_atime_ns - atime_ns) <= ns_tol assert abs(fstat.st_mtime_ns - mtime_ns) <= ns_tol checked_unlink(filename, mnt_dir, isdir=True) def tst_rounding(mnt_dir, ns_tol=0): filename = os.path.join(mnt_dir, name_generator()) os.mkdir(filename) fstat = os.lstat(filename) # Approximately 67 years, ending in 999. # Note: 67 years were chosen to avoid y2038 issues (1970 + 67 = 2037). # Testing these is **not** in scope of this test. secs = 67 * 365 * 24 * 3600 + 999 # Max nanos nanos = _NANOS_PER_SEC - 1 # seconds+ns and ns_tol as a float in seconds secs_f = secs + nanos / _NANOS_PER_SEC secs_tol = ns_tol / _NANOS_PER_SEC atime_ns = secs * _NANOS_PER_SEC + nanos mtime_ns = atime_ns os.utime(filename, None, ns=(atime_ns, mtime_ns)) fstat = os.lstat(filename) assert abs(fstat.st_atime - secs_f) <= secs_tol assert abs(fstat.st_mtime - secs_f) <= secs_tol assert abs(fstat.st_atime_ns - atime_ns) <= ns_tol assert abs(fstat.st_mtime_ns - mtime_ns) <= ns_tol checked_unlink(filename, mnt_dir, isdir=True) def tst_passthrough(src_dir, mnt_dir, enable_writeback_cache: bool = False): # Test propagation from source to mirror name = name_generator() src_name = os.path.join(src_dir, name) mnt_name = os.path.join(mnt_dir, name) assert name not in os.listdir(src_dir) assert name not in os.listdir(mnt_dir) with open(src_name, 'w') as fh: fh.write('Hello, world') assert name in os.listdir(src_dir) assert name in os.listdir(mnt_dir) assert_same_stats(src_name, mnt_name, check_times=not enable_writeback_cache) # Test propagation from mirror to source name = name_generator() src_name = os.path.join(src_dir, name) mnt_name = os.path.join(mnt_dir, name) assert name not in os.listdir(src_dir) assert name not in os.listdir(mnt_dir) with open(mnt_name, 'w') as fh: fh.write('Hello, world') assert name in os.listdir(src_dir) assert name in os.listdir(mnt_dir) assert_same_stats(src_name, mnt_name, check_times=not enable_writeback_cache) # Test propagation inside subdirectory name = name_generator() src_dir = os.path.join(src_dir, 'subdir') mnt_dir = os.path.join(mnt_dir, 'subdir') os.mkdir(src_dir) src_name = os.path.join(src_dir, name) mnt_name = os.path.join(mnt_dir, name) assert name not in os.listdir(src_dir) assert name not in os.listdir(mnt_dir) with open(mnt_name, 'w') as fh: fh.write('Hello, world') assert name in os.listdir(src_dir) assert name in os.listdir(mnt_dir) assert_same_stats(src_name, mnt_name, check_times=not enable_writeback_cache) def assert_same_stats(name1, name2, check_times: bool = True): stat1 = os.stat(name1) stat2 = os.stat(name2) for name in ( 'st_atime_ns', 'st_mtime_ns', 'st_ctime_ns', 'st_mode', 'st_ino', 'st_nlink', 'st_uid', 'st_gid', 'st_size', ): v1 = getattr(stat1, name) v2 = getattr(stat2, name) # Known bug, cf. https://github.com/libfuse/pyfuse3/issues/57 if name.endswith('_ns') and os.getenv('CI') == 'true': continue # When FUSE writeback cache is enabled, the kernel maintains mtime/ctime # internally and only flushes them to the underlying filesystem on close. # Until then, the timestamps reported for the passthrough mount and the # backing directory may legitimately differ, so skip strict time checks. if name.endswith('_ns') and not check_times: continue assert v1 == v2, 'Attribute {} differs by {} ({} vs {})'.format(name, v1 - v2, v1, v2) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778672018.0 pyfuse3-3.5.0/test/test_fs.py0000755000175000017500000002622315201060622016401 0ustar00nikrationikratio#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' test_fs.py - Unit tests for pyfuse3. Copyright © 2015 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' import sys from typing import cast import pytest if __name__ == '__main__': sys.exit(pytest.main([__file__] + sys.argv[1:])) import errno import logging import multiprocessing import os import select import stat import threading import time import trio import pyfuse3 from pyfuse3 import ( EntryAttributes, FileHandleT, FileInfo, FUSEError, InodeT, PollHandle, ReaddirToken, RequestContext, ) from util import cleanup, fuse_test_marker, umount, wait_for_mount pytestmark = fuse_test_marker() def get_mp(): # We can't use forkserver because we have to make sure # that the server inherits the per-test stdout/stderr file # descriptors. if hasattr(multiprocessing, 'get_context'): mp = multiprocessing.get_context('fork') else: # Older versions only support *fork* anyway mp = multiprocessing # type: ignore[assignment] if threading.active_count() != 1: raise RuntimeError("Multi-threaded test running is not supported") return mp @pytest.fixture() def testfs(tmpdir): yield from _mount_fs(tmpdir, Fs) @pytest.fixture() def pollfs(tmpdir): yield from _mount_fs(tmpdir, PollTestFs) def _mount_fs(tmpdir, fs_class): mnt_dir = str(tmpdir) mp = get_mp() with mp.Manager() as mgr: cross_process = mgr.Namespace() mount_process = mp.Process(target=run_fs, args=(mnt_dir, cross_process, fs_class)) mount_process.start() try: wait_for_mount(mount_process, mnt_dir) yield (mnt_dir, cross_process) except: cleanup(mount_process, mnt_dir) raise else: umount(mount_process, mnt_dir) def test_invalidate_entry(testfs): (mnt_dir, fs_state) = testfs path = os.path.join(mnt_dir, 'message') os.stat(path) assert fs_state.lookup_called fs_state.lookup_called = False os.stat(path) assert not fs_state.lookup_called # Hardcoded sleeptimes - sorry! Needed because of the special semantics of # invalidate_entry() pyfuse3.setxattr(mnt_dir, 'command', b'forget_entry') time.sleep(1.1) os.stat(path) assert fs_state.lookup_called def test_invalidate_inode(testfs): (mnt_dir, fs_state) = testfs with open(os.path.join(mnt_dir, 'message'), 'r') as fh: assert fh.read() == 'hello world\n' assert fs_state.read_called fs_state.read_called = False fh.seek(0) assert fh.read() == 'hello world\n' assert not fs_state.read_called pyfuse3.setxattr(mnt_dir, 'command', b'forget_inode') fh.seek(0) assert fh.read() == 'hello world\n' assert fs_state.read_called def test_notify_store(testfs): (mnt_dir, fs_state) = testfs with open(os.path.join(mnt_dir, 'message'), 'r') as fh: pyfuse3.setxattr(mnt_dir, 'command', b'store') fs_state.read_called = False assert fh.read() == 'hello world\n' assert not fs_state.read_called def test_notify_poll(pollfs): (mnt_dir, fs_state) = pollfs path = os.path.join(mnt_dir, 'message') with open(path, 'rb', buffering=0) as fh: poller = select.poll() poller.register(fh.fileno(), select.POLLPRI) events = [] def poll_wait(): events.extend(poller.poll(5000)) thread = threading.Thread(target=poll_wait) thread.start() deadline = time.monotonic() + 5 while time.monotonic() < deadline and not fs_state.poll_handle_received: time.sleep(0.01) assert fs_state.poll_called assert fs_state.poll_handle_received assert not events pyfuse3.setxattr(path, 'command', b'poll_ready') thread.join(5) assert not thread.is_alive() assert events assert events[0][0] == fh.fileno() assert events[0][1] & select.POLLPRI def test_entry_timeout(testfs): (mnt_dir, fs_state) = testfs fs_state.entry_timeout = 1 path = os.path.join(mnt_dir, 'message') os.stat(path) assert fs_state.lookup_called fs_state.lookup_called = False os.stat(path) assert not fs_state.lookup_called time.sleep(fs_state.entry_timeout * 1.1) fs_state.lookup_called = False os.stat(path) assert fs_state.lookup_called def test_attr_timeout(testfs): (mnt_dir, fs_state) = testfs fs_state.attr_timeout = 1 with open(os.path.join(mnt_dir, 'message'), 'r') as fh: os.fstat(fh.fileno()) assert fs_state.getattr_called fs_state.getattr_called = False os.fstat(fh.fileno()) assert not fs_state.getattr_called time.sleep(fs_state.attr_timeout * 1.1) fs_state.getattr_called = False os.fstat(fh.fileno()) assert fs_state.getattr_called def test_terminate(tmpdir): mnt_dir = str(tmpdir) mp = get_mp() with mp.Manager() as mgr: fs_state = mgr.Namespace() mount_process = mp.Process(target=run_fs, args=(mnt_dir, fs_state)) mount_process.start() try: wait_for_mount(mount_process, mnt_dir) pyfuse3.setxattr(mnt_dir, 'command', b'terminate') mount_process.join(5) assert mount_process.exitcode is not None except: cleanup(mount_process, mnt_dir) raise class Fs(pyfuse3.Operations): def __init__(self, cross_process): super(Fs, self).__init__() self.hello_name = b"message" self.hello_inode = pyfuse3.ROOT_INODE + 1 self.hello_data = b"hello world\n" self.status = cross_process self.lookup_cnt = 0 self.status.getattr_called = False self.status.lookup_called = False self.status.read_called = False self.status.entry_timeout = 99999 self.status.attr_timeout = 99999 async def getattr(self, inode: InodeT, ctx: RequestContext | None = None) -> EntryAttributes: entry = EntryAttributes() if inode == pyfuse3.ROOT_INODE: entry.st_mode = stat.S_IFDIR | 0o755 entry.st_size = 0 elif inode == self.hello_inode: entry.st_mode = stat.S_IFREG | 0o644 entry.st_size = len(self.hello_data) else: raise pyfuse3.FUSEError(errno.ENOENT) stamp = int(1438467123.985654 * 1e9) entry.st_atime_ns = stamp entry.st_ctime_ns = stamp entry.st_mtime_ns = stamp entry.st_gid = os.getgid() entry.st_uid = os.getuid() entry.st_ino = inode entry.entry_timeout = self.status.entry_timeout entry.attr_timeout = self.status.attr_timeout self.status.getattr_called = True return entry async def forget(self, inode_list): for inode, cnt in inode_list: if inode == self.hello_inode: self.lookup_cnt -= 1 assert self.lookup_cnt >= 0 else: assert inode == pyfuse3.ROOT_INODE async def lookup( self, parent_inode: InodeT, name: bytes, ctx: RequestContext ) -> EntryAttributes: if parent_inode != pyfuse3.ROOT_INODE or name != self.hello_name: raise pyfuse3.FUSEError(errno.ENOENT) self.lookup_cnt += 1 self.status.lookup_called = True return await self.getattr(self.hello_inode, ctx) async def opendir(self, inode, ctx): if inode != pyfuse3.ROOT_INODE: raise pyfuse3.FUSEError(errno.ENOENT) # For simplicity, we use the inode as file handle return FileHandleT(inode) async def readdir(self, fh: FileHandleT, start_id: int, token: ReaddirToken) -> None: assert fh == pyfuse3.ROOT_INODE if start_id == 0: pyfuse3.readdir_reply(token, self.hello_name, await self.getattr(self.hello_inode), 1) return async def open(self, inode, flags, ctx): if inode != self.hello_inode: raise pyfuse3.FUSEError(errno.ENOENT) if flags & os.O_RDWR or flags & os.O_WRONLY: raise pyfuse3.FUSEError(errno.EACCES) # For simplicity, we use the inode as file handle return FileInfo(fh=FileHandleT(inode)) async def read(self, fh, off, size): assert fh == self.hello_inode self.status.read_called = True return self.hello_data[off : off + size] async def setxattr(self, inode, name, value, ctx): if inode != pyfuse3.ROOT_INODE or name != b'command': raise FUSEError(errno.ENOTSUP) if value == b'forget_entry': pyfuse3.invalidate_entry_async(pyfuse3.ROOT_INODE, self.hello_name) # Make sure that the request is pending before we return await trio.sleep(0.1) elif value == b'forget_inode': pyfuse3.invalidate_inode(self.hello_inode) elif value == b'store': pyfuse3.notify_store(self.hello_inode, offset=0, data=self.hello_data) elif value == b'terminate': pyfuse3.terminate() else: raise FUSEError(errno.EINVAL) class PollTestFs(Fs): def __init__(self, cross_process): super().__init__(cross_process) self.poll_handle: PollHandle | None = None self.status.poll_called = False self.status.poll_handle_received = False self.status.poll_ready = False async def poll( self, inode: InodeT, fh: FileHandleT, poll_handle: PollHandle | None, ctx: RequestContext, ) -> int: assert inode == self.hello_inode assert fh == self.hello_inode self.status.poll_called = True if poll_handle is not None: self.poll_handle = poll_handle self.status.poll_handle_received = True if self.status.poll_ready: return select.POLLPRI return 0 async def setxattr(self, inode, name, value, ctx): if value != b"poll_ready": return await super().setxattr(inode, name, value, ctx) if inode != self.hello_inode or name != b"command": raise FUSEError(errno.ENOTSUP) self.status.poll_ready = True if self.poll_handle is None: raise FUSEError(errno.EINVAL) self.poll_handle.notify() self.poll_handle = None def run_fs(mountpoint, cross_process, fs_class=Fs): # Logging (note that we run in a new process, so we can't # rely on direct log capture and instead print to stdout) root_logger = logging.getLogger() formatter = logging.Formatter( '%(asctime)s.%(msecs)03d %(levelname)s %(funcName)s(%(threadName)s): %(message)s', datefmt="%M:%S", ) handler = logging.StreamHandler(sys.stdout) handler.setLevel(logging.DEBUG) handler.setFormatter(formatter) root_logger.addHandler(handler) root_logger.setLevel(logging.DEBUG) testfs = fs_class(cross_process) fuse_options = set(pyfuse3.default_options) fuse_options.add('fsname=pyfuse3_testfs') pyfuse3.init(testfs, mountpoint, fuse_options) try: trio.run(pyfuse3.main) finally: pyfuse3.close() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767545841.0 pyfuse3-3.5.0/test/test_rounding.py0000755000175000017500000000233215126515761017630 0ustar00nikrationikratio#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' test_rounding.py - Unit tests for pyfuse3. Copyright © 2020 Philip Warner This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' if __name__ == '__main__': import sys import pytest sys.exit(pytest.main([__file__] + sys.argv[1:])) from pyfuse3 import _NANOS_PER_SEC, EntryAttributes def test_rounding(): # Incorrect division previously resulted in rounding errors for # all dates. entry = EntryAttributes() # Approximately 67 years, ending in 999. # Note: 67 years were chosen to avoid y2038 issues (1970 + 67 = 2037). # Testing these is **not** in scope of this test. secs = 67 * 365 * 24 * 3600 + 999 nanos = _NANOS_PER_SEC - 1 total = secs * _NANOS_PER_SEC + nanos entry.st_atime_ns = total entry.st_ctime_ns = total entry.st_mtime_ns = total # Birthtime skipped -- only valid under BSD and OSX # entry.st_birthtime_ns = total assert entry.st_atime_ns == total assert entry.st_ctime_ns == total assert entry.st_mtime_ns == total # Birthtime skipped -- only valid under BSD and OSX # assert entry.st_birthtime_ns == total ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1768074289.0 pyfuse3-3.5.0/test/util.py0000644000175000017500000001066115130526061015710 0ustar00nikrationikratio#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' util.py - Utility functions for pyfuse3 unit tests. Copyright © 2015 Nikolaus Rath This file is part of pyfuse3. This work may be distributed under the terms of the GNU LGPL. ''' import multiprocessing import os import platform import shutil import stat import subprocess import time from collections.abc import Callable from multiprocessing.context import ForkProcess from typing import TypeVar import pytest Process = subprocess.Popen | multiprocessing.Process | ForkProcess def fuse_test_marker(): '''Return a pytest.marker that indicates FUSE availability If system/user/environment does not support FUSE, return a `pytest.mark.skip` object with more details. If FUSE is supported, return `pytest.mark.uses_fuse()`. ''' if platform.system() == 'Darwin': # No working autodetection, just assume it will work. return skip = lambda x: pytest.mark.skip(reason=x) fusermount_path = shutil.which('fusermount') if fusermount_path is None: return skip("Can't find fusermount executable") if not os.path.exists('/dev/fuse'): return skip("FUSE kernel module does not seem to be loaded") if os.getuid() == 0: return pytest.mark.uses_fuse() mode = os.stat(fusermount_path).st_mode if mode & stat.S_ISUID == 0: return skip('fusermount executable not setuid, and we are not root.') try: fd = os.open('/dev/fuse', os.O_RDWR) except OSError as exc: return skip('Unable to open /dev/fuse: %s' % exc.strerror) else: os.close(fd) return pytest.mark.uses_fuse() def exitcode(process: Process) -> int | None: if isinstance(process, subprocess.Popen): return process.poll() else: if process.is_alive(): return None else: return process.exitcode T = TypeVar('T') def wait_for(callable: Callable[[], T], timeout: float = 10, interval: float = 0.1) -> T | None: '''Wait until *callable* returns something True and return it If *timeout* expires, return None ''' waited = 0.0 while True: ret = callable() if ret: return ret if waited > timeout: return None waited += interval time.sleep(interval) def wait_for_mount(mount_process: Process, mnt_dir: str) -> bool: elapsed = 0.0 while elapsed < 30: if os.path.ismount(mnt_dir): return True if exitcode(mount_process) is not None: pytest.fail('file system process terminated prematurely') time.sleep(0.1) elapsed += 0.1 pytest.fail("mountpoint failed to come up") def cleanup(mount_process: Process, mnt_dir: str) -> None: if platform.system() == 'Darwin': subprocess.call( ['umount', '-l', mnt_dir], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT ) else: subprocess.call( ['fusermount', '-z', '-u', mnt_dir], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT ) mount_process.terminate() if isinstance(mount_process, subprocess.Popen): try: mount_process.wait(1) except subprocess.TimeoutExpired: mount_process.kill() else: mount_process.join(5) if mount_process.exitcode is None: mount_process.kill() def umount(mount_process: Process, mnt_dir: str) -> None: if platform.system() == 'Darwin': subprocess.check_call(['umount', '-l', mnt_dir]) else: subprocess.check_call(['fusermount', '-z', '-u', mnt_dir]) assert not os.path.ismount(mnt_dir) if isinstance(mount_process, subprocess.Popen): try: code = mount_process.wait(5) if code == 0: return pytest.fail('file system process terminated with code %s' % (code,)) except subprocess.TimeoutExpired: mount_process.terminate() try: mount_process.wait(1) except subprocess.TimeoutExpired: mount_process.kill() else: mount_process.join(5) if mount_process.exitcode == 0: return elif mount_process.exitcode is None: mount_process.terminate() mount_process.join(1) else: pytest.fail('file system process terminated with code %s' % (mount_process.exitcode,)) pytest.fail('mount process did not terminate') ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1778686357.0740976 pyfuse3-3.5.0/util/0000755000175000017500000000000015201114625014351 5ustar00nikrationikratio././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1767532698.0 pyfuse3-3.5.0/util/build_backend.py0000644000175000017500000001133115126464232017500 0ustar00nikrationikratio""" Custom build backend for pyfuse3. This wraps setuptools.build_meta and dynamically configures the Cython extension based on pkg-config output and platform detection. """ import os import subprocess from setuptools import Extension from setuptools.build_meta import * # noqa: F403 def pkg_config(pkg, cflags=True, ldflags=False, min_ver=None): """Frontend to pkg-config""" if min_ver: cmd = ['pkg-config', pkg, '--atleast-version', min_ver] if subprocess.call(cmd) != 0: cmd = ['pkg-config', '--modversion', pkg] proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) version = proc.communicate()[0].strip() if not version: raise SystemExit(2) # pkg-config generates error message already else: raise SystemExit( '%s version too old (found: %s, required: %s)' % (pkg, version, min_ver) ) cmd = ['pkg-config', pkg] if cflags: cmd.append('--cflags') if ldflags: cmd.append('--libs') proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) cflags = proc.stdout.readline().rstrip() proc.stdout.close() if proc.wait() != 0: raise SystemExit(2) # pkg-config generates error message already return cflags.decode('us-ascii').split() def get_extension_modules(): """Build the Cython extension with platform-specific configuration.""" # Get fuse3 flags from pkg-config compile_args = pkg_config('fuse3', cflags=True, ldflags=False, min_ver='3.2.0') compile_args += [ '-DFUSE_USE_VERSION=32', '-Wall', '-Wextra', '-Wconversion', '-Wsign-compare', '-Wno-unused-function', '-Wno-implicit-fallthrough', '-Wno-unused-parameter', ] link_args = pkg_config('fuse3', cflags=False, ldflags=True, min_ver='3.2.0') link_args.append('-lpthread') # Determine source files based on platform c_sources = ['src/pyfuse3/__init__.pyx'] if os.uname()[0] in ('Linux', 'GNU/kFreeBSD'): link_args.append('-lrt') elif os.uname()[0] == 'Darwin': c_sources.append('src/pyfuse3/darwin_compat.c') return [ Extension( 'pyfuse3.__init__', c_sources, extra_compile_args=compile_args, extra_link_args=link_args, include_dirs=['Include'], ) ] # Override get_requires_for_build_wheel to ensure we have pkg-config available def get_requires_for_build_wheel(config_settings=None): """Return build requirements.""" from setuptools.build_meta import get_requires_for_build_wheel as orig return orig(config_settings) # Hook into the build process _orig_build_wheel = build_wheel # noqa: F405 _orig_build_editable = build_editable if 'build_editable' in dir() else None # noqa: F405 _orig_build_sdist = build_sdist # noqa: F405 def build_wheel(wheel_directory, config_settings=None, metadata_directory=None): """Build wheel with dynamic extension configuration.""" # Inject our extension modules into the distribution from setuptools import Distribution # Monkey-patch Distribution to include our extensions orig_init = Distribution.__init__ def patched_init(self, attrs=None): if attrs is None: attrs = {} # Add our dynamically configured extension modules if 'ext_modules' not in attrs: attrs['ext_modules'] = get_extension_modules() orig_init(self, attrs) Distribution.__init__ = patched_init try: return _orig_build_wheel(wheel_directory, config_settings, metadata_directory) finally: Distribution.__init__ = orig_init def build_editable(wheel_directory, config_settings=None, metadata_directory=None): """Build editable wheel with dynamic extension configuration.""" if _orig_build_editable is None: raise NotImplementedError("build_editable not available") from setuptools import Distribution # Monkey-patch Distribution to include our extensions orig_init = Distribution.__init__ def patched_init(self, attrs=None): if attrs is None: attrs = {} # Add our dynamically configured extension modules if 'ext_modules' not in attrs: attrs['ext_modules'] = get_extension_modules() orig_init(self, attrs) Distribution.__init__ = patched_init try: return _orig_build_editable(wheel_directory, config_settings, metadata_directory) finally: Distribution.__init__ = orig_init def build_sdist(sdist_directory, config_settings=None): """Build source distribution.""" # For sdist, we don't need to configure extensions return _orig_build_sdist(sdist_directory, config_settings) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778684583.0 pyfuse3-3.5.0/util/make_release.py0000755000175000017500000001416615201111247017350 0ustar00nikrationikratio#!/usr/bin/env python3 """Automate the mechanical steps of a pyfuse3 release. Reads the version of the new release from the topmost version heading in `Changes.rst`. Then, in order: optionally rotates signify keys for a new minor/major release, commits and tags the release, builds the docs and sdist, signs the tarball, and writes a ready-to-send announcement to `dist/announcement-.txt`. """ import os import re import shutil import subprocess import sys from pathlib import Path ROOT = Path(__file__).resolve().parent.parent CHANGES = ROOT / 'Changes.rst' SIGNIFY_DIR = ROOT / 'signify' VERSION_HEADING_RE = re.compile( r'^(?:pyfuse|Release)\s+(\d+\.\d+\.\d+)\s+\([0-9]{4}-[0-9]{2}-[0-9]{2}\)\s*$' ) ANNOUNCEMENT_TEMPLATE = """\ Dear all, I'm happy to announce a new release of pyfuse3, version {new_ver}. pyfuse3 is a set of Python 3 bindings for libfuse 3. It provides an asynchronous API compatible with Trio and asyncio, and enables you to easily write a full-featured Linux filesystem in Python. From the changelog: {changelog} The following people have contributed code to this release: {contributors} As usual, the newest release can be downloaded from PyPi at https://pypi.python.org/pypi/pyfuse3/. Please report any bugs on the issue tracker at https://github.com/libfuse/pyfuse3/issues. For discussion and questions, please use the general FUSE mailing list (i.e., this list) or the GitHub discussion forum at https://github.com/libfuse/pyfuse3/discussions. """ def run(cmd: list[str]) -> subprocess.CompletedProcess[str]: """Run *cmd*, echoing it first. Raises on non-zero exit.""" print('+', ' '.join(cmd), flush=True) return subprocess.run(cmd, check=True, text=True) def capture(cmd: list[str]) -> str: print('+', ' '.join(cmd), flush=True) return subprocess.run(cmd, check=True, text=True, capture_output=True).stdout def parse_changes() -> tuple[str, str]: """Return *(new_ver, changelog_body)* parsed from `Changes.rst`.""" lines = CHANGES.read_text().splitlines() new_ver: str | None = None body_start: int | None = None body_end: int = len(lines) for i, line in enumerate(lines): # An RST section heading is two consecutive lines: title, then an # underline made of the same character. if i + 1 >= len(lines): continue underline = lines[i + 1] if not underline or set(underline) - {'=', '-'} or len(underline) < len(line): continue m = VERSION_HEADING_RE.match(line) if not m: continue if new_ver is None: new_ver = m.group(1) body_start = i + 2 else: body_end = i break if new_ver is None or body_start is None: sys.exit( "error: no 'pyfuse X.Y.Z (YYYY-MM-DD)' heading found in Changes.rst — " 'edit the "Unreleased Changes" section to a real release heading first.' ) body = '\n'.join(lines[body_start:body_end]).rstrip() return new_ver, body def signing_keys_dir() -> Path: val = os.environ.get('PYFUSE_SIGNING_KEYS_DIR') if not val: sys.exit('error: $PYFUSE_SIGNING_KEYS_DIR is not set.') p = Path(val) if not p.is_dir(): sys.exit(f'error: $PYFUSE_SIGNING_KEYS_DIR={val!r} is not a directory.') return p def rotate_keys(major_rev: str, prev_major_rev: str, keys_dir: Path) -> None: print(f'Rotating signify keys for new major revision {major_rev} (was {prev_major_rev}).') next_pub = SIGNIFY_DIR / 'pyfuse-next.pub' next_sec = keys_dir / 'pyfuse-next.sec' new_pub = SIGNIFY_DIR / f'pyfuse-{major_rev}.pub' new_sec = keys_dir / f'pyfuse-{major_rev}.sec' if not next_pub.exists(): sys.exit(f'error: expected {next_pub} to exist for key rotation.') if not next_sec.exists(): sys.exit(f'error: expected {next_sec} to exist for key rotation.') next_pub.rename(new_pub) next_sec.rename(new_sec) run( [ 'signify', '-G', '-n', '-p', str(next_pub), '-s', str(next_sec), ] ) prev_pub = SIGNIFY_DIR / f'pyfuse-{prev_major_rev}.pub' if prev_pub.exists(): print(f'Removing obsolete public key {prev_pub}.') prev_pub.unlink() def contributor_list(prev_tag: str, new_tag: str) -> str: raw = capture(['git', 'log', '--pretty=format:%an <%aE>', f'{prev_tag}..{new_tag}']) seen = sorted({ln.strip() for ln in raw.splitlines() if ln.strip()}) return '\n'.join(seen) if seen else '(none)' def main() -> None: os.chdir(ROOT) for tool in ('git', 'signify', 'uv'): if shutil.which(tool) is None: sys.exit(f'error: required tool not found in $PATH: {tool}') new_ver, changelog = parse_changes() major_rev = new_ver.rsplit('.', 1)[0] new_tag = f'v{new_ver}' print(f'Releasing pyfuse3 {new_ver} (major revision {major_rev}).') prev_tag = capture(['git', 'describe', '--tags', '--abbrev=0', '--match', 'v*']).strip() prev_ver = prev_tag.removeprefix('v') prev_major_rev = prev_ver.rsplit('.', 1)[0] if major_rev != prev_major_rev: rotate_keys(major_rev, prev_major_rev, signing_keys_dir()) else: print(f'Bugfix release on {major_rev}; no key rotation needed.') run(['git', 'commit', '--all', '-m', f'Released {new_ver}']) run(['git', 'tag', new_tag]) run(['uv', 'sync', '--locked']) run(['uv', 'run', 'sphinx-build', '-W', '-b', 'html', 'rst', 'doc/html']) run(['uv', 'build', '--sdist']) tarball = ROOT / 'dist' / f'pyfuse3-{new_ver}.tar.gz' if not tarball.exists(): sys.exit(f'error: expected {tarball} to exist after `uv build`.') sec_key = signing_keys_dir() / f'pyfuse-{major_rev}.sec' run(['signify', '-S', '-s', str(sec_key), '-m', str(tarball)]) announcement = ANNOUNCEMENT_TEMPLATE.format( new_ver=new_ver, changelog=changelog, contributors=contributor_list(prev_tag, new_tag), ) print() print(f'Release {new_ver} prepared. Remaining manual steps:') print() print('--- announcement ---') print(announcement) if __name__ == '__main__': main() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1778335858.0 pyfuse3-3.5.0/uv.lock0000644000175000017500000055436515177640162014736 0ustar00nikrationikratioversion = 1 revision = 3 requires-python = ">=3.10" resolution-markers = [ "python_full_version >= '3.11'", "python_full_version < '3.11'", ] [[package]] name = "alabaster" version = "1.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/a6/f8/d9c74d0daf3f742840fd818d69cfae176fa332022fd44e3469487d5a9420/alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e", size = 24210, upload-time = "2024-07-26T18:15:03.762Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b", size = 13929, upload-time = "2024-07-26T18:15:02.05Z" }, ] [[package]] name = "attrs" version = "25.4.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, ] [[package]] name = "babel" version = "2.17.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", size = 9951852, upload-time = "2025-02-01T15:17:41.026Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537, upload-time = "2025-02-01T15:17:37.39Z" }, ] [[package]] name = "backports-tarfile" version = "1.2.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/86/72/cd9b395f25e290e633655a100af28cb253e4393396264a98bd5f5951d50f/backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991", size = 86406, upload-time = "2024-05-28T17:01:54.731Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b9/fa/123043af240e49752f1c4bd24da5053b6bd00cad78c2be53c0d1e8b975bc/backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34", size = 30181, upload-time = "2024-05-28T17:01:53.112Z" }, ] [[package]] name = "certifi" version = "2025.11.12" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/a2/8c/58f469717fa48465e4a50c014a0400602d3c437d7c0c468e17ada824da3a/certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316", size = 160538, upload-time = "2025-11-12T02:54:51.517Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438, upload-time = "2025-11-12T02:54:49.735Z" }, ] [[package]] name = "cffi" version = "2.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pycparser", marker = "implementation_name != 'PyPy'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/50/bd/b1a6362b80628111e6653c961f987faa55262b4002fcec42308cad1db680/cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c", size = 208811, upload-time = "2025-09-08T23:22:12.267Z" }, { url = "https://files.pythonhosted.org/packages/4f/27/6933a8b2562d7bd1fb595074cf99cc81fc3789f6a6c05cdabb46284a3188/cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb", size = 216402, upload-time = "2025-09-08T23:22:13.455Z" }, { url = "https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453", size = 216475, upload-time = "2025-09-08T23:22:17.427Z" }, { url = "https://files.pythonhosted.org/packages/21/7a/13b24e70d2f90a322f2900c5d8e1f14fa7e2a6b3332b7309ba7b2ba51a5a/cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495", size = 218829, upload-time = "2025-09-08T23:22:19.069Z" }, { url = "https://files.pythonhosted.org/packages/60/99/c9dc110974c59cc981b1f5b66e1d8af8af764e00f0293266824d9c4254bc/cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5", size = 211211, upload-time = "2025-09-08T23:22:20.588Z" }, { url = "https://files.pythonhosted.org/packages/49/72/ff2d12dbf21aca1b32a40ed792ee6b40f6dc3a9cf1644bd7ef6e95e0ac5e/cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb", size = 218036, upload-time = "2025-09-08T23:22:22.143Z" }, { url = "https://files.pythonhosted.org/packages/e2/cc/027d7fb82e58c48ea717149b03bcadcbdc293553edb283af792bd4bcbb3f/cffi-2.0.0-cp310-cp310-win32.whl", hash = "sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a", size = 172184, upload-time = "2025-09-08T23:22:23.328Z" }, { url = "https://files.pythonhosted.org/packages/33/fa/072dd15ae27fbb4e06b437eb6e944e75b068deb09e2a2826039e49ee2045/cffi-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739", size = 182790, upload-time = "2025-09-08T23:22:24.752Z" }, { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613, upload-time = "2025-09-08T23:22:29.475Z" }, { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476, upload-time = "2025-09-08T23:22:31.063Z" }, { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574, upload-time = "2025-09-08T23:22:35.443Z" }, { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971, upload-time = "2025-09-08T23:22:36.805Z" }, { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972, upload-time = "2025-09-08T23:22:38.436Z" }, { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078, upload-time = "2025-09-08T23:22:39.776Z" }, { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076, upload-time = "2025-09-08T23:22:40.95Z" }, { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820, upload-time = "2025-09-08T23:22:42.463Z" }, { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635, upload-time = "2025-09-08T23:22:43.623Z" }, { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, ] [[package]] name = "charset-normalizer" version = "3.4.4" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/1f/b8/6d51fc1d52cbd52cd4ccedd5b5b2f0f6a11bbf6765c782298b0f3e808541/charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", size = 209709, upload-time = "2025-10-14T04:40:11.385Z" }, { url = "https://files.pythonhosted.org/packages/5c/af/1f9d7f7faafe2ddfb6f72a2e07a548a629c61ad510fe60f9630309908fef/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", size = 148814, upload-time = "2025-10-14T04:40:13.135Z" }, { url = "https://files.pythonhosted.org/packages/79/3d/f2e3ac2bbc056ca0c204298ea4e3d9db9b4afe437812638759db2c976b5f/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", size = 144467, upload-time = "2025-10-14T04:40:14.728Z" }, { url = "https://files.pythonhosted.org/packages/ec/85/1bf997003815e60d57de7bd972c57dc6950446a3e4ccac43bc3070721856/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", size = 162280, upload-time = "2025-10-14T04:40:16.14Z" }, { url = "https://files.pythonhosted.org/packages/3e/8e/6aa1952f56b192f54921c436b87f2aaf7c7a7c3d0d1a765547d64fd83c13/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", size = 159454, upload-time = "2025-10-14T04:40:17.567Z" }, { url = "https://files.pythonhosted.org/packages/36/3b/60cbd1f8e93aa25d1c669c649b7a655b0b5fb4c571858910ea9332678558/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", size = 153609, upload-time = "2025-10-14T04:40:19.08Z" }, { url = "https://files.pythonhosted.org/packages/64/91/6a13396948b8fd3c4b4fd5bc74d045f5637d78c9675585e8e9fbe5636554/charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", size = 151849, upload-time = "2025-10-14T04:40:20.607Z" }, { url = "https://files.pythonhosted.org/packages/b7/7a/59482e28b9981d105691e968c544cc0df3b7d6133152fb3dcdc8f135da7a/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", size = 151586, upload-time = "2025-10-14T04:40:21.719Z" }, { url = "https://files.pythonhosted.org/packages/92/59/f64ef6a1c4bdd2baf892b04cd78792ed8684fbc48d4c2afe467d96b4df57/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", size = 145290, upload-time = "2025-10-14T04:40:23.069Z" }, { url = "https://files.pythonhosted.org/packages/6b/63/3bf9f279ddfa641ffa1962b0db6a57a9c294361cc2f5fcac997049a00e9c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", size = 163663, upload-time = "2025-10-14T04:40:24.17Z" }, { url = "https://files.pythonhosted.org/packages/ed/09/c9e38fc8fa9e0849b172b581fd9803bdf6e694041127933934184e19f8c3/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", size = 151964, upload-time = "2025-10-14T04:40:25.368Z" }, { url = "https://files.pythonhosted.org/packages/d2/d1/d28b747e512d0da79d8b6a1ac18b7ab2ecfd81b2944c4c710e166d8dd09c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", size = 161064, upload-time = "2025-10-14T04:40:26.806Z" }, { url = "https://files.pythonhosted.org/packages/bb/9a/31d62b611d901c3b9e5500c36aab0ff5eb442043fb3a1c254200d3d397d9/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", size = 155015, upload-time = "2025-10-14T04:40:28.284Z" }, { url = "https://files.pythonhosted.org/packages/1f/f3/107e008fa2bff0c8b9319584174418e5e5285fef32f79d8ee6a430d0039c/charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", size = 99792, upload-time = "2025-10-14T04:40:29.613Z" }, { url = "https://files.pythonhosted.org/packages/eb/66/e396e8a408843337d7315bab30dbf106c38966f1819f123257f5520f8a96/charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", size = 107198, upload-time = "2025-10-14T04:40:30.644Z" }, { url = "https://files.pythonhosted.org/packages/b5/58/01b4f815bf0312704c267f2ccb6e5d42bcc7752340cd487bc9f8c3710597/charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", size = 100262, upload-time = "2025-10-14T04:40:32.108Z" }, { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988, upload-time = "2025-10-14T04:40:33.79Z" }, { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324, upload-time = "2025-10-14T04:40:34.961Z" }, { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742, upload-time = "2025-10-14T04:40:36.105Z" }, { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863, upload-time = "2025-10-14T04:40:37.188Z" }, { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837, upload-time = "2025-10-14T04:40:38.435Z" }, { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550, upload-time = "2025-10-14T04:40:40.053Z" }, { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162, upload-time = "2025-10-14T04:40:41.163Z" }, { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019, upload-time = "2025-10-14T04:40:42.276Z" }, { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310, upload-time = "2025-10-14T04:40:43.439Z" }, { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022, upload-time = "2025-10-14T04:40:44.547Z" }, { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383, upload-time = "2025-10-14T04:40:46.018Z" }, { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098, upload-time = "2025-10-14T04:40:47.081Z" }, { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991, upload-time = "2025-10-14T04:40:48.246Z" }, { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload-time = "2025-10-14T04:40:49.376Z" }, { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload-time = "2025-10-14T04:40:50.844Z" }, { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload-time = "2025-10-14T04:40:52.272Z" }, { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] [[package]] name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] [[package]] name = "cryptography" version = "46.0.7" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/47/93/ac8f3d5ff04d54bc814e961a43ae5b0b146154c89c61b47bb07557679b18/cryptography-46.0.7.tar.gz", hash = "sha256:e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5", size = 750652, upload-time = "2026-04-08T01:57:54.692Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/5f/45/6d80dc379b0bbc1f9d1e429f42e4cb9e1d319c7a8201beffd967c516ea01/cryptography-46.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b36a4695e29fe69215d75960b22577197aca3f7a25b9cf9d165dcfe9d80bc325", size = 4275492, upload-time = "2026-04-08T01:56:19.36Z" }, { url = "https://files.pythonhosted.org/packages/4a/9a/1765afe9f572e239c3469f2cb429f3ba7b31878c893b246b4b2994ffe2fe/cryptography-46.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308", size = 4426670, upload-time = "2026-04-08T01:56:21.415Z" }, { url = "https://files.pythonhosted.org/packages/8f/3e/af9246aaf23cd4ee060699adab1e47ced3f5f7e7a8ffdd339f817b446462/cryptography-46.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:73510b83623e080a2c35c62c15298096e2a5dc8d51c3b4e1740211839d0dea77", size = 4280275, upload-time = "2026-04-08T01:56:23.539Z" }, { url = "https://files.pythonhosted.org/packages/2d/cf/054b9d8220f81509939599c8bdbc0c408dbd2bdd41688616a20731371fe0/cryptography-46.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef", size = 4459985, upload-time = "2026-04-08T01:56:27.309Z" }, { url = "https://files.pythonhosted.org/packages/f9/46/4e4e9c6040fb01c7467d47217d2f882daddeb8828f7df800cb806d8a2288/cryptography-46.0.7-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:24402210aa54baae71d99441d15bb5a1919c195398a87b563df84468160a65de", size = 3990652, upload-time = "2026-04-08T01:56:29.095Z" }, { url = "https://files.pythonhosted.org/packages/36/5f/313586c3be5a2fbe87e4c9a254207b860155a8e1f3cca99f9910008e7d08/cryptography-46.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8a469028a86f12eb7d2fe97162d0634026d92a21f3ae0ac87ed1c4a447886c83", size = 4279805, upload-time = "2026-04-08T01:56:30.928Z" }, { url = "https://files.pythonhosted.org/packages/c7/0b/333ddab4270c4f5b972f980adef4faa66951a4aaf646ca067af597f15563/cryptography-46.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b", size = 4459756, upload-time = "2026-04-08T01:56:34.306Z" }, { url = "https://files.pythonhosted.org/packages/d2/14/633913398b43b75f1234834170947957c6b623d1701ffc7a9600da907e89/cryptography-46.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:91bbcb08347344f810cbe49065914fe048949648f6bd5c2519f34619142bbe85", size = 4410244, upload-time = "2026-04-08T01:56:35.977Z" }, { url = "https://files.pythonhosted.org/packages/10/f2/19ceb3b3dc14009373432af0c13f46aa08e3ce334ec6eff13492e1812ccd/cryptography-46.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5d1c02a14ceb9148cc7816249f64f623fbfee39e8c03b3650d842ad3f34d637e", size = 4674868, upload-time = "2026-04-08T01:56:38.034Z" }, { url = "https://files.pythonhosted.org/packages/74/66/e3ce040721b0b5599e175ba91ab08884c75928fbeb74597dd10ef13505d2/cryptography-46.0.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:db0f493b9181c7820c8134437eb8b0b4792085d37dbb24da050476ccb664e59c", size = 4268551, upload-time = "2026-04-08T01:56:46.071Z" }, { url = "https://files.pythonhosted.org/packages/03/11/5e395f961d6868269835dee1bafec6a1ac176505a167f68b7d8818431068/cryptography-46.0.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ebd6daf519b9f189f85c479427bbd6e9c9037862cf8fe89ee35503bd209ed902", size = 4408887, upload-time = "2026-04-08T01:56:47.718Z" }, { url = "https://files.pythonhosted.org/packages/40/53/8ed1cf4c3b9c8e611e7122fb56f1c32d09e1fff0f1d77e78d9ff7c82653e/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:b7b412817be92117ec5ed95f880defe9cf18a832e8cafacf0a22337dc1981b4d", size = 4271354, upload-time = "2026-04-08T01:56:49.312Z" }, { url = "https://files.pythonhosted.org/packages/c0/ea/01276740375bac6249d0a971ebdf6b4dc9ead0ee0a34ef3b5a88c1a9b0d4/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:ffca7aa1d00cf7d6469b988c581598f2259e46215e0140af408966a24cf086ce", size = 4444641, upload-time = "2026-04-08T01:56:52.882Z" }, { url = "https://files.pythonhosted.org/packages/3d/4c/7d258f169ae71230f25d9f3d06caabcff8c3baf0978e2b7d65e0acac3827/cryptography-46.0.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:60627cf07e0d9274338521205899337c5d18249db56865f943cbe753aa96f40f", size = 3967749, upload-time = "2026-04-08T01:56:54.597Z" }, { url = "https://files.pythonhosted.org/packages/b5/2a/2ea0767cad19e71b3530e4cad9605d0b5e338b6a1e72c37c9c1ceb86c333/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:80406c3065e2c55d7f49a9550fe0c49b3f12e5bfff5dedb727e319e1afb9bf99", size = 4270942, upload-time = "2026-04-08T01:56:56.416Z" }, { url = "https://files.pythonhosted.org/packages/9c/59/4a479e0f36f8f378d397f4eab4c850b4ffb79a2f0d58704b8fa0703ddc11/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:d5f7520159cd9c2154eb61eb67548ca05c5774d39e9c2c4339fd793fe7d097b2", size = 4443999, upload-time = "2026-04-08T01:57:00.508Z" }, { url = "https://files.pythonhosted.org/packages/28/17/b59a741645822ec6d04732b43c5d35e4ef58be7bfa84a81e5ae6f05a1d33/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fcd8eac50d9138c1d7fc53a653ba60a2bee81a505f9f8850b6b2888555a45d0e", size = 4399191, upload-time = "2026-04-08T01:57:02.654Z" }, { url = "https://files.pythonhosted.org/packages/59/6a/bb2e166d6d0e0955f1e9ff70f10ec4b2824c9cfcdb4da772c7dd69cc7d80/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:65814c60f8cc400c63131584e3e1fad01235edba2614b61fbfbfa954082db0ee", size = 4655782, upload-time = "2026-04-08T01:57:04.592Z" }, { url = "https://files.pythonhosted.org/packages/a5/d0/36a49f0262d2319139d2829f773f1b97ef8aef7f97e6e5bd21455e5a8fb5/cryptography-46.0.7-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:84d4cced91f0f159a7ddacad249cc077e63195c36aac40b4150e7a57e84fffe7", size = 4270628, upload-time = "2026-04-08T01:57:12.885Z" }, { url = "https://files.pythonhosted.org/packages/8a/6c/1a42450f464dda6ffbe578a911f773e54dd48c10f9895a23a7e88b3e7db5/cryptography-46.0.7-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832", size = 4415405, upload-time = "2026-04-08T01:57:14.923Z" }, { url = "https://files.pythonhosted.org/packages/9a/92/4ed714dbe93a066dc1f4b4581a464d2d7dbec9046f7c8b7016f5286329e2/cryptography-46.0.7-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5e51be372b26ef4ba3de3c167cd3d1022934bc838ae9eaad7e644986d2a3d163", size = 4272715, upload-time = "2026-04-08T01:57:16.638Z" }, { url = "https://files.pythonhosted.org/packages/c7/08/ffd537b605568a148543ac3c2b239708ae0bd635064bab41359252ef88ed/cryptography-46.0.7-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067", size = 4450634, upload-time = "2026-04-08T01:57:21.185Z" }, { url = "https://files.pythonhosted.org/packages/16/01/0cd51dd86ab5b9befe0d031e276510491976c3a80e9f6e31810cce46c4ad/cryptography-46.0.7-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:cdfbe22376065ffcf8be74dc9a909f032df19bc58a699456a21712d6e5eabfd0", size = 3985233, upload-time = "2026-04-08T01:57:22.862Z" }, { url = "https://files.pythonhosted.org/packages/92/49/819d6ed3a7d9349c2939f81b500a738cb733ab62fbecdbc1e38e83d45e12/cryptography-46.0.7-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:abad9dac36cbf55de6eb49badd4016806b3165d396f64925bf2999bcb67837ba", size = 4271955, upload-time = "2026-04-08T01:57:24.814Z" }, { url = "https://files.pythonhosted.org/packages/b8/c7/201d3d58f30c4c2bdbe9b03844c291feb77c20511cc3586daf7edc12a47b/cryptography-46.0.7-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0", size = 4449961, upload-time = "2026-04-08T01:57:29.068Z" }, { url = "https://files.pythonhosted.org/packages/a5/ef/649750cbf96f3033c3c976e112265c33906f8e462291a33d77f90356548c/cryptography-46.0.7-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7bbc6ccf49d05ac8f7d7b5e2e2c33830d4fe2061def88210a126d130d7f71a85", size = 4401696, upload-time = "2026-04-08T01:57:31.029Z" }, { url = "https://files.pythonhosted.org/packages/41/52/a8908dcb1a389a459a29008c29966c1d552588d4ae6d43f3a1a4512e0ebe/cryptography-46.0.7-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a1529d614f44b863a7b480c6d000fe93b59acee9c82ffa027cfadc77521a9f5e", size = 4664256, upload-time = "2026-04-08T01:57:33.144Z" }, { url = "https://files.pythonhosted.org/packages/3a/ea/075aac6a84b7c271578d81a2f9968acb6e273002408729f2ddff517fed4a/cryptography-46.0.7-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d3b99c535a9de0adced13d159c5a9cf65c325601aa30f4be08afd680643e9c15", size = 4219700, upload-time = "2026-04-08T01:57:40.625Z" }, { url = "https://files.pythonhosted.org/packages/6c/7b/1c55db7242b5e5612b29fc7a630e91ee7a6e3c8e7bf5406d22e206875fbd/cryptography-46.0.7-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d02c738dacda7dc2a74d1b2b3177042009d5cab7c7079db74afc19e56ca1b455", size = 4385982, upload-time = "2026-04-08T01:57:42.725Z" }, { url = "https://files.pythonhosted.org/packages/cb/da/9870eec4b69c63ef5925bf7d8342b7e13bc2ee3d47791461c4e49ca212f4/cryptography-46.0.7-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:04959522f938493042d595a736e7dbdff6eb6cc2339c11465b3ff89343b65f65", size = 4219115, upload-time = "2026-04-08T01:57:44.939Z" }, { url = "https://files.pythonhosted.org/packages/f4/72/05aa5832b82dd341969e9a734d1812a6aadb088d9eb6f0430fc337cc5a8f/cryptography-46.0.7-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:3986ac1dee6def53797289999eabe84798ad7817f3e97779b5061a95b0ee4968", size = 4385479, upload-time = "2026-04-08T01:57:46.86Z" }, ] [[package]] name = "docutils" version = "0.21.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version < '3.11'", ] sdist = { url = "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", size = 2204444, upload-time = "2024-04-23T18:57:18.24Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", size = 587408, upload-time = "2024-04-23T18:57:14.835Z" }, ] [[package]] name = "docutils" version = "0.22.4" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.11'", ] sdist = { url = "https://files.pythonhosted.org/packages/ae/b6/03bb70946330e88ffec97aefd3ea75ba575cb2e762061e0e62a213befee8/docutils-0.22.4.tar.gz", hash = "sha256:4db53b1fde9abecbb74d91230d32ab626d94f6badfc575d6db9194a49df29968", size = 2291750, upload-time = "2025-12-18T19:00:26.443Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/02/10/5da547df7a391dcde17f59520a231527b8571e6f46fc8efb02ccb370ab12/docutils-0.22.4-py3-none-any.whl", hash = "sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de", size = 633196, upload-time = "2025-12-18T19:00:18.077Z" }, ] [[package]] name = "exceptiongroup" version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, ] [[package]] name = "id" version = "1.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "requests" }, ] sdist = { url = "https://files.pythonhosted.org/packages/22/11/102da08f88412d875fa2f1a9a469ff7ad4c874b0ca6fed0048fe385bdb3d/id-1.5.0.tar.gz", hash = "sha256:292cb8a49eacbbdbce97244f47a97b4c62540169c976552e497fd57df0734c1d", size = 15237, upload-time = "2024-12-04T19:53:05.575Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/9f/cb/18326d2d89ad3b0dd143da971e77afd1e6ca6674f1b1c3df4b6bec6279fc/id-1.5.0-py3-none-any.whl", hash = "sha256:f1434e1cef91f2cbb8a4ec64663d5a23b9ed43ef44c4c957d02583d61714c658", size = 13611, upload-time = "2024-12-04T19:53:03.02Z" }, ] [[package]] name = "idna" version = "3.11" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, ] [[package]] name = "imagesize" version = "1.4.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/a7/84/62473fb57d61e31fef6e36d64a179c8781605429fd927b5dd608c997be31/imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a", size = 1280026, upload-time = "2022-07-01T12:21:05.687Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b", size = 8769, upload-time = "2022-07-01T12:21:02.467Z" }, ] [[package]] name = "importlib-metadata" version = "8.7.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "zipp" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/fa/5e/f8e9a1d23b9c20a551a8a02ea3637b4642e22c2626e3a13a9a29cdea99eb/importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151", size = 27865, upload-time = "2025-12-21T10:00:18.329Z" }, ] [[package]] name = "iniconfig" version = "2.3.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, ] [[package]] name = "jaraco-classes" version = "3.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "more-itertools" }, ] sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload-time = "2024-03-31T07:27:36.643Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload-time = "2024-03-31T07:27:34.792Z" }, ] [[package]] name = "jaraco-context" version = "6.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "backports-tarfile", marker = "python_full_version < '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/8d/7d/41acf8e22d791bde812cb6c2c36128bb932ed8ae066bcb5e39cb198e8253/jaraco_context-6.0.2.tar.gz", hash = "sha256:953ae8dddb57b1d791bf72ea1009b32088840a7dd19b9ba16443f62be919ee57", size = 14994, upload-time = "2025-12-24T19:21:35.784Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/c7/0c/1e0096ced9c55f9c6c6655446798df74165780375d3f5ab5f33751e087ae/jaraco_context-6.0.2-py3-none-any.whl", hash = "sha256:55fc21af4b4f9ca94aa643b6ee7fe13b1e4c01abf3aeb98ca4ad9c80b741c786", size = 6988, upload-time = "2025-12-24T19:21:34.557Z" }, ] [[package]] name = "jaraco-functools" version = "4.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "more-itertools" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0f/27/056e0638a86749374d6f57d0b0db39f29509cce9313cf91bdc0ac4d91084/jaraco_functools-4.4.0.tar.gz", hash = "sha256:da21933b0417b89515562656547a77b4931f98176eb173644c0d35032a33d6bb", size = 19943, upload-time = "2025-12-21T09:29:43.6Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/fd/c4/813bb09f0985cb21e959f21f2464169eca882656849adf727ac7bb7e1767/jaraco_functools-4.4.0-py3-none-any.whl", hash = "sha256:9eec1e36f45c818d9bf307c8948eb03b2b56cd44087b3cdc989abca1f20b9176", size = 10481, upload-time = "2025-12-21T09:29:42.27Z" }, ] [[package]] name = "jeepney" version = "0.9.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758, upload-time = "2025-02-27T18:51:01.684Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload-time = "2025-02-27T18:51:00.104Z" }, ] [[package]] name = "jinja2" version = "3.1.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, ] [[package]] name = "keyring" version = "25.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "importlib-metadata", marker = "python_full_version < '3.12'" }, { name = "jaraco-classes" }, { name = "jaraco-context" }, { name = "jaraco-functools" }, { name = "jeepney", marker = "sys_platform == 'linux'" }, { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, { name = "secretstorage", marker = "sys_platform == 'linux'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/43/4b/674af6ef2f97d56f0ab5153bf0bfa28ccb6c3ed4d1babf4305449668807b/keyring-25.7.0.tar.gz", hash = "sha256:fe01bd85eb3f8fb3dd0405defdeac9a5b4f6f0439edbb3149577f244a2e8245b", size = 63516, upload-time = "2025-11-16T16:26:09.482Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/81/db/e655086b7f3a705df045bf0933bdd9c2f79bb3c97bfef1384598bb79a217/keyring-25.7.0-py3-none-any.whl", hash = "sha256:be4a0b195f149690c166e850609a477c532ddbfbaed96a404d4e43f8d5e2689f", size = 39160, upload-time = "2025-11-16T16:26:08.402Z" }, ] [[package]] name = "librt" version = "0.7.7" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/b7/29/47f29026ca17f35cf299290292d5f8331f5077364974b7675a353179afa2/librt-0.7.7.tar.gz", hash = "sha256:81d957b069fed1890953c3b9c3895c7689960f233eea9a1d9607f71ce7f00b2c", size = 145910, upload-time = "2026-01-01T23:52:22.87Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/c6/84/2cfb1f3b9b60bab52e16a220c931223fc8e963d0d7bb9132bef012aafc3f/librt-0.7.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e4836c5645f40fbdc275e5670819bde5ab5f2e882290d304e3c6ddab1576a6d0", size = 54709, upload-time = "2026-01-01T23:50:48.326Z" }, { url = "https://files.pythonhosted.org/packages/19/a1/3127b277e9d3784a8040a54e8396d9ae5c64d6684dc6db4b4089b0eedcfb/librt-0.7.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ae8aec43117a645a31e5f60e9e3a0797492e747823b9bda6972d521b436b4e8", size = 56658, upload-time = "2026-01-01T23:50:49.74Z" }, { url = "https://files.pythonhosted.org/packages/3a/e9/b91b093a5c42eb218120445f3fef82e0b977fa2225f4d6fc133d25cdf86a/librt-0.7.7-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:aea05f701ccd2a76b34f0daf47ca5068176ff553510b614770c90d76ac88df06", size = 161026, upload-time = "2026-01-01T23:50:50.853Z" }, { url = "https://files.pythonhosted.org/packages/c7/cb/1ded77d5976a79d7057af4a010d577ce4f473ff280984e68f4974a3281e5/librt-0.7.7-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7b16ccaeff0ed4355dfb76fe1ea7a5d6d03b5ad27f295f77ee0557bc20a72495", size = 169529, upload-time = "2026-01-01T23:50:52.24Z" }, { url = "https://files.pythonhosted.org/packages/da/6e/6ca5bdaa701e15f05000ac1a4c5d1475c422d3484bd3d1ca9e8c2f5be167/librt-0.7.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c48c7e150c095d5e3cea7452347ba26094be905d6099d24f9319a8b475fcd3e0", size = 183271, upload-time = "2026-01-01T23:50:55.287Z" }, { url = "https://files.pythonhosted.org/packages/e7/2d/55c0e38073997b4bbb5ddff25b6d1bbba8c2f76f50afe5bb9c844b702f34/librt-0.7.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4dcee2f921a8632636d1c37f1bbdb8841d15666d119aa61e5399c5268e7ce02e", size = 179039, upload-time = "2026-01-01T23:50:56.807Z" }, { url = "https://files.pythonhosted.org/packages/33/4e/3662a41ae8bb81b226f3968426293517b271d34d4e9fd4b59fc511f1ae40/librt-0.7.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:14ef0f4ac3728ffd85bfc58e2f2f48fb4ef4fa871876f13a73a7381d10a9f77c", size = 173505, upload-time = "2026-01-01T23:50:58.291Z" }, { url = "https://files.pythonhosted.org/packages/f8/5d/cf768deb8bdcbac5f8c21fcb32dd483d038d88c529fd351bbe50590b945d/librt-0.7.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e4ab69fa37f8090f2d971a5d2bc606c7401170dbdae083c393d6cbf439cb45b8", size = 193570, upload-time = "2026-01-01T23:50:59.546Z" }, { url = "https://files.pythonhosted.org/packages/a1/ea/ee70effd13f1d651976d83a2812391f6203971740705e3c0900db75d4bce/librt-0.7.7-cp310-cp310-win32.whl", hash = "sha256:4bf3cc46d553693382d2abf5f5bd493d71bb0f50a7c0beab18aa13a5545c8900", size = 42600, upload-time = "2026-01-01T23:51:00.694Z" }, { url = "https://files.pythonhosted.org/packages/f0/eb/dc098730f281cba76c279b71783f5de2edcba3b880c1ab84a093ef826062/librt-0.7.7-cp310-cp310-win_amd64.whl", hash = "sha256:f0c8fe5aeadd8a0e5b0598f8a6ee3533135ca50fd3f20f130f9d72baf5c6ac58", size = 48977, upload-time = "2026-01-01T23:51:01.726Z" }, { url = "https://files.pythonhosted.org/packages/f0/56/30b5c342518005546df78841cb0820ae85a17e7d07d521c10ef367306d0d/librt-0.7.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a487b71fbf8a9edb72a8c7a456dda0184642d99cd007bc819c0b7ab93676a8ee", size = 54709, upload-time = "2026-01-01T23:51:02.774Z" }, { url = "https://files.pythonhosted.org/packages/72/78/9f120e3920b22504d4f3835e28b55acc2cc47c9586d2e1b6ba04c3c1bf01/librt-0.7.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f4d4efb218264ecf0f8516196c9e2d1a0679d9fb3bb15df1155a35220062eba8", size = 56663, upload-time = "2026-01-01T23:51:03.838Z" }, { url = "https://files.pythonhosted.org/packages/1c/ea/7d7a1ee7dfc1151836028eba25629afcf45b56bbc721293e41aa2e9b8934/librt-0.7.7-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:b8bb331aad734b059c4b450cd0a225652f16889e286b2345af5e2c3c625c3d85", size = 161705, upload-time = "2026-01-01T23:51:04.917Z" }, { url = "https://files.pythonhosted.org/packages/45/a5/952bc840ac8917fbcefd6bc5f51ad02b89721729814f3e2bfcc1337a76d6/librt-0.7.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:467dbd7443bda08338fc8ad701ed38cef48194017554f4c798b0a237904b3f99", size = 171029, upload-time = "2026-01-01T23:51:06.09Z" }, { url = "https://files.pythonhosted.org/packages/fa/bf/c017ff7da82dc9192cf40d5e802a48a25d00e7639b6465cfdcee5893a22c/librt-0.7.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50d1d1ee813d2d1a3baf2873634ba506b263032418d16287c92ec1cc9c1a00cb", size = 184704, upload-time = "2026-01-01T23:51:07.549Z" }, { url = "https://files.pythonhosted.org/packages/77/ec/72f3dd39d2cdfd6402ab10836dc9cbf854d145226062a185b419c4f1624a/librt-0.7.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c7e5070cf3ec92d98f57574da0224f8c73faf1ddd6d8afa0b8c9f6e86997bc74", size = 180719, upload-time = "2026-01-01T23:51:09.062Z" }, { url = "https://files.pythonhosted.org/packages/78/86/06e7a1a81b246f3313bf515dd9613a1c81583e6fd7843a9f4d625c4e926d/librt-0.7.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bdb9f3d865b2dafe7f9ad7f30ef563c80d0ddd2fdc8cc9b8e4f242f475e34d75", size = 174537, upload-time = "2026-01-01T23:51:10.611Z" }, { url = "https://files.pythonhosted.org/packages/83/08/f9fb2edc9c7a76e95b2924ce81d545673f5b034e8c5dd92159d1c7dae0c6/librt-0.7.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8185c8497d45164e256376f9da5aed2bb26ff636c798c9dabe313b90e9f25b28", size = 195238, upload-time = "2026-01-01T23:51:11.762Z" }, { url = "https://files.pythonhosted.org/packages/ba/56/ea2d2489d3ea1f47b301120e03a099e22de7b32c93df9a211e6ff4f9bf38/librt-0.7.7-cp311-cp311-win32.whl", hash = "sha256:44d63ce643f34a903f09ff7ca355aae019a3730c7afd6a3c037d569beeb5d151", size = 42939, upload-time = "2026-01-01T23:51:13.192Z" }, { url = "https://files.pythonhosted.org/packages/58/7b/c288f417e42ba2a037f1c0753219e277b33090ed4f72f292fb6fe175db4c/librt-0.7.7-cp311-cp311-win_amd64.whl", hash = "sha256:7d13cc340b3b82134f8038a2bfe7137093693dcad8ba5773da18f95ad6b77a8a", size = 49240, upload-time = "2026-01-01T23:51:14.264Z" }, { url = "https://files.pythonhosted.org/packages/7c/24/738eb33a6c1516fdb2dfd2a35db6e5300f7616679b573585be0409bc6890/librt-0.7.7-cp311-cp311-win_arm64.whl", hash = "sha256:983de36b5a83fe9222f4f7dcd071f9b1ac6f3f17c0af0238dadfb8229588f890", size = 42613, upload-time = "2026-01-01T23:51:15.268Z" }, { url = "https://files.pythonhosted.org/packages/56/72/1cd9d752070011641e8aee046c851912d5f196ecd726fffa7aed2070f3e0/librt-0.7.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2a85a1fc4ed11ea0eb0a632459ce004a2d14afc085a50ae3463cd3dfe1ce43fc", size = 55687, upload-time = "2026-01-01T23:51:16.291Z" }, { url = "https://files.pythonhosted.org/packages/50/aa/d5a1d4221c4fe7e76ae1459d24d6037783cb83c7645164c07d7daf1576ec/librt-0.7.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c87654e29a35938baead1c4559858f346f4a2a7588574a14d784f300ffba0efd", size = 57136, upload-time = "2026-01-01T23:51:17.363Z" }, { url = "https://files.pythonhosted.org/packages/23/6f/0c86b5cb5e7ef63208c8cc22534df10ecc5278efc0d47fb8815577f3ca2f/librt-0.7.7-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c9faaebb1c6212c20afd8043cd6ed9de0a47d77f91a6b5b48f4e46ed470703fe", size = 165320, upload-time = "2026-01-01T23:51:18.455Z" }, { url = "https://files.pythonhosted.org/packages/16/37/df4652690c29f645ffe405b58285a4109e9fe855c5bb56e817e3e75840b3/librt-0.7.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1908c3e5a5ef86b23391448b47759298f87f997c3bd153a770828f58c2bb4630", size = 174216, upload-time = "2026-01-01T23:51:19.599Z" }, { url = "https://files.pythonhosted.org/packages/9a/d6/d3afe071910a43133ec9c0f3e4ce99ee6df0d4e44e4bddf4b9e1c6ed41cc/librt-0.7.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dbc4900e95a98fc0729523be9d93a8fedebb026f32ed9ffc08acd82e3e181503", size = 189005, upload-time = "2026-01-01T23:51:21.052Z" }, { url = "https://files.pythonhosted.org/packages/d5/18/74060a870fe2d9fd9f47824eba6717ce7ce03124a0d1e85498e0e7efc1b2/librt-0.7.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a7ea4e1fbd253e5c68ea0fe63d08577f9d288a73f17d82f652ebc61fa48d878d", size = 183961, upload-time = "2026-01-01T23:51:22.493Z" }, { url = "https://files.pythonhosted.org/packages/7c/5e/918a86c66304af66a3c1d46d54df1b2d0b8894babc42a14fb6f25511497f/librt-0.7.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ef7699b7a5a244b1119f85c5bbc13f152cd38240cbb2baa19b769433bae98e50", size = 177610, upload-time = "2026-01-01T23:51:23.874Z" }, { url = "https://files.pythonhosted.org/packages/b2/d7/b5e58dc2d570f162e99201b8c0151acf40a03a39c32ab824dd4febf12736/librt-0.7.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:955c62571de0b181d9e9e0a0303c8bc90d47670a5eff54cf71bf5da61d1899cf", size = 199272, upload-time = "2026-01-01T23:51:25.341Z" }, { url = "https://files.pythonhosted.org/packages/18/87/8202c9bd0968bdddc188ec3811985f47f58ed161b3749299f2c0dd0f63fb/librt-0.7.7-cp312-cp312-win32.whl", hash = "sha256:1bcd79be209313b270b0e1a51c67ae1af28adad0e0c7e84c3ad4b5cb57aaa75b", size = 43189, upload-time = "2026-01-01T23:51:26.799Z" }, { url = "https://files.pythonhosted.org/packages/61/8d/80244b267b585e7aa79ffdac19f66c4861effc3a24598e77909ecdd0850e/librt-0.7.7-cp312-cp312-win_amd64.whl", hash = "sha256:4353ee891a1834567e0302d4bd5e60f531912179578c36f3d0430f8c5e16b456", size = 49462, upload-time = "2026-01-01T23:51:27.813Z" }, { url = "https://files.pythonhosted.org/packages/2d/1f/75db802d6a4992d95e8a889682601af9b49d5a13bbfa246d414eede1b56c/librt-0.7.7-cp312-cp312-win_arm64.whl", hash = "sha256:a76f1d679beccccdf8c1958e732a1dfcd6e749f8821ee59d7bec009ac308c029", size = 42828, upload-time = "2026-01-01T23:51:28.804Z" }, { url = "https://files.pythonhosted.org/packages/8d/5e/d979ccb0a81407ec47c14ea68fb217ff4315521730033e1dd9faa4f3e2c1/librt-0.7.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f4a0b0a3c86ba9193a8e23bb18f100d647bf192390ae195d84dfa0a10fb6244", size = 55746, upload-time = "2026-01-01T23:51:29.828Z" }, { url = "https://files.pythonhosted.org/packages/f5/2c/3b65861fb32f802c3783d6ac66fc5589564d07452a47a8cf9980d531cad3/librt-0.7.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5335890fea9f9e6c4fdf8683061b9ccdcbe47c6dc03ab8e9b68c10acf78be78d", size = 57174, upload-time = "2026-01-01T23:51:31.226Z" }, { url = "https://files.pythonhosted.org/packages/50/df/030b50614b29e443607220097ebaf438531ea218c7a9a3e21ea862a919cd/librt-0.7.7-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9b4346b1225be26def3ccc6c965751c74868f0578cbcba293c8ae9168483d811", size = 165834, upload-time = "2026-01-01T23:51:32.278Z" }, { url = "https://files.pythonhosted.org/packages/5d/e1/bd8d1eacacb24be26a47f157719553bbd1b3fe812c30dddf121c0436fd0b/librt-0.7.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a10b8eebdaca6e9fdbaf88b5aefc0e324b763a5f40b1266532590d5afb268a4c", size = 174819, upload-time = "2026-01-01T23:51:33.461Z" }, { url = "https://files.pythonhosted.org/packages/46/7d/91d6c3372acf54a019c1ad8da4c9ecf4fc27d039708880bf95f48dbe426a/librt-0.7.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:067be973d90d9e319e6eb4ee2a9b9307f0ecd648b8a9002fa237289a4a07a9e7", size = 189607, upload-time = "2026-01-01T23:51:34.604Z" }, { url = "https://files.pythonhosted.org/packages/fa/ac/44604d6d3886f791fbd1c6ae12d5a782a8f4aca927484731979f5e92c200/librt-0.7.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:23d2299ed007812cccc1ecef018db7d922733382561230de1f3954db28433977", size = 184586, upload-time = "2026-01-01T23:51:35.845Z" }, { url = "https://files.pythonhosted.org/packages/5c/26/d8a6e4c17117b7f9b83301319d9a9de862ae56b133efb4bad8b3aa0808c9/librt-0.7.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6b6f8ea465524aa4c7420c7cc4ca7d46fe00981de8debc67b1cc2e9957bb5b9d", size = 178251, upload-time = "2026-01-01T23:51:37.018Z" }, { url = "https://files.pythonhosted.org/packages/99/ab/98d857e254376f8e2f668e807daccc1f445e4b4fc2f6f9c1cc08866b0227/librt-0.7.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f8df32a99cc46eb0ee90afd9ada113ae2cafe7e8d673686cf03ec53e49635439", size = 199853, upload-time = "2026-01-01T23:51:38.195Z" }, { url = "https://files.pythonhosted.org/packages/7c/55/4523210d6ae5134a5da959900be43ad8bab2e4206687b6620befddb5b5fd/librt-0.7.7-cp313-cp313-win32.whl", hash = "sha256:86f86b3b785487c7760247bcdac0b11aa8bf13245a13ed05206286135877564b", size = 43247, upload-time = "2026-01-01T23:51:39.629Z" }, { url = "https://files.pythonhosted.org/packages/25/40/3ec0fed5e8e9297b1cf1a3836fb589d3de55f9930e3aba988d379e8ef67c/librt-0.7.7-cp313-cp313-win_amd64.whl", hash = "sha256:4862cb2c702b1f905c0503b72d9d4daf65a7fdf5a9e84560e563471e57a56949", size = 49419, upload-time = "2026-01-01T23:51:40.674Z" }, { url = "https://files.pythonhosted.org/packages/1c/7a/aab5f0fb122822e2acbc776addf8b9abfb4944a9056c00c393e46e543177/librt-0.7.7-cp313-cp313-win_arm64.whl", hash = "sha256:0996c83b1cb43c00e8c87835a284f9057bc647abd42b5871e5f941d30010c832", size = 42828, upload-time = "2026-01-01T23:51:41.731Z" }, { url = "https://files.pythonhosted.org/packages/69/9c/228a5c1224bd23809a635490a162e9cbdc68d99f0eeb4a696f07886b8206/librt-0.7.7-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:23daa1ab0512bafdd677eb1bfc9611d8ffbe2e328895671e64cb34166bc1b8c8", size = 55188, upload-time = "2026-01-01T23:51:43.14Z" }, { url = "https://files.pythonhosted.org/packages/ba/c2/0e7c6067e2b32a156308205e5728f4ed6478c501947e9142f525afbc6bd2/librt-0.7.7-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:558a9e5a6f3cc1e20b3168fb1dc802d0d8fa40731f6e9932dcc52bbcfbd37111", size = 56895, upload-time = "2026-01-01T23:51:44.534Z" }, { url = "https://files.pythonhosted.org/packages/0e/77/de50ff70c80855eb79d1d74035ef06f664dd073fb7fb9d9fb4429651b8eb/librt-0.7.7-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2567cb48dc03e5b246927ab35cbb343376e24501260a9b5e30b8e255dca0d1d2", size = 163724, upload-time = "2026-01-01T23:51:45.571Z" }, { url = "https://files.pythonhosted.org/packages/6e/19/f8e4bf537899bdef9e0bb9f0e4b18912c2d0f858ad02091b6019864c9a6d/librt-0.7.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6066c638cdf85ff92fc6f932d2d73c93a0e03492cdfa8778e6d58c489a3d7259", size = 172470, upload-time = "2026-01-01T23:51:46.823Z" }, { url = "https://files.pythonhosted.org/packages/42/4c/dcc575b69d99076768e8dd6141d9aecd4234cba7f0e09217937f52edb6ed/librt-0.7.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a609849aca463074c17de9cda173c276eb8fee9e441053529e7b9e249dc8b8ee", size = 186806, upload-time = "2026-01-01T23:51:48.009Z" }, { url = "https://files.pythonhosted.org/packages/fe/f8/4094a2b7816c88de81239a83ede6e87f1138477d7ee956c30f136009eb29/librt-0.7.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:add4e0a000858fe9bb39ed55f31085506a5c38363e6eb4a1e5943a10c2bfc3d1", size = 181809, upload-time = "2026-01-01T23:51:49.35Z" }, { url = "https://files.pythonhosted.org/packages/1b/ac/821b7c0ab1b5a6cd9aee7ace8309c91545a2607185101827f79122219a7e/librt-0.7.7-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a3bfe73a32bd0bdb9a87d586b05a23c0a1729205d79df66dee65bb2e40d671ba", size = 175597, upload-time = "2026-01-01T23:51:50.636Z" }, { url = "https://files.pythonhosted.org/packages/71/f9/27f6bfbcc764805864c04211c6ed636fe1d58f57a7b68d1f4ae5ed74e0e0/librt-0.7.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:0ecce0544d3db91a40f8b57ae26928c02130a997b540f908cefd4d279d6c5848", size = 196506, upload-time = "2026-01-01T23:51:52.535Z" }, { url = "https://files.pythonhosted.org/packages/46/ba/c9b9c6fc931dd7ea856c573174ccaf48714905b1a7499904db2552e3bbaf/librt-0.7.7-cp314-cp314-win32.whl", hash = "sha256:8f7a74cf3a80f0c3b0ec75b0c650b2f0a894a2cec57ef75f6f72c1e82cdac61d", size = 39747, upload-time = "2026-01-01T23:51:53.683Z" }, { url = "https://files.pythonhosted.org/packages/c5/69/cd1269337c4cde3ee70176ee611ab0058aa42fc8ce5c9dce55f48facfcd8/librt-0.7.7-cp314-cp314-win_amd64.whl", hash = "sha256:3d1fe2e8df3268dd6734dba33ededae72ad5c3a859b9577bc00b715759c5aaab", size = 45971, upload-time = "2026-01-01T23:51:54.697Z" }, { url = "https://files.pythonhosted.org/packages/79/fd/e0844794423f5583108c5991313c15e2b400995f44f6ec6871f8aaf8243c/librt-0.7.7-cp314-cp314-win_arm64.whl", hash = "sha256:2987cf827011907d3dfd109f1be0d61e173d68b1270107bb0e89f2fca7f2ed6b", size = 39075, upload-time = "2026-01-01T23:51:55.726Z" }, { url = "https://files.pythonhosted.org/packages/42/02/211fd8f7c381e7b2a11d0fdfcd410f409e89967be2e705983f7c6342209a/librt-0.7.7-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8e92c8de62b40bfce91d5e12c6e8b15434da268979b1af1a6589463549d491e6", size = 57368, upload-time = "2026-01-01T23:51:56.706Z" }, { url = "https://files.pythonhosted.org/packages/4c/b6/aca257affae73ece26041ae76032153266d110453173f67d7603058e708c/librt-0.7.7-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f683dcd49e2494a7535e30f779aa1ad6e3732a019d80abe1309ea91ccd3230e3", size = 59238, upload-time = "2026-01-01T23:51:58.066Z" }, { url = "https://files.pythonhosted.org/packages/96/47/7383a507d8e0c11c78ca34c9d36eab9000db5989d446a2f05dc40e76c64f/librt-0.7.7-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9b15e5d17812d4d629ff576699954f74e2cc24a02a4fc401882dd94f81daba45", size = 183870, upload-time = "2026-01-01T23:51:59.204Z" }, { url = "https://files.pythonhosted.org/packages/a4/b8/50f3d8eec8efdaf79443963624175c92cec0ba84827a66b7fcfa78598e51/librt-0.7.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c084841b879c4d9b9fa34e5d5263994f21aea7fd9c6add29194dbb41a6210536", size = 194608, upload-time = "2026-01-01T23:52:00.419Z" }, { url = "https://files.pythonhosted.org/packages/23/d9/1b6520793aadb59d891e3b98ee057a75de7f737e4a8b4b37fdbecb10d60f/librt-0.7.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:10c8fb9966f84737115513fecbaf257f9553d067a7dd45a69c2c7e5339e6a8dc", size = 206776, upload-time = "2026-01-01T23:52:01.705Z" }, { url = "https://files.pythonhosted.org/packages/ff/db/331edc3bba929d2756fa335bfcf736f36eff4efcb4f2600b545a35c2ae58/librt-0.7.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9b5fb1ecb2c35362eab2dbd354fd1efa5a8440d3e73a68be11921042a0edc0ff", size = 203206, upload-time = "2026-01-01T23:52:03.315Z" }, { url = "https://files.pythonhosted.org/packages/b2/e1/6af79ec77204e85f6f2294fc171a30a91bb0e35d78493532ed680f5d98be/librt-0.7.7-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:d1454899909d63cc9199a89fcc4f81bdd9004aef577d4ffc022e600c412d57f3", size = 196697, upload-time = "2026-01-01T23:52:04.857Z" }, { url = "https://files.pythonhosted.org/packages/f3/46/de55ecce4b2796d6d243295c221082ca3a944dc2fb3a52dcc8660ce7727d/librt-0.7.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:7ef28f2e7a016b29792fe0a2dd04dec75725b32a1264e390c366103f834a9c3a", size = 217193, upload-time = "2026-01-01T23:52:06.159Z" }, { url = "https://files.pythonhosted.org/packages/41/61/33063e271949787a2f8dd33c5260357e3d512a114fc82ca7890b65a76e2d/librt-0.7.7-cp314-cp314t-win32.whl", hash = "sha256:5e419e0db70991b6ba037b70c1d5bbe92b20ddf82f31ad01d77a347ed9781398", size = 40277, upload-time = "2026-01-01T23:52:07.625Z" }, { url = "https://files.pythonhosted.org/packages/06/21/1abd972349f83a696ea73159ac964e63e2d14086fdd9bc7ca878c25fced4/librt-0.7.7-cp314-cp314t-win_amd64.whl", hash = "sha256:d6b7d93657332c817b8d674ef6bf1ab7796b4f7ce05e420fd45bd258a72ac804", size = 46765, upload-time = "2026-01-01T23:52:08.647Z" }, { url = "https://files.pythonhosted.org/packages/51/0e/b756c7708143a63fca65a51ca07990fa647db2cc8fcd65177b9e96680255/librt-0.7.7-cp314-cp314t-win_arm64.whl", hash = "sha256:142c2cd91794b79fd0ce113bd658993b7ede0fe93057668c2f98a45ca00b7e91", size = 39724, upload-time = "2026-01-01T23:52:09.745Z" }, ] [[package]] name = "markdown-it-py" version = "4.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mdurl" }, ] sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, ] [[package]] name = "markupsafe" version = "3.0.3" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload-time = "2025-09-27T18:36:05.558Z" }, { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload-time = "2025-09-27T18:36:07.165Z" }, { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload-time = "2025-09-27T18:36:08.005Z" }, { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload-time = "2025-09-27T18:36:08.881Z" }, { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload-time = "2025-09-27T18:36:10.131Z" }, { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload-time = "2025-09-27T18:36:11.324Z" }, { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload-time = "2025-09-27T18:36:12.573Z" }, { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload-time = "2025-09-27T18:36:13.504Z" }, { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" }, { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" }, { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" }, { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, ] [[package]] name = "mdurl" version = "0.1.2" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, ] [[package]] name = "more-itertools" version = "10.8.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431, upload-time = "2025-09-02T15:23:11.018Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload-time = "2025-09-02T15:23:09.635Z" }, ] [[package]] name = "mypy" version = "1.19.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "librt", marker = "platform_python_implementation != 'PyPy'" }, { name = "mypy-extensions" }, { name = "pathspec" }, { name = "tomli", marker = "python_full_version < '3.11'" }, { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f5/db/4efed9504bc01309ab9c2da7e352cc223569f05478012b5d9ece38fd44d2/mypy-1.19.1.tar.gz", hash = "sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba", size = 3582404, upload-time = "2025-12-15T05:03:48.42Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/2f/63/e499890d8e39b1ff2df4c0c6ce5d371b6844ee22b8250687a99fd2f657a8/mypy-1.19.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec", size = 13101333, upload-time = "2025-12-15T05:03:03.28Z" }, { url = "https://files.pythonhosted.org/packages/72/4b/095626fc136fba96effc4fd4a82b41d688ab92124f8c4f7564bffe5cf1b0/mypy-1.19.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b", size = 12164102, upload-time = "2025-12-15T05:02:33.611Z" }, { url = "https://files.pythonhosted.org/packages/0c/5b/952928dd081bf88a83a5ccd49aaecfcd18fd0d2710c7ff07b8fb6f7032b9/mypy-1.19.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6", size = 12765799, upload-time = "2025-12-15T05:03:28.44Z" }, { url = "https://files.pythonhosted.org/packages/2a/0d/93c2e4a287f74ef11a66fb6d49c7a9f05e47b0a4399040e6719b57f500d2/mypy-1.19.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74", size = 13522149, upload-time = "2025-12-15T05:02:36.011Z" }, { url = "https://files.pythonhosted.org/packages/7b/0e/33a294b56aaad2b338d203e3a1d8b453637ac36cb278b45005e0901cf148/mypy-1.19.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1", size = 13810105, upload-time = "2025-12-15T05:02:40.327Z" }, { url = "https://files.pythonhosted.org/packages/0e/fd/3e82603a0cb66b67c5e7abababce6bf1a929ddf67bf445e652684af5c5a0/mypy-1.19.1-cp310-cp310-win_amd64.whl", hash = "sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac", size = 10057200, upload-time = "2025-12-15T05:02:51.012Z" }, { url = "https://files.pythonhosted.org/packages/ef/47/6b3ebabd5474d9cdc170d1342fbf9dddc1b0ec13ec90bf9004ee6f391c31/mypy-1.19.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288", size = 13028539, upload-time = "2025-12-15T05:03:44.129Z" }, { url = "https://files.pythonhosted.org/packages/5c/a6/ac7c7a88a3c9c54334f53a941b765e6ec6c4ebd65d3fe8cdcfbe0d0fd7db/mypy-1.19.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab", size = 12083163, upload-time = "2025-12-15T05:03:37.679Z" }, { url = "https://files.pythonhosted.org/packages/67/af/3afa9cf880aa4a2c803798ac24f1d11ef72a0c8079689fac5cfd815e2830/mypy-1.19.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6", size = 12687629, upload-time = "2025-12-15T05:02:31.526Z" }, { url = "https://files.pythonhosted.org/packages/2d/46/20f8a7114a56484ab268b0ab372461cb3a8f7deed31ea96b83a4e4cfcfca/mypy-1.19.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331", size = 13436933, upload-time = "2025-12-15T05:03:15.606Z" }, { url = "https://files.pythonhosted.org/packages/5b/f8/33b291ea85050a21f15da910002460f1f445f8007adb29230f0adea279cb/mypy-1.19.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925", size = 13661754, upload-time = "2025-12-15T05:02:26.731Z" }, { url = "https://files.pythonhosted.org/packages/fd/a3/47cbd4e85bec4335a9cd80cf67dbc02be21b5d4c9c23ad6b95d6c5196bac/mypy-1.19.1-cp311-cp311-win_amd64.whl", hash = "sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042", size = 10055772, upload-time = "2025-12-15T05:03:26.179Z" }, { url = "https://files.pythonhosted.org/packages/06/8a/19bfae96f6615aa8a0604915512e0289b1fad33d5909bf7244f02935d33a/mypy-1.19.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1", size = 13206053, upload-time = "2025-12-15T05:03:46.622Z" }, { url = "https://files.pythonhosted.org/packages/a5/34/3e63879ab041602154ba2a9f99817bb0c85c4df19a23a1443c8986e4d565/mypy-1.19.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e", size = 12219134, upload-time = "2025-12-15T05:03:24.367Z" }, { url = "https://files.pythonhosted.org/packages/89/cc/2db6f0e95366b630364e09845672dbee0cbf0bbe753a204b29a944967cd9/mypy-1.19.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2", size = 12731616, upload-time = "2025-12-15T05:02:44.725Z" }, { url = "https://files.pythonhosted.org/packages/00/be/dd56c1fd4807bc1eba1cf18b2a850d0de7bacb55e158755eb79f77c41f8e/mypy-1.19.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8", size = 13620847, upload-time = "2025-12-15T05:03:39.633Z" }, { url = "https://files.pythonhosted.org/packages/6d/42/332951aae42b79329f743bf1da088cd75d8d4d9acc18fbcbd84f26c1af4e/mypy-1.19.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a", size = 13834976, upload-time = "2025-12-15T05:03:08.786Z" }, { url = "https://files.pythonhosted.org/packages/6f/63/e7493e5f90e1e085c562bb06e2eb32cae27c5057b9653348d38b47daaecc/mypy-1.19.1-cp312-cp312-win_amd64.whl", hash = "sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13", size = 10118104, upload-time = "2025-12-15T05:03:10.834Z" }, { url = "https://files.pythonhosted.org/packages/de/9f/a6abae693f7a0c697dbb435aac52e958dc8da44e92e08ba88d2e42326176/mypy-1.19.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250", size = 13201927, upload-time = "2025-12-15T05:02:29.138Z" }, { url = "https://files.pythonhosted.org/packages/9a/a4/45c35ccf6e1c65afc23a069f50e2c66f46bd3798cbe0d680c12d12935caa/mypy-1.19.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b", size = 12206730, upload-time = "2025-12-15T05:03:01.325Z" }, { url = "https://files.pythonhosted.org/packages/05/bb/cdcf89678e26b187650512620eec8368fded4cfd99cfcb431e4cdfd19dec/mypy-1.19.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e", size = 12724581, upload-time = "2025-12-15T05:03:20.087Z" }, { url = "https://files.pythonhosted.org/packages/d1/32/dd260d52babf67bad8e6770f8e1102021877ce0edea106e72df5626bb0ec/mypy-1.19.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef", size = 13616252, upload-time = "2025-12-15T05:02:49.036Z" }, { url = "https://files.pythonhosted.org/packages/71/d0/5e60a9d2e3bd48432ae2b454b7ef2b62a960ab51292b1eda2a95edd78198/mypy-1.19.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75", size = 13840848, upload-time = "2025-12-15T05:02:55.95Z" }, { url = "https://files.pythonhosted.org/packages/98/76/d32051fa65ecf6cc8c6610956473abdc9b4c43301107476ac03559507843/mypy-1.19.1-cp313-cp313-win_amd64.whl", hash = "sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd", size = 10135510, upload-time = "2025-12-15T05:02:58.438Z" }, { url = "https://files.pythonhosted.org/packages/de/eb/b83e75f4c820c4247a58580ef86fcd35165028f191e7e1ba57128c52782d/mypy-1.19.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1", size = 13199744, upload-time = "2025-12-15T05:03:30.823Z" }, { url = "https://files.pythonhosted.org/packages/94/28/52785ab7bfa165f87fcbb61547a93f98bb20e7f82f90f165a1f69bce7b3d/mypy-1.19.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718", size = 12215815, upload-time = "2025-12-15T05:02:42.323Z" }, { url = "https://files.pythonhosted.org/packages/0a/c6/bdd60774a0dbfb05122e3e925f2e9e846c009e479dcec4821dad881f5b52/mypy-1.19.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b", size = 12740047, upload-time = "2025-12-15T05:03:33.168Z" }, { url = "https://files.pythonhosted.org/packages/32/2a/66ba933fe6c76bd40d1fe916a83f04fed253152f451a877520b3c4a5e41e/mypy-1.19.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045", size = 13601998, upload-time = "2025-12-15T05:03:13.056Z" }, { url = "https://files.pythonhosted.org/packages/e3/da/5055c63e377c5c2418760411fd6a63ee2b96cf95397259038756c042574f/mypy-1.19.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957", size = 13807476, upload-time = "2025-12-15T05:03:17.977Z" }, { url = "https://files.pythonhosted.org/packages/cd/09/4ebd873390a063176f06b0dbf1f7783dd87bd120eae7727fa4ae4179b685/mypy-1.19.1-cp314-cp314-win_amd64.whl", hash = "sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f", size = 10281872, upload-time = "2025-12-15T05:03:05.549Z" }, { url = "https://files.pythonhosted.org/packages/8d/f4/4ce9a05ce5ded1de3ec1c1d96cf9f9504a04e54ce0ed55cfa38619a32b8d/mypy-1.19.1-py3-none-any.whl", hash = "sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247", size = 2471239, upload-time = "2025-12-15T05:03:07.248Z" }, ] [[package]] name = "mypy-extensions" version = "1.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, ] [[package]] name = "nh3" version = "0.3.2" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/ca/a5/34c26015d3a434409f4d2a1cd8821a06c05238703f49283ffeb937bef093/nh3-0.3.2.tar.gz", hash = "sha256:f394759a06df8b685a4ebfb1874fb67a9cbfd58c64fc5ed587a663c0e63ec376", size = 19288, upload-time = "2025-10-30T11:17:45.948Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/5b/01/a1eda067c0ba823e5e2bb033864ae4854549e49fb6f3407d2da949106bfb/nh3-0.3.2-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:d18957a90806d943d141cc5e4a0fefa1d77cf0d7a156878bf9a66eed52c9cc7d", size = 1419839, upload-time = "2025-10-30T11:17:09.956Z" }, { url = "https://files.pythonhosted.org/packages/30/57/07826ff65d59e7e9cc789ef1dc405f660cabd7458a1864ab58aefa17411b/nh3-0.3.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45c953e57028c31d473d6b648552d9cab1efe20a42ad139d78e11d8f42a36130", size = 791183, upload-time = "2025-10-30T11:17:11.99Z" }, { url = "https://files.pythonhosted.org/packages/af/2f/e8a86f861ad83f3bb5455f596d5c802e34fcdb8c53a489083a70fd301333/nh3-0.3.2-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2c9850041b77a9147d6bbd6dbbf13eeec7009eb60b44e83f07fcb2910075bf9b", size = 829127, upload-time = "2025-10-30T11:17:13.192Z" }, { url = "https://files.pythonhosted.org/packages/d8/97/77aef4daf0479754e8e90c7f8f48f3b7b8725a3b8c0df45f2258017a6895/nh3-0.3.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:403c11563e50b915d0efdb622866d1d9e4506bce590ef7da57789bf71dd148b5", size = 997131, upload-time = "2025-10-30T11:17:14.677Z" }, { url = "https://files.pythonhosted.org/packages/41/ee/fd8140e4df9d52143e89951dd0d797f5546004c6043285289fbbe3112293/nh3-0.3.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:0dca4365db62b2d71ff1620ee4f800c4729849906c5dd504ee1a7b2389558e31", size = 1068783, upload-time = "2025-10-30T11:17:15.861Z" }, { url = "https://files.pythonhosted.org/packages/87/64/bdd9631779e2d588b08391f7555828f352e7f6427889daf2fa424bfc90c9/nh3-0.3.2-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:0fe7ee035dd7b2290715baf29cb27167dddd2ff70ea7d052c958dbd80d323c99", size = 994732, upload-time = "2025-10-30T11:17:17.155Z" }, { url = "https://files.pythonhosted.org/packages/79/66/90190033654f1f28ca98e3d76b8be1194505583f9426b0dcde782a3970a2/nh3-0.3.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a40202fd58e49129764f025bbaae77028e420f1d5b3c8e6f6fd3a6490d513868", size = 975997, upload-time = "2025-10-30T11:17:18.77Z" }, { url = "https://files.pythonhosted.org/packages/34/30/ebf8e2e8d71fdb5a5d5d8836207177aed1682df819cbde7f42f16898946c/nh3-0.3.2-cp314-cp314t-win32.whl", hash = "sha256:1f9ba555a797dbdcd844b89523f29cdc90973d8bd2e836ea6b962cf567cadd93", size = 583364, upload-time = "2025-10-30T11:17:20.286Z" }, { url = "https://files.pythonhosted.org/packages/94/ae/95c52b5a75da429f11ca8902c2128f64daafdc77758d370e4cc310ecda55/nh3-0.3.2-cp314-cp314t-win_amd64.whl", hash = "sha256:dce4248edc427c9b79261f3e6e2b3ecbdd9b88c267012168b4a7b3fc6fd41d13", size = 589982, upload-time = "2025-10-30T11:17:21.384Z" }, { url = "https://files.pythonhosted.org/packages/b4/bd/c7d862a4381b95f2469704de32c0ad419def0f4a84b7a138a79532238114/nh3-0.3.2-cp314-cp314t-win_arm64.whl", hash = "sha256:019ecbd007536b67fdf76fab411b648fb64e2257ca3262ec80c3425c24028c80", size = 577126, upload-time = "2025-10-30T11:17:22.755Z" }, { url = "https://files.pythonhosted.org/packages/b6/3e/f5a5cc2885c24be13e9b937441bd16a012ac34a657fe05e58927e8af8b7a/nh3-0.3.2-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:7064ccf5ace75825bd7bf57859daaaf16ed28660c1c6b306b649a9eda4b54b1e", size = 1431980, upload-time = "2025-10-30T11:17:25.457Z" }, { url = "https://files.pythonhosted.org/packages/7f/f7/529a99324d7ef055de88b690858f4189379708abae92ace799365a797b7f/nh3-0.3.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8745454cdd28bbbc90861b80a0111a195b0e3961b9fa2e672be89eb199fa5d8", size = 820805, upload-time = "2025-10-30T11:17:26.98Z" }, { url = "https://files.pythonhosted.org/packages/3d/62/19b7c50ccd1fa7d0764822d2cea8f2a320f2fd77474c7a1805cb22cf69b0/nh3-0.3.2-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72d67c25a84579f4a432c065e8b4274e53b7cf1df8f792cf846abfe2c3090866", size = 803527, upload-time = "2025-10-30T11:17:28.284Z" }, { url = "https://files.pythonhosted.org/packages/4a/ca/f022273bab5440abff6302731a49410c5ef66b1a9502ba3fbb2df998d9ff/nh3-0.3.2-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:13398e676a14d6233f372c75f52d5ae74f98210172991f7a3142a736bd92b131", size = 1051674, upload-time = "2025-10-30T11:17:29.909Z" }, { url = "https://files.pythonhosted.org/packages/fa/f7/5728e3b32a11daf5bd21cf71d91c463f74305938bc3eb9e0ac1ce141646e/nh3-0.3.2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:03d617e5c8aa7331bd2659c654e021caf9bba704b109e7b2b28b039a00949fe5", size = 1004737, upload-time = "2025-10-30T11:17:31.205Z" }, { url = "https://files.pythonhosted.org/packages/53/7f/f17e0dba0a99cee29e6cee6d4d52340ef9cb1f8a06946d3a01eb7ec2fb01/nh3-0.3.2-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2f55c4d2d5a207e74eefe4d828067bbb01300e06e2a7436142f915c5928de07", size = 911745, upload-time = "2025-10-30T11:17:32.945Z" }, { url = "https://files.pythonhosted.org/packages/42/0f/c76bf3dba22c73c38e9b1113b017cf163f7696f50e003404ec5ecdb1e8a6/nh3-0.3.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bb18403f02b655a1bbe4e3a4696c2ae1d6ae8f5991f7cacb684b1ae27e6c9f7", size = 797184, upload-time = "2025-10-30T11:17:34.226Z" }, { url = "https://files.pythonhosted.org/packages/08/a1/73d8250f888fb0ddf1b119b139c382f8903d8bb0c5bd1f64afc7e38dad1d/nh3-0.3.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6d66f41672eb4060cf87c037f760bdbc6847852ca9ef8e9c5a5da18f090abf87", size = 838556, upload-time = "2025-10-30T11:17:35.875Z" }, { url = "https://files.pythonhosted.org/packages/d1/09/deb57f1fb656a7a5192497f4a287b0ade5a2ff6b5d5de4736d13ef6d2c1f/nh3-0.3.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f97f8b25cb2681d25e2338148159447e4d689aafdccfcf19e61ff7db3905768a", size = 1006695, upload-time = "2025-10-30T11:17:37.071Z" }, { url = "https://files.pythonhosted.org/packages/b6/61/8f4d41c4ccdac30e4b1a4fa7be4b0f9914d8314a5058472f84c8e101a418/nh3-0.3.2-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:2ab70e8c6c7d2ce953d2a58102eefa90c2d0a5ed7aa40c7e29a487bc5e613131", size = 1075471, upload-time = "2025-10-30T11:17:38.225Z" }, { url = "https://files.pythonhosted.org/packages/b0/c6/966aec0cb4705e69f6c3580422c239205d5d4d0e50fac380b21e87b6cf1b/nh3-0.3.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:1710f3901cd6440ca92494ba2eb6dc260f829fa8d9196b659fa10de825610ce0", size = 1002439, upload-time = "2025-10-30T11:17:39.553Z" }, { url = "https://files.pythonhosted.org/packages/e2/c8/97a2d5f7a314cce2c5c49f30c6f161b7f3617960ade4bfc2fd1ee092cb20/nh3-0.3.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:91e9b001101fb4500a2aafe3e7c92928d85242d38bf5ac0aba0b7480da0a4cd6", size = 987439, upload-time = "2025-10-30T11:17:40.81Z" }, { url = "https://files.pythonhosted.org/packages/0d/95/2d6fc6461687d7a171f087995247dec33e8749a562bfadd85fb5dbf37a11/nh3-0.3.2-cp38-abi3-win32.whl", hash = "sha256:169db03df90da63286e0560ea0efa9b6f3b59844a9735514a1d47e6bb2c8c61b", size = 589826, upload-time = "2025-10-30T11:17:42.239Z" }, { url = "https://files.pythonhosted.org/packages/64/9a/1a1c154f10a575d20dd634e5697805e589bbdb7673a0ad00e8da90044ba7/nh3-0.3.2-cp38-abi3-win_amd64.whl", hash = "sha256:562da3dca7a17f9077593214a9781a94b8d76de4f158f8c895e62f09573945fe", size = 596406, upload-time = "2025-10-30T11:17:43.773Z" }, { url = "https://files.pythonhosted.org/packages/9e/7e/a96255f63b7aef032cbee8fc4d6e37def72e3aaedc1f72759235e8f13cb1/nh3-0.3.2-cp38-abi3-win_arm64.whl", hash = "sha256:cf5964d54edd405e68583114a7cba929468bcd7db5e676ae38ee954de1cfc104", size = 584162, upload-time = "2025-10-30T11:17:44.96Z" }, ] [[package]] name = "nodeenv" version = "1.10.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/24/bf/d1bda4f6168e0b2e9e5958945e01910052158313224ada5ce1fb2e1113b8/nodeenv-1.10.0.tar.gz", hash = "sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb", size = 55611, upload-time = "2025-12-20T14:08:54.006Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl", hash = "sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827", size = 23438, upload-time = "2025-12-20T14:08:52.782Z" }, ] [[package]] name = "outcome" version = "1.3.0.post0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs" }, ] sdist = { url = "https://files.pythonhosted.org/packages/98/df/77698abfac98571e65ffeb0c1fba8ffd692ab8458d617a0eed7d9a8d38f2/outcome-1.3.0.post0.tar.gz", hash = "sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8", size = 21060, upload-time = "2023-10-26T04:26:04.361Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/55/8b/5ab7257531a5d830fc8000c476e63c935488d74609b50f9384a643ec0a62/outcome-1.3.0.post0-py2.py3-none-any.whl", hash = "sha256:e771c5ce06d1415e356078d3bdd68523f284b4ce5419828922b6871e65eda82b", size = 10692, upload-time = "2023-10-26T04:26:02.532Z" }, ] [[package]] name = "packaging" version = "25.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, ] [[package]] name = "pathspec" version = "0.12.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, ] [[package]] name = "pluggy" version = "1.6.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] [[package]] name = "pycparser" version = "2.23" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, ] [[package]] name = "pyfuse3" source = { editable = "." } dependencies = [ { name = "trio" }, ] [package.dev-dependencies] dev = [ { name = "mypy" }, { name = "pyright" }, { name = "pytest" }, { name = "pytest-trio" }, { name = "ruff" }, { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "twine" }, ] [package.metadata] requires-dist = [{ name = "trio", specifier = ">=0.15" }] [package.metadata.requires-dev] dev = [ { name = "mypy", specifier = ">=1.19.1" }, { name = "pyright", specifier = ">=1.1.407" }, { name = "pytest", specifier = ">=3.4.0" }, { name = "pytest-trio" }, { name = "ruff", specifier = ">=0.14.10" }, { name = "sphinx" }, { name = "twine" }, ] [[package]] name = "pygments" version = "2.20.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, ] [[package]] name = "pyright" version = "1.1.407" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "nodeenv" }, { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a6/1b/0aa08ee42948b61745ac5b5b5ccaec4669e8884b53d31c8ec20b2fcd6b6f/pyright-1.1.407.tar.gz", hash = "sha256:099674dba5c10489832d4a4b2d302636152a9a42d317986c38474c76fe562262", size = 4122872, upload-time = "2025-10-24T23:17:15.145Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/dc/93/b69052907d032b00c40cb656d21438ec00b3a471733de137a3f65a49a0a0/pyright-1.1.407-py3-none-any.whl", hash = "sha256:6dd419f54fcc13f03b52285796d65e639786373f433e243f8b94cf93a7444d21", size = 5997008, upload-time = "2025-10-24T23:17:13.159Z" }, ] [[package]] name = "pytest" version = "9.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, { name = "iniconfig" }, { name = "packaging" }, { name = "pluggy" }, { name = "pygments" }, { name = "tomli", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/7d/0d/549bd94f1a0a402dc8cf64563a117c0f3765662e2e668477624baeec44d5/pytest-9.0.3.tar.gz", hash = "sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c", size = 1572165, upload-time = "2026-04-07T17:16:18.027Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/d4/24/a372aaf5c9b7208e7112038812994107bc65a84cd00e0354a88c2c77a617/pytest-9.0.3-py3-none-any.whl", hash = "sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9", size = 375249, upload-time = "2026-04-07T17:16:16.13Z" }, ] [[package]] name = "pytest-trio" version = "0.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "outcome" }, { name = "pytest" }, { name = "trio" }, ] sdist = { url = "https://files.pythonhosted.org/packages/13/08/056279526554c6c6e6ad6d4a479a338d14dc785ac30be8bdc6ca0153c1be/pytest-trio-0.8.0.tar.gz", hash = "sha256:8363db6336a79e6c53375a2123a41ddbeccc4aa93f93788651641789a56fb52e", size = 46525, upload-time = "2022-11-01T17:24:29.352Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/e9/22/71953f47e0da5852c899f58cd7a31e6100f37c632b7b9ee52d067613a844/pytest_trio-0.8.0-py3-none-any.whl", hash = "sha256:e6a7e7351ae3e8ec3f4564d30ee77d1ec66e1df611226e5618dbb32f9545c841", size = 27221, upload-time = "2022-11-01T17:24:27.501Z" }, ] [[package]] name = "pywin32-ctypes" version = "0.2.3" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload-time = "2024-08-14T10:15:34.626Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload-time = "2024-08-14T10:15:33.187Z" }, ] [[package]] name = "readme-renderer" version = "44.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "nh3" }, { name = "pygments" }, ] sdist = { url = "https://files.pythonhosted.org/packages/5a/a9/104ec9234c8448c4379768221ea6df01260cd6c2ce13182d4eac531c8342/readme_renderer-44.0.tar.gz", hash = "sha256:8712034eabbfa6805cacf1402b4eeb2a73028f72d1166d6f5cb7f9c047c5d1e1", size = 32056, upload-time = "2024-07-08T15:00:57.805Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/e1/67/921ec3024056483db83953ae8e48079ad62b92db7880013ca77632921dd0/readme_renderer-44.0-py3-none-any.whl", hash = "sha256:2fbca89b81a08526aadf1357a8c2ae889ec05fb03f5da67f9769c9a592166151", size = 13310, upload-time = "2024-07-08T15:00:56.577Z" }, ] [[package]] name = "requests" version = "2.33.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, { name = "charset-normalizer" }, { name = "idna" }, { name = "urllib3" }, ] sdist = { url = "https://files.pythonhosted.org/packages/34/64/8860370b167a9721e8956ae116825caff829224fbca0ca6e7bf8ddef8430/requests-2.33.0.tar.gz", hash = "sha256:c7ebc5e8b0f21837386ad0e1c8fe8b829fa5f544d8df3b2253bff14ef29d7652", size = 134232, upload-time = "2026-03-25T15:10:41.586Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/56/5d/c814546c2333ceea4ba42262d8c4d55763003e767fa169adc693bd524478/requests-2.33.0-py3-none-any.whl", hash = "sha256:3324635456fa185245e24865e810cecec7b4caf933d7eb133dcde67d48cee69b", size = 65017, upload-time = "2026-03-25T15:10:40.382Z" }, ] [[package]] name = "requests-toolbelt" version = "1.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "requests" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" }, ] [[package]] name = "rfc3986" version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/85/40/1520d68bfa07ab5a6f065a186815fb6610c86fe957bc065754e47f7b0840/rfc3986-2.0.0.tar.gz", hash = "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c", size = 49026, upload-time = "2022-01-10T00:52:30.832Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/ff/9a/9afaade874b2fa6c752c36f1548f718b5b83af81ed9b76628329dab81c1b/rfc3986-2.0.0-py2.py3-none-any.whl", hash = "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd", size = 31326, upload-time = "2022-01-10T00:52:29.594Z" }, ] [[package]] name = "rich" version = "14.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, ] sdist = { url = "https://files.pythonhosted.org/packages/fb/d2/8920e102050a0de7bfabeb4c4614a49248cf8d5d7a8d01885fbb24dc767a/rich-14.2.0.tar.gz", hash = "sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4", size = 219990, upload-time = "2025-10-09T14:16:53.064Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/25/7a/b0178788f8dc6cafce37a212c99565fa1fe7872c70c6c9c1e1a372d9d88f/rich-14.2.0-py3-none-any.whl", hash = "sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd", size = 243393, upload-time = "2025-10-09T14:16:51.245Z" }, ] [[package]] name = "roman-numerals" version = "4.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/ae/f9/41dc953bbeb056c17d5f7a519f50fdf010bd0553be2d630bc69d1e022703/roman_numerals-4.1.0.tar.gz", hash = "sha256:1af8b147eb1405d5839e78aeb93131690495fe9da5c91856cb33ad55a7f1e5b2", size = 9077, upload-time = "2025-12-17T18:25:34.381Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/04/54/6f679c435d28e0a568d8e8a7c0a93a09010818634c3c3907fc98d8983770/roman_numerals-4.1.0-py3-none-any.whl", hash = "sha256:647ba99caddc2cc1e55a51e4360689115551bf4476d90e8162cf8c345fe233c7", size = 7676, upload-time = "2025-12-17T18:25:33.098Z" }, ] [[package]] name = "ruff" version = "0.14.10" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/57/08/52232a877978dd8f9cf2aeddce3e611b40a63287dfca29b6b8da791f5e8d/ruff-0.14.10.tar.gz", hash = "sha256:9a2e830f075d1a42cd28420d7809ace390832a490ed0966fe373ba288e77aaf4", size = 5859763, upload-time = "2025-12-18T19:28:57.98Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/60/01/933704d69f3f05ee16ef11406b78881733c186fe14b6a46b05cfcaf6d3b2/ruff-0.14.10-py3-none-linux_armv6l.whl", hash = "sha256:7a3ce585f2ade3e1f29ec1b92df13e3da262178df8c8bdf876f48fa0e8316c49", size = 13527080, upload-time = "2025-12-18T19:29:25.642Z" }, { url = "https://files.pythonhosted.org/packages/df/58/a0349197a7dfa603ffb7f5b0470391efa79ddc327c1e29c4851e85b09cc5/ruff-0.14.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:674f9be9372907f7257c51f1d4fc902cb7cf014b9980152b802794317941f08f", size = 13797320, upload-time = "2025-12-18T19:29:02.571Z" }, { url = "https://files.pythonhosted.org/packages/7b/82/36be59f00a6082e38c23536df4e71cdbc6af8d7c707eade97fcad5c98235/ruff-0.14.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d85713d522348837ef9df8efca33ccb8bd6fcfc86a2cde3ccb4bc9d28a18003d", size = 12918434, upload-time = "2025-12-18T19:28:51.202Z" }, { url = "https://files.pythonhosted.org/packages/a6/00/45c62a7f7e34da92a25804f813ebe05c88aa9e0c25e5cb5a7d23dd7450e3/ruff-0.14.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6987ebe0501ae4f4308d7d24e2d0fe3d7a98430f5adfd0f1fead050a740a3a77", size = 13371961, upload-time = "2025-12-18T19:29:04.991Z" }, { url = "https://files.pythonhosted.org/packages/40/31/a5906d60f0405f7e57045a70f2d57084a93ca7425f22e1d66904769d1628/ruff-0.14.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:16a01dfb7b9e4eee556fbfd5392806b1b8550c9b4a9f6acd3dbe6812b193c70a", size = 13275629, upload-time = "2025-12-18T19:29:21.381Z" }, { url = "https://files.pythonhosted.org/packages/3e/60/61c0087df21894cf9d928dc04bcd4fb10e8b2e8dca7b1a276ba2155b2002/ruff-0.14.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7165d31a925b7a294465fa81be8c12a0e9b60fb02bf177e79067c867e71f8b1f", size = 14029234, upload-time = "2025-12-18T19:29:00.132Z" }, { url = "https://files.pythonhosted.org/packages/44/84/77d911bee3b92348b6e5dab5a0c898d87084ea03ac5dc708f46d88407def/ruff-0.14.10-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c561695675b972effb0c0a45db233f2c816ff3da8dcfbe7dfc7eed625f218935", size = 15449890, upload-time = "2025-12-18T19:28:53.573Z" }, { url = "https://files.pythonhosted.org/packages/e9/36/480206eaefa24a7ec321582dda580443a8f0671fdbf6b1c80e9c3e93a16a/ruff-0.14.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4bb98fcbbc61725968893682fd4df8966a34611239c9fd07a1f6a07e7103d08e", size = 15123172, upload-time = "2025-12-18T19:29:23.453Z" }, { url = "https://files.pythonhosted.org/packages/5c/38/68e414156015ba80cef5473d57919d27dfb62ec804b96180bafdeaf0e090/ruff-0.14.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f24b47993a9d8cb858429e97bdf8544c78029f09b520af615c1d261bf827001d", size = 14460260, upload-time = "2025-12-18T19:29:27.808Z" }, { url = "https://files.pythonhosted.org/packages/b3/19/9e050c0dca8aba824d67cc0db69fb459c28d8cd3f6855b1405b3f29cc91d/ruff-0.14.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59aabd2e2c4fd614d2862e7939c34a532c04f1084476d6833dddef4afab87e9f", size = 14229978, upload-time = "2025-12-18T19:29:11.32Z" }, { url = "https://files.pythonhosted.org/packages/51/eb/e8dd1dd6e05b9e695aa9dd420f4577debdd0f87a5ff2fedda33c09e9be8c/ruff-0.14.10-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:213db2b2e44be8625002dbea33bb9c60c66ea2c07c084a00d55732689d697a7f", size = 14338036, upload-time = "2025-12-18T19:29:09.184Z" }, { url = "https://files.pythonhosted.org/packages/6a/12/f3e3a505db7c19303b70af370d137795fcfec136d670d5de5391e295c134/ruff-0.14.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b914c40ab64865a17a9a5b67911d14df72346a634527240039eb3bd650e5979d", size = 13264051, upload-time = "2025-12-18T19:29:13.431Z" }, { url = "https://files.pythonhosted.org/packages/08/64/8c3a47eaccfef8ac20e0484e68e0772013eb85802f8a9f7603ca751eb166/ruff-0.14.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1484983559f026788e3a5c07c81ef7d1e97c1c78ed03041a18f75df104c45405", size = 13283998, upload-time = "2025-12-18T19:29:06.994Z" }, { url = "https://files.pythonhosted.org/packages/12/84/534a5506f4074e5cc0529e5cd96cfc01bb480e460c7edf5af70d2bcae55e/ruff-0.14.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c70427132db492d25f982fffc8d6c7535cc2fd2c83fc8888f05caaa248521e60", size = 13601891, upload-time = "2025-12-18T19:28:55.811Z" }, { url = "https://files.pythonhosted.org/packages/0d/1e/14c916087d8598917dbad9b2921d340f7884824ad6e9c55de948a93b106d/ruff-0.14.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:5bcf45b681e9f1ee6445d317ce1fa9d6cba9a6049542d1c3d5b5958986be8830", size = 14336660, upload-time = "2025-12-18T19:29:16.531Z" }, { url = "https://files.pythonhosted.org/packages/f2/1c/d7b67ab43f30013b47c12b42d1acd354c195351a3f7a1d67f59e54227ede/ruff-0.14.10-py3-none-win32.whl", hash = "sha256:104c49fc7ab73f3f3a758039adea978869a918f31b73280db175b43a2d9b51d6", size = 13196187, upload-time = "2025-12-18T19:29:19.006Z" }, { url = "https://files.pythonhosted.org/packages/fb/9c/896c862e13886fae2af961bef3e6312db9ebc6adc2b156fe95e615dee8c1/ruff-0.14.10-py3-none-win_amd64.whl", hash = "sha256:466297bd73638c6bdf06485683e812db1c00c7ac96d4ddd0294a338c62fdc154", size = 14661283, upload-time = "2025-12-18T19:29:30.16Z" }, { url = "https://files.pythonhosted.org/packages/74/31/b0e29d572670dca3674eeee78e418f20bdf97fa8aa9ea71380885e175ca0/ruff-0.14.10-py3-none-win_arm64.whl", hash = "sha256:e51d046cf6dda98a4633b8a8a771451107413b0f07183b2bef03f075599e44e6", size = 13729839, upload-time = "2025-12-18T19:28:48.636Z" }, ] [[package]] name = "secretstorage" version = "3.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cryptography" }, { name = "jeepney" }, ] sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload-time = "2025-11-23T19:02:53.191Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b7/46/f5af3402b579fd5e11573ce652019a67074317e18c1935cc0b4ba9b35552/secretstorage-3.5.0-py3-none-any.whl", hash = "sha256:0ce65888c0725fcb2c5bc0fdb8e5438eece02c523557ea40ce0703c266248137", size = 15554, upload-time = "2025-11-23T19:02:51.545Z" }, ] [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, ] [[package]] name = "snowballstemmer" version = "3.0.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/75/a7/9810d872919697c9d01295633f5d574fb416d47e535f258272ca1f01f447/snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895", size = 105575, upload-time = "2025-05-09T16:34:51.843Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/c8/78/3565d011c61f5a43488987ee32b6f3f656e7f107ac2782dd57bdd7d91d9a/snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064", size = 103274, upload-time = "2025-05-09T16:34:50.371Z" }, ] [[package]] name = "sortedcontainers" version = "2.4.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload-time = "2021-05-16T22:03:42.897Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload-time = "2021-05-16T22:03:41.177Z" }, ] [[package]] name = "sphinx" version = "8.1.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version < '3.11'", ] dependencies = [ { name = "alabaster", marker = "python_full_version < '3.11'" }, { name = "babel", marker = "python_full_version < '3.11'" }, { name = "colorama", marker = "python_full_version < '3.11' and sys_platform == 'win32'" }, { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "imagesize", marker = "python_full_version < '3.11'" }, { name = "jinja2", marker = "python_full_version < '3.11'" }, { name = "packaging", marker = "python_full_version < '3.11'" }, { name = "pygments", marker = "python_full_version < '3.11'" }, { name = "requests", marker = "python_full_version < '3.11'" }, { name = "snowballstemmer", marker = "python_full_version < '3.11'" }, { name = "sphinxcontrib-applehelp", marker = "python_full_version < '3.11'" }, { name = "sphinxcontrib-devhelp", marker = "python_full_version < '3.11'" }, { name = "sphinxcontrib-htmlhelp", marker = "python_full_version < '3.11'" }, { name = "sphinxcontrib-jsmath", marker = "python_full_version < '3.11'" }, { name = "sphinxcontrib-qthelp", marker = "python_full_version < '3.11'" }, { name = "sphinxcontrib-serializinghtml", marker = "python_full_version < '3.11'" }, { name = "tomli", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/be0b61178fe2cdcb67e2a92fc9ebb488e3c51c4f74a36a7824c0adf23425/sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927", size = 8184611, upload-time = "2024-10-13T20:27:13.93Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/26/60/1ddff83a56d33aaf6f10ec8ce84b4c007d9368b21008876fceda7e7381ef/sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2", size = 3487125, upload-time = "2024-10-13T20:27:10.448Z" }, ] [[package]] name = "sphinx" version = "9.0.4" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.11'", ] dependencies = [ { name = "alabaster", marker = "python_full_version >= '3.11'" }, { name = "babel", marker = "python_full_version >= '3.11'" }, { name = "colorama", marker = "python_full_version >= '3.11' and sys_platform == 'win32'" }, { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "imagesize", marker = "python_full_version >= '3.11'" }, { name = "jinja2", marker = "python_full_version >= '3.11'" }, { name = "packaging", marker = "python_full_version >= '3.11'" }, { name = "pygments", marker = "python_full_version >= '3.11'" }, { name = "requests", marker = "python_full_version >= '3.11'" }, { name = "roman-numerals", marker = "python_full_version >= '3.11'" }, { name = "snowballstemmer", marker = "python_full_version >= '3.11'" }, { name = "sphinxcontrib-applehelp", marker = "python_full_version >= '3.11'" }, { name = "sphinxcontrib-devhelp", marker = "python_full_version >= '3.11'" }, { name = "sphinxcontrib-htmlhelp", marker = "python_full_version >= '3.11'" }, { name = "sphinxcontrib-jsmath", marker = "python_full_version >= '3.11'" }, { name = "sphinxcontrib-qthelp", marker = "python_full_version >= '3.11'" }, { name = "sphinxcontrib-serializinghtml", marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/42/50/a8c6ccc36d5eacdfd7913ddccd15a9cee03ecafc5ee2bc40e1f168d85022/sphinx-9.0.4.tar.gz", hash = "sha256:594ef59d042972abbc581d8baa577404abe4e6c3b04ef61bd7fc2acbd51f3fa3", size = 8710502, upload-time = "2025-12-04T07:45:27.343Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/c6/3f/4bbd76424c393caead2e1eb89777f575dee5c8653e2d4b6afd7a564f5974/sphinx-9.0.4-py3-none-any.whl", hash = "sha256:5bebc595a5e943ea248b99c13814c1c5e10b3ece718976824ffa7959ff95fffb", size = 3917713, upload-time = "2025-12-04T07:45:24.944Z" }, ] [[package]] name = "sphinxcontrib-applehelp" version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/ba/6e/b837e84a1a704953c62ef8776d45c3e8d759876b4a84fe14eba2859106fe/sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", size = 20053, upload-time = "2024-07-29T01:09:00.465Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5", size = 119300, upload-time = "2024-07-29T01:08:58.99Z" }, ] [[package]] name = "sphinxcontrib-devhelp" version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f6/d2/5beee64d3e4e747f316bae86b55943f51e82bb86ecd325883ef65741e7da/sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", size = 12967, upload-time = "2024-07-29T01:09:23.417Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2", size = 82530, upload-time = "2024-07-29T01:09:21.945Z" }, ] [[package]] name = "sphinxcontrib-htmlhelp" version = "2.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/43/93/983afd9aa001e5201eab16b5a444ed5b9b0a7a010541e0ddfbbfd0b2470c/sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9", size = 22617, upload-time = "2024-07-29T01:09:37.889Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705, upload-time = "2024-07-29T01:09:36.407Z" }, ] [[package]] name = "sphinxcontrib-jsmath" version = "1.0.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/b2/e8/9ed3830aeed71f17c026a07a5097edcf44b692850ef215b161b8ad875729/sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8", size = 5787, upload-time = "2019-01-21T16:10:16.347Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", size = 5071, upload-time = "2019-01-21T16:10:14.333Z" }, ] [[package]] name = "sphinxcontrib-qthelp" version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/68/bc/9104308fc285eb3e0b31b67688235db556cd5b0ef31d96f30e45f2e51cae/sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", size = 17165, upload-time = "2024-07-29T01:09:56.435Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb", size = 88743, upload-time = "2024-07-29T01:09:54.885Z" }, ] [[package]] name = "sphinxcontrib-serializinghtml" version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/3b/44/6716b257b0aa6bfd51a1b31665d1c205fb12cb5ad56de752dfa15657de2f/sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d", size = 16080, upload-time = "2024-07-29T01:10:09.332Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", size = 92072, upload-time = "2024-07-29T01:10:08.203Z" }, ] [[package]] name = "tomli" version = "2.3.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/52/ed/3f73f72945444548f33eba9a87fc7a6e969915e7b1acc8260b30e1f76a2f/tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549", size = 17392, upload-time = "2025-10-08T22:01:47.119Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b3/2e/299f62b401438d5fe1624119c723f5d877acc86a4c2492da405626665f12/tomli-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45", size = 153236, upload-time = "2025-10-08T22:01:00.137Z" }, { url = "https://files.pythonhosted.org/packages/86/7f/d8fffe6a7aefdb61bced88fcb5e280cfd71e08939da5894161bd71bea022/tomli-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba", size = 148084, upload-time = "2025-10-08T22:01:01.63Z" }, { url = "https://files.pythonhosted.org/packages/47/5c/24935fb6a2ee63e86d80e4d3b58b222dafaf438c416752c8b58537c8b89a/tomli-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf", size = 234832, upload-time = "2025-10-08T22:01:02.543Z" }, { url = "https://files.pythonhosted.org/packages/89/da/75dfd804fc11e6612846758a23f13271b76d577e299592b4371a4ca4cd09/tomli-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441", size = 242052, upload-time = "2025-10-08T22:01:03.836Z" }, { url = "https://files.pythonhosted.org/packages/70/8c/f48ac899f7b3ca7eb13af73bacbc93aec37f9c954df3c08ad96991c8c373/tomli-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845", size = 239555, upload-time = "2025-10-08T22:01:04.834Z" }, { url = "https://files.pythonhosted.org/packages/ba/28/72f8afd73f1d0e7829bfc093f4cb98ce0a40ffc0cc997009ee1ed94ba705/tomli-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c", size = 245128, upload-time = "2025-10-08T22:01:05.84Z" }, { url = "https://files.pythonhosted.org/packages/b6/eb/a7679c8ac85208706d27436e8d421dfa39d4c914dcf5fa8083a9305f58d9/tomli-2.3.0-cp311-cp311-win32.whl", hash = "sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456", size = 96445, upload-time = "2025-10-08T22:01:06.896Z" }, { url = "https://files.pythonhosted.org/packages/0a/fe/3d3420c4cb1ad9cb462fb52967080575f15898da97e21cb6f1361d505383/tomli-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be", size = 107165, upload-time = "2025-10-08T22:01:08.107Z" }, { url = "https://files.pythonhosted.org/packages/ff/b7/40f36368fcabc518bb11c8f06379a0fd631985046c038aca08c6d6a43c6e/tomli-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac", size = 154891, upload-time = "2025-10-08T22:01:09.082Z" }, { url = "https://files.pythonhosted.org/packages/f9/3f/d9dd692199e3b3aab2e4e4dd948abd0f790d9ded8cd10cbaae276a898434/tomli-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22", size = 148796, upload-time = "2025-10-08T22:01:10.266Z" }, { url = "https://files.pythonhosted.org/packages/60/83/59bff4996c2cf9f9387a0f5a3394629c7efa5ef16142076a23a90f1955fa/tomli-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f", size = 242121, upload-time = "2025-10-08T22:01:11.332Z" }, { url = "https://files.pythonhosted.org/packages/45/e5/7c5119ff39de8693d6baab6c0b6dcb556d192c165596e9fc231ea1052041/tomli-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52", size = 250070, upload-time = "2025-10-08T22:01:12.498Z" }, { url = "https://files.pythonhosted.org/packages/45/12/ad5126d3a278f27e6701abde51d342aa78d06e27ce2bb596a01f7709a5a2/tomli-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8", size = 245859, upload-time = "2025-10-08T22:01:13.551Z" }, { url = "https://files.pythonhosted.org/packages/fb/a1/4d6865da6a71c603cfe6ad0e6556c73c76548557a8d658f9e3b142df245f/tomli-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6", size = 250296, upload-time = "2025-10-08T22:01:14.614Z" }, { url = "https://files.pythonhosted.org/packages/a0/b7/a7a7042715d55c9ba6e8b196d65d2cb662578b4d8cd17d882d45322b0d78/tomli-2.3.0-cp312-cp312-win32.whl", hash = "sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876", size = 97124, upload-time = "2025-10-08T22:01:15.629Z" }, { url = "https://files.pythonhosted.org/packages/06/1e/f22f100db15a68b520664eb3328fb0ae4e90530887928558112c8d1f4515/tomli-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878", size = 107698, upload-time = "2025-10-08T22:01:16.51Z" }, { url = "https://files.pythonhosted.org/packages/89/48/06ee6eabe4fdd9ecd48bf488f4ac783844fd777f547b8d1b61c11939974e/tomli-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b", size = 154819, upload-time = "2025-10-08T22:01:17.964Z" }, { url = "https://files.pythonhosted.org/packages/f1/01/88793757d54d8937015c75dcdfb673c65471945f6be98e6a0410fba167ed/tomli-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae", size = 148766, upload-time = "2025-10-08T22:01:18.959Z" }, { url = "https://files.pythonhosted.org/packages/42/17/5e2c956f0144b812e7e107f94f1cc54af734eb17b5191c0bbfb72de5e93e/tomli-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b", size = 240771, upload-time = "2025-10-08T22:01:20.106Z" }, { url = "https://files.pythonhosted.org/packages/d5/f4/0fbd014909748706c01d16824eadb0307115f9562a15cbb012cd9b3512c5/tomli-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf", size = 248586, upload-time = "2025-10-08T22:01:21.164Z" }, { url = "https://files.pythonhosted.org/packages/30/77/fed85e114bde5e81ecf9bc5da0cc69f2914b38f4708c80ae67d0c10180c5/tomli-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f", size = 244792, upload-time = "2025-10-08T22:01:22.417Z" }, { url = "https://files.pythonhosted.org/packages/55/92/afed3d497f7c186dc71e6ee6d4fcb0acfa5f7d0a1a2878f8beae379ae0cc/tomli-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05", size = 248909, upload-time = "2025-10-08T22:01:23.859Z" }, { url = "https://files.pythonhosted.org/packages/f8/84/ef50c51b5a9472e7265ce1ffc7f24cd4023d289e109f669bdb1553f6a7c2/tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606", size = 96946, upload-time = "2025-10-08T22:01:24.893Z" }, { url = "https://files.pythonhosted.org/packages/b2/b7/718cd1da0884f281f95ccfa3a6cc572d30053cba64603f79d431d3c9b61b/tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999", size = 107705, upload-time = "2025-10-08T22:01:26.153Z" }, { url = "https://files.pythonhosted.org/packages/19/94/aeafa14a52e16163008060506fcb6aa1949d13548d13752171a755c65611/tomli-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e", size = 154244, upload-time = "2025-10-08T22:01:27.06Z" }, { url = "https://files.pythonhosted.org/packages/db/e4/1e58409aa78eefa47ccd19779fc6f36787edbe7d4cd330eeeedb33a4515b/tomli-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3", size = 148637, upload-time = "2025-10-08T22:01:28.059Z" }, { url = "https://files.pythonhosted.org/packages/26/b6/d1eccb62f665e44359226811064596dd6a366ea1f985839c566cd61525ae/tomli-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc", size = 241925, upload-time = "2025-10-08T22:01:29.066Z" }, { url = "https://files.pythonhosted.org/packages/70/91/7cdab9a03e6d3d2bb11beae108da5bdc1c34bdeb06e21163482544ddcc90/tomli-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0", size = 249045, upload-time = "2025-10-08T22:01:31.98Z" }, { url = "https://files.pythonhosted.org/packages/15/1b/8c26874ed1f6e4f1fcfeb868db8a794cbe9f227299402db58cfcc858766c/tomli-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879", size = 245835, upload-time = "2025-10-08T22:01:32.989Z" }, { url = "https://files.pythonhosted.org/packages/fd/42/8e3c6a9a4b1a1360c1a2a39f0b972cef2cc9ebd56025168c4137192a9321/tomli-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005", size = 253109, upload-time = "2025-10-08T22:01:34.052Z" }, { url = "https://files.pythonhosted.org/packages/22/0c/b4da635000a71b5f80130937eeac12e686eefb376b8dee113b4a582bba42/tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463", size = 97930, upload-time = "2025-10-08T22:01:35.082Z" }, { url = "https://files.pythonhosted.org/packages/b9/74/cb1abc870a418ae99cd5c9547d6bce30701a954e0e721821df483ef7223c/tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8", size = 107964, upload-time = "2025-10-08T22:01:36.057Z" }, { url = "https://files.pythonhosted.org/packages/54/78/5c46fff6432a712af9f792944f4fcd7067d8823157949f4e40c56b8b3c83/tomli-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77", size = 163065, upload-time = "2025-10-08T22:01:37.27Z" }, { url = "https://files.pythonhosted.org/packages/39/67/f85d9bd23182f45eca8939cd2bc7050e1f90c41f4a2ecbbd5963a1d1c486/tomli-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf", size = 159088, upload-time = "2025-10-08T22:01:38.235Z" }, { url = "https://files.pythonhosted.org/packages/26/5a/4b546a0405b9cc0659b399f12b6adb750757baf04250b148d3c5059fc4eb/tomli-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530", size = 268193, upload-time = "2025-10-08T22:01:39.712Z" }, { url = "https://files.pythonhosted.org/packages/42/4f/2c12a72ae22cf7b59a7fe75b3465b7aba40ea9145d026ba41cb382075b0e/tomli-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b", size = 275488, upload-time = "2025-10-08T22:01:40.773Z" }, { url = "https://files.pythonhosted.org/packages/92/04/a038d65dbe160c3aa5a624e93ad98111090f6804027d474ba9c37c8ae186/tomli-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67", size = 272669, upload-time = "2025-10-08T22:01:41.824Z" }, { url = "https://files.pythonhosted.org/packages/be/2f/8b7c60a9d1612a7cbc39ffcca4f21a73bf368a80fc25bccf8253e2563267/tomli-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f", size = 279709, upload-time = "2025-10-08T22:01:43.177Z" }, { url = "https://files.pythonhosted.org/packages/7e/46/cc36c679f09f27ded940281c38607716c86cf8ba4a518d524e349c8b4874/tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0", size = 107563, upload-time = "2025-10-08T22:01:44.233Z" }, { url = "https://files.pythonhosted.org/packages/84/ff/426ca8683cf7b753614480484f6437f568fd2fda2edbdf57a2d3d8b27a0b/tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba", size = 119756, upload-time = "2025-10-08T22:01:45.234Z" }, { url = "https://files.pythonhosted.org/packages/77/b8/0135fadc89e73be292b473cb820b4f5a08197779206b33191e801feeae40/tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b", size = 14408, upload-time = "2025-10-08T22:01:46.04Z" }, ] [[package]] name = "trio" version = "0.32.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs" }, { name = "cffi", marker = "implementation_name != 'pypy' and os_name == 'nt'" }, { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, { name = "idna" }, { name = "outcome" }, { name = "sniffio" }, { name = "sortedcontainers" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d8/ce/0041ddd9160aac0031bcf5ab786c7640d795c797e67c438e15cfedf815c8/trio-0.32.0.tar.gz", hash = "sha256:150f29ec923bcd51231e1d4c71c7006e65247d68759dd1c19af4ea815a25806b", size = 605323, upload-time = "2025-10-31T07:18:17.466Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/41/bf/945d527ff706233636c73880b22c7c953f3faeb9d6c7e2e85bfbfd0134a0/trio-0.32.0-py3-none-any.whl", hash = "sha256:4ab65984ef8370b79a76659ec87aa3a30c5c7c83ff250b4de88c29a8ab6123c5", size = 512030, upload-time = "2025-10-31T07:18:15.885Z" }, ] [[package]] name = "twine" version = "6.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "id" }, { name = "keyring", marker = "platform_machine != 'ppc64le' and platform_machine != 's390x'" }, { name = "packaging" }, { name = "readme-renderer" }, { name = "requests" }, { name = "requests-toolbelt" }, { name = "rfc3986" }, { name = "rich" }, { name = "urllib3" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e0/a8/949edebe3a82774c1ec34f637f5dd82d1cf22c25e963b7d63771083bbee5/twine-6.2.0.tar.gz", hash = "sha256:e5ed0d2fd70c9959770dce51c8f39c8945c574e18173a7b81802dab51b4b75cf", size = 172262, upload-time = "2025-09-04T15:43:17.255Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/3a/7a/882d99539b19b1490cac5d77c67338d126e4122c8276bf640e411650c830/twine-6.2.0-py3-none-any.whl", hash = "sha256:418ebf08ccda9a8caaebe414433b0ba5e25eb5e4a927667122fbe8f829f985d8", size = 42727, upload-time = "2025-09-04T15:43:15.994Z" }, ] [[package]] name = "typing-extensions" version = "4.15.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, ] [[package]] name = "urllib3" version = "2.6.3" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, ] [[package]] name = "zipp" version = "3.23.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, ]